Implementing Cloud Native DevOps on AWS
Enterprise organizations like Capital One are following the path to Cloud Native computing trail-blazed by Netflix.
As they were pioneering an entirely new paradigm for watching TV and movies, Netflix were simultaneously pioneering an entirely new paradigm for the technology required to deliver it.
In a 2015 VentureBeat article the author explained how Netflix had pioneered the future of enterprise tech, an approach that came to be defined as ‘Cloud Native’.
The practice is one of moving away from the traditional approach of owning and operating your own data centre populated by the likes of EMC, Oracle and VMware, and instead move to ‘web scale IT’.
Web Scale IT
This is based on practices where applications are built with services packaged in containers, deployed as microservices and managed on elastic infrastructure through agile DevOps processes and continuous delivery workflows.
As the term suggests it’s an approach intended to leverage the full global power of the Cloud, via systems design that exploit it’s core capabilities to naturally achieve a scale that traditional enterprise IT has never been capable of.
For example Mercedes-Benz runs a massive fleet of Kubernetes clusters to support a wide range of project teams around the world, which thanks to automation they describe as easy to manage. Similarly Home Depot has also utilized Kubernetes and containerized applications to manage IT upgrades across 2,300 retail ‘edge’ locations.
In parallel to this large-scale computing capacity the Cloud Native trend is also defined by a fast-paced approach to software development, achieved through a modular ‘microservices’ architecture.
The strategic imperative for this is enabling a faster pace for digital innovation. Traditional industries like banking are at risk of new entrants and digital disruption, in the same way Netflix obviated Blockbuster.
Capital One is an example of such a player embracing the trend to avoid this fate. They believe they have redefined banking for the Cloud age, now considering themselves a technology company that provides financial services.
The company moved forward with changing to agile development practices, to DevOps with continuous integration and continuous deployment, and using cloud data practices around the software-defined data center. They’ve closed all of their data centres and gone all in with AWS.
The company has organized its army of coders into agile sprint teams that work on two-week development cycles.
The cloud infrastructure gives them the flexibility to innovate, test, and deliver continuously. Capital One reports that the time needed to build a new environment and new features into a product has been significantly reduced.
Writing for eWeek, Bernard Golden, their VP of Cloud Strategy, describes how:
“Over time, the cloud-native cohort has developed a set of best practices for lifecycle management, spanning the use of a sophisticated code management platform through to automated monitoring and management of application components to provide scale and resilience. Every process and milestone has been streamlined to provide fast, automated execution and enable touchless production placement once a developer’s fingers leave the keyboard.”
Cloud Native Best Practices on AWS
The central industry body is the CNCF (Cloud Native Computing Foundation), with members such as Capital One, who define adoption best practices and incubate and accelerate the core capabilities via a portfolio of open source projects.
Via an article on their own web site Capital One defines the main principles of Cloud Native to be:
- Scalable – Break up software monoliths into containerized microservices.
- Resilient – Increase overall system resiliency by spreading your services across availability regions.
- Manageable – Having an API to discover and modify the state of your environment means that you can write tools to this work in a repeatable way.
- Observable – Your operations people still need to know about problems as soon as they happen to prevent the situation from getting worse.
- Automated – You need to rely on automation to ensure consistency in your cloud environment. Automation ties all of our cloud native principles together.
The purpose of our ebook guide is to explain in detail how other organizations can emulate these pioneers and transform to a Cloud Native architecture to enjoy the same accelerated digital innovation capabilities, and provide recipes for implementing this approach on the AWS cloud.