On the origin of applications: From monolith to microservices
|Pat Bakey in Cloud Services Monday, July 31, 2017|
How cloud services and architectures are constantly evolving to stay in touch to remain useful to cloud customers.
Like vital organs and physical traits that maximize vitality and enhance survival, the most successful enterprise applications are those that help companies adapt to the changing business environment: scalability, agility, speed and personalization. All of these components are driving an insatiable hunger to innovate, and are selecting application architectures that allow them to do so.
It is these driving factors that have led to the evolution of applications we are seeing: a shift toward microservices designed to encapsulate specific functionality and away from monolithic, all-in-one packages, forever changing the speed and nature of business innovation and our perception of what is possible. As Carsten Thoma, president and co-founder of SAP Hybris, puts it: microservices "might be even more disruptive than any other tech paradigm shift that has come before."
Where the Monolith Ends
Enterprises have traditionally relied on large, all-inclusive coding applications to fulfill customer expectations, but this has changed with advancements in microservice applications. Key capabilities for managing analytics - data input/output, processing, UI and error handling - were all packaged into a single, monolithic process. The trouble with this framework - especially for industries like oil & gas, manufacturing and supply chain that rely on real-time data insights from numerous sources and processes - is that it has limits in terms of scale and speed.
For example, National DCP - the exclusive supply chain management company for Dunkin Donuts - might experiment with new tracking mechanisms that require additional GPS, data entry and logistics capabilities. Microservice applications allow a more specific business challenge to be solved with speed and agility. In contrast, to accomplish this task using a monolithic application developers would need to reiterate the entire application's design. This is not only slower but also higher risk as scaling the entire ERP requires debugging and other trouble-shooting measures to be taken.
This example from National DCP, among others, is where microservices shine and enterprises have taken notice.
At their core, microservices are smaller component applications that can be customized around specific business capabilities and combined with others to form a large, cohesive program of interconnected services. The benefit of this becomes clear when you consider the alternative: a clustered monolith whose computing power is used to accomplish several capabilities at once, which is less than optimal. The primary advantages of microservices are that their structures are easier to maintain, can be refined without having to edit the larger collective suite, and fulfill the Single Responsibility Principle that emphasizes the value of having specialized services. All in all, microservices, coupled with the scalable nature of running in the cloud, give businesses the ability to quickly change, test and refine offerings based on customer feedback and insight.
When working with a microservices architecture, decentralized developer teams can collaborate to take customer feedback and adapt offerings accordingly. For example, SAP Hybris Revenue Cloud, which is based on a microservices architecture, enables partners and customers to build and harness flexible extensions and solutions. This allows customers to build new subscription- and usage-based offers grounded in deep customer insights. Changing one portion of a larger offering can be done quickly, whereas with monolithic architecture-based solutions, there is a much longer and more complicated process for making these types of changes. This agility gives organizations a leg up on the competition as the overall customer experience improves dramatically with this type of constant refinement.
How to Evolve
This isn't to say that monolithic architectures are not useful across the board, but the surge in microservices popularity lies in their ability to be tailored and rapidly deployed to enhance existing applications without disrupting the entire system. Case in point, a wholesale distributor could leverage microservices to upend their traditional order management system to adjust to their customers' specific products, provide a personalized digital business model and create a new generation of business applications. Theoretically, this capability could help optimize their omnichannel and have a system optimized CRM.
It is in this type of specialization where we are seeing leaps and bounds being made in the enterprise as microservices designed to accomplish specific tasks have become the norm. I suspect that we will uncover innovations months from now that we would otherwise think impossible in years past thanks to the efforts and innovation being driven by leaders in manufacturing, oil & gas, financial services and other vertical industries that are experiencing disruption.
Clouds are distributed technology platforms that leverage sophisticated technology innovations to provide highly scalable and resilient environments that can be remotely utilized by organizations in a multitude of powerful ways. To successfully build upon, integrate with, or even create a cloud environment requires an understanding of its common inner mechanics, architectural layers, and models, as well as an understanding of the business and economic factors that result from the adoption and real-world use of cloud-based services.
Learn the best ways to organize your app development projects, and keep code straight, clients happy, and breathe a easier through launches.
The ultimate hands-on Linux user guide.
Write and run code every step of the way, using Android Studio to create apps that integrate with other apps, download and display pictures from the web, play sounds, and more. Each chapter and app has been designed and tested to provide the knowledge and experience you need to get started in Android development.
How to create a profitable, sustainable business developing and marketing mobile apps.
This content is made possible by a guest author, or sponsor; it is not written by and does not necessarily reflect the views of App Developer Magazine's editorial staff.