SlideShare a Scribd company logo
1 of 41
Todd Whitehead | Cloud Solution Architect |Microsoft
@TodWhitehead
Building a website without a
web server* on Azure
* well, at least not paying (much) for it
Goals
• Production Grade
• Low resting cost
• Scale quickly if required
• Let me focus on content
• Articles
• Rich Media
• Online C64 Emulator & BBS
Terminal
• Tagging and Searching
• Support DevOps
Web
Server
Router
Controller
View
Model
Session Data
Server Side Template Rendering
Cache Data
Browser
Static ContentCDN
Images Javascript
Template
Rendered
HTML
Deploying in Azure
Virtual Machines App Service AKS
What would traditional approach cost?
Web
Server
Router
Controller
View
Model
Session Data
What if there was another way?
Cache Data
Browser
Static ContentCDN
Images Javascript
Template
Rendered
HTML
Web
Server
Router
Controller
API
Model
Session
Data
Static Rendering: Template Rendered at deployment
Cache
Data
Browser
Static ContentCDN
Rendered HTML
Images
JavaScript
Router
Controller
API
Model
Session
Data
Cache
Data
Browser
Static ContentCDN
Rendered HTML
Images
JavaScript
Static Website: Template Rendered at deployment
JAMStack
https://jamstack.org | https://jamstack.wtf/
JavaScript
APIs
Markup
Dynamic functionalities handled by JavaScript, no
restriction on which framework or library to use
Server side operations are abstracted into
reusable APIs and accessed over HTTPS with
JavaScript. These can be third party services or
your custom function.
Websites served as static HTML files.
Can be generated from source files, such
as Markdown, using a Static Site
Generator.
Advantages
Better Performance
Higher Security
Cheaper, Easier Scaling
Better Developer Experience
Frameworks
https://reactjs.org/
https://vuejs.org/
https://angular.io/
New Azure API Management developer portal
https://github.com/Azure/api-management-developer-portal
“Better performance,
scalability, and security—The
new portal has been completely
reengineered for simplicity,
performance gains, and
scalable distribution. It has a
lightweight architecture and
uses JAMstack technology. “
Static Site Generators
https://www.staticgen.com
https://gohugo.io
• Extremely fast build times
(< 1 ms per page)
• Cross platform
• Renders changes on the fly as you develop
• Dynamic menu creation
• Permalink, redirects and pretty URL
support
• Powerful theming
VSCode Plugins
Hugo CLI
Hugo Server
Markdown
hugo new post
front matter
Content (markdown)
hugo server
Retrodevops.com Architecture 1
retrodevops.blob.core.windows.net
retrodevops.z8.web.core.windows.net
http://www.retrodevops.com
retrodevops-website Public Website CI
retrodevops-helloworldHelloworld2 Release
Azure Storage: The other web server
Storage Account Containers
CORS
Hugo Website CI
Hugo Website CD
Retrodevops.com Architecture 1
retrodevops.blob.core.windows.net/$web
retrodevops.z8.web.core.windows.net/
http://www.retrodevops.com
retrodevops-website Public Website CI retrodevops-helloworldHelloworld2 Release
Retrodevops.com Architecture 2
retrodevops.blob.core.windows.net/$web
retrodevops.z8.web.core.windows.net
retrodevops.azureedge.net
https://www.retrodevops.com
retrodevops-website Public Website CI
retrodevops-helloworldHelloworld2 Release
Retrodevops.com Architecture 2
retrodevops.blob.core.windows.net/$web
retrodevops.z8.web.core.windows.net
retrodevops.azureedge.net
https://www.retrodevops.com
DiskImages
retrodevops-website Public Website CI
retrodevops-helloworldHelloworld2 Release
hworld2.d64
Other API Options
Azure Functions Azure Search Azure Logic Apps Event Grid API Management
Event Grid APP Service AKS
Serverless Web Ref Architecture
https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/serverless/web-app
https://github.com/mspnp/serverless-reference-implementation
Retrospective
• Running Compute & Allocated Memory $$$
• Storage, Networking $
• Serverless:
• Minimise time paying for stuff
• $$$ match demand
• Can reduce cloud running costs significantly by “denormalising” compute
usage
• Requires re-architecting apps
• Doesn’t need to be the whole app though
• Worth trying out new services & architectures

More Related Content

What's hot

What's hot (20)

The Microsoft AI platform: a State of the Union
The Microsoft AI platform: a State of the UnionThe Microsoft AI platform: a State of the Union
The Microsoft AI platform: a State of the Union
 
Event Grid Unplugged - Using events as the fuel powering your applications
Event Grid Unplugged - Using events as the fuel powering your applicationsEvent Grid Unplugged - Using events as the fuel powering your applications
Event Grid Unplugged - Using events as the fuel powering your applications
 
Meetup Toulouse Microsoft Azure : Bâtir une solution IoT
Meetup Toulouse Microsoft Azure : Bâtir une solution IoTMeetup Toulouse Microsoft Azure : Bâtir une solution IoT
Meetup Toulouse Microsoft Azure : Bâtir une solution IoT
 
Azure IoT Hub
Azure IoT HubAzure IoT Hub
Azure IoT Hub
 
Azure Internet of Things
Azure Internet of ThingsAzure Internet of Things
Azure Internet of Things
 
Azure 101
Azure 101Azure 101
Azure 101
 
Azure iot
Azure iotAzure iot
Azure iot
 
Living on the (IoT) edge (Sam Vanhoutte @TechdaysNL 2017)
Living on the (IoT) edge (Sam Vanhoutte @TechdaysNL 2017)Living on the (IoT) edge (Sam Vanhoutte @TechdaysNL 2017)
Living on the (IoT) edge (Sam Vanhoutte @TechdaysNL 2017)
 
Microsoft Azure and IoT – how to use
Microsoft Azure and IoT – how to useMicrosoft Azure and IoT – how to use
Microsoft Azure and IoT – how to use
 
IOT-Demo
IOT-DemoIOT-Demo
IOT-Demo
 
Business Transformation with Microsoft Azure IoT
Business Transformation with Microsoft Azure IoTBusiness Transformation with Microsoft Azure IoT
Business Transformation with Microsoft Azure IoT
 
Azure IoT (Sam Vanhoutte @NMCT IoT Fest)
Azure IoT (Sam Vanhoutte @NMCT IoT Fest)Azure IoT (Sam Vanhoutte @NMCT IoT Fest)
Azure IoT (Sam Vanhoutte @NMCT IoT Fest)
 
Business Intelligence and Analytics from Microsoft
Business Intelligence and Analytics from MicrosoftBusiness Intelligence and Analytics from Microsoft
Business Intelligence and Analytics from Microsoft
 
Real-Time Analytics with Apache Cassandra and Apache Spark
Real-Time Analytics with Apache Cassandra and Apache SparkReal-Time Analytics with Apache Cassandra and Apache Spark
Real-Time Analytics with Apache Cassandra and Apache Spark
 
IoT
IoT IoT
IoT
 
Device Twins, Digital Twins and Device Shadow
Device Twins, Digital Twins and Device ShadowDevice Twins, Digital Twins and Device Shadow
Device Twins, Digital Twins and Device Shadow
 
Microsoft Azure Technical Overview
Microsoft Azure Technical OverviewMicrosoft Azure Technical Overview
Microsoft Azure Technical Overview
 
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
Azure Days 2019: Business Intelligence auf Azure (Marco Amhof & Yves Mauron)
 
Azure intelligent edge solutions overview
Azure intelligent edge solutions overviewAzure intelligent edge solutions overview
Azure intelligent edge solutions overview
 
How to build iot applications with google cloud
How to build iot applications with google cloudHow to build iot applications with google cloud
How to build iot applications with google cloud
 

Similar to Building a website without a webserver on Azure

Benefits of an Open environment with Wakanda
Benefits of an Open environment with WakandaBenefits of an Open environment with Wakanda
Benefits of an Open environment with Wakanda
Alexandre Morgaut
 
Android Chromium Rendering Pipeline
Android Chromium Rendering PipelineAndroid Chromium Rendering Pipeline
Android Chromium Rendering Pipeline
Hyungwook Lee
 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowCTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should Know
Spiffy
 

Similar to Building a website without a webserver on Azure (20)

London .NET Developers Azure Websites
London .NET Developers Azure WebsitesLondon .NET Developers Azure Websites
London .NET Developers Azure Websites
 
Building SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.jsBuilding SPA’s (Single Page App) with Backbone.js
Building SPA’s (Single Page App) with Backbone.js
 
Best Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft AzureBest Practices for couchDB developers on Microsoft Azure
Best Practices for couchDB developers on Microsoft Azure
 
Developing JavaScript Widgets
Developing JavaScript WidgetsDeveloping JavaScript Widgets
Developing JavaScript Widgets
 
Benefits of an Open environment with Wakanda
Benefits of an Open environment with WakandaBenefits of an Open environment with Wakanda
Benefits of an Open environment with Wakanda
 
SPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFxSPUnite17 Building Great Client Side Web Parts with SPFx
SPUnite17 Building Great Client Side Web Parts with SPFx
 
Android Chromium Rendering Pipeline
Android Chromium Rendering PipelineAndroid Chromium Rendering Pipeline
Android Chromium Rendering Pipeline
 
Hardware Acceleration in WebKit
Hardware Acceleration in WebKitHardware Acceleration in WebKit
Hardware Acceleration in WebKit
 
The Future Is The Cloud
The Future Is The CloudThe Future Is The Cloud
The Future Is The Cloud
 
IBM WebSphere Portal 6.1 Preview - What's New
IBM WebSphere Portal 6.1 Preview - What's NewIBM WebSphere Portal 6.1 Preview - What's New
IBM WebSphere Portal 6.1 Preview - What's New
 
Customizing Apache CloudStack - CCC13
Customizing Apache CloudStack - CCC13Customizing Apache CloudStack - CCC13
Customizing Apache CloudStack - CCC13
 
Word camp nextweb
Word camp nextwebWord camp nextweb
Word camp nextweb
 
Word camp nextweb
Word camp nextwebWord camp nextweb
Word camp nextweb
 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowCTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should Know
 
What's New for the Windows Azure Developer? Lots!!
What's New for the Windows Azure Developer?  Lots!!What's New for the Windows Azure Developer?  Lots!!
What's New for the Windows Azure Developer? Lots!!
 
JAMStack
JAMStackJAMStack
JAMStack
 
Rock Solid WordPress
Rock Solid WordPressRock Solid WordPress
Rock Solid WordPress
 
[D2 campus seminar]웹브라우저 엔진
[D2 campus seminar]웹브라우저 엔진[D2 campus seminar]웹브라우저 엔진
[D2 campus seminar]웹브라우저 엔진
 
Azure and web sites hackaton deck
Azure and web sites hackaton deckAzure and web sites hackaton deck
Azure and web sites hackaton deck
 
Build Fast WordPress Site With Gatsby
Build Fast WordPress Site With GatsbyBuild Fast WordPress Site With Gatsby
Build Fast WordPress Site With Gatsby
 

More from Todd Whitehead

More from Todd Whitehead (6)

DevOps and the C64: what's your excuse
DevOps and the C64: what's your excuseDevOps and the C64: what's your excuse
DevOps and the C64: what's your excuse
 
Azure, DevOps and the Commodore 64
Azure, DevOps and the Commodore 64Azure, DevOps and the Commodore 64
Azure, DevOps and the Commodore 64
 
Building Automated Governance Using Code, Platform Services & Several Small P...
Building Automated Governance Using Code, Platform Services & Several Small P...Building Automated Governance Using Code, Platform Services & Several Small P...
Building Automated Governance Using Code, Platform Services & Several Small P...
 
Demystifying Azure Compute
Demystifying Azure ComputeDemystifying Azure Compute
Demystifying Azure Compute
 
Internet of Stranger Things
Internet of Stranger ThingsInternet of Stranger Things
Internet of Stranger Things
 
Azure Ninja Tips and Tricks
Azure Ninja Tips and TricksAzure Ninja Tips and Tricks
Azure Ninja Tips and Tricks
 

Recently uploaded

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 

Recently uploaded (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Building a website without a webserver on Azure

Editor's Notes

  1. Paying for capacity, whether its avm, an appservicr or AKS node, or database throughput. I can of course auto scale [Click] which helps better align cost with demand. But I still pay for that capacity whether its used or not.
  2. When we talk about “The Stack,” we no longer talk about operating systems, specific web servers, backend programming languages, or databases. JavaScript: Any dynamic programming during the request/response cycle is handled by JavaScript, running entirely on the client. This could be any frontend framework, library, or even vanilla JavaScript. APIs: All server-side processes or database actions are abstracted into reusable APIs, accessed over HTTPS with JavaScript. These can be custom-built or leverage third-party services Markup: Templated markup should be prebuilt at deploy time, usually using a site generator for content sites, or a build tool for web apps. You may have already seen or worked on a JAMstack site! They do not have to include all attributes of JavaScript, APIs, and Markup. They might be built using by hand, or with Jekyll, Hugo, Nuxt, Next, Gatsby, or another static site generator...
  3. Better Performance: Why wait for pages to build on the fly when you can generate them at deploy time? When it comes to minimizing the time to first byte, nothing beats pre-built files served over a CDN. Higher Security: With server-side processes abstracted into microservice APIs, surface areas for attacks are reduced. You can also leverage the domain expertise of specialist third-party services. Cheaper, Easier Scaling: When your deployment amounts to a stack of files that can be served anywhere, scaling is a matter of serving those files in more places. CDNs are perfect for this, and often include scaling in all of their plans. Better Developer Experience: Loose coupling and separation of controls allow for more targeted development and debugging, and the expanding selection of CMS options for site generators remove the need to maintain a separate stack for content and marketing.
  4. Hugo is a static site generator written in Go. It is optimized for speed, easy use and configurability. Hugo takes a directory with content and templates and renders them into a full html website. Hugo makes use of Markdown files with front matter for meta data. A typical website of moderate size can be rendered in a fraction of a second. A good rule of thumb is that Hugo takes around 1 millisecond for each piece of content. It is written to work well with any kind of website including blogs, tumbles and docs.
  5. General  Extremely fast build times (< 1 ms per page) Completely cross platform, with easy installation on macOS, Linux, Windows, and more Renders changes on the fly with LiveReload as you develop Powerful theming Host your site anywhere Organization  Straightforward organization for your projects, including website sections Customizable URLs Support for configurable taxonomies, including categories and tags Sort content as you desire through powerful template functions Automatic table of contents generation Dynamic menu creation Pretty URLs support Permalink pattern support Redirects via aliases Content  Native Markdown and Emacs Org-Mode support, as well as other languages via external helpers (see supported formats) TOML, YAML, and JSON metadata support in front matter Customizable homepage Multiple content types Automatic and user defined content summaries Shortcodes to enable rich content inside of Markdown “Minutes to Read” functionality “Wordcount” functionality Additional Features  Integrated Disqus comment support Integrated Google Analytics support Automatic RSS creation Support for Go, Amber, and Ace HTML templates Syntax highlighting powered by Chroma
  6. 400,000 page views per $1