So today was the last day of the JavaOne conference, sad! Today’s agenda involved thetraditional JavaOne Community (Comedy) Keynote and another session on Microservices.
Although the hype around the topic of microservices certainly isn’t as high as it would be at specially aligned conferences, you can just feel that there is so much need for discussion around it now – especially in the Java community. What better place than JavaOne?Microservices and Java EE
My first event dedicated to microservices was Reza Rahman (Oracle) and Steve Millidge’s (Payara) session,appropriately titled “Down-to-Earth Microservices with Java EE”. You could see thatRahmanisa 100% advocate of Java EE, and it was obvious very quickly that he wasn’t the biggest fan of microservices:
I’m not here to CHEERLEADmicroservices. I’m here to give you a realistic view on it.
I really liked Rahman’s definition, too:
The problem is, microservcies are not necessarily micro and are not necessarily services. For me, building a microservice-based system means taking a large system and separating it into smaller, separately deployable parts.
From a purely technological point of view, Java EE has everything it needs to develop microservices, says Rahman – and I absolutely agree. For many years, in addition to the necessary APIs for implementing RESTful services, toolshave also existed for management and monitoring. Anything else would frankly be surprising, since Java EE is not just a collection of APIs but an enterprise computing platform.
After Rahman chatted about microservices in general and the possibility of implementation using Java EE, Steve Millidge referenced the Cargo Tracker Application– a kind of blueprint for combining Java EE and DDD – which makesa monolith into a microservice-based application thatcan then be migrated. To this end, he extracted a service from the monolithic Cargo Tracker Application and deployed it several times separately in connection with access from the original application. This was carried out on the server’s various instances via a load balancer. Sources fromthe demo can be found on GitHuband are definitely worth a closerlook.SEE ALSO: JavaOne 2015 Diary – Day 3 (a.k.a Day 4)
Millidge’s demo was really well done.Above all, this example shows how the complexity (and with it the risk) of development decreases with the gradual migration of a monolith to a microservice-based architecture, while the areas of deployment, management and monitoring take on even more meaning (DevOps, here’s your cue). And to prove that this requires a large degree of discipline, one need look no further than the microservice role model that is Netflix.
Of course, Rahman is right when he claims that Java EE brings all essential elements along for the implementation and operation of microservices. However, I personally can’t imagine that Netflix would be able to operate successfullyif several hundred services were deployed via aJava EE server, a hundreds times a day. This certainly works for some, but beyond that there must bean alternative. There are nowa number of server manufacturers and suppliers recognising the Java EE environment and offering appropriate solutions, such as TomEE Shades, Wildfly Swarm, Payara Micro, GlassFishand KumuluzEE. All of these solutions are capable of bundlingJava EE components together with their own (micro) service as a separate bootable JAR, then operate as a standalone service. Alternatively, even a glance at Drop Wizard or SpringBootwouldn’t hurt.Microservicesand the other stuff you need
My impression is that microservicesdon’t eliminate the existing complexity of an enterprise application, but shift it from development into the area of operations. To this end, thesession “Building a Microservice Ecosystem: Some Assembly (still) Required” by Daniel Bryant (Open Credo) confirmed my thoughts. Apart from the fact that I have never heard a speaker talkso fast in my life, the session was really informative and gave a good overview of possible tools one could use for a successful microservice ecosystem (Build, Test, Deploy, Operate and Observe). A look at Bryant’s slideswould be worthwhile for those interested – even if they onlyreflect a fraction of what Bryant dished out advice-wise in60 minutes ofaudio.SEE ALSO: JavaOne 2015 Diary – Day 2
Also of interest would be the blog post “Anatomy of a Modern Production Stack”by Joe Bedas, which Bryant referred to in his talk. Bedas describes how a modern production stack with quality characteristics should look to him: Debuggable, self healing, self managing, supporting and efficient.
From this talk I’ve taken ina lot ofinformation, but two quotations wereespecially poignant:
“A Microservice is an application that fits in your head.”James Lewis, ThoughtWorks
“Monitoiring is all about the people!”Daniel Bryant, Open Credo
… So true!One conference ends, another begins
Slowly, but surely, the JavaOne has cometo an end. It’s now time for me to pack my bags and return togood ol’ Germany. There, the WJAX in Munich awaits me. I’m looking forwardto sharing thepositive impressions of JavaOne, which I hope will pique theinterests of other attendees.Feel free to speak to me if we bump into each other!