Trabalhando muito com equipes de desenvolvimento que acabaram de migrar para o OpenShift, nós nos esforçamos para fornecer a eles recomendações e melhores práticas para construir e implementar com sucesso aplicativos nesta plataforma. Com base nos resultados deste trabalho, selecionamos 14 práticas-chave, em nossa opinião, que podem ser divididas em duas categorias: confiabilidade de aplicativos e segurança de aplicativos. Essas categorias se sobrepõem porque quanto maior a confiabilidade, melhor a segurança e vice-versa, e a lista de melhores práticas é a seguinte.
Confiabilidade do aplicativo
Esta seção compila 9 práticas recomendadas para ajudá-lo a melhorar a disponibilidade do aplicativo, o tempo de atividade e uma melhor experiência do usuário.
1. Não armazene a configuração do aplicativo dentro de um contêiner
Se a imagem do contêiner contiver configuração para um ambiente específico (Dev, QA, Prod), não funcionará para transferi-la entre ambientes sem alterações. Isso é ruim do ponto de vista da confiabilidade do processo de liberação, já que a imagem que foi testada nas etapas anteriores não entrará mais em produção. Portanto, não mantenha a configuração do aplicativo para um ambiente específico dentro do contêiner, mas sim separadamente, por exemplo, usando ConfigMaps e Secrets.
2. Defina os requisitos e limites de recursos nas definições de pod
Sem o ajuste adequado dos requisitos de recursos, os aplicativos podem criar demandas esmagadoras de memória e processador. Por outro lado, com os requisitos explícitos de CPU e memória do aplicativo, o cluster pode despachar com eficiência para fornecer ao aplicativo os recursos solicitados.
3. (liveness) (readiness) pod’
: , liveness, , readiness. . OpenShift Platform.
4. PodDisruptionBudget
pod’ , , , autoscaler , . , PodDistruptionBudget.
5. pod’
pod , pod', , , .
6. –
, . -, . . OpenShift Platform.
7.
Prometheus Grafana - .
8. stdout/stderr
OpenShift (ELK, Splunk). – -. , , , , .
9. Circuit breakers, Timeouts, Retries, Rate Limiting
, (Rate Limiting, Circuit Breakers) (Timeouts, Retries). OpenShift Service Mesh, , .
5 , , , .
10.
- , , , . community-, , . , , Docker Hub, – !
11.
. , , .
12. build- , runtime-
Build- , , . runtime- , , .
13. Restricted security context constraint (SCC) – ,
, restricted SCC ( . ). , , restricted SCC .
14. TLS
. , OpenShift, , TLS-, OpenShift Service Mesh , .