Closed bravecobra closed 5 years ago
This sounds like it could be done as a multi-part thing. Let me air out my thoughts, and you provide some feedback.
On the stream Tuesday Jan 8, 2019, I mentioned Terraform Workspaces and kind of what they are for. Rightfully so, I was asked to just show it. I couldn't because the only ones I have are client work, and that's just not gonna happen ;)
But I could get something simple together to show that feature working.
Also, we're probably going to want to have a/b environments (even if it's just S3 buckets) for the Developer blog we're building with docker and gatsby. So that would get more into the "how do you use this in a true pipeline" question.
So for this issue (or make a make a more specific issue) would showing just a simple usage of workspaces for a dev/prod vpc and ec2 deployment work?
Additionally, is this something you think we would want to build live on stream (do it live) or just review like I did with the GraphQL api demo I did?
I suppose the GraphQL api demo app could serve as the app to deploy in 2 or 3 environments. The app is simple enough to keep the infrastructure simple as well. That would make a review more than explanatory enough. Doing a rolling update without downtime is something I'd do on stream.
I'm going to close this issue because we're off to the races running with the idea after the January 10, 2019 stream, and repo created here https://github.com/mtheoryx/graph-ql-cloud-demo
Feel free to help out with ideas, features, suggestions, ideas on that repo. Thank you for the idea @bravecobra !!
An example of terraform describing multiple environments would be nice to have. How do you describe resources needed in both dev and prod, name them differently, having different access (security), different scaling and still describe them only one. That's where workspaces come into play.
Doing that together with pipelines, a working example, having terraform both describing the infrastructure and deploying an app in those environments when a new version comes out without downtime would sound like a nice code reference.