This is the next installment in a series of blogs on the subject of cloud transformation and building cloud-native applications.
In Gartner’s report “Top Emerging Trends for Cloud-Native Infrastructure” published May of 2019, they say “…leaders are keen to invest in cloud-native infrastructure technologies to increase software velocity; enable developer agility, application scalability and resilience; and reduce technical debt.” The report also states that while “leaders are keen to exploit cloud-native infrastructure technologies, production deployments are still constrained by a skills gap and lack of technical know-how”. Most companies see clear benefits to moving to cloud-native technology and applications but many lack the skills needed to get there.
The capabilities for building greenfield cloud applications has changed dramatically over the past decade. AWS launched in 2006 with three services and has over 165 services today. Netflix began their move from a monolithic architecture to an AWS cloud-based microservices architecture in 2009. Docker was released to open source in 2013 followed by Kubernetes in 2015. And, AWS Lambda introduced serverless computing to the public cloud in 2014. The pace of innovation in the cloud space is staggering. While many companies have not yet built out capabilities for containers, we are facing a new wave of innovation and application implications for the serverless approach.
Given that most companies want to adopt cloud-native and have a cloud skills gap, it is beneficial to manage a cloud-native transition as tracks within a program. For the cloud-native transition program, maturity targets, training programs, and technology acquisitions can be managed within tracks – for example as follows:
Past blogs in this series have address the need for cloud migration planning, reference architecture and guidelines, and organizational structure and governance.
At a high-level the following steps address the needs for a transition to native-cloud development:
- Establish your container and serverless platform strategy
- Create a cloud skills development strategy
- Select and adopt the right tools for your environment and culture
- Create lightweight architecture guidelines and best practices
- Start small, measure and gauge effectiveness and adjust for emergent patterns
- Embrace and evolve DevOps capabilities including CI/CD automation and application monitoring
- Build automation, security, and compliance into your application and CI/CD lifecycle
- Architect applications as collections of microservices running in containers or serverless
- Selectively migrate monolithic applications to the cloud
Developer’s guidelines for building and deploying their cloud-native applications should be lightweight with a focus on developer experience and Agility.
The following guidelines would be helpful for developers making a transition to cloud-native development:
- 12-factor app guidelines – customized to the cloud environment
- Language and framework standards – e.g. Spring Boot
- Platform specific best practices – e.g. AWS, Azure, GCP, PCF, Kubernetes, Docker, and OpenShift
- Security implementation guidelines, network, scan automation, patch
- DevOps – provision, deploy, CI/CD guidelines
- Runtime standards – service mesh, application performance monitoring, logging
- Migration guidance – when, why and how to migrate legacy monoliths
- Microservices reference architecture and design guidelines
Perficient has teams of highly experienced cloud strategists, architects, DevOps, and change management experts should you need any help with your cloud-native transition. We have invested in developing cloud reference architecture and training experienced individuals on the latest development approaches including native cloud development, PaaS, DevOps, microservices and re-platforming.