“Keep it simple, stupid” — commonly known as the KISS principle — was a rule invoked by Lockheed aeronautical and systems engineer Kelly Johnson during the design of aircraft for the U.S. Navy during the 1960s. Johnson strongly believed that complexity was the enemy of great design.
IT professionals are looking to apply KISS principles to a growing number of digital technologies, including unified communications (UC) platforms. One way they are doing that is through the increased use of microservices in application architecture. In the microservices approach, developers connect modular components of an application through APIs instead of producing a single, monolithic application.
It’s well known that technology complexity is becoming a huge issue for most organizations. According to a 2018 study conducted by Vanson Bourne, more than three-quarters of CIOs think complexity could soon make it impossible to manage digital performance efficiently. To illustrate, the study noted that a single web or mobile transaction now crosses an average of 35 different technology systems or components, compared to 22 just five years ago.
An overwhelming majority of these CIOs (88 percent) ranked microservices as a key technology investment for addressing this complexity. The modular approach offers particular advantages for UC.
Making UC Simple and Scalable
UC offers fabulous collaboration, communication and productivity benefits. However, it is inherently complex because it isn’t a single application but rather a collection of distinct communication technologies that must be tightly integrated into a single platform and accessible from a multitude of devices. Engineering a UC platform is a complicated process.
UC platforms have traditionally featured a monolithic design in which one comprehensive application performs all key functions. Scaling becomes an issue as more users and more functions are added to the system — organizations typically must add additional compute resources to handle the growth.
A microservices approach improves scalability by breaking apart the UC application, allowing the creation of separate modules for essential functions. When new users or services are added, they can be easily supported by creating additional copies of the modules.
By breaking apps into small components that perform specific functions, a microservices architecture allows developers to update, change, add or remove services on the fly with minimal effect on any other parts of the application. This is markedly different than the traditional “waterfall” approach to app development in which large teams of software engineers gather all known requirements for an application, develop all elements and finally test the app before release.
With microservices, small teams of developers focus on one piece of the app, allowing them to perform continuous integration and deployment, and enabling a cycle of innovation of days or weeks rather than months or years. Because the microservices approach does not require recoding applications for feature upgrades, organizations can rapidly add communication and collaboration services with little risk.
Microservices can also make it easier to integrate UC services with contact center platforms. AI-powered chatbots, customer needs analysis, agent coaching and other modules can be added easily and modified as needed without requiring forklift upgrades or massive retraining programs. Best of all, this approach delivers extreme flexibility by making it easy to scale up during high-volume seasons and then scale back during normal conditions.
The microservices approach is not without challenges. There’s always a risk of sprawl due to ease of deployment, and some organizations have reported that microservices can generate more application data and make it harder to troubleshoot performance issues. Still, the approach makes it simple to experiment with emerging technologies without adding infrastructure or rewriting code. Under the right conditions, microservices can help you kiss complexity goodbye.