Earlier this summer IBM announced its strategic development and investment partnership with Lightbend, the company spearheading the Reactive movement that’s exploded in popularity as enterprises look for new ways to drive reliability and elasticity into their data-driven applications and systems in the cloud.
In an exclusive to developerWorks, Lightbend CTO, creator of the Akka framework, and original author of the Reactive Manifesto — Jonas Bonér — explains some of the driving forces behind Reactive, the connection between microservices and data-driven applications, and why Lightbend and IBM are excited to bring Reactive microservices to Kubernetes. Two Tutorials follow that will get you started with some of the fundamentals on building and deploying Reactive microservices!
Q: Tell IBM readers about the Reactive movement. It was started only three years ago, but is suddenly everywhere – sort of reminiscent of the early days of the Agile movement. Why is it mainstreaming with enterprise developers?
I think it is four different things. The first is the move to the cloud and multicore architectures. The second is the move to microservices and distributed systems. The third is the move to more data-centric applications—apps driven by data, that need to react to data in real-time. The fourth is the customers—wanting more of everything, more features, more data faster, better uptime, better response times, and have learned to be very picky.
Q: One of the best ways to achieve Reactive is through microservices, and Reactive Platform offers Lagom specifically for building microservices the Reactive way. What is Lagom and how will it help IBM customers building their applications as microservices?
There are two reasons why you want to do microservices, both equally important:
- The first reason is time-to-market, through scaling the development—the need for an architecture supporting multiple autonomous teams, where the teams can develop, deploy and manage their services independently.
- The second reason is resilience and elasticity—the need for an architecture that supports designing systems of autonomous, collaborative, distributed services, with distributed systems at the core of the design.
Most people talk about the first reason, but the latter is too often forgotten or ignored. It’s a fact that distributed systems are hard, but I believe to make the most out of the promise of microservices, you have to embrace it and put Reactive principles at the core of system design.
Lagom is a framework that helps us build Reactive microservices for Java and Scala. It is an opinionated microservices framework that helps the developer make the right decisions from development to production. It does this by building on top of Akka, a distributed systems runtime/fabric that has been hardened by thousands of companies for almost a decade.
Q: Obviously IBM and Lightbend both have customers who also care a lot about data-driven applications, streaming data, and working with frameworks like Apache Spark around cognitive, machine learning, and other streaming uses cases. What does Reactive Platform offer those developers?
More and more systems that are built today are becoming dominated by data. The Lightbend Reactive Platform was built with data-centric applications in mind from the start. It embraces distributed state through Akka, instead of forcing users to resort to a stateless design. It supports building microservices that supports streaming, and asynchronous communication natively, through the use of Akka Streams, Akka Actors, Akka HTTP (supporting HTTP 2), etc. — bridging the worlds of Fast Data and microservices, which were formerly separate.
Lightbend Reactive Platform is built on the principles of the cloud—allowing you to take full advantage of the cloud and its promise of the elasticity—pay as you go, scale up and down, for cost efficiency reasons—and resilience—leveraging clusters of machines. This was the idea of Akka from the start. Akka was “cloud-native” long before cloud-native even became a term.
Q: IBM and Lightbend are working together around developing Reactive microservices on Kubernetes. Why is Kubernetes attractive as a container orchestration solution for microservices workloads?
Kubernetes is the state of the art orchestration technology for microservices. It’s been proven to scale massively beyond thousands of nodes, and it has an extremely active and thriving community, with a growing ecosystem of tools around it. For example the Istio service mesh that IBM is helping build, and tools like Prometheus for monitoring, Helm for packaging, etc. And it has strong commercial backing from so many of the big vendors: IBM, Google, Red Hat, Intel, etc. Where Kubernetes is really focused on how to intelligently manage the server infrastructure across clusters, Reactive is about peak efficiency of the applications themselves—so there are some really interesting intersections that we’re excited to work with IBM and the Kubernetes community on. In fact, for developers interested to get started, IBM and Lightbend have some tutorials that will walk you through how to create Reactive Microservices and deploy them to Kubernetes using technologies like IBM Cloud and IBM Container Services.
Getting Started: Two Reactive Microservices Developer Tutorials
Deploying Lagom application on Kubernetes in IBM Cloud Container Services. Learn how to set up dependencies and deploy microservices using a command line interface. See how the Lagom framework is a perfect fit for running in containers on a modern Kubernetes infrastructure — using IBM Cloud with IBM Container Services.
Deploying Lagom application on Kubernetes in IBM Cloud Private. Learn how to deploy microservices created with Lagom in an IBM Cloud Private environment. See how easy it is to develop a Lagom microservice once, then deploy it to any Kubernetes environment.
For additional resources and more information on the partnership visit IBM Code: Reactive Platform