Smart Content

AWS Announces General Availability of AWS Proton

With AWS Proton, a customer’s infrastructure team creates standard application stacks defining the architecture, infrastructure resources, CI/CD (continuous integration and continuous delivery) pipeline, and observability tools—and then makes these stacks available to their developers.

Developers can use AWS Proton’s self-service interface to select an application stack for use with their code. AWS Proton automatically provisions the resources for the selected application stack, deploys the code, and sets up monitoring so developers can begin building serverless and container applications without having to learn, configure, or maintain the underlying resources. There are no upfront commitments or fees to use AWS Proton, and customers pay only for the AWS services used to create, scale, and run their applications.

Container and serverless applications improve an organization’s agility and reduce their operational burden; however, they also change the way customers deploy and manage their code. Today, when developers build traditional applications on Amazon Elastic Compute Cloud (Amazon EC2) instances, the applications are often built as a single block of code, and there are well-established tools that help them develop and deploy their code—like AWS CloudFormation templates (to provision the infrastructure), AWS CodePipeline (to set up the CI/CD process), and Amazon CloudWatch (to monitor the deployments).

Once customers get an application up and running on Amazon EC2, the components of the application typically don’t change very much. For these applications, the code is usually maintained in a single release, so keeping it coordinated is relatively easy.

By contrast, container and serverless applications are assembled from multiple smaller chunks of code (microservices), which are often developed and maintained independently and then stitched together to build and scale an application. Each microservice has its own separate infrastructure, code templates, CI/CD pipelines, and monitoring that must be updated and maintained. Often, these microservices are developed and operated by different teams, so those teams have the freedom to update the components at their own pace. This results in changes happening more frequently than with traditional applications. As customers have increasingly adopted container and serverless applications, they have found that managing hundreds, or even thousands, of microservices with constantly changing and disparate infrastructure resources, code deployments, and monitoring tools can be a challenging task for even the most capable teams. Customers lack an integrated solution that ties together all the tasks, including resource provisioning, code deployments, and monitoring.

Central infrastructure teams try to provide guidance to their developers, and some have even built their own custom tools to help developers implement best practices. However, for many organizations, the intricacies of coordinating the development and deployment of container and serverless applications can negatively impact quality and security, and can slow down application development and container and serverless adoption.

AWS Proton is an application delivery service that helps platform teams provide an easy way for their developers to provision, deploy, and monitor applications when the unit of compute is dynamic, like with containers and serverless. AWS Proton allows customers to define application components as a stack, which creates everything needed to provision, deploy, and monitor an application, including compute, networking, code pipeline, security, and monitoring. AWS Proton includes curated application stacks with built-in AWS best practices (for security, architecture, and tools), so infrastructure teams can quickly and easily distribute trusted stacks to their development teams. A customer’s central infrastructure team can easily create and publish a stack to the AWS Proton console. The stack defines all of the infrastructure and tooling for the microservice, and provides consistency and standards across the organization.

When a developer is ready to deploy their code, they pick the stack that best suits their use case, plug in the parameters for their application, and click deploy. AWS Proton handles everything needed to deploy the application, including provisioning the requested AWS services, pushing code through the CI/CD pipeline, setting up monitoring and alarms, and compiling, testing, and deploying the code. The AWS Proton console lists the microservices that are using each stack, so it is easy for infrastructure teams to make sure all microservices are updated as needed. With AWS Proton, infrastructure teams can also easily manage their container and serverless deployments and focus on creating great applications—instead of spending hours setting up infrastructure for each development team.

“Customers have told us that while they love the operational benefits that container and serverless applications provide, it is incredibly challenging to scale these architectures across their organizations because of the many manual tasks involved in deploying apps that use microservices,” said Deepak Singh, VP, Compute Services, AWS. “AWS Proton brings together customers’ infrastructure as code, CI/CD pipeline, and observability into a single interface, so developers can quickly go from code in a repo to a production application. Developers rely on AWS Proton’s self-service capabilities to deploy code quickly and securely without having to become experts on each of the underlying services involved, while the central infrastructure team can be assured that the apps deployed by their developers using AWS Proton meet the standards they have set for their business.”