Microservices unleashed: evolving mission-critical applications in the cloud at lower cost, risk, and complexity
Introduction
Enterprises are moving to the cloud as an essential platform for building, deploying, and running modern applications at scale. But how quickly are they delivering digital services and software to customers at reduced cost, risk, and complexity?
No matter what industry you’re in, business success now depends on your company’s ability to build digital services and software more quickly and with higher quality—and to deliver those applications and services reliably at scale. However, simply “lifting and shifting” this software to cloud-native infrastructure (i.e., Kubernetes and its ecosystem of tools) is not enough. This approach will not deliver new applications fast enough or achieve the necessary cadence of new features and improvements without negatively impacting your organization’s KPIs.
The answer is migrating to cloud-native applications. Cloud-native applications have adapted and evolved to be maximally efficient in the cloud. Not only are they designed to take full advantage of cloud-native infrastructure, they provide a scalable and available application layer that delivers a holistic and consistent customer experience.
Cloud-native applications done right
Reactive microservices are a way to design software systems that take the complexity out of building cloud-native applications while unleashing the full power of microservices in the cloud. Distributed by nature, reactive microservices handle the application layer of cloud-native applications by implementing a coherent microservices architecture that delivers significant advantages for your IT and development efforts.
Software developers benefit because they can focus on writing business logic rather than worry about underlying frameworks and boilerplate code. Your business benefits because the IT organization can decrease time-to-value while reducing project risk, in turn becoming more responsive to business needs.
In the following pages, we’ll provide the foundation to get started on the journey to cloud-native applications with reactive microservices, including what this system architecture is, what it does, and the value it brings to your enterprise.
True cloud-native applications power digital excellence
Chapter 1: What is a reactive microservice?
Those with experience have learned that achieving the full promise of the cloud is not automatic. The concept of “lift and shift” to the cloud doesn’t work, as traditional monolithic applications cannot fully exploit cloud and hybrid-cloud environments.
A reactive microservice provides the building blocks necessary for parallel processing, clustering, and streaming in a microservices system, while remaining very lightweight for efficiently using cloud resources. Your company can harness these features for new development, modifying or refactoring your existing applications, and creating integration points with legacy systems. Through these efficiencies, you decrease your infrastructure expenses while accelerating development productivity and time to value.
What’s more, the requirements needed to successfully run microservices are far different from those of traditional monoliths. A reactive microservice meets these needs for a performant, resilient, and scalable microservices architecture. With more independence between services, development cycles become more rapid and cost effective.
The Four Tenets of Reactive, as defined by the Reactive Manifesto
Reactive is a set of system design principles that equip development teams to build anything with confidence. It’s a way of thinking about systems architecture and design in a distributed environment where implementation techniques, tooling, and design patterns are components of a larger whole.
The main driver behind modern systems is the notion of responsiveness: the acknowledgement that if the client or customer does not get business value in a timely fashion then they will go somewhere else.
In order to facilitate responsiveness, two challenges need to be faced: being responsive under failure, defined as resilience, and being responsive under load, defined as elasticity. In order to achieve this, the system needs to be message-driven.
Reactive microservice benefits
While it may seem trivial, the application architecture going into your Docker containers and Kubernetes pods matter. With architecture built using reactive microservices, your company can realize significant business benefits, especially in environments that need to deliver new software capabilities quickly and develop applications at scale:
- Global consistency at scale. Reactive microservices harness the power of stateful, data-driven services deployed in an efficient, stateless way to guarantee global consistency while reducing hardware costs.
- Intelligent self-healing. Reactive microservices take advantage of reactive design principles to deliver self-healing protocols that automatically protect your business systems—from code to cluster.
- Highly performant and responsive. Reactive microservices increase performance and responsiveness with less infrastructure, regardless of deployment environment (public, private, hybrid, or on-premise).
Akka is an open-source, message-driven toolkit available on the Java Virtual Machine (JVM) that enables development teams to build reactive microservices. This toolkit breaks down application logic into individual services called “actors,” or autonomous processes.
Akka is downloaded more than 70 million times a month by developers around the world who praise the technology for its ability to fail and self-heal, delivering exceptional resilience and elasticity.
Akka fully supports Kubernetes for cloud-native development, and is currently in use in major Global 2000 companies including Starbucks, Nike, Hewlett-Packard, Amazon, and others.
“Akka has consistently allowed us to cut 80% of infrastructure, or increase overall application performance by 5x, when compared to the traditional systems we replaced.”
— Akara Sucharitakul, Principal MTS at PayPal
Chapter 2: Principles of reactive microservices.
While microservices have many benefits on their own, there are many challenges to building them at scale. Having a way to build systems of microservices uniformly and effectively is an essential element of cloud-native application architecture.
Built on a few core principles, reactive microservices enable teams to deliver scalable, self-healing systems with the right persistence strategies in place for handling unexpected issues gracefully in the cloud.
- Isolation – Development teams can safely deploy reactive microservices and roll out and revert changes incrementally— service by service.
- Autonomy – Reactive microservices make decisions independently, act independently, and cooperate with other services to solve problems.
- Single responsibility – Reactive microservices have a single purpose, a small well-defined responsibility and compose well with other small programs.
- Own state – Each reactive microservice takes sole ownership over their state and persistence.
- Asynchronous – Reactive microservices shift focus to the workflow and communication patterns in the application and help you think in terms of collaboration – how data flows between the different services, their protocols, and interaction patterns.
- Addressable – Reactive microservices are mobile, allowing them to efficiently manage hardware resources.
Traditional | Reactive | |
Speed | A service calling a database to fetch state is SLOW | Each service manages its own state in memory. Services communicate directly with each other asynchronously. The database is accessed asynchronously for event sourcing / event logging. |
Resilience | The database is a single point of failure. Synchronous service to service calls are not scalable and can cause cascading failure | Services automatically rebalance state and workloads and self-heal in cases of failure. |
Scalability |
Services transferring state to each other via the database is a serious bottleneck at scale |
Services automatically scale up to handle peak workloads and scale down when not needed |
How do reactive microservices help your business?
Reactive microservices—built on uniform principles that allow your cloud-native architecture to be truly performant—offer significant advantages for your IT and development efforts in the cloud, contributing directly to the success of your business.
Reactive microservices advantages for executives:
- Reduce business risk
- Faster time to value
- Lower infrastructure costs
Reactive microservices advantages for development teams:
- Happier developers
- Focus on writing missioncritical business logic
- Build new software and features more quickly
How reactive microservices reduce costs
Reactive microservices provide efficient use of computing power, storage, and networking. They can also run millions of transactions at the fraction of the cost of the traditional cloud model, which can be unforgiving when applications aren’t cloud-native.
Reactive microservices give companies back control over developing business features instead of spending precious time and money writing boilerplate code and building frameworks.
Even better, reactive microservices encourage reusability and eliminate business function redundancy. A single set of business services can now serve multiple channels such as web, mobile, and kiosks—there’s no need to rebuild that set of functions for every channel separately.
Reactive microservices in the Fortune 100
Large-scale companies have been building reactive microservices so they can stay competitive while realizing significant cost savings. Let’s explore how two Fortune 100 companies have been successful using reactive microservices to transform their systems and grow their bottom line.
Verizon increases market share
Verizon needed to revamp its e-commerce platform to meet growing customer demand after experiencing regular outages during high-load events, such as iPhone launches and Black Friday. They wanted to do away with a bespoke website that only ran in production for a few days each year.
Reactive microservices helped Verizon achieve results twice as good as their previous platform by:
- Increasing developer productivity – Build times took 50% less developer effort.
- Decreasing infrastructure resources – Total hardware use was cut in half.
- Accelerating time to value – Sales on the new platform increased 235%, while customer conversion rates jumped up 197%, reducing customer response times by half.
The performance and user experience benefits generated by the implementation of reactive microservices were so impressive that the system design pattern is now being considered for adoption by other business units within the company, such as Billing and Point of Sale.
Capital One lowers business risk
As a major provider of auto loans in the United States, Capital One wanted to upgrade their auto loan system to provide accurate decisions in real-time while improving the overall car shopping experience for customers. Another major goal for the company was to simplify the car shopping process for customers by allowing them to find, finance, and fulfill their next car purchase with ease, convenience, and confidence.
Driving Capital One’s new auto loan system is an architecture based on reactive microservices. This architecture has enabled greater business success by:
- Increasing developer productivity – This architecture can now run complex applications supporting up to 16 simultaneous users at 180 to 200 millisecond response times, delivering new features more quickly with fewer failures.
- Decreasing infrastructure resources – With reactive microservices as the foundation, the architecture can process 486 applications a minute compared to at most 100 on a cluster of servers before.
- Accelerating time to value – This new system can handle a computing task that normally takes 55 hours in just under one second—with 24/7 availability at massive scale.
Conclusion
The requirements needed to successfully run systems of microservices in the cloud are far different from those of traditional monoliths.
Akka has emerged as a leading technology to develop microservices using reactive principles. Since it was first created as an opensource project in 2009, the platform’s underlying toolkit—Akka—has evolved to support Kubernetes in building cloud-native applications. As a result, reactive microservices built with Akka Platform run without interruption as nodes join and leave a cluster, while Kubernetes adds and removes nodes as needed to increase capacity and manage hardware failure.
Your organization can mitigate risk of a poor user experience with individually deployable services that will not be taken down by a failure somewhere else. With this level of modularity and distributed interconnectedness, the door opens to integrating your microservices with other mission-critical workloads, including real-time streaming applications.
Before initiating any microservices or cloud migration project, executive team alignment is critical. All stakeholders need to work through the following steps:
- Identify project goals
- Identify specific projects aligned with those goals
- Define success outcomes
While these steps may seem obvious, establishing clear operating parameters at the outset dramatically improves your chances of success. Your company can safely consider technology solutions once these steps are completed.
What should my organization do next?
Reactive microservices are designed to meet the needs for a performant, resilient, and scalable microservice architecture. With more independence between services, development cycles become more rapid and cost effective.
To put these ideas into action in your organization, Akka is offering a unique opportunity to unlock your business value. By participating in a two-hour highly interactive workshop, exclusively for your company, you will be able to discuss a clear roadmap to your organization’s application modernization goals. By the end of the workshop, you will be in a position to identify a specific project for a Proof of Concept to unlock greater business benefits for your company.
Sign up for this workshop today—and explore how reactive microservices can transform your business...fast.