Cloud Native and Future of Application Architecture
As we prepare to wrap 2023, publishing my analysis of state of cloud-native application architecture and its future in 2024 and beyond. We begin with where we are then moving to redefining how applications are built, managed, and understood.
Let’s start with ‘cloud native’ movement, its challenges and solutions and finally you’ll know which tech giant is taking the lead in making the easier for software developers (and no, it’s not Google).
The ‘Cloud Native’ Era
This era gained momentum when Kubernetes burst on the scene in 2015. Within couple of years, it was widely accepted as de-facto container orchestrator and it dramatically changed the entire infrastructure landscape. Kubernetes became the universal control plane that can manage containers, virtual machines, legacy workloads, and modern applications.
Kubernetes made possible to run software application composed of independent services inside Docker containers. For a large scale platforms like Uber, this number runs into thousands of microservices. This may seem achievable for companies which are born digital and rely heavily on tech backbone to scale globally. However, what more astonishing was that enterprises across various industries and even the ISVs too have joined bandwagon and started using Kubernetes to host enterprise software applications. Their motivation was to standardize the deployment rather than need to scale. I captured this in detail in my article couple of years ago.
Riding the wave of cloud migration which promised cost optimization, ‘application modernization’ rose in the priority list of CIOs, CTOs by 2019. By this time enterprises have either moved their infrastructure to cloud or were in process to doing so. Pandemic lockdown accelerated this migration and hence quest to modernize the applications leveraging cloud native services.
As standardizing on Kubernetes has been a successful strategy for most enterprises, every greenfield development was pushed to adopt microservices in ‘cloud native’ paradigm.
The Challenges
Every change brings new set of problems to solve and this was no exception. New way of building and deploying applications posed new challenges for software architects and engineers' community.
First, was to deal with the complexity of distributed systems. Now almost every application, which can simply be monolithic, is running as set of microservices demanding high level of monitoring to understand and troubleshoot. A whole new library of microservices patterns have emerged.
Second, was to understand myriad of tooling to establish the DevOps pipelines and instrumentation either through open-source software or any of cloud platform services. This demanded not only steep learning curve but also brought high degree of cognitive overhead for developers.
Third, although Kubernetes helped to standardize the underlying compute part, it didn’t help in addressing the service integration part including intra-service and external integrations or specifications. The CNCF, a Linux Foundation project that was founded in 2015 to help advance container technology, has ‘compute’ focus. Most of the CNCF projects are geared towards ‘Ops’ i.e. provisioning and managing container infrastructure. Even projects in ‘Incubating’ stage, there are very few (except Backstage, Dapr) that helps implementing distributed applications.
The Solutions
We are currently in different stages in each of the above. Let’s look at them.
Tech community was quick to provide solution to first problem, the observability. Prometheus, an open-source monitoring solution, was accepted to CNCF as second project after Kubernetes in 2016 at the Incubating maturity level and attained Graduated maturity level in 2018. It is often used with Grafana, another open-source data visualization tool. Commercial application monitoring tools like Dynatrace, New Relic, Datadog, Honeycomb took full advantage to expand their offerings in analytics dashboards that ingest multiple telemetry feeds and provide critical insight into application health, performance and increasingly, security. Sensing its enterprise impact and potential, this product category drew attention of investors and tech giants. IBM bought Instana in early 2021. New Relic?got acquired?by PE firms this July. Splunk is recently acquired by Cisco in $28 billion deal, the third-largest software acquisition of all time.
To resolve second problem, concerning developer experience, a whole new concept of platform engineering was born. Some call it as next stage of DevOps engineering. Platform Engineering is a Top Strategic Technology Trend for 2024 from Gartner. CNCF in its whitepaper says, platforms bridge from the underlying capability providers?to platform users like application developers.
Platform engineering is the discipline of designing and building toolchains and workflows that enable self-service capabilities for software engineering organizations in the cloud-native era. Platform engineers build and operate an “Internal Developer Platform” covering the operational necessities of the entire lifecycle of an application.
A recent Google Cloud blog also highlights the need of ‘Golden Path’ built by platform team consisting of platform developers, infra security and reliability engineers. This category is now loaded with products from Humanitec, Mia Platform, Cycloid, Devtron etc. In addition, many large enterprises and technology companies have built their such platform in-house mostly using open-source tools hosted on cloud of their choice. Large IT service providers too have built platform accelerators to help customers to remain focused on business while they take care of underlying complexity. Being part of IT service organization myself, my team also started internal platform leveraging open source software like Kubernetes, Argo workflows, PostgreSQL and our corporate GitLab. Still in initial phase, it is being used internally for building app demos and training purposes. Although platform engineering is good way to navigate the cloud-native landscape and standardize it, it does not bring together various IT functions for business and IT executives to meet their objectives.
领英推荐
While ‘cloud native compute’ is largely matured, third problem of ‘cloud native integration & development’ is still remain challenging. However, there are few exciting developments in this space which you may know already. The tech giant which is taking lead in this space is Microsoft through its open-source projects like Dapr and now Radius. I wrote this in my article couple of years ago how Microsoft has become an active collaborator and contributor in open-source community.
Dapr, or?Distributed Application Runtime, reduces the complexity through its building block APIs to build microservice applications and deploy to any environment. These building blocks include service to service invocation, pub sub messaging, state management, observability, and secret management. Fundamentally it addresses the ‘cloud native integration’ part helping microservices to participate in asynchronous interactions and stateful workflows across range of open source and cloud services. Dapr was accepted as CNCF Incubating project in 2021.
Radius solves ‘cloud native dev’ part as it enables developers and the operators that support them to define, deploy, and collaborate on cloud-native applications across public clouds and private infrastructure. Radius acknowledges that ‘Applications are more than just Kubernetes’. Integrating Kubernetes with cloud services has added additional complexity while making compliance with best practices almost a full-time job. Another founding motivation behind Radius is ‘Applications lack an industry-wide definition’. As application developers and IT operators collaborate, they need a common understanding and visualization of what an application is. While Radius is used with Kubernetes, the core of Radius is intentionally decoupled from Kubernetes so that Radius can be hosted in any scenario and at any scale. Radius is expected to be part of CNCF landscape by 2023.
Conclusion
Global software engineering community is gradually accepting monolithic and microservices architectures as patterns and deliberating when starting new development. In microservices architecture, there are significant efforts and attention from technology fraternity to reduce the complexity of distributed runtimes and increase collaboration between developers and operators.
With advent of developers centric frameworks incubating under CNCF, we are moving towards true ‘cloud native’ state in which app dev and integrations are also standardized along with their runtime.
We are entering into an exciting stage of modern apps development which promises to make it less complex. It may bring new tools and cloud development environments but all that will be for better.
Do leave your questions or comments!
References:
Check relevant links! This post is not generated with ChatGPT, Bard, Bing AI...??
Co-Founder of Krunch | 500 Global backed | Personalise your AI with Nakamai | Investor
10 个月Hi Nitin, the way you've highlighted the challenges and solutions in this domain, especially with the rise of Kubernetes and the emergence of platform engineering, really puts things into perspective. It’s intriguing to see how Microsoft is leading the charge with open-source projects like Dapr and Radius, addressing the complexity of cloud-native integration and development. Thanks for sharing your insights!
Nitin Gaur , in my view application architecture whether cloud native, mono, micro, partially cloud native ,SOA, EDA, serverless, etc is not the concern in the current market trend. Either we take ibuprofen or Crocin at the end both will reduce the body temperature nothing beyond it…believe me In span of 10 - 15 years AI is going to invent & discover theory around all disciplines that includes both science and arts. AI is going to produce applications architecture on demand basis in few seconds …time to think & re-Think how we can institutionalise and operationalise AI in businesses and personal life as well..??
AVP /Enterprise Architect /AI Engineering Leader
11 个月Thanks all who've read. Much appreciated!
Director, Digital Innovation and Enterprise Architecture at Nagarro
11 个月Nice article Nitin!!
Very absorbing read, Nitin. It clearly identifies the challenges and the way industry is tackling them or poised to tackle. Tools for observability have been at the center of discussions and the capability that they have brought in. Tools for DevOps have been too many, and good to know, there are efforts to standardize them in a platform. Thanks for incorporating the links. As you rightly said, next year is for platform engineering and easing out integrations.