14 Melhores Práticas de Desenvolvimento de Aplicativos OpenShift

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 , .





, 14 OpenShift. . OpenShift.








All Articles