×
Community Blog Cloud-Native and Application Management with Ease – Part 7: The Evolution of Microservices with Cloud-Native Architecture

Cloud-Native and Application Management with Ease – Part 7: The Evolution of Microservices with Cloud-Native Architecture

Part 7 of this 7-part series differentiates the stages of microservice evolution and the frameworks.

By Shantanu Kaushik

Cloud computing has evolved with major paradigm shifts in software releases and lifecycles. Accelerated SDLC and efficient O&M are the demand of the era. This calls for an extensive overlay to introduce and integrate a wide array of services and features to make the experience wholesome for enterprises.

Communication and Collaboration

Microservices powered by containers have introduced zero dependency scenarios. Kubernetes took charge of an extensively unified framework to enable higher serviceability standards. The architecture related to microservices functions based on seamless communication and collaboration.

Microservices have a loosely coupled structure, where they are not dependent on each other. Thousands of microservices can come together to make an entire application. These applications are self-sustaining. Any issues that occur with a single microservice do not affect the availability of the entire application.

The biggest example of collaboration is DevOps. The spinoffs that took shape from DevOps and agile aim to further the collaborative measure or introduce an accelerated software delivery method. DataOps, AIOps, DevSecOps, and NoOps took shape as the evolutionary cycle of the entire SDLC to enable faster and more effective software release mechanisms.

Comparatively, let’s take a look at the evolutionary phases of Microservices:

Generation 1 Microservices

The Microservices concept was introduced almost a decade ago. There have been four major microservices generations. Each release contained mild to major alterations with significant functionality increases due to recorded integration.

Let’s take a look at the Generation 1 Microservice model on the chart below:

1

The first generation of microservices introduced service logic. The isolation of external factors was implemented seamlessly. Loose coupling and effective communication were the keys to solution enrichment. This generation of microservices also required the application to implement upstream and downstream addressing. The fault tolerance functionality was introduced to make the architecture more stable and available.

Generation 2 Microservices

After an increase in usage and developers implementing the architecture with great enthusiasm, the microservices architecture needed to evolve and implement a simpler architecture. The complexities of service addressing logic had to be toned down to enable more flexibility of the entire microservices solution. Let’s take a look at the architectural overview on the chart below:

2

The challenge was reusability. It was imperative to re-implement the microservices capability before using it with another application written in the same programming language. The second generation of the microservices architecture introduced the service registry bypass concept to overcome this issue. This enabled automatic services discovery and registry.

A unified and fine-grained communication strategy was established with better fault-tolerance features. Microservices were further modularized with independent service frameworks taking control of added tasks, making reusability easier.

Another challenge took shape as the feature integration within the service framework increased. The developers faced difficulties with feature reusability again, but this time with applications written in different programming languages. It came to a point where the most appreciated agile methodology principles started to get violated, as developers could not use multiple programming languages for their solutions.

Generation 3 Microservices

The third generation of microservices came with a boon to code-reusability with a module reusability scenario that lets developers reuse application modules written in any programming language. The third generation came with service mesh. The evolutionary cycle brought along changes where software development kits (SDKs) were upgraded to sidecar, an independent process to further allow developers to optimize the entire microservices management.

The chart below depicts the third generation microservices architecture:

3

The basic features related to the microservices architecture were made independent of any architecture iterations. This enabled independence for microservices to operate without making changes or compromising either microservices’ effectiveness.

Generation 4 Microservices

Today, the latest generation of microservices architecture is also known as the cloud-native microservices architecture. It was introduced in generation 3. The generation 4 microservices model implemented sidecar seamlessly to control the communication and traffic flow between microservice applications.

The sidecar processes enabled the use of service discovery and fault-tolerance in a more effective way than ever before. Some of the most prominent features introduced with generation 4 microservices are listed below:

  • Service Governance
  • Weight Routing
  • Traffic Replay
  • Service Masking
  • Grayscale Routing

Let’s take a look at the architectural flow of the cloud-native microservice architecture on the chart below:

4

The cloud-native microservices enabled the Function as a Service (FaaS) concept. This enabled the use of serverless architecture. Alibaba Cloud focused on microservices implementation with Kubernetes for cloud-native architecture. It should enable a wider sense of solution distribution for the hybrid cloud 2.0 model, and the multi-cloud architecture should handle large enterprise solutions.

The cloud-native microservice architecture introduced the micrologic-based application structure. The reusability with sidecar enabled the use of distributed features that can be governed as separate mini-services. These separated modules can be deployed independently for transaction management, security, state management, tracing analysis, and resource binding.

Moving Towards the Future

Developers have been implementing localhost-oriented programming to provide standard APIs to cover the differences with underlying resources, services, and infrastructure. This reduces the complexities related to microservice development and helps the multi-runtime microservice architecture move forward.

Alibaba Cloud Microservices Tech

Alibaba Cloud initially developed the Apache Dubbo RPC framework based on the open-source platform. It provided a wide array of features with intelligent load balancing scenarios and automatic service registration and discovery mechanisms.

Alibaba Cloud has continuously supported the Apache Dubbo framework by releasing a multitude of tools and services. One of the most prominent services is the distributed application framework, Spring Cloud Alibaba. Spring Cloud Alibaba is one of the most popular microservice frameworks with a wide variety of features and development tools to help build a distributed system.

Upcoming Articles

  1. Seamless Content Delivery with Alibaba Cloud CDN
0 0 0
Share on

Alibaba Clouder

2,599 posts | 762 followers

You may also like

Comments