- New PaaS offerings from IBM, Red Hat, and Pivotal will include reactive programming in coming months.
- Reactive microservices will play a key role in furthering migration from monolithic to microservices in 2019.
Open source software bodies have turned up the heat on important microservices technologies, grabbing the attention of startups in recent years and larger cloud service providers more recently. IBM, Red Hat, and Pivotal are readying reactive microservices technologies for the coming months, innovations which add real-time streaming and machine learning to cloud-based applications and support a critical component for enterprises migrating from monolithic to microservices-based apps.
Reactive programming is essential to enterprises writing applications for end users who expect responsive, resilient, and meaningful interactions which can only be processed via large data streams. A DevOps model is tasked with reducing resource usage and providing execution efficiency, so a reactive method represents a more flexible model of scaling microservices up and down and freeing up resources for other apps. For an introduction to reactive microservices, including a working definition, key OSS technologies, and a state-of-the-market of core traditional vendors and startups participating in this emerging space, please see “DevOps Newest Shot in the Arm: Reactive Microservices” from February 5, 2019.
Momentum has been building around reactive microservices since 2017, when Java 9 and Spring Framework included reactive capabilities in new releases. Pioneers including Lightbend and Netifi, respectively, have been evangelizing the benefits of reactive microservices to enterprise developers of cloud-native and data-driven apps. Reactive microservices are referred to by startup Lightbend as an inherently message-driven architecture, increasing DevOps’ ability to improve the resiliency and elasticity of microservices. This, in turn, allows enterprises to maintain responsiveness to end users, as part of a cloud-native and data-centric model. Lightbend is a reactive microservices startup helping launch this space through a comprehensive solution and partnering closely with IBM. (During next week’s IBM Think conference in San Francisco, I expect to learn more on IBM’s ongoing DevOps strategy shored by its integration services and Microclimate microservices framework as part of the IBM Cloud.)
Reactive microservices’ value comes through its ability to manage and respond to the influx of messages which occur in a continuous distribution model running across VMs. The technology is associated primarily with the terms ‘back pressure’ and ‘reactive streams,’ which seek to manage event-based streams as part of a more powerful continuous delivery system. For example, back pressure addresses which protocol will be used when systems and services are overloaded. Reactive streams and back pressure are tasked with keeping backend systems up and running and able to cope with a high volume of random data in motion. As noted, this big data management role is driven by the need for continuous delivery among modern apps designed to tap into, modify, filter, and route large amounts of data. ML also plays a major role and is embedded into the streaming process.
Driving this emerging technology is DevOps’ increased involvement in moving applications to multi-cloud environments as part of their transition into microservices and distributed systems, or CICD. Higher expectations among users have prompted a push towards data-centric apps which improve the user experience to ensure more immediate and meaningful interactions. Enabling technologies supporting enterprise developers’ move towards new microservices and serverless architectures include big data, responsive mobile UX, AI and ML, and IoT. A use case for reactive microservices includes IoT sensors, which will have an ML feed to make sense of sensor data while feeding subsequent data down the line and applying intelligence to the flow and management of data. Reactive systems represent a much more modern approach to traditional ways of managing big data and data lakes, therefore making this IoT use case more feasible.