Architecture

Architecture

Architecture

Infrastructure Overview

In this article, we will provide an overview of the infrastructure used in Octeth. This includes details about each container, its purpose, and port allocations. Our infrastructure is designed to be robust, scalable, and easy to manage using Docker Compose.

Containers and Their Roles

image

Our Docker infrastructure consists of several containers, each serving a specific role. Below is a detailed description of each container:

  1. HAProxy (oempro_haproxy)
    • IP Address: 192.168.99.100
    • Ports: 80, 81, 443, 25, 587, 5601, 11111, 8025, 15672
    • Description: HAProxy is used for load balancing and proxying requests to the appropriate services within the infrastructure.
  2. Application (oempro_app)
    • IP Address: 192.168.99.101
    • Description: This container runs the main application, handling user requests and core business logic.
  3. MailHog (oempro_mailhog)
    • IP Address: 192.168.99.102
    • Description: MailHog is used for email testing by capturing emails sent by the application.
  4. RabbitMQ (oempro_rmq)
    • IP Address: 192.168.99.103
    • Description: RabbitMQ is a message broker used for managing and routing messages between different services.
  5. System (oempro_system)
    • IP Address: 192.168.99.105
    • Description: This container manages system-level tasks and dependencies.
  6. Elasticsearch (oempro_elasticsearch)
    • IP Address: 192.168.99.106
    • Description: Elasticsearch is used for indexing and searching application data.
  7. Redis (oempro_redis)
    • IP Address: 192.168.99.107
    • Description: Redis is used for caching and fast data retrieval.
  8. MySQL (oempro_mysql)
    • IP Address: 192.168.99.108
    • Ports: 3306
    • Description: MySQL is the primary relational database for the application.
  9. Email Gateway Inbound SMTP (oempro_emailgateway_inbound_smtp)
    • IP Address: 192.168.99.109
    • Description: This container handles inbound SMTP traffic for the email gateway.
  10. Kibana (oempro_kibana)
    • IP Address: 192.168.99.110
    • Description: Kibana is used for visualizing data stored in Elasticsearch.
  11. Cron (oempro_cron)
    • IP Address: 192.168.99.111
    • Description: This container runs scheduled tasks and cron jobs.
  12. Supervisor (oempro_supervisor)
    • IP Address: 192.168.99.112
    • Description: Supervisor is used for managing processes within the infrastructure.
  13. Vector (oempro_vector)
    • IP Address: 192.168.99.113
    • Ports: 8888
    • Description: Vector is used for collecting and processing logs.
  14. ClickHouse (oempro_clickhouse)
    • IP Address: 192.168.99.114
    • Ports: 8123
    • Description: ClickHouse is used for analytics and fast data processing.

Network Configuration

All containers are connected to a single network named public_net, which ensures that they can communicate with each other seamlessly. The public_net network is configured with the following settings:

  • Subnet: 192.168.99.0/24
  • Driver: bridge

Port Allocation

The ports used by each container are carefully allocated to avoid conflicts and ensure smooth operation. Below is a summary of the port allocations:

  • HAProxy (oempro_haproxy):
    • Public Ports: 80, 81, 443, 25, 587, 5601, 11111, 8025, 15672
  • MySQL (oempro_mysql):
    • Port: 3306
  • ClickHouse (oempro_clickhouse):
    • Port: 8123
  • Vector (oempro_vector):
    • Port: 8888

Dependencies

Some containers depend on others to function correctly. For example, oempro_system depends on rabbitmq, redis, elasticsearch, mysql, and clickhouse. Similarly, oempro_app depends on multiple services, including rabbitmq, redis, elasticsearch, mysql, clickhouse, and oempro_system.

Conclusion

This infrastructure setup ensures high availability, scalability, and efficient resource management. Each container plays a vital role in the overall system, and careful port allocation and network configuration help maintain seamless operation.

If you have any questions or need further assistance, please feel free to contact our support team.

💠
image

Homepage Customer Area Community Portal Contact Us

Footer Social Icons

©Copyright Octeth, Inc. All rights reserved.