Going Cloud Native with AWS
As the name suggests Cloud Native has become the term to describe software and systems that are purposely designed for the Cloud environments that will host them, versus the ‘lift and shift’ of traditional legacy applications.
Principly this means the use of containers for delivery, a microservices software architecture and Continuous Deployment practices for fast, regular modifications and upgrades to that code.
In this Going Cloud Native ebook (45 page PDF), I provide a general overview of the trend and also the transformation model, the ‘algorithms’, that can be used to design business practices that best exploit them.
AWS Cloud Native: Build Code Like Netflix
It’s also best to discuss tools for using them by also referencing their flagship customer case study – Netflix. Not only did they pioneer one of the core principles of microservices but they also open sourced the code they built to write, implement and manage them.
Therefore it’s apt one of the best starting points is their blog with the same title – How We Build Code At Netflix.
Cloud Native Toolchain
In this blog Global Continuous Delivery With Spinnaker they explain how it addresses this scope of the code development lifecycle, across global teams, and forms the backbone of their DevOps ‘toolchain’, integrating with other tools such as Git, Nebula, Jenkins and Bakery.
As they describe:
Spinnaker is an open source multi-cloud Continuous Delivery platform for releasing software changes with high velocity and confidence. Spinnaker is designed with pluggability in mind; the platform aims to make it easy to extend and enhance cloud deployment models.
Continuous Deployment with AWS
So you can download these modules and literally code like Netflix, using AWS the same way they do, and also AWS offers Continuous Deployment capabilities as a set of Cloud services if you’re looking for a simpler set up process and managed service.
CodeStar, CodeCommit, CodePipeline, CodeBuild and CodeDeploy offers a DevOps ‘toolchain’ for speeding the software development, build and deploy lifecycle. CodeDeploy also supports GitHub so that you can deploy application revisions stored in GitHub repositories or Amazon S3 buckets to instances.
AWS offers an excellent range of best practice white papers explaining the best practice use of the services, such as an Introduction to DevOps, Practicing Continuous Integration and Delivery on AWS, and using Jenkins on AWS, their dedicated blog offers regular insights, and this video offers guidance from one of their presentations, describing Cloud Native DevOps on AWS.
It’s also helpful to highlight some of the many partners in the AWS ecosystem who add value to this scenario.
For example BlazeMeter integrates with CodePipeline, adding load and performance testing into the pipeline process, enabling users to test APIs, mobile and web applications easily and rapidly.
Microservices on AWS
The third Cloud Native foundation component is a microservices software architecture and again there are a wealth of resources to learn from.
This 2016 AWS Summit presentation provides a comprehensive overview including the broader context of how it fits within this DevOps framework.
Matias De Santi of Wolox describes how microservices can make use of AWS services like their API Gateway and RisingStack offers this article Deploying Node.js Microservices to AWS using Docker.