14 Best Practices für die OpenShift-Anwendungsentwicklung

Wir arbeiten viel mit Entwicklungsteams zusammen, die gerade zu OpenShift gewechselt sind, und bemühen uns, ihnen Empfehlungen und Best Practices für die erfolgreiche Erstellung und Implementierung von Anwendungen auf dieser Plattform bereitzustellen. Basierend auf den Ergebnissen dieser Arbeit haben wir unserer Meinung nach 14 Schlüsselpraktiken ausgewählt, die in zwei Kategorien unterteilt werden können: Anwendungszuverlässigkeit und Anwendungssicherheit. Diese Kategorien überschneiden sich, denn je höher die Zuverlässigkeit, desto besser die Sicherheit und umgekehrt. Die Liste der Best Practices lautet wie folgt.





Anwendungszuverlässigkeit

In diesem Abschnitt werden 9 Best Practices zusammengestellt, mit denen Sie die Verfügbarkeit, Verfügbarkeit und Benutzerfreundlichkeit von Apps verbessern können.





1. Speichern Sie die Anwendungskonfiguration nicht in einem Container





Wenn das Container-Image eine Konfiguration für eine bestimmte Umgebung (Dev, QA, Prod) enthält, funktioniert es nicht, es ohne Änderungen zwischen Umgebungen zu übertragen. Dies ist unter dem Gesichtspunkt der Zuverlässigkeit des Freigabeprozesses schlecht, da das in den vorherigen Phasen getestete Image nicht mehr in Produktion gehen wird. Bewahren Sie die Anwendungskonfiguration daher nicht für eine bestimmte Umgebung im Container auf, sondern separat, z. B. mithilfe von ConfigMaps und Secrets.





2. Legen Sie die Ressourcenanforderungen und -grenzen in Pod-Definitionen fest





Ohne eine ordnungsgemäße Anpassung der Ressourcenanforderungen können Anwendungen überwältigende Anforderungen an Speicher und Prozessor stellen. Umgekehrt kann der Cluster mit den expliziten CPU- und Speicheranforderungen der Anwendung effizient versenden, um der Anwendung die angeforderten Ressourcen bereitzustellen.





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