08 Deployment View - ZHAW-PM4-Compass/compass GitHub Wiki

Motivation: Understanding the technical infrastructure used to execute the Compass app is crucial as it influences system performance, scalability, and reliability. By documenting the deployment view, we ensure clarity on how software building blocks are mapped to infrastructure elements across different environments.

Deployment Environments:

  • Development Environment
  • Testing Environment
  • Production Environment

Infrastructure Elements:

  • Servers
  • Containers
  • Networks
  • Load Balancers

Mapping of Building Blocks:

  • Frontend Building Block mapped to Web Servers
  • Backend Building Block mapped to Application Servers
  • Database Building Block mapped to Database Servers

Deployment in Different Environments:

  • Development Environment:
    • Utilizes local development machines for frontend and backend development.
    • Database may be hosted locally or in a development server.
  • Staging Environment:
    • Utilizes dedicated staging servers or containers for frontend and backend testing.
    • Separate database server for testing purposes.
  • Production Environment:
    • Deployed on cloud infrastructure such as AWS, Google Cloud, or Azure.
    • Utilizes load balancers for distributing traffic across multiple frontend and backend instances.
    • Single database server for data storage.

Deployment Diagram:

deploymentview drawio

Explanation:

  • The deployment diagram illustrates the mapping of software building blocks (frontend, backend) to infrastructure elements (servers).
  • In the production environment, load balancers distribute incoming traffic to multiple instances of the frontend and backend servers for scalability and fault tolerance.
  • The database server is shared and accessed by the backend server for data storage and retrieval.

By documenting the deployment view, we ensure a clear understanding of the technical infrastructure supporting the Compass app across different deployment environments.