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

Improve Developer Productivity with Ephemeral E...

Adarsh Shah
May 14, 2024
33

Improve Developer Productivity with Ephemeral Environments

A lot of companies treat environments as fragile. Tasks that require an update to an environment configuration are often met with “Why should I touch my environment? It hasn’t given me any issues and has been untouched for years”. This response is rooted in the toil and time many developers have spent provisioning one-off environment requests, troubleshooting mysterious bugs caused by differences in environments, and the high stakes of impacting production with no quick fix.

Ephemeral environment is the idea of provisioning an environment on-demand when needed and then destroying it afterward. In this talk, we will look at the Advantages of Ephemeral Environments & various Use Cases for them.

** Key Takeaways: **

* Advantages of Ephemeral Environments
* Various Use Cases of Ephemeral Environments
* Demo of Ephemeral Environments (if time permits)

Adarsh Shah

May 14, 2024
Tweet

More Decks by Adarsh Shah

Transcript

  1. 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
  2. @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)
  3. @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
  4. @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.
  5. @shahadarsh bit.ly/envs-dod-philly Developer Environments • Shared Environments • Ability to

    create new Development environment • Tear them down when not needed
  6. @shahadarsh bit.ly/envs-dod-philly Preview Environments Test Major Upgrades Experimentation Other use

    cases Demo Environments Sandbox Environments Blue Green Deployments Blue Green
  7. @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)
  8. @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.
  9. @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 +
  10. @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 +
  11. @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
  12. @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
  13. @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
  14. Thank You @shahadarsh bit.ly/envs-dod-philly Adarsh Shah Engineering Leader, Coach, Public

    Speaker Founder at CloudKnit @shahadarsh 
 https://cloudknit.io