From Monolithic to Microservices: Evolution of Software Architecture and Essential Tech Stack
This article traces the evolution of software architecture from monolithic applications through vertical splitting and distributed services to modern microservices, outlines the key stages of microservice development, and presents a comprehensive technology stack—including communication protocols, API gateways, authentication, fault‑tolerance, logging, configuration, containerization, orchestration, and CI/CD tools—required to build robust backend systems.
Introduction The author, a senior architect, records his learning journey on microservices, sharing personal insights, diagrams, and a desire for community feedback.
1. Architecture Evolution Software design has grown in scale and complexity, driving the emergence of new architectural concepts such as distributed systems, SOA, microservices, and middle‑platforms. The article outlines four historical stages:
• Monolithic (Single‑process) All code runs in one process, offering simplicity but suffering from tight coupling, difficult upgrades, and poor scalability.
• Vertical Splitting Large systems are divided by business domains (e.g., flash‑sale, fresh‑goods), still single‑process per module, leading to duplicated code.
• Distributed Services Modules become independent services communicating across processes, improving reuse but introducing data consistency, availability, and network overhead challenges.
• Microservices Fine‑grained, independently deployable services that leverage mature distributed techniques, offering high availability, scalability, and language‑agnostic development.
2. Microservice Development Stages Three major versions are described:
• V1 – Centralized Proxy (Nginx) Manual service registration and discovery, basic load balancing.
• V2 – Embedded Client (Consul) Automatic registration/discovery, health checks, client‑side load balancing.
• V3 – Service Mesh Sidecar proxies manage registration, discovery, and traffic; still emerging and used by large companies.
3. Essential Microservice Tech Stack
• Service Communication WebService, WCF, WebAPI, ASHX/ASPX for HTTP‑based calls; supports cross‑platform and cross‑language interaction.
• Process Communication Net Remoting (Windows only) and gRPC (high‑performance, recommended).
• API Gateway (Ocelot) .NET Core‑based gateway offering routing, aggregation, service discovery, authentication, rate limiting, and built‑in load balancing.
• Authentication & Authorization IdentityServer4 implements OpenID Connect and OAuth2.0 for .NET Core applications.
• Fault Tolerance Polly library provides retry, circuit‑breaker, timeout, and fallback policies.
• Logging & Monitoring Exceptionless for real‑time log collection; ELK/Elastic Stack for centralized log aggregation and analysis.
• Configuration Center Apollo (Ctrip) offers centralized, real‑time configuration management for Java and .NET clients.
• Distributed Locks Implemented via Consul, Redis (recommended), Zookeeper, or relational databases.
• Distributed Transactions Approaches include 2PC, 3PC, TCC, local message tables (RabbitMQ), and Saga pattern.
• Containerization Docker packages applications and dependencies into portable images, using a client‑server model with Docker daemon.
• Container Orchestration Kubernetes automates deployment, scaling, and management of containerized services, providing built‑in load balancing and self‑healing.
• CI/CD Jenkins automates building, testing, and deploying code changes.
Conclusion The author plans to dive deeper into each technology, encouraging continuous learning and community discussion.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Top Architect
Top Architect focuses on sharing practical architecture knowledge, covering enterprise, system, website, large‑scale distributed, and high‑availability architectures, plus architecture adjustments using internet technologies. We welcome idea‑driven, sharing‑oriented architects to exchange and learn together.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
