Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Developer Experience on Kubernetes

Thomas Vitale
September 05, 2024

Developer Experience on Kubernetes

As a developer, working with Kubernetes too often leads to too much cognitive load, inefficient inner development loop, and friction in the path to production. This session is structured as a series of iterations on the developer experience to improve those three aspects and boost productivity, while following an approach based on open-source technologies.

Thomas Vitale

September 05, 2024
Tweet

More Decks by Thomas Vitale

Other Decks in Technology

Transcript

  1. Systematic • Software Engineer • CNCF Ambassador, Oracle ACE Pro,

    Testcontainers Community Champion, KCD Organiser • Author of “Cloud Native Spring in Action” (Manning). • OSS contributor (Java, Spring, Cloud Native Technologies) Thomas Vitale thomasvitale.com @vitalethomas
  2. Developer Experience “…developer experience could be defined as a means

    for capturing how developers think and feel about their activities within their working environments, 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) @vitalethomas
  3. Developer Experience: Concept and De fi nition (F. Fagerholm, J.

    Münch) Developer Experience Conceptual Framework @vitalethomas
  4. Goals 2 Reduced cognitive load 3 Clear and safe path

    to production 1 Rapid and continuous feedback loop @vitalethomas
  5. Dockerfiles “Dockerfiles are easy to write, but the current development

    guidelines do not produce containers that are repeatable and hardened.” CNCF Software Supply Chain Security Paper https://github.com/cncf/tag-security/tree/main/supply-chain-security @vitalethomas
  6. Image pack build Cloud Native Buildpacks From source code to

    container image @vitalethomas Cloud Native Buildpacks https://buildpacks.io
  7. Image pack build gradle bootBuildImage Cloud Native Buildpacks From source

    code to container image @vitalethomas Cloud Native Buildpacks https://buildpacks.io
  8. Eliminate sources of non-determinism Reproducible builds with Cloud Native Buildpacks

    Cloud Native Buildpacks https://buildpacks.io Image pack build Image pack build Time = = @vitalethomas
  9. Moving to Kubernetes @vitalethomas Runtime (Language) Application (Executable) Runtime (OCI)

    Application (Container) Runtime (OCI) Middleware (Kubernetes) Application (Container)
  10. Working with Kubernetes Manifests for application deployment Deployment Deploy the

    application and con fi gure replication Service Expose the application from within the cluster @vitalethomas Ingress Expose the application from outside the cluster
  11. Serverless Architectures Developers focus on code Focus on business logic

    Developer Platform Infrastructure Provisioning Workload Management Dynamic Scaling @vitalethomas
  12. 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 @vitalethomas
  13. Goals 2 Reduced cognitive load 3 Clear and safe path

    to production 1 Rapid and continuous feedback loop @vitalethomas
  14. Continuous Development Code, Run, Test, Debug Development Workflow gradle bootRun

    flask --debug run yarn dev Dev & Test Services @vitalethomas