Slide 1

Slide 1 text

Ways Towards a YAML-less Cloud-native DevEx Cloud Native Virtual Summit featuring Kubernetes, April 1st 2020 @LeanderReimer #cloudnativenerd #qaware

Slide 2

Slide 2 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware 2 #whoami Mario-Leander Reimer Chief Software Architect QAware GmbH Yes, this is me!

Slide 3

Slide 3 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware Cloud-native DevEx today? 3 Spec Design Test Integrate Operate Develop Deploy

Slide 4

Slide 4 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware Cloud-native DevEx today! 4 Spec Design Test Integrate Operate Develop Deploy Docker K8S JSON YAML AWS NFA CI/CD More
 YAML Even More YAML Agile Tracing M etrics More Stuff Eve More Eve More Eve More

Slide 5

Slide 5 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware How do you organise and enable technology teams for fast flow and high productivity? 5

Slide 6

Slide 6 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware Too much cognitive load will become a bottleneck for fast flow and high productivity. • Intrinsic Cognitive Load - relates to fundamental aspects and knowledge in the problem space (e.g. used languages, APIs, frameworks, micro architecture) • Extraneous Cognitive Load - relates to the environment (e.g. deployment, configuration, console commands) • Germane Cognitive Load - relates to specific aspects of the business domain (aka. „value added“ thinking and learning) 6 https://teamtopologies.com

Slide 7

Slide 7 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware Minimize intrinsic cognitive load (by training, peer programming, standards, languages, …) 7

Slide 8

Slide 8 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware Eliminate extraneous cognitive load (automate, automate, standardize, automate, automate, …) 8

Slide 9

Slide 9 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware Use the right tools for the job! 9 Getty Images Liliboas kustomize Skaffold Tilt Draft Buildpacks

Slide 10

Slide 10 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware 10 Code & Demos https://github.com/lreimer/productive-cloud-native-devex

Slide 11

Slide 11 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware — Streamlined Kubernetes Development • http://draft.sh • Draft targets the "inner loop" of a developer's workflow: as you hack on code, but before code is committed to version control. • Developed and backed by Microsoft Azure • Two simple commands: draft create and draft up • Language Support: support for 8 language packs built-in: .NET, GO, Node, PHP, Java (Maven, Gradle), Python and Ruby. • Draft detects language and generates a Dockerfile and Helm Chart with the best practices for that language. 11

Slide 12

Slide 12 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware What are Cloud-native Buildpacks? • Buildpacks were first introduced by Heroku in 2011. Since then, adopted by Cloud Foundry and other PaaS. • CNCF Project initiated by Pivotal and Heroku in January 2018 • Buildpacks are pluggable, modular tools to translate source code into OCI images • Reduces the operational burden on devs • Support enterprise operators who manage apps at scale • Several default build packs and option to build custom packs. 12

Slide 13

Slide 13 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware Kubernetes native configuration management • https://kustomize.io • A template-free way to customize your application configuration • Now, built into kubectl as apply -k • Try https://kustomize.io/tutorial 13

Slide 14

Slide 14 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware Fast. Repeatable. Simple. Local Kubernetes development. • https://skaffold.dev • Handles the workflow for building, pushing and deploying an app • Watches local file system. Continuously triggers build & deploy on code changes • Allows to synchronize static resources without rebuilding the image • Support for different environments with Profiles, Env Vars Templates and kube-context activation 14

Slide 15

Slide 15 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware The Scaffold Workflow in a Nutshell 15

Slide 16

Slide 16 text

// Cloud Native Virtual Summit // Ways Towards a YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware — Stressless Local Kubernetes Development • https://tilt.dev • Automatically handles all the expert tricks for working in a K8s development environment • Fire up and manage complex microservice constellations • Watches your file system and update servers in seconds • Streams logs, events, and pod changes so that it can show you the problem when something breaks • Provides console HUD and nice Web UI 16

Slide 17

Slide 17 text

OUR CLOUD NATIVE DEVEX IS SO BRIGHT, WE NEED SHADES.

Slide 18

Slide 18 text

Mario-Leander Reimer Chief Software Architect, QAware GmbH [email protected] https://www.qaware.de https://speakerdeck.com/lreimer/ https://github.com/lreimer/ &