Serverless has taken centre stage in the tech landscape, thanks in part to Prime's compelling post about their switch from a monolithic structure to a Serverless approach. But here’s the thing: while the industry is abuzz, it’s easy to get swept up in the hype. It's essential to realise that technology solutions aren’t one-size-fits-all. They must be tailored to an organisation's unique needs and stage.
Over at Runa, we’re not just hopping on the Serverless bandwagon because it’s trendy. For us, pivoting to Serverless is a strategic choice that has shaped our new services.
To understand our current state, let’s look back at our origins. For half a decade, Runa thrived on a monolithic setup. Picture this: a singular database, methodically organised code in one repository, and unitary app deployments—all powered by Amazon’s Managed Kubernetes Service. This setup wasn't just convenient but also foundational for our early phases. However, as we scaled and technology advanced, challenges crept in:
- Intertwined logic muddied the codebase, making changes trickier.
- With the team expanding, and over 30 developers collaborating daily, there's a growing risk of 'stepping on toes’.
- Our once-efficient deployments became more prolonged and riskier as complexity soared.
- Infrastructure management wasn't just intricate—it now demanded considerable time.
The Case for Serverless
So, why did we bet on Serverless to solve these challenges? Here’s our rationale:
- Clearer Domain Boundaries: Serverless naturally leans into an event-driven architecture. This nudges teams towards defining clearer domain boundaries and viewing events and contracts as pivotal for cross-domain interactions. Martin Fowler's perspective on Bounded Contexts mirrors this.
- Simplified Deployments: Adopting a 'one repository per service' policy, where a service represents a domain segment, has streamlined our end-to-end deployment processes.
- Focus on Application, Not Infrastructure: By entrusting infrastructure intricacies to the best in the business (AWS), our engineers can zoom in on application code. No more fretting about nitty-gritty details like node instance sizes in a database cluster!
- Enhanced Security: Adopting AWS's shared security model allows us to prioritise role-based access and permissions, tailored to our scenarios, while ensuring the core infrastructure is safeguarded by robust security.
At its core, our "Serverless-First" approach isn't about sticking to a stringent tech playbook. It's a mindset. This transformation has optimised our processes, decoupled team dependencies, and facilitated swift tech adoption. Admittedly, like every approach, Serverless isn't without its challenges – but that's a story for another day.
In summary, our Serverless journey isn't about conforming to industry trends. It's a reflection of our commitment to evolving in sync with our needs and challenges, and responding to the dynamic tech ecosystem. We’re excited about the road ahead so stay tuned for more insights from our transformative journey!