Like every year, I attended JavaOne (part of Oracle World) in San Francisco in late September 2016. This is still one of the biggest conferences around the world for technical experts like developers and architects.
I planned to write a blog posts about new trends from the program, exhibition and chats with other attendees. Though, I can make it short: Besides focus on Java platform updates (Java 9, Java EE 8, etc.), I saw three hot topics which are highly related to each other: Microservices, Docker, and Cloud. It felt like 80% of non-Java talks were about these three topics. The other 20% were Internet of Things (IoT), DevOps and some other stuff. Middleware was also a hot topic. Not always directly, but I was in several talks focusing on integration, orchestration of microservices, (IoT) gateways.
Cloud-Native Microservices and Containers in the Middleware World
No surprise that my talk this year also focused on these hot topics - specifically focusing on middleware. However, the focus was a different one than most other presentations: I talked about the journey, which middleware has to undergo these days.
I discussed the move from a classical middleware - often called Enterprise Service Bus (ESB) – to cloud-native middleware microservices. This sessions explained the relation to new concepts like Docker containers, DevOps, and modern open source cloud platforms like CloudFoundry, Kubernetes, or Apache Mesos.
Is Middleware still necessary in the Era of Cloud and Microservices?
Interesting side note: Some attendees asked me: “Is middleware even needed after everybody moves to microservices?” I get the same question often. Not just at conferences, but also from customers.
One of these guys already answered the question by himself before I could respond: “Well, as there are so many independent microservices, different technologies, cloud services and edge devices like IoT, I think the answer is YES, there is still a need for middleware, right?!”.
I added to this: “I can assure you: The answer is YES. You need even more middleware than before. You need to interconnect everything! Within your enterprise, remote edge IoT devices, partner services, with cloud services, and also open it up for the external world, i.e. users you do not even know today…
However, middleware changed in the last years. It is not the heavyweight central platform anymore, but a hybrid integration platform, which serves all the various use cases and different audience (like integration specialists, ad-hoc integrators, and even business users). The tooling got more lightweight, and cloud-native!
10 Lessons Learned from Building Cloud-Native Middleware Microservices
In addition to focusing on many related concepts, technologies and cloud platforms, my session also discussed 10 lessons learned from building cloud-native middleware microservices together with our customers in the last months:
- On premise will not die. Not everything will or should go to the cloud!
- Tools (visual coding) works, even for very complex scenarios. Forget the early 2000 SOA days!
- Microservices are not free lunch. They do not fit into every scenario!
- Design Microservices with open APIs in mind!
- Cloud-Native means much more than a “cloud-washed” application deployed to a cloud provider!
- Microservices and Containers are often used together, but also work very well without each other!
- Containers are a lower level technology. Only the infrastructure provider should care, but not the application developer!
- Be cloud platform agnostic. The world changes fast!
- Automation (CI / CD / DevOps) and the related cultural change is key for success. Especially for Cloud-Native Microservices!
- Establish a hybrid integration architecture to solve different business requirements!
I will publish a more detailed post about these 10 lessons learned soon.
Slide Deck from JavaOne 2016 about Cloud-Native Middleware Microservices
Here is my slide deck from my JavaOne presentation:
Live Demo: Build and Deploy a Middleware Microservice with Docker, Kubernetes, Cloud Foundry, Consul, Spring Cloud Config
The following 20min live demo shows how to deploy a single (i.e. built just once) TIBCO BusinessWorks Container Edition microservice to different cloud and container platforms: Docker, Kubernetes, and Pivotal CloudFoundry. The video also shows how to leverage other cloud-native open source frameworks such as Consul and Spring Cloud Config for distributed configuration management and service discovery of middleware microservices.
As always, I appreciate any comments or feedback.