At the annual re:Invent conference in Dec 2020, AWS announced an exciting and new AWS service called Proton. AWS hosts thousands of enterprise customers on their container platforms EKS and ECS. Proton provides platform teams with the tools to manage and enforce consistency across environments while helping developers as well.
As container clusters proliferate across an enterprise (both in the datacenter as well as the cloud), customers face a few difficulties –
- Lack of unified self-service for both developers and operations. Developers need self-service to create application definitions for their CI/CD-based code deployments. Operations teams need to be able to set appropriate defaults and guardrails into the deployment. The lack of both leads to an utter lack of standards as highlighted in the next point.
- Lack of standardization across the board. Most enterprises with a sprawl of config management, provisioning & observability tools which lead to more & more custom application stacks
The maintenance of all of this across the board over many projects and thousands of microservices leading to lack of consistency from an environment standpoint (e.g VPCs, AZs etc). All of which adds to overall technical debt.
Proton assumes the standard organizational pattern of one or more platform teams staffed by cloud admins, SREs, etc working with tens to hundreds of developer teams.
Assuming that at a high level, AWS Proton provides 3 main features for container-based and serverless applications (but suitably extendable to legacy applications as well). –
- Automated infrastructure provisioning and deployment – Administrators create standardized service templates and developers choose from them to deploy their applications.
- Standardized Platform infrastructure – Infrastructure teams define application stacks that contain resources, CI/CD pipeline details etc.
Platform teams can use AWS Proton to define and manage standard application stacks that contain the architecture, infrastructure resources and the CI/CD software deployment pipeline. - Self Service Deployments integrated with CI/CD – Developers then use the self service portal to select appropriate service templates (and by extension application stacks). Proton then automatically provisions the resources, configures CI/CD pipeline and then deploys the artifacts into the infrastructure.
Proton integrates well with existing tools such as Ansible, Terraform, Prometheus, EFK and Cloudformation etc. It does not reinvent the wheel as far as orchestration, deployment and management.
So, What Excites Me About Proton
Well, a few things actually –
- Proton can be defined as a managed application deployment service for both containerized and serverless applications. Teams that perform platform or infrastructure engineering work can use Proton to interoperate and seamlessly integrate all the tools needed across the Day 2 operations continuum – i.e infrastructure provisioning, application deployment, monitoring and updates.
- The vision and goal of Proton is to provide an internal platform that enables cloud teams to standardize and developers to customize standard stacks for their use. At the heart of Proton is the Service Template. Service templates include not just the application but also additional information needed by it such as CI/CD pipelines as well as infrastructure – load balancers, firewalls, databases, distributed caches etc.
- Proton thus fulfills three main roles for functions that had been previously done using a smorgasbord of vendor tools and scripting – a web interface providing self-service, a templating engine (that supports tools such as Cloudformation, CDK, and Terraform (coming soon)) and versioning support for various application stacks. For instance, sysadmins can define a complete CI/CD pipeline with not just AWS tools but also other open-source platforms. Once defined and used, it can be enhanced over time to become a best practice pattern that can be deployed into various environments.
It needs to be seen how enterprise customers will drive the roadmap of Proton; the first cut can seem to be somewhat oversimplifying the DevOps continuum but expect it to blossom in the AWS style – release and refine – over the months to come. One of the best things about this new technology is that it is completely free with the only expense being the cost of running applications deployed using templates.