Slide 1

Slide 1 text

Improve Developer Productivity with Ephemeral Environments Adarsh Shah Engineering Leader, Coach, Public Speaker Founder at CloudKnit @shahadarsh 
 https://cloudknit.io @shahadarsh bit.ly/envs-dod-philly

Slide 2

Slide 2 text

@shahadarsh bit.ly/envs-dod-philly Agenda • Challenges affecting Developer Productivity • Real examples • Use cases for Ephemeral Environments • How to implement Ephemeral Environments • Environment as Code • Demo (if we have time)

Slide 3

Slide 3 text

@shahadarsh bit.ly/envs-dod-philly Show of Hands

Slide 4

Slide 4 text

@shahadarsh bit.ly/envs-dod-philly Caution!

Slide 5

Slide 5 text

@shahadarsh bit.ly/envs-dod-philly Challenges affecting Developer Productivity Troubleshooting mysterious bugs Replicating Environments is a pain Con fi guration Drift Rising Cloud Costs

Slide 6

Slide 6 text

@shahadarsh bit.ly/envs-dod-philly Real examples • Devs waiting weeks for a new environment to be ready • Tearing down environments is not easy • Dev teams have monthly cloud budget

Slide 7

Slide 7 text

@shahadarsh bit.ly/envs-dod-philly What is an Ephemeral Environment? Ephemeral environment (dynamic or short-lived environment) is the idea of provisioning an environment on-demand when needed and then destroying it afterward. It is a useful technique to test your IaC and applications running on it without a need to keep it running all the time.

Slide 8

Slide 8 text

@shahadarsh bit.ly/envs-dod-philly

Slide 9

Slide 9 text

@shahadarsh bit.ly/envs-dod-philly Use Cases for Ephemeral Environments

Slide 10

Slide 10 text

@shahadarsh bit.ly/envs-dod-philly Developer Environments • Shared Environments • Ability to create new Development environment • Tear them down when not needed

Slide 11

Slide 11 text

@shahadarsh bit.ly/envs-dod-philly Test Environments Test Product Features Performance/Load testing Troubleshoot Production Issues

Slide 12

Slide 12 text

@shahadarsh bit.ly/envs-dod-philly Preview Environments Test Major Upgrades Experimentation Other use cases Demo Environments Sandbox Environments Blue Green Deployments Blue Green

Slide 13

Slide 13 text

@shahadarsh bit.ly/envs-dod-philly Environment as Code

Slide 14

Slide 14 text

@shahadarsh bit.ly/envs-dod-philly Environment as Code networking eks website postgres networking website eks postgres Declarative Environment as Code +

Slide 15

Slide 15 text

@shahadarsh bit.ly/envs-dod-philly Environment as Code

Slide 16

Slide 16 text

@shahadarsh bit.ly/envs-dod-philly IaC vs EaC Infrastructure as Code Automates various Lego Pieces 
 (i.e. Infrastructure Resources) Environment as Code Automates how those Lego Pieces 
 are connected to make up a Lego Toy 
 (i.e. Entire Environment)

Slide 17

Slide 17 text

@shahadarsh bit.ly/envs-dod-philly Environment as Code Environment as Code (EaC) is an abstraction over Cloud native tools that provides a declarative way of de fi ning an entire Environment. It has a Control Plane that manages the state of the environment, including relationships between various resources, Detects Drift as well enables Reconciliation.

Slide 18

Slide 18 text

@shahadarsh bit.ly/envs-dod-philly Imperative to Declarative HOW Pipelines EaC WHAT

Slide 19

Slide 19 text

@shahadarsh https://github.com/cloudknit-io/cloudknit bit.ly/envs-dod-philly Provision Environment Environment as Code Environment State (Manages dependencies, status etc. ) State networking eks State website postgres State networking website eks postgres Provision Reconcile Declarative Detect Drift Control Plane +

Slide 20

Slide 20 text

@shahadarsh bit.ly/envs-dod-philly networking website eks postgres Teardown Environment Environment as Code Environment State (Manages dependencies, status etc. ) State networking State website eks postgres State Teardown Reconcile Declarative Detect Drift Control Plane +

Slide 21

Slide 21 text

@shahadarsh bit.ly/envs-dod-philly Attributes of Environment as Code

Slide 22

Slide 22 text

@shahadarsh bit.ly/envs-dod-philly https://github.com/cloudknit-io/cloudknit Ability to de fi ne Entire Environment

Slide 23

Slide 23 text

@shahadarsh bit.ly/envs-dod-philly Create Pull Request, EaC Validate Validate Approve & 
 Merge PR Control Plane Reconcile GitOps for Environment EaC Trunk networking platform-k8s k8s-addons postgres Observe Branch networking eks website postgres

Slide 24

Slide 24 text

@shahadarsh bit.ly/envs-dod-philly How Ephemeral environments help improve developer productivity? Make Replicating Environments Easy No Con fi guration Drift Reduces Cloud Costs Con fi dence

Slide 25

Slide 25 text

@shahadarsh bit.ly/envs-dod-philly https://github.com/cloudknit-io/cloudknit Provision v1 v1 v1 User Mutable Infrastructure { } IaC Apply changes v2 v2 v2 Change { } IaC v1 v1 v1 Provision User Provision v2 v2 v2 User Immutable Infrastructure { } IaC Change { } IaC Deploys v2 to same Infrastructure Provisions new Infrastructure with v2

Slide 26

Slide 26 text

@shahadarsh bit.ly/envs-dod-philly Shift Left & Shift Right Ephemeral Envs/CI etc. Shift Left Shift Right Test in Production vs and

Slide 27

Slide 27 text

Thank You @shahadarsh bit.ly/envs-dod-philly Adarsh Shah Engineering Leader, Coach, Public Speaker Founder at CloudKnit @shahadarsh 
 https://cloudknit.io