thesis: show docker compose health conditionals
Parents:
94993c01 file(s) changed
- monografia/chapters/tech.tex +31 -0
monografia/chapters/tech.tex
1 1
\chapter{Tecnologias}
2 2
3 3
Este capítulo apresenta as principais tecnologias empregadas no desenvolvimento
4 4
do aplicativo, organizadas de acordo com a camada da arquitetura em que
5 5
atuam: front-end, back-end e infraestrutura/persistência de dados.
▸ 110 unchanged lines
116 116
executada de forma consistente em diferentes ambientes \citep{docker:2026}. O
117 117
Docker Compose é uma ferramenta complementar que permite definir e orquestrar
118 118
múltiplos contêineres --- e as relações entre eles --- por meio de um único
119 119
arquivo de configuração declarativo \citep{dockercompose:2026}.
120 120
121 +
122 +
No projeto, o Docker Compose é utilizado tanto no ambiente de desenvolvimento
123 +
quanto no ambiente de produção para orquestrar os serviços de banco de dados
124 +
(PostgreSQL), armazenamento em memória (Valkey) e da própria API, garantindo
125 +
que as versões e configurações desses serviços sejam idênticas entre as
126 +
máquinas de desenvolvimento e o servidor de produção. O uso de
127 +
\textit{healthchecks} em conjunto com a diretiva \texttt{depends\_on} e a
128 +
condição \texttt{service\_healthy} assegura que a API só seja iniciada após o
129 +
banco de dados e o Valkey estarem de fato prontos para aceitar conexões,
130 +
evitando falhas de inicialização por condição de corrida (race condition), como ilustrado no
131 +
Código~\ref{lst:healthcheck-compose}.
132 +
133 +
\begin{lstlisting}[caption={Configuração de \textit{healthcheck} do Valkey e de dependência condicional da API no \texttt{docker-compose.yml}}, label={lst:healthcheck-compose}]
134 +
valkey:
135 +
image: valkey/valkey:9.0-alpine
136 +
healthcheck:
137 +
test: ["CMD", "valkey-cli", "ping"]
138 +
interval: 10s
139 +
timeout: 5s
140 +
retries: 5
141 +
start_period: 5s
142 +
143 +
api:
144 +
build: ./api
145 +
depends_on:
146 +
valkey:
147 +
condition: service_healthy
148 +
db:
149 +
condition: service_healthy
150 +
\end{lstlisting}
151 +
121 152
No projeto, o Docker Compose é utilizado tanto no ambiente de desenvolvimento
122 153
quanto no ambiente de produção para orquestrar os serviços de banco de dados
123 154
(PostgreSQL), armazenamento em memória (Valkey) e da própria API, garantindo
124 155
que as versões e configurações desses serviços sejam idênticas entre as
125 156
máquinas de desenvolvimento e o servidor de produção.
▸ 75 unchanged lines
201 232
ao documentar e automatizar o processo de provisionamento, o projeto
202 233
favorece um modelo mais alinhado aos princípios de privacidade e de
203 234
autonomia sobre os dados dos usuários, permitindo que instituições ou
204 235
indivíduos preocupados com a confidencialidade de dados sensíveis de
205 236
saúde mental hospedem e controlem sua própria instância da aplicação.