What if you want to provide blockchain-specific services at scale? How does a company like Hiro provide the public tools and services that assist the Stacks blockchain in getting bootstrapped around the globe, and does it differ from running a local node?
Today, we're happy to announce an upcoming series of posts which will cover exactly this and more. In this series we’ll dive deep into how we’ve designed our infrastructure and deployments at Hiro to meet demands, the relevant best practices in DevSecOps, and fluid plans to better support the recently announced Hiro Platform in the future.
But first, a little background on us — Hiro’s DevOps team wears many hats, and is comprised of Jesse Wiley and myself, Charlie Cantoni. We’re responsible for Hiro’s infrastructure, services, security, monitoring, and everything in between.
"I’ve worked for multiple Fortune 500 companies over the past 10+ years ranging throughout the health care, entertainment, and cyber security industries. In these positions I’ve learned the importance of scaling, disaster recovery, security, and having complete control over your domain."— Charlie Cantoni (Github)
We strive to evangelize good development practices internally, and empower developers to ultimately and ironically not need us! Each of us have a wealth of experience on systems administration, continuous integration and deployment, cloud providers, Docker, Kubernetes, and automating the full SDLC among other things.
"Systems programmer and expert in all things virtual. I've worked across a broad spectrum of industries managing services from single digits to millions of requests per second."
“Sometimes you have to do things just because it's cool".
— Jesse Wiley (Github)
That being said, we are a two-person team in a rapidly expanding company — some of the infrastructure we’ll talk about is transitioning in medias res of writing this series, using the best practices and suggestions we’ve picked up along the way to avoid situations like this:
Now for the part you’ve been waiting for, let’s go over some of the upcoming topics you can look forward to…
Hiro Infrastructure Overview
An overview of the public infrastructure supporting the Stacks ecosystem. This is a big one — it will span across our general setup and management of cloud providers and Kubernetes, and will likely be split into two sections.
Blue/Green Deployments
What the heck are blue/green deployments and why do they matter? We'll cover the pros and cons of this approach, some alternatives, and show you how we employ blue/green deployments for the Stacks API in the mainnet, testnet, and regtest networks.
Availability, Resiliency, and Security
General best practices and tips for keeping Kubernetes services fast, healthy, and secure. We show you how it ties in to the Stacks node, the Stacks API, Gaia Hub, and other supporting services.
Monitoring and Logging
How can you fix a problem if you're not aware of it? And how much logging is too much? One of the most overlooked yet essential key objectives for any infrastructure setup.
Future Plans
Our journey is just beginning; let us show you some improvements we plan to make down the road.
If you’re passionate about DevSecOps and infrastructure engineering like we are, you’ll know it’s an ever-moving, always-improving goalpost as you deepen your understanding and exchange experiences with others. No setup is perfect, and they all have their own drawbacks. While the decisions made in the past about our infrastructure may have sufficed for our size at the time, they may not make sense for an expanding company.
Thus, this series will serve as a general guide for others to follow in addition to an ongoing journey in which our team is partaking!