Microservices for the Masses with Spring Boot and JHipster - JHipster Dublin 2018

72a2082c6a4dd79ad68befb3db911616?s=47 Matt Raible
September 13, 2018

Microservices for the Masses with Spring Boot and JHipster - JHipster Dublin 2018

Microservices are being deployed by many Java Hipsters. If you're working with a large team that needs different release cycles for product components, microservices can be a blessing. If you're working at your VW Restoration Shop and running its online store with your own software, having five services to manage and deploy can be a real pain.

This presentation will show you how to use JHipster to create Angular + Spring Boot apps with a unified front-end. You will leave with the knowhow to create your own excellent apps!

Bonus: I'll show you how to use Ionic for JHipster to create native applications on mobile. It's pretty darn slick! 👌


* Play by Play: Developing Microservices and Mobile Apps with JHipster - a Pluralsight course I created with Michael Hoffman.

Tutorials demoed:

* Build a Microservices Architecture for Microbrews with Spring Boot
* Develop a Microservices Architecture with OAuth 2.0 and JHipster
* Deploy JHipster to Google Cloud with Kubernetes
* Use Ionic for JHipster to Create Mobile Apps with OIDC Authentication


Matt Raible

September 13, 2018


  1. Microservices for the Masses with Spring Boot and JHipster September

    13, 2018 + = Matt Raible | @mraible Photo by Deane McDermot https://myworldmycamera.com
  2. Blogger on raibledesigns.com and developer.okta.com/blog Web Developer and Java Champion

    Father, Skier, Mountain Biker, Whitewater Rafter Open Source Connoisseur Who is Matt Raible? Bus Lover Okta Developer Advocate
  3. None
  4. None
  5. None
  6. developer.okta.com

  7. Supported Authentication and Authorization Standards

  8. What About You?

  9. Agenda 1. Introduction to Microservices 2. Microservices with JHipster 3.

    Deploying to the Cloud 4. Developing Mobile Apps with JHipster 5. JHipster Roadmap
  10. Part 1 Introduction to Microservices History of Microservices Microservices Architecture

    Philosophy Why Microservices? Demo: A Microservices Architecture with Spring Boot and Spring Cloud
  11. None
  12. Microservices Visionaries

  13. None
  14. “Any organization that designs a system (defined broadly) will produce

    a design whose structure is a copy of the organization's communication structure.” Conway’s Law Melvin Conway 1967
  15. “Do one thing and do it well.”

  16. The Future?

  17. “You shouldn't start with a microservices architecture. Instead begin with

    a monolith, keep it modular, and split it into microservices once the monolith becomes a problem.” Martin Fowler March 2014
  18. None
  19. None
  20. None
  21. start.spring.io

  22. None
  23. Microservices with Spring Boot https://developer.okta.com/blog/2017/06/15/build-microservices-architecture-spring-boot

  24. Demo Using start.spring.io, create: A service registry A gateway A

    catalog service Create an endpoint in the catalog service Create a filtered endpoint in the gateway Show failover capabilities Show Spring Security OAuth https://github.com/oktadeveloper/spring- boot-microservices-example
  25. Microservices with JHipster What is JHipster? Installing and Using JHipster

    JHipster’s Microservice Features Progressive Web Applications Overview Part 2
  26. What is JHipster? https://www.jhipster.tech

  27. A powerful workflow to build your application with Yeoman, Webpack/

    Gulp and Maven/Gradle JHipster Goals A sleek, modern, mobile-first front- end with Angular and Bootstrap A high-performance and robust Java stack on the server side with Spring Boot A robust microservice architecture with JHipster Registry, Netflix OSS, Elastic Stack, and Docker
  28. How to Use JHipster Install JHipster and Yeoman, using npm:

    npm install -g generator-jhipster Create a directory and cd into it: mkdir newapp && cd newapp Run it! jhipster
  29. https://www.jhipster.tech/microservices-architecture

  30. yelp.com/callback Back to redirect URI with authorization code Exchange code

    for access token and ID token accounts.google.com Email ********** Go to authorization server Redirect URI: yelp.com/cb Scope: openid profile Authorization Server yelp.com Connect with Google Resource owner Client accounts.google.com 
 Allow Yelp to access your public profile and contacts? No Yes Request consent from resource owner Hello Matt! accounts.google Get user info 
 with access token /userinfo OAuth 2.0 and OIDC
  31. Monolith Examples JHipster 5 Demo https://github.com/mraible/jhipster5-demo https://youtu.be/-VQ_SVkaXbs 21-Points Health https://github.com/mraible/21-points

  32. Progressive Web Apps Originate from a secure origin, load while

    offline, and reference a web app manifest.
  33. Progressive Web Apps Can be installed on your mobile device,

    look and act like a native application, but are distributed through the web.
  34. Progressive Web Apps Are fast!

  35. “We’ve failed on mobile.” Alex Russell https://youtu.be/K1SFnrf4jZo

  36. Use your browser’s network & CPU throttling Mobile Hates You!

    Get a ~$150-200 unlocked Android (e.g. Moto G4) Implement the PRPL pattern Test with Lighthouse
  37. Lazy-load and create remaining routes on demand The PRPL Pattern

    Render initial route Push critical resources for the initial URL route Pre-cache remaining routes
  38. https://developer.okta.com/blog/2017/07/20/the-ultimate-guide-to-progressive-web-applications

  39. Demo Using JHipster, create: A gateway A store microservices app

    A blog microservices app Generate entities in apps and on gateway Convert gateway to be a PWA Run everything in Docker https://github.com/oktadeveloper/okta- jhipster-microservices-oauth-example
  40. Part 3 Deploy to the Cloud Options for Deploying JHipster

    Heroku Cloud Foundry AWS Google Cloud Microsoft Azure
  41. For monoliths: jhipster heroku For microservices: Deploy JHipster Registry Build

    and deploy microservice Build and deploy gateway http://bit.ly/heroku-jhipster-microservices
  42. For monoliths: jhipster cloudfoundry For microservices: Deploy JHipster Registry Build

    and deploy microservice Build and deploy gateway http://www.jhipster.tech/cloudfoundry
  43. Using Elastic Container Service jhipster aws-containers Using Elastic Beanstalk jhipster

    aws Boxfuse boxfuse run -env=prod http://www.jhipster.tech/aws http://www.jhipster.tech/boxfuse
  44. mvn package -Pprod dockerfile:build jhipster kubernetes kubectl apply -f <app-name>

    https://developer.okta.com/blog/2017/06/20/ develop-microservices-with-jhipster
  45. Demo Build Your JHipster App for Production Deploy with Kubernetes

    and Minikube Deploy to Google Cloud https://github.com/oktadeveloper/ jhipster-microservices-example
  46. Part 4 Developing Mobile Apps with JHipster What is Ionic?

    Why? Ionic Module for JHipster JWT and OIDC Support Entity Generator
  47. Ionic Ionic Framework Develop Hybrid & PWA Apps https://ionicframework.com Stencil

    Vanilla Web Components https://stenciljs.com PWA Toolkit Lightning fast PWAs https://github.com/ionic- team/ionic-pwa-toolkit
  48. Why? The first version of 21-Points Health I wrote with

    JHipster 2.x was painful to use on a mobile device. Versions 4.x and 5.x are better, but still not great. I want to develop the best user experience. Native apps are painful to distribute, but work better than PWAs (on iOS).
  49. How is a mobile app for JHipster different from its

    Angular UI?
  50. Run it! yo jhipster-ionic Ionic Module for JHipster Because Ionic

    Apps need some JHipster too! https://github.com/oktadeveloper/ionic-jhipster-starter Install Ionic and the Ionic Module for JHipster, using npm: npm install -g ionic generator-jhipster-ionic Profit!
  51. Create an app: ignite new myapp --boilerplate ignite-jhipster Ignite JHipster

    https://github.com/ruddell/ignite-jhipster Install Create React Native App and Ignite CLI, using npm: npm install -g create-react-native-app ignite-cli Ignite! A React Native boilerplate for JHipster apps
  52. Demo Create an Ionic app for JHipster Generate entities that

    exist on gateway Deploy to emulator Deploy to phone https://github.com/oktadeveloper/ okta-ionic-jhipster-example
  53. Part 5 JHipster Roadmap What You Learned What’s Next for

  54. What You Learned

  55. What’s Next for JHipster? JHipster v5.0 June 2018 start.jhipster.tech Spring

    WebFlux Support Blueprint Support React Support
  56. React PWA with JHipster 5 https://developer.okta.com/blog/2018/06/25/react-spring-boot-photo-gallery-pwa

  57. The JHipster Mini-Book
 Written with Asciidoctor Quick and to

    the point, 160 pages Developed a Real World App: www.21-points.com Free Download from InfoQ: infoq.com/minibooks/jhipster-mini-book
  58. Learn More stackoverflow.com Spring Boot spring.io/guides JHipster www.jhipster.tech Okta APIs

  59. developer.okta.com/blog @oktadev

  60. Thanks! Keep in Touch raibledesigns.com @mraible Presentations speakerdeck.com/mraible Code github.com/oktadeveloper