Slide 1

Slide 1 text

Thomas Vitale JBCNConf Jul 18th, 2022 Developer Experience With Java on Kubernetes @vitalethomas

Slide 2

Slide 2 text

Systematic • Software Architect at Systematic, Denmark. • Author of “Cloud Native Spring in Action” (Manning). • Spring Security and Spring Cloud contributor. Thomas Vitale thomasvitale.com @vitalethomas

Slide 3

Slide 3 text

Developer Experience #jbcn22 @vitalethomas

Slide 4

Slide 4 text

#jbcn22 @vitalethomas Developer Experience “Top of mind for everyone”

Slide 5

Slide 5 text

#jbcn22 @vitalethomas Developer Experience “Fast feedback loops” "Easiness of doing one’s job” “How quick I can be productive with a tool” “Happy developers create exceptional software in the log term” “It’s reduced time to find things, tools downtime” “Means to be flexible for new paradigms and be able to integrate many frameworks and tools” Your answers

Slide 6

Slide 6 text

Developer Experience “…developer experience could be defined as a means for capturing how developers think and feel about their activities within their working environments, #jbcn22 @vitalethomas with the assumption that an improvement of the developer experience has positive impacts on characteristics such as sustained team and project performance.” (F. Fagerholm, J. Münch) Developer Experience: Concept and De fi nition (F. Fagerholm, J. Münch)

Slide 7

Slide 7 text

#jbcn22 @vitalethomas Developer Experience: Concept and De fi nition (F. Fagerholm, J. Münch) Developer Experience Conceptual Framework

Slide 8

Slide 8 text

Value #jbcn22 @vitalethomas

Slide 9

Slide 9 text

#jbcn22 @vitalethomas Developer Experience Tools are not enough ORGANIZATION PROCESSES TECHNOLOGY CULTURE

Slide 10

Slide 10 text

#jbcn22 @vitalethomas Technologies Developer experience with Java on Kubernetes

Slide 11

Slide 11 text

#jbcn22 @vitalethomas Team Topologies Organisational design for software

Slide 12

Slide 12 text

#jbcn22 @vitalethomas Continuous Delivery Better software faster

Slide 13

Slide 13 text

Development Workflow #jbcn22 @vitalethomas

Slide 14

Slide 14 text

#jbcn22 @vitalethomas Development Workflow Inner Loop and Outer Loop Inner Loop ‣Code ‣Build ‣Deploy ‣Debug Outer Loop ‣CI/CD ‣Compliance, security ‣Con fi guration, monitoring ‣Production deployment git push

Slide 15

Slide 15 text

#jbcn22 @vitalethomas Inner Development Loop Code, build, test E ffi cient Inner Development Loops for Cloud Native Applications https://www.getambassador.io/resources/inner-dev-loop/

Slide 16

Slide 16 text

Goals #jbcn22 @vitalethomas 2 Reduced cognitive load 3 Clear path to production 1 Rapid and continuous feedback loop

Slide 17

Slide 17 text

Cloud Native #jbcn22 @vitalethomas

Slide 18

Slide 18 text

#jbcn22 @vitalethomas From Traditional to Cloud Native Application Server, Embedded Server Runtime (JVM) Middleware (Application Server) Application (WAR/EAR) Runtime (JVM) Application (JAR)

Slide 19

Slide 19 text

Containers #jbcn22 @vitalethomas

Slide 20

Slide 20 text

#jbcn22 @vitalethomas Moving to Containers Application Server, Embedded Server, Container Runtime (JVM) Middleware (Application Server) Application (WAR/EAR) Runtime (JVM) Application (JAR) Runtime (OCI) Application (Container)

Slide 21

Slide 21 text

Cloud Native Buildpacks #jbcn22 @vitalethomas

Slide 22

Slide 22 text

Image #jbcn22 @vitalethomas pack build Cloud Native Buildpacks From source code to container image

Slide 23

Slide 23 text

Kubernetes #jbcn22 @vitalethomas

Slide 24

Slide 24 text

#jbcn22 @vitalethomas Moving to Kubernetes Application Server, Embedded Server, Container, Kubernetes Runtime (JVM) Middleware (Application Server) Application (WAR/EAR) Runtime (JVM) Application (JAR) Runtime (OCI) Application (Container) Runtime (OCI) Middleware (Kubernetes) Application (Container)

Slide 25

Slide 25 text

Tilt #jbcn22 @vitalethomas

Slide 26

Slide 26 text

Tilt Continuous development on Kubernetes #jbcn22 @vitalethomas

Slide 27

Slide 27 text

Tilt Continuous development on Kubernetes #jbcn22 @vitalethomas

Slide 28

Slide 28 text

Skaffold #jbcn22 @vitalethomas

Slide 29

Slide 29 text

Skaffold Continuous development on Kubernetes #jbcn22 @vitalethomas

Slide 30

Slide 30 text

Telepresence #jbcn22 @vitalethomas

Slide 31

Slide 31 text

Telepresence Local-to-remote bridges for fast iterations #jbcn22 @vitalethomas

Slide 32

Slide 32 text

Knative #jbcn22 @vitalethomas

Slide 33

Slide 33 text

Knative Serverless experience on Kubernetes #jbcn22 @vitalethomas

Slide 34

Slide 34 text

Serverless Architectures Developers focus on code Focus on business logic Developer Platform Infrastructure Provisioning Workload Management Dynamic Scaling #jbcn22 @vitalethomas

Slide 35

Slide 35 text

Knative Serving Serverless Experience on Kubernetes Developer-friendly abstractions From image to URL Autoscaling Scaling to zero Progressive Rollouts Request-driven Event-driven Cloud agnostic #jbcn22 @vitalethomas

Slide 36

Slide 36 text

Argo CD #jbcn22 @vitalethomas

Slide 37

Slide 37 text

Argo CD Continuous Deployment with GitOps #jbcn22 @vitalethomas

Slide 38

Slide 38 text

Cartographer #jbcn22 @vitalethomas

Slide 39

Slide 39 text

Cartographer Golden paths to production #jbcn22 @vitalethomas

Slide 40

Slide 40 text

Example: Minimal Path Source -> Image -> URL Deploy to Kubernetes Package as container image Checkout source code

Slide 41

Slide 41 text

Delivering Value From code to production Developer App Repo Production Application Operator Security Expert Platform Engineer

Slide 42

Slide 42 text

Resources #jbcn22 @vitalethomas

Slide 43

Slide 43 text

Resources Source code • Presentation source code • The developer experience and the inner dev loop • Docker fi les vs. Cloud Native Buildpacks • Knative and Spring: Bringing back the func • Developer Work fl ow • Software Supply Chain Choreography #jbcn22 @vitalethomas

Slide 44

Slide 44 text

https://github.com/ThomasVitale/awesome-spring

Slide 45

Slide 45 text

Enlightning Learn cloud concepts with Whitney and her lightboard #jbcn22 @vitalethomas Tomorrow, 16:55

Slide 46

Slide 46 text

Discount codes Manning • 35% discount code, valid for all products in all format • ctwjbcn22 • manning.com thomasvitale.com @vitalethomas

Slide 47

Slide 47 text

Thomas Vitale JBCNConf Jul 18th, 2022 Developer Experience With Java on Kubernetes @vitalethomas