What's New in JHipsterLand - Devoxx US 2017

What's New in JHipsterLand - Devoxx US 2017

YouTube: https://youtu.be/N5bN-wvLZMg

JHipster is an application generator that allows you to create monoliths or microservices based on Spring Boot and Angular. It leverages Spring Cloud for microservices and contains best-of-breed JavaScript and CSS libraries for creating your UI. In this session, you’ll learn about what’s new in JHipster. Possible topics include Angular 2, Progressive Web Apps, HTTP/2, JUnit 5 and Spring 5.

Demo code: https://github.com/mraible/devoxxus-jhipster-microservices-demo

72a2082c6a4dd79ad68befb3db911616?s=128

Matt Raible

March 21, 2017
Tweet

Transcript

  1. What’s New in JHipsterLand Matt Raible • @mraible •

  2. Blogger on raibledesigns.com UI Architect and Java Champion Father, Skier,

    Mountain Biker, Whitewater Rafter Web Framework Connoisseur Who is Matt Raible? Bus Lover Okta Developer Evangelist
  3. None
  4. Authentication Standards

  5. About You Are you a Java developer that likes Spring?

    Do you like JavaScript? TypeScript? Anyone using Angular? Have you used JHipster before?
  6. JHipster jhipster.github.io

  7. JHipster is Open Source Web Statistics, February 2017 500K Page

    Views 39K Downloads GitHub Statistics 6388 Stars 309 Contributors www.openhub.net/p/generator-jhipster
  8. JHipster Downloads

  9. How to use JHipster To install JHipster and Yeoman, use

    npm: npm install -g yo generator-jhipster Then create a directory and cd into it: mkdir myapp && cd myapp Then run Yeoman: yo jhipster
  10. None
  11. Feature In JHipster 4? Angular ✅ Progressive Web Apps ❌

    HTTP/2 ✅ JUnit 5 ❌ Spring 5 ❌ Bootstrap 4 ✅ What’s new in JHipsterLand?
  12. None
  13. HTTP/2 Binary, instead of textual Fully multiplexed, instead of ordered

    and blocking Can use one connection for parallelism Uses header compression to reduce overhead Allows servers to “push” responses proactively into client caches
  14. HTTP/2 in JHipster /* * Enable HTTP/2 for Undertow -

    https://twitter.com/ankinson/status/829256167700492288 * HTTP/2 requires HTTPS, so HTTP requests will fallback to HTTP/1.1. * See the JHipsterProperties class and your application-*.yml configuration files * for more information. */ if (jHipsterProperties.getHttp().getVersion().equals(JHipsterProperties.Http.Version.V_2_0)) { if (container instanceof UndertowEmbeddedServletContainerFactory) { ((UndertowEmbeddedServletContainerFactory) container) .addBuilderCustomizers((builder) -> { builder.setServerOption(UndertowOptions.ENABLE_HTTP2, true); }); } }
  15. HTTP/2 in JHipster # =============================================================================================== # To enable SSL, generate

    a certificate using: # keytool -genkey -alias blog -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650 # # You can also use Let's Encrypt: # https://maximilian-boehm.com/hp2121/Create-a-Java-Keystore-JKS-from-Let-s-Encrypt-Certificates.htm # # Then, modify the server.ssl properties so your "server" configuration looks like: # # server: # port: 8443 # ssl: # key-store: keystore.p12 # key-store-password: <your-password> # keyStoreType: PKCS12 # keyAlias: blog # =============================================================================================== jhipster: http: version: V_1_1 # To use HTTP/2 you will need SSL support (see above the "server.ssl" configuration)
  16. None
  17. JUnit 5

  18. Spring 5

  19. Spring Boot 1.5 Apache Kafka Support Cloud Foundry actuator extensions

    Spring Data Ingalls LDAP support Loggers endpoint Spring Security 4.2 Support
  20. Bootstrap 4

  21. Bootstrap 4

  22. Build Tools Java: Maven or Gradle AngularJS: Gulp Angular: Webpack

    Web Dependencies: AngularJS: Bower Angular: npm or yarn
  23. None
  24. Cool Webpack Features webpack-bundle-analyzer webpack-dashboard

  25. Get Started with JHipster 4 Demo

  26. AAA Sonar Rating

  27. JHipster Libraries

  28. JHipster + React

  29. None
  30. Thoughtworks Radar

  31. None
  32. None
  33. None
  34. None
  35. Continuous Integration and Deployment $ yo jhipster:ci-cd Supports: Jenkins pipeline

    Travis CI GitLab CI CircleCI jhipster.github.io/setting-up-ci/
  36. None
  37. Deploying to Production Cloud Foundry Heroku Kubernetes AWS AWS with

    Boxfuse
  38. Deploy to Google Cloud with Kubernetes 1. Convert a monolith

    to a microservice gateway hibernateCache: “hazelcast” serviceDiscovery: “eureka” applicationType: “gateway” 2. Create microservices app and generate entities 3. Create UI for entities on gateway using yo jhipster:entity 4. Clone JHipster Registry in same directory and prove it all works
  39. Deploy to Google Cloud with Kubernetes 5. Create a sub-directory

    alongside apps and run yo jhipster:kubernetes 6. Create a Google Cloud project - console.cloud.google.com 7. Set project using gcloud config set project $project-name 8. Create a cluster: gcloud container clusters create $project-name --machine- type=n1-standard-2 --scopes cloud-platform 9. Authenticate: gcloud auth application-default login --no-launch-browser
  40. Deploy to Google Cloud with Kubernetes 10. Run kubectl commands

    to deploy 11. Use port-forwarding to see registry locally: kubectl port-forward jhipster-registry-0 8761:8761 12. Scale microservice apps as needed: kubectl scale deployment store —replicas=3 13. Screencast of these steps: https://youtu.be/dgVQOYEwleA
  41. Microservices with Docker Demo

  42. Shortcut to becoming a JHipster Expert? JUST DO IT.

  43. The JHipster Mini-Book 2.0 Release on Dec 5, 2016 jhipster-book.com

    21-points.com @jhipster_book Write your own InfoQ mini-book! github.com/mraible/infoq-mini-book
  44. Keep in touch! raibledesigns.com @mraible Presentations speakerdeck.com/mraible Code github.com/mraible Questions?