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!