The Introduction of Cloud Native Architecture

The Evolution of Software Architecture

Monolithic Architecture

All in One Software, put all of business logic and control logic into one software package

Advantages

  • Single Self-contained Unit
  • Low Latency
  • Easy to Test & Operation
  • Very Simple Architecture

Disadvantage

  • Long Lifecycle Deployment
  • Low Throughput
  • Tightly Coupled with Low Cohesion
  • Bad Isolation
  • Bad Failure Tolerance
  • Bad Scalability

Service Oriented Architecture (SOA)

Introducing the ESB to decouple the service, and manage internal corporate services. But the control logic couples the business logic in ESB.

Advantages

  • Service Decoupling
  • Good Service Isolation
  • Good for CI/CD
  • Easy to Test & Operation
  • Centrically Service Governance
  • Architecture is not too Complicated

Disadvantage

  • Heavy Weight & Complicated ESB
  • Intrusive Business Logic in ESB
  • ESB failure case Huge Impact
  • Average Scalability
  • Average Lifecycle Deployment
  • Average Latency, Low Throughput

MicroService Architecture

Remove the ESB, more lightweight and more loosely coupled service, and inject the control logic into Service via the SDK.

Advantages

  • Short Lifecycle Development
  • Loose Coupling with High Cohesion
  • High Throughput
  • Rapid Continues Deployment
  • Low Failure Impact, High Availability
  • High Scalability
  • Open Source Technology Stack

Disadvantage

  • Difficult Test & Operation
  • Difficult Service Governance
  • High Latency
  • Complicated Architecture
  • High Technical Bar

Cloud Native Architecture

Cloud Native have the following key features, which managing and scheduling the traffic, service, resource by full stack observability.

  • Traffic Orchestration & Management for High Concurrency and High Throughput.
  • Service Orchestration & Governance with non-intrusive technology - Kubernetes & Service Mesh.
  • Centralized Monitoring for Metrics, Logs and Tracing observability.
  • Key Softwares Management (such as Database, Cache, Queue, Message etc.)

Cloud Native Architecture

Almost all of cloud computing company advertise they will bring the more and more availability and scalability to customer. However, we know the fact is the customer's application software is the key to there. If customer's software is not cloud native architecture, we eventually cannot bring the availability and scalability to customer.

...
...

 

And Cloud Native also means other things:

  • Scalability. The application level will be scaled with the underly platform, the software services is very easy to orchestrate.
  • Servitization. It's very easy to turn your internal service to external, and provide the Software-as-a-Service platform.
  • Ecosystem. The Open-API platform could bring more and more direct or indirect patterns to your platform with you deliver the large-wide services.

To achieve this, it is a big technical challenge for most companies.

MegaEase Inc. would help you achieve this easily!