14 Meilleures pratiques de développement d'applications OpenShift

En travaillant beaucoup avec des Ă©quipes de dĂ©veloppement qui viennent de passer Ă  OpenShift, nous nous efforçons de leur fournir des recommandations et les meilleures pratiques pour rĂ©ussir Ă  crĂ©er et Ă  implĂ©menter des applications sur cette plateforme. Sur la base des rĂ©sultats de ces travaux, nous avons sĂ©lectionnĂ© 14 pratiques clĂ©s, Ă  notre avis, qui peuvent ĂȘtre divisĂ©es en deux catĂ©gories: la fiabilitĂ© des applications et la sĂ©curitĂ© des applications. Ces catĂ©gories se chevauchent car plus la fiabilitĂ© est Ă©levĂ©e, meilleure est la sĂ©curitĂ©, et vice versa, et la liste des meilleures pratiques est la suivante.





Fiabilité des applications

Cette section compile 9 bonnes pratiques pour vous aider à améliorer la disponibilité des applications, la disponibilité et une meilleure expérience utilisateur.





1. Ne stockez pas la configuration de l'application dans un conteneur





Si l'image du conteneur contient une configuration pour un environnement spécifique (Dev, QA, Prod), il ne fonctionnera pas pour la transférer entre les environnements sans modifications. C'est mauvais du point de vue de la fiabilité du processus de sortie, car l'image qui a été testée aux étapes précédentes ne sera plus mise en production. Par conséquent, ne conservez pas la configuration de l'application pour un environnement spécifique à l'intérieur du conteneur, mais conservez-la séparément, par exemple, à l'aide de ConfigMaps et Secrets.





2. Définissez les besoins en ressources et les limites dans les définitions de pod





Sans un réglage approprié des besoins en ressources, les applications peuvent créer des demandes écrasantes de mémoire et de processeur. Inversement, avec les exigences explicites de CPU et de mémoire de l'application, le cluster peut efficacement se répartir pour fournir à l'application les ressources demandées.





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