5Doc_Diseño - iesgrancapitan-proyectos/202324ASIR-Junio-Microservices-and-CI-CD-Pipeline-Builder GitHub Wiki

5. Diseño

5.1. Diseño general

El espacio en el que trebajaremos será la VPC, LabVPc.

Nombre de subred CIDR Zona de disponibilidad Tabla de enrrutamiento Internet gateway
Public Subnet 1 10.16.10.0/24 us-east-1a Public Route Table LabIGW
Private Subnet 1 10.16.30.0/24 us-east-1a Private Route Table 1
Public Subnet 2 10.16.20.0/24 us-east-1b Public Route Table LabIGW
Private Subnet 2 10.16.40.0/24 us-east-1b Private Route Table 2

En cuanto a instancias, disponemos de una máquina RDS con MYSQL alojada en la subred privada 2, contiene una base de datos llamada COFFEE, en la que tenemos la tabla suppliers con los siguientes campos.

Campo Tipo Null Key Otros
id INT No Primary Key AUTO_INCREMENT
name VARCHAR(255) No
address VARCHAR(255) No
city VARCHAR(255) No
state VARCHAR(255) No
email VARCHAR(255) No
phone VARCHAR(100) No

5.2. Diseño detallado

Nuestro diseño será como el siguiente diagrama:

Mapa

Desde Cloud9, donde tenemos el código de la aplicación, se crean las imágenes de Docker y se guardan en repositorios de Amazon ECR por separado.

La canalización será invocada por las actualizaciones de CodeCommit, donde se almacenan los archivos de definición de tareas ECS y los archivos AppSpec de CodeDeploy.

Al invocarla, la canalización llama al servicio CodeDeploy para que implemente las actualizaciones. CodeDeploy hará lo necesario para implementar las actualizaciones en el entorno verde. Si no hay errores, el nuevo conjunto de tareas reemplazará al anterior.

Con una simple orden desde la terminal de Cloud9, podremos escalar rápidamente para aumentar o disminuir el número de contenedores automáticamente.