Cloud Native Maturity Model - Level 1
Dante's Cloud Native Maturity Model is a framework that enables organizations to gauge the current maturity of their cloud applications and to define an architectural roadmap such that the applications will ultimately take full advantage of cloud computing. In the first installment of this series we discussed the classic mistake of lifting and shifting an application as-is into the cloud and the implications of doing so.
- Level 0: Lift and Shift
- Level 1: Embrace Software Defined Infrastructure
- Level 2: Liberate Cloud Native Architecture
- Level 3: Transcend to Continuous Deployment
Level 1 - Software Defined Infrastructure
To reach the first level of the maturity model you must embrace software defined infrastructure (SDI). We place this at the first level because it establishes a foundation for all further efforts. In a traditional datacenter it could take weeks or months to procure, rack and configure new hardware. In this context, it was acceptable for an application deployment to take days or weeks. But the cloud raises the bar. Cloud resources are fluid. They can be deployed and terminated at the push of a button. Therefore application deployments must be equally fluid. And as cloud applications advance through the maturity model they will embody more moving parts which further necessitates the need for automation. In addition to its necessity, embracing software defined infrastructure yields the benefits of reduced costs, increased quality, robust security, high availability and increased agility.
At Level 0 we discussed how following traditional deployment models in the cloud can cause costs to skyrocket. Deployments were manually crafted by skilled technicians and left running continuously, essentially because they were so difficult to craft and no one wanted to touch them for fear of breaking something. By embracing automation, we have seen deployments drop from days to minutes while also empowering non technical teammates, such as analysts and testers, to perform deployments. This naturally reduces the monthly cloud costs, since whole environments could be terminated when not in use. But it also unshackles human resources to work on more interesting and high value efforts.
SDI produces higher quality applications and easily repeatable deployments. SDI is code just like the code of the application in that it is checked in and version controlled with the application, it is tested and peer reviewed, it is developed iteratively and it is exactly the same for every deployment in every environment from testing (integration, acceptance and performance) to production. All the while wringing out the requirements and human error.
SDI leads to robust security by eliminating the human error that is the root cause of most breaches. Every machine instance conforms to the known requirements because it was stamped out by the automation logic that has been thoroughly tested and has full traceability to the requirements through the version control logs. Each machine is immutable and disposable. If a machine becomes infected in some way no effort is made to fix the specific machine. It is taken out of rotation, replaced by a new machine, analyzed for a root cause of the infection, and then simply terminated. If a software change is required then an emergency fix is implemented and a complete patch release is deployed, in hours if need be.
SDI facilitates high availability through zero downtime deployments known as Blue/Green deployments. The current deployment is referred to as Blue and the new deployment is Green. The Blue deployment remains up while the Green deployment is vetted. Once certified, traffic is incrementally routed from Blue to Green. If an issue arises then traffic is returned to Blue, otherwise the Blue deployment is terminated and Green becomes the new Blue. SDI also fosters a "You build it, You operate it" culture which has shown reductions in downtime.
Innovation is stifled when deployments are long and tedious. SDI increases agility by shortening the feedback loop. Experimentation is encouraged when deployments become fluid and continuous. This allows organizations to react to market forces in a timely manner.
Continue reading this series of postings to learn more about how to advance through the levels of the maturity model. Future installments will discuss how liberating cloud native architecture leads to global scalability and how continuous deployment in the cloud facilitates agility.
Engage Dante to help you embrace software defined infrastructure and navigate a successful transition to the cloud.