Wednesday
Room 1
15:00 - 16:00
(UTC±00)
Talk (60 min)
How we support multi-cloud apps at Stack Overflow
Stack Overflow recently made the the huge shift to the Cloud, after many years of proudly running on our own servers. Our Stack Overflow for Teams and Enterprise instances are hosted on Azure, and after forming a strong partnership with Google Cloud, we decided to host our public sites on GCP. As such, our services need to be deployable to both Azure and GCP! In this talk, I'll share the infrastructure and platform engineering design choices we took to make this multi-cloud support easy for our engineers to take advantage of. As part of the Platform Engineering team, we worked closely with the Infrastructure teams to expose infrastructure metadata in a standard way so that our apps can get what they need at deploy time. Using Kubernetes as the base execution platform in both clouds, we could standardise the runtime environment. We then created our own Stack-specific flavour of the CNAB specification, along with exposing the infrastructure metadata, to allow apps to define their own subset of needs called "pipeline metadata". We wrote our own CLI tools in Go to make exploring and testing this data simpler. Our goal all along was to provide a layer between the execution space (kubernetes) and the infrastructure, so that we minimise the multi-cloud aspect for the app developers. This has now been in use in all Stack Overflow applications for over 6 months and the engineers appreciate the flexibilty and support. I hope to share our Platform Engineering philosophy along with the deep technical details of our implementation and you can learn from our mistakes and successes.