Skip to content

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

💻 Developer Tools & IDEs

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

📄 API & Contract Tools

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