A microservices architecture that develops applications as a suite of modular components or services may be largely transparent to enterprise users, but it can have a profound impact on service providers' ability to scale their communications services on unified communications platforms.
Unified communications platforms and infrastructure have been traditionally built around a Monolithic style of hardware or application development, where a single, all-encompassing application performs all of the functions of the UC application, such as call control, collaboration functionality or call detail record collection and analytics.
In terms of UC, most of the on-premises PBXs and UC platforms are still monolithic. They are essentially deployed as a large application on servers. Because every part of the app is running on each server, the overhead increases when providers need to scale up the application.
While a monolithic architecture can work on a small scale, such as supporting a single business or enterprise, the single-application approach does not scale efficiently for a service or cloud provider. The overhead of all the extra weight on the app becomes a challenge when providers have a platform with thousands or hundreds of thousands of users.
As the number of users on an application grows, providers have to add more and more compute resources to the unified communications platform, regardless of whether all of the application functionality is being used or not. In addition, because a monolithic application has all of the application functionality rolled into it, updating or upgrading it can be a cumbersome process. It can require the entire application be taken offline, forcing providers to create windows for downtime and measured release cycles, and it could potentially interrupt the service enterprise customers depend on.
A unified communications service platform built around a microservices architecture, however, breaks apart the UC application, enabling call control, analytics or billing modules to be built and maintained separately. That opens up a wealth of possibilities for providers.
As independent, but integrated applications, the UC stack in a microservices architecture gains flexible scaling. For example, in a microservices architecture, supporting additional voice traffic is handled by spawning additional copies of the call control service, rather than launching additional copies of a monolithic UC application. Also, analytics, billing or collaboration services only use exactly the amount of compute and other resources needed to handle current demand.
In addition, the independent nature of the elements in a microservices infrastructure enables discrete update and application maintenance cycles for each of the services. An update for analytics, for example, does not have to affect a mature call control application. For a service provider or communications vendor, using a microservices architecture for a unified communications platform is the path to increased innovation, agility and scalability of services.
The architecture is one of many things an enterprise should consider in evaluating unified communications platforms. If a provider has a microservices architecture in place, it can avoid the growing pains that come with scaling a service as a business grows.
Do you have a question for Michael Brandenburg or any other experts? Ask your enterprise-specific questions today! (All questions are treated anonymously.)
Dig Deeper on Unified Communications Architecture and Service Models
Related Q&A from Michael Brandenburg
Mobile collaboration apps help remote workers keep in touch during stay-at-home orders. They are also key to communications flexibility as workers ... Continue Reading
Several challenges can make it difficult to connect frontline employees to communication and collaboration tools. Learn what approaches can improve ... Continue Reading
Choosing the right team collaboration apps for your business must include looking at your organization's security and compliance needs. IT should ... Continue Reading