AWS App Runner: a Container-Native Platform-as-a-Service
“Easy to use” and “cloud native computing” isn’t quite an oxymoron, but it’s close. Of course, there is Heroku, which is a container-based Platform as a Service (PaaS) cloud, and a host of start-ups. And, now Amazon Web Services (AWS), has thrown its hat into this ring with AWS App Runner.
This is a fully managed container application service. Its job is to make it easier and faster for customers to build, deploy, and run containerized web applications and APIs with just a few clicks. Underneath AWS App Runner’s hood all the operations such as provisioning, scaling, and managing container orchestration, load balancing, and continuous integration/continuous delivery (CI/CD) pipelines are handled by the service. You don’t need to worry about servers or Kubernetes clusters.
AWS promises that you simply provide their source code, container image, or deployment pipeline, and AWS App Runner does all the rest. That includes the builds and deployments, load balancing network traffic, scaling capacity on-demand, monitoring application health, traffic encryption, etc.
In short, as Scott Sanchez, AWS’s head of product marketing for containers and serverless said “App Runner provides the entire DevOps backend that developers need to build and deploy applications as a service.”
Now that may sound like we’ve heard this promise before. Well, yes, we have. It’s called Elastic Beanstalk. But, when you compare them closely you’ll see App Runner does even more hand-holding. For example, App Runner sets up secure HTTPS connections for you.
What it really reminds me the most of though is Google Cloud Platform (GCP)‘s Cloud Run. Some people close to the project confided that Cloud Run had indeed been in the minds of AWS developers. Of course, there’s nothing novel about the idea of easy-to-use systems.
There is one noteworthy difference between Cloud Run and App Runner. Cloud Runner enables you to scale down to zero instances if there are no demands for the application’s service; App Runner doesn’t support that use case. Of course, you can manually pause it, but that defeats the purpose of a totally automated service. There is a request into App Runner’s roadmap on GitHub to add the ability to scale to zero.
Of course, if you want fine control of your cloud’s underlying infrastructure service, boy are you in the wrong place. This is for customers who want fully managed container services. If you want to lift and shift your existing code or container repository to AWS this is for you. For instance, if your IT crew and developers know their application but don’t have experience in deploying and managing containers on clouds, you’ll want to check App Runner out.
Besides end-users who are finally migrating to the cloud, another App Runner audience is AWS independent software vendors (ISV). For example, ZS Associates, a global professional services firm in the biotech and pharma spaces, believe they’ll be able to deliver their applications faster with App Rubber. Bharath Sundararaj, ZS’s Cloud Engineering Architect, said, “We’re excited about AWS App Runner because it can help reduce the time it takes for us to deliver solutions to our customers. AWS App Runner abstracts away the need to manage and configure infrastructure, which means we can move rapidly from idea to production.”
Burzin Patel, HashiCorp‘s vice president of global partner alliances, agrees from a somewhat different angle. HashiCorp, best known for its open source infrastructure as code software tool Terraform, combines App Runner with Terraform. This “means,” Patel said, “developers have a faster, easier way to deploy production cloud applications, with less infrastructure to configure and manage.”
Underneath the hood, your compute is automatically deployed, scaled, and managed by AWS Fargate, AWS’ serverless compute engine. AWS promises that “App Runner is built with AWS operational and configuration best practices, including automated safe deployments (which monitor and test a new application environment before live traffic is routed to it to minimize interruptions caused by changing application versions) and health checks. Additionally, AWS App Runner load balances traffic based on incoming requests and automatically scales resources according to traffic patterns. There is no need to build and configure CI/CD pipelines with AWS App Runner because it automatically detects changes to code or a container image and deploys a new version of the application. Furthermore, by provisioning memory to keep idle applications warm, AWS App Runner eliminates cold starts and provides a consistent application response time.”
AWS App Runner has been released in several major AWS regions. There are US East (N. Virginia), US West (Oregon), US East (Ohio), Asia Pacific (Tokyo), and Europe (Ireland). It will be made available in additional regions soon.