Part 1: Building Microservices
🧰 Overview of Tech Choices for Building Microservices
When building microservices, we will have several technology options based on team’s skills, business needs, and project scale.
🖥️ Backend Frameworks
Technology |
Language |
Best For |
.NET Core / ASP.NET Core |
C# |
Enterprise apps, Windows/Linux support, high performance |
Spring Boot |
Java |
Enterprise Java apps, full ecosystem support |
Node.js + Express |
JavaScript |
Lightweight services, high I/O apps, fast dev |
Python + FastAPI / Flask |
Python |
AI/ML integration, quick prototyping |
Go (Golang) |
Go |
High-performance, scalable systems |
Rust / Actix |
Rust |
Systems requiring speed and safety (less common) |
🐳 Containerization & Orchestration
Tool |
Purpose |
Docker |
Containerize microservices for consistent environments |
Docker Compose |
Run multiple services locally for development |
Kubernetes (K8s) |
Manage and scale containers in production |
Helm |
Package and deploy Kubernetes applications |
Minikube / Kind |
Run a local Kubernetes cluster for dev/testing |
Tool |
Purpose |
Visual Studio / VS Code |
.NET, JS, Python, general development |
IntelliJ IDEA / STS |
Java and Spring Boot |
Postman / Insomnia |
API testing |
GitHub Desktop / Git CLI |
Version control & collaboration |
Docker Desktop |
Run containers locally |
Azure CLI / AWS CLI / kubectl |
Cloud & K8s management |
🔧 DevOps & CI/CD
Tool |
Purpose |
GitHub Actions |
CI/CD automation for GitHub repos |
Azure DevOps |
CI/CD pipelines, boards, repos, artifacts |
Jenkins/ Teamscity |
Customizable open-source CI/CD tool |
Octopus Deploy |
Deployment automation |
🗃️ Databases & Messaging
Category |
Examples |
Usage |
SQL DBs |
SQL Server, PostgreSQL, MySQL |
Relational data, transactions |
NoSQL DBs |
MongoDB, Cassandra, Redis |
Flexible schema, caching, high-speed |
Messaging |
RabbitMQ, Kafka, Azure Service Bus |
Asynchronous communication, events |
Tool |
Purpose |
OpenAPI / Swagger |
Define and document REST APIs |
GraphQL |
Flexible querying for frontend |
gRPC |
High-performance binary RPC communication |
Pact / Postman |
Contract and API testing |
🌐 Monitoring & Logging
Tool |
Purpose |
Prometheus + Grafana |
Metrics collection and dashboards |
ELK Stack (Elastic, Logstash, Kibana) |
Centralized logging |
Jaeger / Zipkin |
Distributed tracing in microservices |
Application Insights (Azure) |
Logs, metrics, traces |