July 18, 2018 | REAN Cloud
We have already covered the basic advantages of microservices, the built-in adaptability of microservices architecture and the inherent versatility of a data lake. Now, we’re advocating for the benefits our clients stand to gain by breaking free of a monolith architecture.
Ask any developer about the benefits of microservices. The top answer you’ll get is agility! Teams are suddenly armed with the capability of focusing on smaller areas of functionality and packets of data. Rather than taking down an entire application to improve existing or introduce new functionality, you simply work in the relevant portion of the application.
And as more companies take their business digital and migrate to the cloud, the ability to implement change quickly is critical. You can see it everywhere with businesses like Warby Parker, Casper or countless others disrupting traditional, brick-and-mortar industries. Aside from the rapid and cost-effective growth associated with shedding legacy servers, employing microservices enables these companies to achieve considerable efficiencies by allocating complicated development, testing and deployment to small teams. They can then reuse these technical assets to reimagine and expand their business models faster than speeding bullets. For traditional players in these industries to survive, they must adapt in a similar fashion.
Case Study 1: Shortening the Path to Innovation
An old Jermyn Street shirt and tie maker faced stiff competition for internet sales from new entrants, which radically changed the customer experience (CX) of buying online. Customers keying in detailed measurements was a thing of the past. The manufacturer had to re-imagine the buying experience to provide an in-store-like “high touch.” But re-architecting the old point of sales and order management systems required new up-front investment and a long runway. What’s more, the technology teams knew the existing technology stack, but did not have the ability to make a quick transition.
Results with microservices:
- An outside partner began building the new CX functionality using new microservice and front-end technologies
- The company implemented a translation layer of API gateways and management software to allow the new technology to communicate with and enhance the old technology stack
- Existing development teams participated in integrated scrum teams with the partner to ensure technology integration and for training
- The new CX environment was delivered in a third of the time that the re-architecture project required
- The company continues to depreciate portions of its legacy applications
Case Study 2: Technology is a Key Cost Differentiator to Fend Off New Market Entrants
A global hospitality company with its dinosaur reservation app faced growing competition from new upscale and budget travel services. It decided to break up its monolith into microservices.
Results with microservices:
- The company quickly innovated to support a wide range of markets without long development cycles
- Development teams around the world could each own a service, ensuring they could stay local, smaller and better armed to plan and execute their individual sprints
Case Study 3: Introduction of New Products Faster While Maintaining Operational Control and Customer Visibility.
A Tier 1 U.S cellular operator struggled to maintain a competitive edge in a highly dynamic market. Competition, new products and continuing pressure to monetize older services severely taxed its legacy applications. On top of this, multiple acquisitions left it with a web of inflexible infrastructure.
Results with microservices:
- The company eliminated redundant legacy applications, integrated functionalities, introduced new microservices and transitioned from older, heavy development frameworks to lighter weight approaches on both the back- and front end
- It shrunk its overall technology footprint, supported on-premise and in-the-Cloud development and eliminated siloes created by acquisitions
- It generated better business value, including faster time to market with new or enhanced products, lower customer churn, higher profitability and enhanced lifetime of older services
Case Study 4: Employing High-Value Analytics to Increase Customer Wallet Share
A primarily brick-and-mortar clothing retailer identified new machine learning-driven personal styling sites as a major factor in its own declining sales. Adapting existing applications to begin supporting predictive tools and advance recommendation engines was impossible. Re-developing apps to be completely based on microservices would take too long and market share was dropping fast.
Results with microservices:
- Retailer began a phased approach for new functionality, preserving only the most critical portions of the monolith, which allowed the launch of a new offering in the personalized styling market while continuing the use of existing technology assets
- The monolith was slowly replaced except for a small core that benefits from autoscaling in the Cloud and limited need to hyperscale
Case Study 5: Microservices Handle Sudden and Explosive Spikes
An online fashion/apparel site that featured exclusive items, trends and sales could not meet demands for performance as its flash sales gained popularity. The site was built on “Ruby on Rails.” Even after moving the monolith applications to the Cloud, the integrated systems limited the ability to meet demand and resulted in failures and long delays.
- By focusing on load-intensive components and gradually splitting portions of functionality into separate services, the platform could scale horizontally
- Splitting key functionality into microservices allowed the site to quickly recover from failures, isolate the root cause and apply fixes. No longer did less important functionality cause major revenue loss during a failure
- The platform could scale up to meet very high peak load, and scale down during normal baseline traffic. In addition, the data-centric design allows for advanced analytics that further drive sales
When are microservices not a good fit?
Microservices aren’t always a silver bullet. While they constitute an optimization in many cases, there are challenges that weigh in favor of a central design. Specifically, sticking with a larger application may be fitting when building a proof of concept (implementing and testing a completely new idea without many moving parts), when only a small number of developers are involved (who can easily coordinate without the complexity of splitting up tasks), when the application has low- to moderate traffic and few high-availability needs (such that modifications that need not be isolated), and of course small or simple apps.
A Glimpse into Microservices Architecture
Once a company is ready to pull the trigger, REAN Cloud can help with the microservices architecture. Considerations include data organization, operational complexity, and the need for monitoring/tracing.
When you have a single virtual machine where all of the data lives on the same machine. When your application consists of multiple components spread across a network, it’s more challenging to manage. Traditionally each component is responsible for its own data, and should never directly modify the data of another component. But with our pluggable and reusable Data Lake architecture and modular, API-focused application design, REAN Cloud can build data-centric platforms with unlimited potential for cross-over and thus future growth.
Similarly, when you have multiple services that make up a single platform, your operational complexity is much higher. How do you deploy a new version of your application? How do you roll back a bad deployment for a particular component?
When you enter the world of microservices, you are inherently assuming much greater automation and operational responsibilities. If you don’t follow best practices as far as automation, orchestration, and the CI/CD pipeline, you are setting yourself up for failure.
Using the REAN Accelerator Platform, we bring advanced DevOps and CI/CD capabilities to the table. This suite of tools allows for an accelerated development time, and sophisticated automation pipelines for provisioning, configuring, and deploying your applications in parallel.
Finally, splitting components and implementing a deployment pipeline are only two pieces of the puzzle. The third (and perhaps most critical) piece is monitoring.
Imagine this: You have an eCommerce platform built on microservices. A user has complained that the process of adding an item to their cart takes too long. How do you troubleshoot this issue? Maybe it’s a bottleneck with the cart microservice, or perhaps a poorly-written DB query in the inventory service is causing the slowdown? If you haven’t implemented proper monitoring and tracing, you don’t even have the data available to begin the investigation.
When every action is distributed across a network to one or more independent applications, the requirements for monitoring suddenly become much more complex. You need to be able to trace requests as they flow through the various services (and bottlenecks!) in the platform. And you need robust alerting for when things in the platform aren’t behaving as they should. Happily, REAN Cloud brings advanced monitoring capabilities to all layers of your platform.
If you’re interested in learning more about microservices, check out these links: