Filter by title

Microservice Architecture

"Microservices are a software development technique—a variant of the service-oriented architecture (SOA) architectural style that structures an application as a collection of loosely coupled services. In a microservices architecture, services are fine-grained and the protocols are lightweight. The benefit of decomposing an application into different smaller services is that it improves modularity. This makes the application easier to understand, develop, test, and become more resilient to architecture erosion. It parallelizes development by enabling small autonomous teams to develop, deploy and scale their respective services independently. It also allows the architecture of an individual service to emerge through continuous refactoring. Microservices-based architectures enable continuous delivery and deployment."

Wikipedia

Introduction

One of the major goals of the ABP is to provide a convenient infrastructure to create microservice solutions. To make this possible,

ABP Studio for Microservice Development

ABP Studio is a comprehensive desktop application that significantly simplifies microservice solution development and management. It provides powerful tools specifically designed for distributed systems:

Solution Runner

The Solution Runner allows you to run all your microservices with a single click. You can create different profiles to organize services based on your team's needs. For example, team-1 might only need to run the Administration and Identity services, while team-2 works with SaaS and Audit Logging services. This approach saves resources and speeds up development by allowing each team to run only the services they need.

Kubernetes Integration

The Kubernetes Integration panel enables you to deploy your microservices to a Kubernetes cluster and manage them directly from ABP Studio. Key features include:

  • Deploy to Kubernetes: Build Docker images and install Helm charts with a few clicks.
  • Intercept Services: Debug and develop specific services locally while the rest of the system runs in Kubernetes. This eliminates the need to run all microservices on your local machine.
  • Redeploy Charts: Quickly redeploy individual services after making changes.
  • Connect to Cluster Resources: Access databases, message queues, and other infrastructure services running in the cluster.

Application Monitoring

The Application Monitoring area provides a centralized view of all your running microservices:

  • HTTP Requests: View all HTTP requests across services with detailed information including headers, payloads, and response times.
  • Distributed Events: Monitor all distributed events sent and received by your services, making it easy to debug inter-service communication.
  • Exceptions: Track exceptions thrown by any service in real-time.
  • Logs: Access logs from all services in a single place with filtering capabilities.
  • Built-in Browser: Browse and test your APIs without leaving ABP Studio.

Creating New Microservices

ABP Studio's Solution Explorer makes it easy to add new microservices to your solution. Right-click on the services folder and select Add -> New Module -> Microservice. ABP Studio will:

  • Create the microservice with proper project structure.
  • Configure database connections and migrations.
  • Set up authentication and authorization.
  • Integrate with API gateways.
  • Configure distributed event bus connections.
  • Add the service to Kubernetes Helm charts.

Microservice for New Applications

One common advice to start a new solution is always to start with a monolith, keep it modular and split into microservices once the monolith becomes a problem. This makes your progress fast in the beginning especially if your team is small and you don't want to deal with challenges of the microservice architecture.

However, developing such a well-modular application can be a problem since it is hard to keep modules isolated from each other as you would do it for microservices (see Stefan Tilkov's article about that). Microservice architecture naturally forces you to develop well isolated services, but in a modular monolithic application it's easy to tightly couple modules to each other and design weak module boundaries and API contracts.

ABP can help you in that point by offering a microservice-compatible, strict module architecture where your module is split into multiple layers/projects and developed in its own VS solution completely isolated and independent from other modules. Such a developed module is a natural microservice yet it can be easily plugged-in a monolithic application. See the module development best practice guide that offers a microservice-first module design. All standard ABP modules are developed based on this guide. So, you can use these modules by embedding into your monolithic solution or deploy them separately and use via remote APIs. They can share a single database or can have their own database based on your simple configuration.

Microservice Solution Template

ABP provides a pre-architected and production-ready microservice solution template that includes multiple services, API gateways and applications well integrated with each other. This template helps you quickly start building distributed systems with common microservice patterns.

See the Microservice Solution Template documentation for details.

Tutorials

For a hands-on experience, follow the Microservice Development Tutorial that guides you through:

  • Creating the initial microservice solution
  • Adding new microservices (Catalog and Ordering services)
  • Building CRUD functionality
  • Implementing HTTP API calls between services
  • Using distributed events for asynchronous communication

See Also


Was this page helpful?

Please make a selection.

To help us improve, please share your reason for the negative feedback in the field below.

Please enter a note.

Thank you for your valuable feedback!

Please note that although we cannot respond to feedback, our team will use your comments to improve the experience.

ABP Community Talks
AI-Powered .NET Apps with ABP & Microsoft Agent Framework
18 Dec, 17:00
Online
Watch the Event
ABP Live Webinar
Webinar Calendar Webinar Calendar
Discover
ABP Platform
Register Now
Jan 14
Wednesday,
17:00 UTC
Learn More, Pay Less
33% OFF
All Trainings!
Get Your Deal
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.