Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Others Talk,
We Listen.
Down-to-Earth
Microservices
with Java EE
Reza Rahman
Senior Architect
rrahman@captechconsulting.co...
CapTech
Full-service US national IT consulting firm that focuses on client best interests,
trust, servant leadership, cult...
Agenda
• What exactly are microservices?
• Are microservices for you?
• Microservices and Java EE
Copyright © 2015 CapTech...
What’s in a Name?
• “Microservices” very vague
• Big hurdle to practical adoption by average Joe developer
• Poor naming r...
What’s in a Name?
• Decomposing larger systems into smaller independently deployable
parts
• Purists distance themselves f...
The Promise
• As systems grow, they become harder to maintain without modularity
• Ideal size for “monolithic” team is som...
The Reality
• Long well-understood downsides of distributed systems
• Significantly more complex administration, deploymen...
The Reality
• The Bottom Line
• Majority of systems probably just fine as “monoliths”
• Majority of systems needing micros...
A Picture Says a Thousand Words…
For most ordinary “blue collar” IT organizations “microservices nirvana” is
probably more...
Microservices and Vanilla Java EE
Copyright © 2015 CapTech Ventures, Inc. All rights reserved.
JAX-RSJAX-RS
JSFJSF
JMSJMS ...
Pragmatic Java EE Microservices Demo
https://github.com/m-reza-rahman/javaee-pragmatic-microservices
Copyright © 2015 CapT...
Microservices Buzzword Bingo
• Fat jars, uber jars, “containerless”, microframeworks
• WildFly Swarm, Payara Micro, WebSph...
Microservices and Java EE
Copyright © 2015 CapTech Ventures, Inc. All rights reserved.
http://microprofile.io
Java EE 9
• Dynamic configuration, health-check, OAuth, OpenID
• Fat jars, Java SE 9 modules
• Dynamic discovery, circuit-...
Summary
• Microservices newest incarnation of ideas with a long history, the last major
incarnation being SOA.
• Microserv...
Resources
• Microservices Premium by Martin Fowler
• https://martinfowler.com/bliki/MicroservicePremium.html
• Microservic...
Copyright©2015CapTechVentures,Inc.Allrightsreserved.
Upcoming SlideShare
Loading in …5
×

Down-to-Earth Microservices with Java EE

97,516 views

Published on

Microservices have become the new kid of the buzzword block in our ever colorful industry. In this session we will explore what microservices really mean within the relatively well established context of distributed computing/SOA, when they make sense and how to develop them using the lightweight, simple, productive Java EE programming model.

We'll explore microservices using a simple but representative example using Java EE. You'll see how the Java EE programming model and APIs like JAX-RS, WebSocket, JSON-P, JSON-B, Bean Validation, CDI, JPA, EJB 3, JMS 2 and JTA aligns with the concept of microservices.

It may or may not surprise you to learn in the end that you already know more about microservices than you realize and that it is an architectural style that does not really require you to learn an entirely new tool set beyond the ones you already have. You might even see that Java EE is a particularly powerful and elegant tool set for developing microservices.

Published in: Technology

Down-to-Earth Microservices with Java EE

  1. 1. Others Talk, We Listen. Down-to-Earth Microservices with Java EE Reza Rahman Senior Architect rrahman@captechconsulting.com @reza_rahman
  2. 2. CapTech Full-service US national IT consulting firm that focuses on client best interests, trust, servant leadership, culture, professionalism and technical excellence. #28 in Vault's Consulting Top 50 #3 Best Consulting Internship #9 Best Overall Internship #1 in Meeting Client’s Needs #7 Best Firm to Work For #1 in Career Development Ranked for the 7th Consecutive Year Copyright © 2015 CapTech Ventures, Inc. All rights reserved.
  3. 3. Agenda • What exactly are microservices? • Are microservices for you? • Microservices and Java EE Copyright © 2015 CapTech Ventures, Inc. All rights reserved.
  4. 4. What’s in a Name? • “Microservices” very vague • Big hurdle to practical adoption by average Joe developer • Poor naming regime, including “monolith” • Overloaded by commercial interests • Simple concept with a long history • UNIX, CORBA, Jini, RMI, EJB 1/2, COM/DCOM, OSGi, SOAP/ESB • An intellectually honest name could be “Son of SOA” Copyright © 2015 CapTech Ventures, Inc. All rights reserved.
  5. 5. What’s in a Name? • Decomposing larger systems into smaller independently deployable parts • Purists distance themselves from SOAP, ESB • Purists embrace mostly REST and messaging • Purists take for granted testing, DevOps, continuous delivery • Purists focus on (ridiculously) fine grained services Copyright © 2015 CapTech Ventures, Inc. All rights reserved.
  6. 6. The Promise • As systems grow, they become harder to maintain without modularity • Ideal size for “monolithic” team is somewhere around 10-12 engineers • Distributed systems can enforce better modularity • Greater agility – maybe • Easier to scale – maybe • Polyglot programming – maybe Copyright © 2015 CapTech Ventures, Inc. All rights reserved.
  7. 7. The Reality • Long well-understood downsides of distributed systems • Significantly more complex administration, deployment and monitoring • Significantly harder testing, debugging, diagnostics, reliability, consistency • Code duplication - the challenges of finding module boundaries • Higher skill and automation requirements for development and operations • “Distributed big ball of mud” • “Fallacies of distributed computing” Copyright © 2015 CapTech Ventures, Inc. All rights reserved.
  8. 8. The Reality • The Bottom Line • Majority of systems probably just fine as “monoliths” • Majority of systems needing microservices would be considered “hybrids” by purists • Few practical enterprise systems can or need to achieve “microservices nirvana” • Business and system needs most of the time make decomposition lines obvious Copyright © 2015 CapTech Ventures, Inc. All rights reserved. DDD Bounded Context
  9. 9. A Picture Says a Thousand Words… For most ordinary “blue collar” IT organizations “microservices nirvana” is probably more like microservices hell. Copyright © 2015 CapTech Ventures, Inc. All rights reserved.
  10. 10. Microservices and Vanilla Java EE Copyright © 2015 CapTech Ventures, Inc. All rights reserved. JAX-RSJAX-RS JSFJSF JMSJMS WebSocketWebSocket JSONJSON CDICDI Bean Validation Bean Validation EJB 3EJB 3 JPAJPA AdministrationAdministration MonitoringMonitoring High Availability High Availability SecuritySecurity ResourcesResources
  11. 11. Pragmatic Java EE Microservices Demo https://github.com/m-reza-rahman/javaee-pragmatic-microservices Copyright © 2015 CapTech Ventures, Inc. All rights reserved.
  12. 12. Microservices Buzzword Bingo • Fat jars, uber jars, “containerless”, microframeworks • WildFly Swarm, Payara Micro, WebSphere Liberty, KumuluzEE, TomEE embedded, Spring Boot • Containers • Docker • Cloud, IaaS, PaaS • AWS, OpenShift, Oracle Cloud, BlueMix, Cloud Foundry • Dynamic discovery, client-side load-balancing, circuit-breakers/bulkheads, health-check/metrics • Ribbon, Hystrix, RxJava, NetFlixOSS Copyright © 2015 CapTech Ventures, Inc. All rights reserved.
  13. 13. Microservices and Java EE Copyright © 2015 CapTech Ventures, Inc. All rights reserved. http://microprofile.io
  14. 14. Java EE 9 • Dynamic configuration, health-check, OAuth, OpenID • Fat jars, Java SE 9 modules • Dynamic discovery, circuit-breakers/bulkheads/client-side load-balancing • NoSQL, state management, eventual consistency, events Copyright © 2015 CapTech Ventures, Inc. All rights reserved.
  15. 15. Summary • Microservices newest incarnation of ideas with a long history, the last major incarnation being SOA. • Microservices is a valuable architectural technique that is pretty technology agnostic. • Microservices are not necessarily for everyone, not necessary always and not necessarily all-at-once. • Vanilla Java EE is a very capable platform for pragmatic microservices more relevant to ordinary IT organizations, “monoliths” and everything in between. • The Java EE ecosystem is already stepping up to support even the niche of microservices nirvana. Copyright © 2015 CapTech Ventures, Inc. All rights reserved.
  16. 16. Resources • Microservices Premium by Martin Fowler • https://martinfowler.com/bliki/MicroservicePremium.html • Microservices is SOA, for those who know what SOA is • http://service-architecture.blogspot.com/2014/03/microservices-is-soa-for-those • Java EE Tutorials • http://docs.oracle.com/javaee/7/tutorial/doc/home.htm • Pragmatic Microservices Lab • https://github.com/m-reza-rahman/pragmatic-microservices-lab Copyright © 2015 CapTech Ventures, Inc. All rights reserved.
  17. 17. Copyright©2015CapTechVentures,Inc.Allrightsreserved.

×