The pandemic has changed our lives in ways no one could have predicted. Although it’s hard to imagine now, there was a time when things like working from home or touchless payments were not everyday occurrences. Today brings the accelerated ubiquity of AI-bots and the metaverse — not to mention the barrage of news about cyberattacks, snooping devices, and new data residency requirements. What’s a company to do? Three words: Think microservices architecture.
Table of Contents
Introduction: Microservices Architecture Keeps Costs Low and Fuels Innovation
Software developers continually challenge their agility to meet the changing landscape. Not only did the expectations of quality, availability, and resiliency skyrocket overnight, but the feature-set and tailoring of the products did as well. Many industries went to a fully digital and remote experience, and their stacks and infrastructure needed to handle it. Nice-to-haves became table stakes in the hustle to adapt to new requirements, and some companies and industries just fared better than others.
At Vonage, the demand to connect the world en masse surged like a tsunami. Suddenly everyone had to stay home. Banks shifted to digital-first branches, classrooms and meeting rooms became virtual video calls, restaurants changed to a touchless delivery-only model, and doctors had to adopt a telehealth setting.
And throughout it all, the software had to keep up.
Thankfully, Vonage had adopted a microservices approach to its cloud-first architecture that helped us rise to the challenge. A solid base of fundamentals and best practices allows developers, product managers, and ultimately customers to scale efficiently, add new features quickly, and avoid unnecessary downtime, while keeping costs low and feeding the innovation engine.
The Vonage Communications Platform (VCP) is the next evolutionary step based on our microservices architecture. This series will review the fundamentals of the architecture of microservices and the specific decisions made in planning for the post-COVID world, including implementing some of the lessons learned during the pandemic. Throughout this series, I will discuss why our VCP platform adopted microservices — and how it allows us to scale rapidly, add new features with ease, and keep our costs low.
Stay tuned for more updates.
Chapter 1: So What Is Microservices Architecture?
The general idea behind microservices is not a new one. In fact, it’s been around since the 1990s. Back then, it was referred to as a pluggable architecture or even a service-oriented architecture (SOA). It also wasn't the most straightforward system to build or manage. Large-scale systems needed big orchestrators or mediators like enterprise service buses to help scale the system to handle production workloads. They usually involved specific software developer kits (SDKs) that limited you to one or a few language choices. Furthermore, once you released your system into production, you had significant vendor lock-in. Then, depending on your system's size, you may have been locked in for the foreseeable future.
Where the Technology Magic Happens
As time passed, the technology evolved and new enablers emerged, like the cloud and containerization. Broad adoption of HTTP services started relieving the burdens of the past and introducing other alternatives. Many solutions offered a well-defined, language-agnostic HTTP interface that could be coded in any language and store data in any location. That, together with semantic versioning, meant that the pieces of the system could be loosely coupled and even built by many different teams with different skill sets.
That decoupling, and the ability to parallelize the efforts, only tells part of the story. The same set of modular and independent artifacts can be reshuffled, reused, scaled-up or down, rewritten … and, maybe best of all, retired. The complex business application, although still involved, now resembled a building-block masterpiece that can have parts reformatted into something completely different. And this is where the magic can happen.
Faster Feature Launch, Higher Quality of Service, and More Customers
Vonage was built on a microservices architecture at almost every layer of its platform. That gives us the ability to react to the changes in the market much easier than our competitors. As more and more channels enter the market, starting with SMS and ranging to WhatsApp and Instagram messaging, we diverge from the logic path only when needed to add the new functionality. This means we can still leverage all the upstream systems and features while seamlessly connecting a new channel.
Similarly, when 10DLC or HIPAA regulations arose, our platform was able to selectively modify or shed legacy blocks and implement the new features in record time! This translates to a higher quality of service, a larger pool of potential customers, and an existing pool of delighted ones.
From Evolution to Industry Standard
The Vonage Communications Platform (VCP) is the next evolutionary step based on our microservices architecture that builds on this success and enables it for years to come. Lessons learned from years of implementing these patterns are being codified in our developer portals and playbooks, for both our internal and external developers. We are templating our successful implementations for accelerated reuse to spark the innovation and experimentation engine that this architecture craves. Finally, we quantify and measure metrics that have proven to be crucial to our success and align them with industry standards and metrics like:
Mean Time to Detect (MTTD)
Mean Time Between Failures (MTBF)
Mean Time to Failure (MTTF)
Mean Time to Repair/Recover/Respond/Resolve (MTTR)
DevOps Research and Assessment (DORA)
Next in this series, I will discuss the specifics of how we evolved in each of these areas, and how we will continue to evolve over time. I will highlight some successes in resiliency and reliability afforded by this architecture and demonstrate how measuring what matters helps us scale, be efficient, and deliver delight to our customers every day.