MongoDB sponsored this post.
As applications have become the customer experience, the ability to build great software has become a competitive advantage across all industries and has led to the rise of microservices. Microservice architectures break down apps into small autonomous services, each focused on a specific function and decoupled along business and data boundaries — which allows teams to have autonomy between services. With microservices, you often want to leverage modern serverless capabilities to make it easier to build and operate.
Originally starting out in large web properties and mobile apps, microservices gained popularity as more organizations and enterprises saw the benefits and began to utilize them for their own benefit. The ability to quickly respond to changes in the market by developing new features for customers has become mission-critical for organizations. This is why microservices are becoming the default for modern applications.
In this article, I’ll walk through some use cases and how a microservice-based architecture impacts your database choice.
Three Key Ingredients for Great Software
Companies want to get their application to market as quickly as possible. This allows them to begin building brand loyalty and expanding the user base, while generating feedback to improve the app and introduce new features. It doesn’t matter what industry you’re in, today’s most successful apps are likely built by:
- self-sufficient teams, utilizing…
- modular architectures, and…
- agile cloud infrastructure
Forbes is doing this. The 100-year-old publisher has become the largest business media brand in the world, reaching more than 140 million people worldwide every month. It originally built its CMS on MongoDB in 2011 and recently migrated their entire platform to MongoDB Atlas on Google Cloud, to take advantage of Forbes’ horde of more than 50 microservices. The cloud migration led to a 58% improvement in build speed and the release cycle has improved 2x to 10x (depending on the service).
What About the Database Though?
Previously, I wrote about why we’re seeing an increase in adoption in managed infrastructure services. In summary, these services allow developers to abstract away the database layer and free up their time to simply write code for new features. With a microservices architecture, being able to utilize a database-as-a-service such as MongoDB Atlas is vital for success.
As each microservice is its own stack, you might have 20 different databases to support all the sub-components of an application. How do you manage these, given that many companies don’t have a centralized DBA team anymore and are transitioning their DBAs and operations professionals toward being cloud architects and DevOps engineers? The good news is that this shift is all about scaling impact by managing infrastructure like databases with modern tools declaratively, and this is where database-as-a-service really shines.
Your infrastructure can be managed by API or with infrastructure as code frameworks like Terraform, making it easy to automate your database with the rest of your provisioning in the environment the DevOps team manages. Ultimately, that will allow each and every team to work independently without having to learn the nuances of how to operate and scale a database.
With the flexibility of a cloud-native infrastructure and utilizing a DBaaS approach, you now have all the following features automatically built-in and available to every microservice team:
- Security features to protect your data, with fine-grained access control and end-to-end encryption.
- Built-in replication for always-on availability. Cross-region replication within a public cloud can be enabled to help tolerate the failure of an entire cloud region.
- Fully-managed, continuous and consistent backups with point-in-time recovery to protect against data corruption, and the ability to query backups in-place without full restores.
- Fine-grained monitoring and customizable alerts for comprehensive performance visibility.
- Independent elastic scalability for each microservice, so that you don’t over-provision for your noisy neighbor using auto-scaling or one-click vertical and horizontal scaling.
Microservices + DBaaS in Action
Microservices are transforming software development teams in all industries, even the traditionally more conservative ones. We worked with HMRC in the UK to completely overhaul their monolithic architecture and make the transition to microservices in a cloud-native environment. On their old monolith, digital services took two years to deliver and they were limited to two releases per year.
As you can imagine, it was expensive to scale this service and identify performance problems, which led to outages if they weren’t upgraded. By moving to the cloud and breaking down their monolith into microservices, they were able to deliver 50 releases per week across 15 smaller teams with seamless scalability for users. This also saved them millions in operating costs annually. They now have over 300 microservices that utilize a managed database service.
We’d love to learn more about the apps you’re building and how you can utilize a microservices architecture on MongoDB Atlas. Learn more here.
Feature image via Pixabay.