Applications are deployed to volume • Flaws • No Rolling-Upgrades • Manual Rollback • Single Point of Failure • What is your artifact? Persistent Volume /usr/local/tomcat/webapps/ ROOT.war App1.war
debugging tools Split different runtimes across different containers Lookout for your image size (e.g. package caches, …) 2 3 4 5 15 1 5 Small is beautiful https://pxhere.com/de/photo/864475
• Horizontal Scaling? • Pods are scheduled, upgraded and restarted as a unit • Use one pod per container, unless you know what you’re doing! Pod Application 1 Application 2 Application 3 Application N
StatefulSets for predictable Hostnames and Storage Provisioning Use clusters with reasonable recovery times from split brains and node failures Consider re-architecting your application into stateless containers 2 3 4 23 2 3 https://pxhere.com/de/photo/864475
• Solution: Passthrough of socket into build container • Paraphrasing: You are granting control of your host to not yet verified code. Host Build Docker Daemon App App Socket
linux kernel) 1 Evaluate alternative builders: kaniko, jib Mitigation: Split clusters between development and other stages Caveat: If building in cluster, look at serviceaccount, too! 2 3 4 26 2 6 https://pxhere.com/de/photo/864475 https://pxhere.com/de/photo/833821
and CPU • Take care if doing manually! • Strategies: • Hide behind workflow tool • Teach your users • compliance-check your deployments • Use an aware Runtime! (JDK 9+)