Slide 1

Slide 1 text

Ways Towards a Productive YAML-less Cloud-native DevEx OOP 2021 Digital, February 10th 2021 @LeanderReimer #cloudnativenerd #qaware

Slide 2

Slide 2 text

Mario-Leander Reimer Principal Software Architect @LeanderReimer #cloudnativenerd #qaware

Slide 3

Slide 3 text

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital 3 Code & Demos https://github.com/qaware/productive-cloud-native-devex

Slide 4

Slide 4 text

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital DevEx in the good old days … 4 Spec Design Test Integrate Operate Develop Deploy

Slide 5

Slide 5 text

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital Cloud-native DevEx today? 5 Spec Design Test Integrate Operate Develop Deploy

Slide 6

Slide 6 text

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital Cloud-native DevEx today! 6 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 7

Slide 7 text

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital How do you organise and enable technology teams for fast fl ow and high productivity? 7

Slide 8

Slide 8 text

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital Too much cognitive load will become a bottleneck for fast fl ow 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, con fi guration, console commands) • Germane Cognitive Load - relates to speci fi c aspects of the business domain (aka. „value added“ thinking and learning) 8 https://teamtopologies.com

Slide 9

Slide 9 text

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital Minimize intrinsic cognitive load 
 (by training, peer programming, standards, languages, …) 9

Slide 10

Slide 10 text

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital Eliminate extraneous cognitive load 
 (automate, automate, standardize, automate, automate, …) 10

Slide 11

Slide 11 text

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital Use the right tools for the job! 11 Getty Images Liliboas Skaffold Tilt kustomize Buildpacks Pulumi

Slide 12

Slide 12 text

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital What are Cloud-native Buildpacks? • Buildpacks were fi rst 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

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital Kubernetes native con fi guration management • https://kustomize.io • A template-free way to customize your application con fi guration • Now, built into kubectl as apply -k • Try https://kustomize.io/tutorial 13

Slide 14

Slide 14 text

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital Pulumi - Modern Infrastructure as Code. • Imperative management and de fi nition of Kubernetes applications and objects using familiar programming language • Use the same tools to build your application and its con fi guration • Compose and share reusable components through code libraries • Terraform alternative: supports all major cloud providers (AWS, …) • Similar projects: Amazon CDK, cdk8s 14

Slide 15

Slide 15 text

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital Fast. Repeatable. Simple. 
 Local Kubernetes development. • https://skaffold.dev • Handles the work fl ow for building, pushing and deploying an app • Watches local fi le system. Continuously triggers build & deploy on code changes • Allows to synchronize static resources without rebuilding the image • Support for different environments with Pro fi les, Env Vars Templates and kube-context activation 15

Slide 16

Slide 16 text

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital The Scaffold Work fl ow in a Nutshell 16

Slide 17

Slide 17 text

// OOP 2021 Digital // Ways Towards a Productive YAML-less Cloud-native DevEx // @LeanderReimer #cloudnativenerd #qaware #OOPdigital — 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 fi le 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 17

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

Mario-Leander Reimer Principal Software Architect, QAware GmbH mario-leander.reimer@qaware.de https://www.qaware.de https://speakerdeck.com/lreimer/ https://github.com/lreimer/ &