Use case 13

  • Author: Jarno Huusko
  • Date / Version: 08/04/2024 / 1.0

User roles

  1. Ops Engineer (Actor1): Responsible for designing and implementing a scalable and resilient infrastructure using Docker. Ensures the infrastructure supports easy deployment, management, and scaling of the web application.
  2. DevOps (Actor2): Assists in integrating the containerized infrastructure with the CI/CD pipeline for seamless deployment and updates.
  3. Tester (Actor3): Tests the deployment process and the running application to ensure stability and performance benchmarks are met.

Prerequisites / Conditions

  1. Docker is installed and configured on the project's deployment servers.
  2. The web application is designed to run in a containerized environment.
  3. Access to a container registry where Docker images can be stored and managed.

Use Case Diagram

uml diagram

Description of use case -eg. Modify existing request

  1. Architecture Design: The Platform Engineer designs a scalable and resilient architecture suitable for containerization, considering load balancing, service discovery, and auto-scaling.
  2. Containerization: The Platform Engineer containerizes the web application, creating Dockerfiles for the frontend and backend, ensuring that the application can be easily packaged and deployed.
  3. Infrastructure Implementation: Using Docker and possibly Docker Compose the Platform Engineer sets up the infrastructure, defining services, networks, and volumes for the application components.
  4. Registry Setup: Docker images are built and pushed to a container registry, tagged with version numbers or commit identifiers for easy management.
  5. CI/CD Integration: The DevOps team integrates the Docker build and deployment process into the CI/CD pipeline, automating the deployment of new versions to staging and production environments.
  6. Testing: Tester conducts tests to ensure that the deployment process is smooth and that the application performs reliably and efficiently in the containerized environment.

Exceptions

  • E1: If the containerized application fails to start or crashes, rollback procedures are initiated, and the deployment team is notified to investigate and resolve the issue.

  • E2: If performance benchmarks are not met, the deployment is halted, and the architecture is reviewed for potential optimizations or scalability issues.

Result

  • A scalable and resilient infrastructure using Docker is implemented, enabling easy deployment and management of the web application.

Use frequency

  • The setup and initial implementation of the containerized infrastructure are executed once, with ongoing adjustments and scalability enhancements made as necessary based on application demand and performance monitoring.

Additional information

  • Documentation should include architecture diagrams, Dockerfile examples, configuration details for Docker Compose or Kubernetes, and guides for monitoring and scaling the containerized application.

Sources

  • The design and implementation of the scalable and resilient infrastructure are based on industry best practices for containerization and microservices architecture, utilizing Docker and orchestration tools like Kubernetes for managing complex deployments.