Today’s increasingly fast paced innovation in the area of enterprise application architecture added numerous buzz words in our vocabulary such as AWS Lambda, Azure Functions, service mesh, Beanstalk; to name a few. Novel advanced use cases and in fact sophisticated use of cloud computing are transforming IT professional’s lingo. The core foundation of theses innovation lies in building cloud-native infrastructure i.e. adopting containerization and implementing microservices based architecture in the application development lifecycle. The velocity of these innovation is so much that the technological gap between monolithic application and microservices is getting wider every day.
The term cloud-native is very loosely and widely used. The tendency of just “Lift and shift” of monolithic applications does not make one cloud-native. It is like virtualizing workload and run it on someone’s else datacenter or sever. It should be carefully assessed and ensure that it is aligned with the needs of proposed outcomes, as it is quite challenging and will be for quite a while.
Digging little deeper, we find several contradicting definitions of cloud-native. However, one of the best guidance so far, I have seen came from Gartner which explains it by narrowing it down to three main use cases such as:
- Use of platform specific features (i.e. serverless, PaaS, etc.)
- Containerized workloads with Kubernetes and microservices
- LIFESPAR architectural principles (Latency-aware, Instrumented, Failure-aware, Event-driven, Secure, Parallelizable, Automated, Resource-consumption-aware)
Bigger truth is, amid grappling with building the foundation of cloud-native infrastructure and its adoption to increase software development velocity and modernize legacy workloads, technology leaders are also constraint by other factors. Some key factors are:
- Skill gaps
- Organization’s incumbent inertia
- Technological know-how
- Magnitude of efforts involved
- No clear best practice or architectural standards
- Choices of cloud model, e.g. private, hybrid, multi.
There is no silver-bullet or one-size-fits-all in the journey of becoming cloud-native. Implementation is just one side of the coin, looking at other side is a key to a successful adoption at least in the perspective of Day 2 operations to avoid costly cloud repatriation.
It is important to understand that Cloud-native is an ever changing and continuously evolving concept. No doubt, it is a bigger undertaking and complex to perform full re-writes when migrating, however, it might worth the investment given tremendous innovations and new developments happening in this space in the recent years. Kubernetes and containers play a vital role and constitute the core building blocks of cloud-native architecture; both of them are plugged into continuous innovation from leading technology firms and wider matured ecosystem. In the long-run, enterprises adopting cloud-native architecture will reap the benefit of this journey by gaining competitive edge and accelerating time-to-value in their product development lifecycle.