From 64f3575d30b4fc98ff4644bdec2b202d4f02d9d9 Mon Sep 17 00:00:00 2001 From: Gabriel Simmer Date: Wed, 17 Aug 2022 08:11:22 +0100 Subject: [PATCH] Add Furality Infrastructure blog post --- content/posts/furality-infrastructure.md | 205 +++++++++++++++++++++++ static/images/dutchie-pr.png | Bin 0 -> 57020 bytes 2 files changed, 205 insertions(+) create mode 100644 content/posts/furality-infrastructure.md create mode 100644 static/images/dutchie-pr.png diff --git a/content/posts/furality-infrastructure.md b/content/posts/furality-infrastructure.md new file mode 100644 index 0000000..5f42029 --- /dev/null +++ b/content/posts/furality-infrastructure.md @@ -0,0 +1,205 @@ +--- +title: Infrastructure at Furality +date: 2022-08-17 +--- + + + +**[You can find the slide deck here](https://docs.google.com/presentation/d/1V2UuCbXzLQaXZrPQq7SapuL-KuBpDxVuAkZhLSigHSA/edit?usp=sharing)** + +Back in November of 2021, [Furality +Legends](https://past.furality.org/f4/) convention took place, and I +attended along with my SO [Becki](https://artbybecki.com). It was an +interesting experience, and I bought a VR headset (an Oculus Quest 2) +about halfway through to properly immerse myself. During the tech +enthousiast meetup, a volunteer of the convention popped in, and while +speaking to another attendee mentioned they were open to new volunteers. +Inspired, and eager to improve my skills in DevOps (I was employed at +CircleCI, about to transition to my current employer), I promptly sent +an email in with a very short introduction, and ended up joining the +convention's DevOps department. Despite the name, the DevOps team +encompasses all web-related development (it's important to distinguish +this from the Unity/world development team) including the F.O.X. API (a +currently monolithic PHP application), web frontend for both the portal +and main organisation website, and a few other pieces required to run +the convention smoothly. I landed on the infrastructure team, a hybrid +of Platform and Developer Experience. Coming off of Legends, the team +lead, Junaos, was starting to investigate alternate means of hosting the +backends and frontends that wasn't just a pile of servers (you can see +what our infrastructure used to look like [here during the DevOps panel +at Legends](https://youtu.be/vmmyzFFn_Uo)), so I joined at a really +opportune time for influencing the direction we took. + +![Initial email sent to Furality to volunteer](/images/furality-email.png) + +While the infrastructure team is also responsible for maintaining the +streaming infrastructure required to run the convention club, live +stream, live panels, and more, this is *relatively* hands off, and I +didn't have a ton of involvement in that side of things. Alofoxx goes +into more detail during the panel. + +The technical requirements of Furality are somewhat unique. We have a +few events per year, with a crazy amount of activity (in the \~150req/s +range to our API during Aqua) during a weekend then very little until +the next event. It's entirely made up of volunteers, so scheduling +things can be tricky and while there is some overlap in availability it +can be tough to ensure people are online to monitor services or fix +bugs, especially during the offseason. With these things in mind, some +key focuses emerge: + +1. Aggresive auto scaling, both up and down +2. Automate as much as possible, especially when getting code into + production +3. Monitor everything + +Of those three, I think only the 1st point is really unique to us. +Points 2 and 3 can apply pretty widely to other tech companies (the +DevOps department is, operationally, a small tech startup). + +We picked Kubernetes to help solve these three focuses, and I think we +did pretty damn well. But before I explain how I came to that +conclusion, let's dive into the points a little deeper, talk about how +Kubernetes addresses each issue, and maybe touch on *why you wouldn't* +want to use Kubernetes. + +![Furality infrastructure diagram of our cluster and services](/images/furality-infra-diagram.jpg) + +### Aggresive auto scaling, both up and down + +As mentioned, Furality has a major spike of activity a few times a year +for a weekend (with some buffer on either side), followed by a miniscule +amount of user interaction in between. While this is doable with +provisioned VPSs through Terraform and custom images built with Packer, +it feels a little bit cumbersome. Ideally, we define a few data points, +and the system reacts when thresholds are met to scale up the number of +instances of the API running. Since the API is stateless (everything +feeds back to a single MySQL database), we aren't too worried about +things being lost if a user hits one instance then another. + +One perk of this system being for a convention is we can examine the +scheduled events taking place and use that to predict when we need to +pay particular attention to our systems. That 150 requests per second +figure was rounding down during our opening ceremonies, when attendees +were flocking to the portal to request invites to worlds, intent on +watching the stream. The backend team had the foresight to implement a +decent caching layer for some of the more expensive data retrieval +operations, and all said and done there was no real "outage" due to load +(with the definition of outage being a completely inaccessible service +or website). Things just got a bit slow as our queue consumers sending +out invites fell behind a bit - a bit of tweaking to the scaling sorted +it out - and some would sometimes crash outright. + +Part of the way through building out the infrastructure, I was +questioning our decision to opt for Kubernetes over something else. But +it actually proved to be a solid choice for our use case, especially for +scaling, since we could automatically scale the number of pods, and in +turn nodes for our cluster, by defining the few metrics we wanted to +watch (primarily looking at requests being handled by php-fpm and CPU +usage). We scaled up pretty aggresively, and maxed out at about 20 +`s-4vcpu-8gb` DigitalOcean nodes. With a bit more tuning I'm sure we +could have optimised our scaling a little better, but we were intent on +ensuring a smooth experience for con-goers, and opted for the "if it +works" mentality. + +Scaling down was a bit tricky. During the off season we need to keep +nearly all the same services running, but with much smaller capacities +to facilitate some of the portal and internal functionality, as well as +ongoing development environments. Because the bulk of Furality's income +happens during the convention, it's important to keep off-season costs +low, and this is one of the reasons we opted for DigitalOcean as the +server host. We ended up with a slightly larger cluster than we started +out with pre-convention, even after aggresively scaling down and +imposing resource limits on pods. Scaling down our database, which we +sized up 3 times during the convention with no notable downtime, was +also a bit tricky, as DigtalOcean has removed the ability to scale down +via their API. Instead, we migrated the data manually to a smaller +instance, doing various sanity checks before fully decomissioning the +previous deployment. + +### Automate as much as possible, especially when getting code into production + +It can be hard to wrangle people for code reviews or manually updating +deployments on servers. At one point, updating the F.O.X. API required +ssh'ing into individual servers and doing a `git pull`, or running an +Ansible playbook to run a similar command. This was somewhat error +prone, requiring human intervention, and could lead to drift in some +instances. To address this, we needed a way of automatically pushing up +changes, and having the servers update as required, while also making +sure our Terraform configuration was the source of truth for how our +infrastructure was set up. + +To accomplish this, we built out Otter, which is a small application +listening for webhooks from our CI/CD processes that will take the data +it recieves and updates our Terraform HCL files with the new tag, +opening a pull request for review. It's not a perfect system, still +requiring some human intervention to not only merge the changes but also +apply the changes through Terraform Cloud, but it was better than +nothing, and let us keep everything in Terraform. + +![Otter service mascot, an otter carrying a stack of boxes wearing a hard hat](/images/furality-otter.png) + +![Example Otter pull request](/images/otter-pr.png) + +We also built out Dutchie, a little internal tool that gates our API +documentation behind OAuth and rendering it in a nice format using +SwaggerUI. It fetches the spec directly from the GitHub repository, so +it's always up to date, and as a bonus we can fetch specific branches, +estentially getting dev/prod/whatever else versioning very easily. + +### Monitor everything + +We already had Grafana and Graylog instances up and running, so this is +pretty much a solved problem for us. We have Fluentd and Prometheus +running in the cluster (along with an exporter running alongside our API +pod for php-fpm metrics) that feed into the relevant services. From +there we can put up pretty dashboards for some teams and really verbose +ones for ourselves. + +![Grafana Dashboard showing general metrics](/images/furality-grafana-0.jpg) + +![Grafana dashboard show php, rabbitmq and redis stats](/images/furality-grafana-1.jpg) + +### What could have been done better? + +From the offset, we opted to deploy a *lot* to our Kubernetes cluster, +including our Discord bots, Tolgee for translations, and a few other +internal services, in addition to our custom services for running the +convention. Thankfully we had the foresight to deploy our static sites +to a static provider, CloudFlare Pages. Trying to run absolutely +everything in our cluster was almost more trouble than it was worth, +such when a pod with a Discord bot would be killed and moved to another +node (requiring the attached volume for the database to be moved), or +the general cognitive load and demand of maintaining these additional +services that didn't benefit much from running in the cluster. We're +probably going to move some of these services out of our cluster, +specifically the Discord bots, to free up resources and ensure a more +stable uptime for those critical tools. + +Another thing that we found somewhat painful was defining our cluster +state in Terraform, rather than a Kubernetes-native solution. We ended +up acruing a fair amount of technical debt in our infrastructure state +repository and running everything through Terraform Cloud drastically +slowed down pushing out updates to configurations. While it was nice to +keep our configuration declaractive and in one place, it proved to be a +significant bottleneck. + +### What happens next? + +We don't really know! As it stands, I'm fairly confident our existing +infrastructure could weather another convention, but we know there are +some places we could improve, and the move did introduce a fair amount +of technical debt that we need to clean up. For example, we're using +Terraform to control everything from server provisioning to Kubernetes +cluster, and want to move the management of our cluster to something +more "cloud native" (our current focus is ArgoCD). There is also some +improvements that could be done to our ability to scale down, and +general cost optimisation. Now that we have a baseline understanding of +what to expect with this more modern and shiney solution, we can iterate +on our infrastructure and keep working towards an "ideal system", +something you don't normally have the chance to do in a traditional full +time employment role. Whatever it is we do, I'll be very excited to talk +about it at the next DevOps panel. + +If you have any questions, feel free to poke me [on Twitter](https://twitter.com/gmem_) +or [on Mastodon](https://tech.lgbt/@arch). \ No newline at end of file diff --git a/static/images/dutchie-pr.png b/static/images/dutchie-pr.png new file mode 100644 index 0000000000000000000000000000000000000000..7db4930627145f9895fecafefa65452d87958300 GIT binary patch literal 57020 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 IKV1_33r*Vvl>h($ literal 0 HcmV?d00001