By the end of the JavaOne 2016 conference, anyone playing the microservices drinking game probably needed to go through detox. But Kai Wahner, Tech Evangelist at TIBCO Software, was able to at least put a new spin on the topic during his talk, “Cloud Native Microservices & Containers in the Middleware World.” During this presentation, Wahner covered a range of topics designed to help enterprise software architects to have a better grasp on what middleware looks like in the microservices world.
The era of the enterprise service buss is coming to a close
Wahner assured attendees that not all middleware is old and heavy. In fact, he and other tech evangelists in the middleware space prefer to speak of application integration rather than ESB to avoid the unfortunate association with failed SOA projects enterprises have experienced in the past. Today’s application integration accomplishes many of the same objectives as an old-fashioned ESB, aiding communication between a CRM, ERM, and other core applications. But modern middleware goes beyond this set of basics to connect with business process integration, IoT, and streaming analytics. And today’s integrated systems are cloud-ready—even if they are not cloud native.
Lessons learned in application integration
As the monolith is being broken into smaller pieces, some aspects of integration have become easier, but others have become more complicated. In Kai’s words, “Everything is an island.” Things are getting smaller. At the same time, buzz words like Agile, fast, scaling, low cost, fail fast, and reduced cycle time are on every tongue. What are the lessons to be learned along the way on the journey to modern middleware?
First, “On-prem will not die because not everything belongs in the cloud.” Banks and airlines are examples of big businesses that have already built applications and infrastructure that works, and works well, on-premise. It’s not cost-effective to put these systems in the cloud since they are already running just fine.
Second, when doing integration for cases like business process management, there are many ways to approach development. Integrators can take a “zero coding” approach, a “code everything” approach, or a middle road. Sometimes a project is more about configuration and mapping than it is about creating new pieces of programming. Kai suggested that this is not the same world as early SOA. “Visual coding works, even for complex scenarios. It helps a lot in many use cases.”
Microservices and the modern enterprise
For his section on microservices, Wahner focused on an airline as an example. The airline’s online system was broken down into its individual services so that different workloads could be handled for each component, from booking flights to checking seat availability or updating customer data. This modularization allowed for greater flexibility and scalability. Another benefit of going modular was that it allowed for improvements to be made bit by bit, looking at each operation instead of hundreds at a time. Even the monolith can be a target for this progressive approach by extracting a few features at a time.
Of course, microservices introduce their own challenges and complexity. To avoid cascading failures, it’s necessary to build solutions that use re-delivery, rerouting, and caching to prevent problems. There’s also the simple fact that it’s necessary to deal with spaghetti communication when there are so many more pieces to integrate. Happily, these are not completely new challenges. “TIBCO has been doing some of this for 20 years with enterprise integration.” Many of the patterns and best practices are similar. Kai also pointed out that microservices are not for every scenario or for all concepts. Just like with cloud and NoSQL, it’s important to determine if the change is really necessary before making a transition.
Finally, Wahner urged developers to design microservices with open APIs in mind. He sees many enterprises achieving great success by making API’s public or available to internal partners. PayPal is the first example that comes to mind, since it has made its payment and shopping cart APIs so readily accessible to virtually every online merchant and retailer on the planet. But it’s not just tech-focused organizations that are focusing on being more open. “Banks, Telco, and airlines are all investing money into API projects to expose their APIs to the outside world.”
For consumers and creators of middleware, microservices, and APIs, the future is bound to be complex. But it will be full of examples of big business taking risks to get it right.