In previous article, I compare deployment experience between Azure Web Apps and GCP App Engine as C# developer without thinking too much.
Then I realize that I should compare them in different way such as linux platform or container deployment. But before keep deploying, I step back a bit and compare them from service point of view.
Azure Web Apps provides two environments, Windows and Linux. They are very similar but for Linux environment, you can build your own docker image and deploy.
GCP also has two types of App Engine, Standard and Flexible (aka App Engine Flex)
I consider them as totally different services as there are so many differences.
There is a detailed documentation for each service, and this table describe the difference very well.
|Feature||Flexible environment||Standard environment|
|Instance startup time||Minutes||Seconds|
|Maximum request timeout||60 minutes||60 seconds|
|Background threads||Yes||Yes, with restrictions|
|Scaling||Manual, Automatic||Manual, Basic, Automatic|
|Writing to local disk||Yes, ephemeral (disk initialized on each VM startup)||No|
|Modifying the runtime||Yes (through Dockerfile)||No|
|Automatic in-place security patches||Yes (excludes container image runtime)||Yes|
|Network access||Yes||Only via App Engine services (includes outbound sockets), and only for billing-enabled Python, Go, and PHP applications.|
|Supports installing third-party binaries||Yes||No|
|Location||North America, Asia Pacific, or Europe||North America, Asia Pacific, or Europe|
|Pricing||Based on usage of vCPU, memory, and persistent disks||Based on instance hours|
Though they are very different, I treat them as one service and compare with Azure Web Apps for now.
They are similar in many ways.
- Support multiple languages and runtime: .NET Core, Java, Ruby, Node.js, PHP, Python, Go etc.
- IDE Integration: Azure Web Apps for Windows and App Engine Flexible provides Visual Studio integration.
- SSH/CMD: You can access to underline VM via SSH or CMD.
- Tools: In addition to IDE Integration, both platform provides easy to use CLI tools. CLI runs in your client as well as in browser.
- Performance and maintenance: Auto-scale, load-balancing, security, Flexible CPU/Memory configuration, Auto OS management.
- Platform level support: You can take advantage of cloud platform such as IAM, Monitoring, Network, etc.
Of course there are several differences as well.
Yes, they are similar, but also different.
- Full .NET: As it requires Windows OS, only Azure support it.
- Go: On Azure, you need to use docker image to support Go with Linux version, whereas GCP supports it natively.
- Minor versions: Of course there are minor version difference.
Of course we can do CI/CD for any platform, but Azure offers DevOps feature as part of Web Apps. I can also git push directly to Web Apps.
I am n00b for GCP, so I don't know yet much about administration type of features.
- scaling and load balancing settings
- security options
I also don't know yet about developer related things such as
- live debug experience
- connectivity to data store
- authentication options
I will catch them up later but, in the next article, I compare Web Apps and App Engine Flexible from Linux platform point of view!