Hi folks, We just published an article on Ephemeral Environments. It talks about advantages of automated ephemeral environments & how you can use them to unlock workflows that improve productivity gains for Engineers (Platform Engineers, SRE, DevOps Engineers). Would love to know what you all think. Article Link: Improve Developer Productivity with Ephemeral Environments
08/17/2022, 12:46 PM
I found the post very interesting, but I missed more technical details. What did you use to implement the ephemeral environments?
Do you treat S3 buckets, RDS instances and EKS clusters as ephemeral? Some of these take a while to recreate when needed.
08/17/2022, 1:59 PM
Glad you found the post interesting. See below my response to your questions.
• What did you use to implement the ephemeral environments?
◦ In most cases we used Terraform for Infrastructure provisioning and Helm charts for deployment of apps. We ran everything (TF/Helm etc.) using our product zLifecycle as it makes it very easy to work with Ephemeral environments but you can use any pipeline tool for IaC & argocd/fluxcd for k8s apps. The key is to make sure its very easy to teardown an environment and provision it back up when needed.
• Do you treat S3 buckets, RDS instances and EKS clusters as ephemeral?
◦ It depends on the use case.🙂
◦ Preview or Dev environments: We need to provision & teardown envs quickly (like on every commit to main) we would keep RDS & EKS running since its time consuming to provision them but make everything else ephemeral.
◦ Higher envs like Prod: We would keep RDS/s3 buckets that has persistent data running because we don’t want to lose data but teardown and provision everything else including EKS. You need to make sure that whatever is ephemeral doesn’t have any state or persistent data.
◦ Performance or nightly test env: Teardown everything and provision it back up every time. It will take some time to provision the env but will give confidence that the provisioning code works and for data we restore it from a backup after env is provisioned so we can run tests using that.
Hope that helps and happy to answer any further questions.
These are great questions BTW. I should probably add these details to the article.