With the adoption of containerized services, the vast majority of companies started using container orchestration platforms like Kubernetes, AWS ECS, Hashicorp Nomad… However, these platforms have many complexities, they are hard to learn and they are costly to manage.
That’s why Google offered a service called Cloud Run which is a serverless container platform. Cloud Run deploys your applications to a containerized production environment and abstracts most of the operational components such as:
- Scaling your container instances
- Load balancing
- TLS management (you do not have to worry about your TLS certificate expiration; Cloud Run renews certificates for you)
- Managing the servers behind this platform
- Log/metrics collection
Sounds great, right? Cloud Run does not stop there, it also uses the Knative API.
With the adaption of Google Cloud Run, AWS wanted to get into this serverless container platform game and launched the AWS App Runner service. In AWS’s words: “AWS App Runner is a fully managed service that makes it easy for developers to quickly deploy containerized web applications and APIs”
At a glance, both services look similar; however let’s compare these services by looking at their similarities and differences:
- Both services can deploy a containerized web application from a Docker Registry (ECR or GCR)
- Both services work well with build tools of their Cloud Platform and build Docker images from Dockerfile, or deploy from source code if the language/framework is supported.
- Both services create and renew TLS certificates automatically for the load balancer they use.
- Both services scale their container instances automatically based on concurrent requests served.
- Both services collect logs/metrics without agents or exporters.
- Both services provide an HTTPS endpoint which you can point to a custom domain of yours.