Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Effective Spring + Kubernetes - Adib Saikali

363 views

Published on

Effective Spring + Kubernetes with Adib Saikali at SpringOne Tour 2019

Published in: Software
  • Be the first to comment

  • Be the first to like this

Effective Spring + Kubernetes - Adib Saikali

  1. 1. ● ● ● ● ● ● ● ● https://wiki.musl-libc.org/functional-differences-from-glib c.html
  2. 2. https://openjdk.java.net/jeps/8229469
  3. 3. ● glibc ● glibc muslc muslc
  4. 4. https://www.infoq.com/news/2019/06/docker-vulnerable-java/
  5. 5. ● https://hub.docker.com/_/adoptopenjdk ● ● ● ● https://blog.adoptopenjdk.net/category/test
  6. 6. ● ● ● ●
  7. 7. ● ●
  8. 8. ● https://hub.docker.com/_/adoptopenjdk ○ ○ ○ ●
  9. 9. Software & Support for OpenJDK, Spring, and Tomcat
  10. 10. ● The app .jar file is ~76MB which is mostly third party .jar files that don’t change between rebuilds of the application. ● Every time the image is re-built due to an app code change the whole .jar layer needs to be rebuilt
  11. 11. The application 3rd dependency .jar files are in their own layer so on a rebuild only the smaller application layers need to be pushed or pulled
  12. 12. ● ● ●
  13. 13. ● ● ○ ○ ●
  14. 14. ● ● ● apiVersion: v1 kind: Pod metadata: name: myapp spec: containers: - name: myapp image: myapp:128 env: resources: requests: memory: "1024Mi" cpu: "1000m" limits: memory: "2048Mi" cpu: "2000m"
  15. 15. ● ○ ○ ● ● ● ○ ○ ○ apiVersion: v1 kind: Pod metadata: name: myapp spec: containers: - name: myapp image: myapp:128 env: resources: requests: memory: "1024Mi" cpu: "1000m" limits: memory: "2048Mi" cpu: "2000m"
  16. 16. ● ○ ○ ○ ● ● ● apiVersion: v1 kind: Pod metadata: name: myapp spec: containers: - name: myapp image: myapp:128 env: resources: requests: memory: "1024Mi" cpu: "1000m" limits: memory: "2048Mi" cpu: "2000m"
  17. 17. ● Runtime.getRuntime().availableProcessor() ● ● ● ●
  18. 18. ● ● ● ● -XX:ActiveProcessorCount
  19. 19. ● ● ● ● ○ ○ ○ apiVersion: v1 kind: Pod metadata: name: myapp spec: containers: - name: myapp image: myapp:128 env: resources: requests: memory: "1024Mi" cpu: "1000m" limits: memory: "2048Mi" cpu: "2000m"
  20. 20. ● ○ ○ ○ ● ● ● apiVersion: v1 kind: Pod metadata: name: myapp spec: containers: - name: myapp image: myapp:128 env: resources: requests: memory: "1024Mi" cpu: "1000m" limits: memory: "2048Mi" cpu: "2000m"
  21. 21. ● ● ○ ○ ○ ○ ● ○ -XX:MaxRAMPercentage=75.0 ○
  22. 22. ● ● ● ● -XX:ActiveProcessorCount ● ● -XX:MaxRAMPercentage
  23. 23. ● ● ● ● ●
  24. 24. © 2019 PIVOTAL SOFTWARE, INC. All Rights Reserved. Confidential & Provided Under NDA —Do Not Distribute. Forwarding this document outside your organization is prohibited.
  25. 25. ● ● ● ● ● ●
  26. 26. ● ● ● ● ● ● ● ●
  27. 27. cflinuxfs3 releases 0.92.0 released - 22 hours ago 0.91.0 released - 22 hours ago 0.90.0 released - 22 hours ago 0.89.0 released - 6 days ago 0.88.0 released - 9 days ago 0.87.0 released - 9 days ago openjdk CNB releases v1.0.0-M7 released - Apr 10 v1.0.0-M6 released - Apr 1 v1.0.0-M5 released - Jan 31 v1.0.0-M4 released - Jan 16 v1.0.0-M3 released - Dec 10 v1.0.0-M2 released - Nov 29 source: git: https://github.com/myapp revision: dev Build # 1 Build # 2 Build # 3 Latest Build
  28. 28.
  29. 29. https://content.pivotal.io/blog/cloud-native-buildpacks-for-kubernetes-and-beyond
  30. 30. https://www.youtube.com/watch?v=8IC_WSe7YFo https://pivotal.io/pivotal-build-service
  31. 31. https://www.youtube.com/watch?v=J2SXkmOo8iQ
  32. 32. https://spring.io/projects/spring-cloud-kubernetes
  33. 33. ● ● ● ● ●

×