Code Read the original on Dev 2 min read 0

DevOps team deploys Spring Petclinic microservices on AWS

A student cohort from the DevOps Micro Internship program recently completed a complex deployment of the Spring Petclinic microservices application onto Amazon Web Services. Serving as Co-Project Lead, one team member managed the containerization and orchestration of multiple independent services including an API Gateway and GenAI service. The project successfully integrated modern observability tools like Prometheus and Grafana to ensure system health across a distributed cloud environment.

Технічна схема архітектури мікросервісів із компонентами Spring Cloud, API Gateway, різними сервісами, базами даних та системою моніторингу.
Технічна схема архітектури мікросервісів із компонентами Spring Cloud, API Gateway, різними сервісами, базами даних та системою моніторингу. · Image source: Dev

According to Dev, a collaborative effort by the DMI Cohort 2 resulted in the successful deployment of the Spring Petclinic microservices application on AWS. This project served as a practical exercise in implementing modern DevOps workflows, requiring the team to manage a complex architecture consisting of multiple independent services.

Architecture and Observability Integration

The application architecture was designed to handle various functionalities through specialized components. The core infrastructure included a Config Server, Discovery Server (Eureka), API Gateway, and several specific services such as Customers, Visits, Vets, and a GenAI Service. To maintain high availability and visibility, the team integrated a suite of observability tools.

Key monitoring technologies utilized during the deployment included:

  • Prometheus for metrics collection
  • Grafana for data visualization
  • Zipkin for distributed tracing across services

Containerization and Deployment Workflow

The project lead focused on managing application containerization and ensuring environment parity. A critical phase involved validating the Docker Compose stack locally to verify service startup orders and network communication before moving to the cloud. To ensure compatibility with AWS, images were specifically built for the Linux/AMD64 architecture using Docker buildx.

To maintain rigorous version control, the team adopted a specific tagging strategy:

  • Tagging container images with unique Git commit hashes to improve traceability.
  • Configuring Docker authentication with Amazon Elastic Container Registry (ECR).
  • Pushing validated images to ECR repositories for secure deployment.

Technical Challenges and Learning Outcomes

One of the primary hurdles identified during the project was managing the complex dependencies between multiple microservices. Ensuring that every component communicated correctly while maintaining a stable environment required extensive troubleshooting and collaborative testing. The experience provided hands-on knowledge in cloud deployment, team coordination, and the nuances of container orchestration.The successful deployment highlights the growing importance of standardized DevOps practices in managing scalable microservice architectures. By combining Spring Boot with AWS infrastructure, the team demonstrated how integrated monitoring can stabilize complex distributed systems.

FAQ

What tools were used to monitor the microservices?
The team integrated Prometheus for metrics collection, Grafana for data visualization, and Zipkin for distributed tracing across services. These observability tools were used to ensure system health and visibility within the distributed cloud environment.
How did the team handle container image deployment on AWS?
Images were built for Linux/AMD64 architecture using Docker buildx and tagged with unique Git commit hashes. The team configured Docker authentication with Amazon Elastic Container Registry and pushed validated images to ECR repositories for secure deployment.
Telegram

Fresh news on our Telegram

Get instant alerts for new posts in «Code»

@procodeandevenmore