$30 off During Our Annual Pro Sale. View Details »

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

Matt Raible

March 21, 2017
Tweet

More Decks by Matt Raible

Other Decks in Technology

Transcript

  1. 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
  2. About You Are you a Java developer that likes Spring?

    Do you like JavaScript? TypeScript? Anyone using Angular? Have you used JHipster before?
  3. 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
  4. 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
  5. Feature In JHipster 4? Angular ✅ Progressive Web Apps ❌

    HTTP/2 ✅ JUnit 5 ❌ Spring 5 ❌ Bootstrap 4 ✅ What’s new in JHipsterLand?
  6. 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
  7. 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); }); } }
  8. 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)
  9. Spring Boot 1.5 Apache Kafka Support Cloud Foundry actuator extensions

    Spring Data Ingalls LDAP support Loggers endpoint Spring Security 4.2 Support
  10. Build Tools Java: Maven or Gradle AngularJS: Gulp Angular: Webpack

    Web Dependencies: AngularJS: Bower Angular: npm or yarn
  11. Continuous Integration and Deployment $ yo jhipster:ci-cd Supports: Jenkins pipeline

    Travis CI GitLab CI CircleCI jhipster.github.io/setting-up-ci/
  12. 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
  13. 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
  14. 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
  15. 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