Codarius

Infrastructure environment for multiple stores running on the Codarius platform

About the project

Infrastructure environment for multiple stores operating on the Codarius platform.

The project involved reorganizing the infrastructure of the Codarius e-commerce platform by separating stores previously operating in one common Docker stack into separate application instances.

The goal was to increase the operational independence of individual stores and improve the stability of the entire environment. The new architecture also enables easier resource management and the expansion of the platform to include additional stores in the future.

The environment was deployed on a new dedicated server and based on Docker containers managed using Docker Compose.

The Goal of DevOps

The main goal of the project was to launch stores that had previously operated in one environment as separate application instances.

The solution was intended to ensure:

  • greater independence of individual stores
  • improved production environment stability
  • easier infrastructure scaling
  • ability to deploy changes without affecting other system instances
Design challenges

The biggest challenge was moving the stores to the new infrastructure and launching them as separate instances with minimal system disruption.

Due to the nature of the e-commerce platform, it was crucial to limit downtime to avoid financial losses for customers using the stores.

Thanks to the use of the blue-green deployment strategy and a properly planned infrastructure migration, the entire process was carried out safely and practically unnoticeably for end users.

CI/CD and the implementation process

The deployment process was automated using Jenkins and the blue-green deployment strategy.

The pipeline includes:

  • building the application Docker image
  • publishing the image to a private Harbor repository
  • launching a new application instance with the current code version
  • switching traffic to the new system instance

This allows new application versions to be deployed with virtually no noticeable downtime for users.

Infrastructure and system architecture

Infrastructure architecture

The infrastructure was launched on a dedicated server in a Polish data center.

This decision was made because of:

 

  • fast technical support available in the local data center
  • full control over the server environment
  • predictable infrastructure costs
  • flexibility of configuring a dedicated machine

The entire environment is based on Docker containers managed using Docker Compose.

System architecture

The system consists of the following components running in a containerized environment:

 

  • Symfony application
  • MySQL database
  • Elasticsearch search engine
  • Redis cache layer
  • Nginx web server

All components run within a single Docker Compose stack.

Network traffic is handled by the Nginx reverse proxy running directly on the host, which is responsible for routing requests to the appropriate application containers.

Monitoring, security and maintenance

Infrastructure monitoring is based on a set of tools:

  • Prometheus – system metric collection
  • Grafana – monitoring data visualization
  • Loki + Promtail – log aggregation and analysis
  • Uptime Kuma – service availability monitoring.

The alerting system has been integrated with Microsoft Teams, so the team receives immediate notifications about potential problems.

The following backups are performed:

  • database dumps
  • copies of static files

Additionally, a second store instance is maintained on a separate dedicated server with:

  • database replication
  • synchronization of static files via rsync
  • automatic code deployment using Jenkins

Let's talk about your project

Describe your needs and we will come back with a proposal tailored to your business.

Contact