Skip to content

Instantly share code, notes, and snippets.

@jtheisen
Created January 17, 2023 16:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jtheisen/8de5fb62df9c50e2d641bacd043ee9b0 to your computer and use it in GitHub Desktop.
Save jtheisen/8de5fb62df9c50e2d641bacd043ee9b0 to your computer and use it in GitHub Desktop.
Why Azure is awesome
# Azure
Definitions:
- IaaS: A provider lets you host virtual machines, Docker instances or Kubernetes clusters and manages the that for you
- PaaS: A provider hosts a specific server technology for you and also manages the updates for that techology (eg. Amazon S3)
- SaaS: A provider hosts an application for you and also manages application updates
I prefer PaaS whenever possible because it reduces the complexity on my side and when the service doesn't work, their support
will know about the technology in question rather than just about the underlying infrastructure.
## The most important PaaS offerings of Azure
- Azure App Services
- Windows and Linux
- Windows gives you a web server (cluster) that hosts web applications under IIS
- Linux gives you a server (cluster) that hosts web applications in Linux Docker instances
under either Apache or Nginx, depending on profile
- Certificates are automatically renewed
- Operating system and webserver updates are done transparently by Microsoft
- Some monitoring is provided and accessible in the Azure Portal, such as
- application logs,
- RAM and CPU status of the servers,
- amount of requests and traffic size
- Easy authentication front for users in the same directory
(no need to write a login mechanism for your app if it's only only used internally)
- Shell access possible, but required only for trouble shooting
- Databases
- Gives you a database (cluster) for SQL Server (then called SQL Azure), Postgres or MySQL
- Operating system and database server updates are done transparently by Microsoft
(database updates still need to be triggered manually for new major versions with breaking
changes obviously, but I never needed to do that in 10 years of using SQL Azure)
- No shell access
- SQL Azure (the SQL Server variant) has continuous backup with point-in-time restore to any desired point in the past
- Azure Blob Storage
- Just like Amazon's S3
- No shell access
- Azure Static Websites
- Hosts Hugo, NextJS, Gatsby and similar static website builders on Blob Storage
- Content is transparently provided through edge caches (CDN)
- Therefore: No shell access (I don't even know what webserver technology Azure Blob Storage or their partner CDNs use)
- Certificates are automatically renewed
- Automatic building and hosting for any merge request (even from strangers) when the source is on GitHub
- Service is free of charge, including a domain (under certain TLDs) and a certificate for that domain
## They support everything popular as PaaS
Azure has an insanely diverse offer and they support basically any popular server technology as PaaS.
For example, they even have PaaS offerings for Spark clusters or Redis caches. If it's considerably
more popular than those, Azure likely has an offering.
The only time when I need to go to Docker/Kubernetes/VMs is when I need to deploy a specific software
that comes in this form or I do something really special.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment