What's New in JHipsterLand - DevNexus 2017

41
WHAT’S NEW IN JHIPSTERLAND MATT RAIBLE / @MRAIBLE

Transcript of What's New in JHipsterLand - DevNexus 2017

Page 1: What's New in JHipsterLand - DevNexus 2017

WHAT’S NEW IN JHIPSTERLAND

MATT RAIBLE / @MRAIBLE

Page 2: What's New in JHipsterLand - DevNexus 2017

Blogger on raibledesigns.com

UI Architect and Java Champion

Father, Skier, Mountain Biker, Whitewater Rafter

Web Framework Connoisseur

Who is Matt Raible?

Bus LoverStormpath Developer Evangelist

Page 3: What's New in JHipsterLand - DevNexus 2017
Page 4: What's New in JHipsterLand - DevNexus 2017

Stormpath User Management

Page 5: What's New in JHipsterLand - DevNexus 2017

About You

Are you a Java developer that likes Spring?

Do you like JavaScript? TypeScript?

Anyone using Angular?

Have you used JHipster before?

Page 6: What's New in JHipsterLand - DevNexus 2017

JHipster jhipster.github.io

Page 7: What's New in JHipsterLand - DevNexus 2017

JHipster is Open Source

Web Statistics, January 2017

282K Page Views

18K Downloads

GitHub Statistics

6229 Stars

298 Contributorswww.openhub.net/p/generator-jhipster

Page 9: What's New in JHipsterLand - DevNexus 2017

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

Page 10: What's New in JHipsterLand - DevNexus 2017
Page 11: What's New in JHipsterLand - DevNexus 2017

Feature In JHipster 4?

Angular ✅

Progressive Web Apps ❌

HTTP/2 ✅

JUnit 5 ❌

Spring 5 ❌

Bootstrap 4 ✅

What’s new in JHipsterLand?

Page 12: What's New in JHipsterLand - DevNexus 2017
Page 13: What's New in JHipsterLand - DevNexus 2017

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

Page 14: What's New in JHipsterLand - DevNexus 2017

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); }); } }

Page 15: What's New in JHipsterLand - DevNexus 2017

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)

Page 16: What's New in JHipsterLand - DevNexus 2017
Page 19: What's New in JHipsterLand - DevNexus 2017

Spring Boot 1.5

Apache Kafka Support

Cloud Foundry actuator extensions

Spring Data Ingalls

LDAP support

Loggers endpoint

Spring Security 4.2 Support

Page 20: What's New in JHipsterLand - DevNexus 2017

Bootstrap 4

Page 21: What's New in JHipsterLand - DevNexus 2017

Bootstrap 4

Page 22: What's New in JHipsterLand - DevNexus 2017

Build Tools

Java: Maven or Gradle

AngularJS: Gulp

Angular: Webpack

Web Dependencies:

AngularJS: Bower

Angular: npm or yarn

Page 23: What's New in JHipsterLand - DevNexus 2017
Page 24: What's New in JHipsterLand - DevNexus 2017

Get Started with JHipster 4 Demo

Page 25: What's New in JHipsterLand - DevNexus 2017

AAA Sonar Rating

Page 26: What's New in JHipsterLand - DevNexus 2017

JHipster Libraries

Page 27: What's New in JHipsterLand - DevNexus 2017

Thoughtworks Radar

Page 28: What's New in JHipsterLand - DevNexus 2017
Page 29: What's New in JHipsterLand - DevNexus 2017
Page 30: What's New in JHipsterLand - DevNexus 2017
Page 31: What's New in JHipsterLand - DevNexus 2017
Page 32: What's New in JHipsterLand - DevNexus 2017

Continuous Integration and Deployment$ yo jhipster:ci-cd

Supports:

Jenkins pipeline

Travis CI

GitLab CI

CircleCI jhipster.github.io/setting-up-ci/

Page 33: What's New in JHipsterLand - DevNexus 2017
Page 34: What's New in JHipsterLand - DevNexus 2017

Deploying to Production

Cloud Foundry

Heroku

Kubernetes

AWS

AWS with Boxfuse

Page 35: What's New in JHipsterLand - DevNexus 2017

Deploy to Google Cloud with Kubernetes

1. Convert a monolith to a microservice gatewayhibernateCache: “hazelcast”serviceDiscovery: “eureka”applicationType: “gateway”

2. Create microservices app and generate entities3. Create UI for entities on gateway using yo jhipster:entity

4. Clone JHipster Registry in same directory and prove it all works

Page 36: What's New in JHipsterLand - DevNexus 2017

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 demo --machine-type=n1-standard-2 --scopes cloud-platform

9. Authenticate:gcloud auth application-default login --no-launch-browser

Page 37: What's New in JHipsterLand - DevNexus 2017

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

Page 38: What's New in JHipsterLand - DevNexus 2017

Microservices with Docker Demo

Page 39: What's New in JHipsterLand - DevNexus 2017

Shortcut to becoming a JHipster Expert?

JUST DO IT.

Page 40: What's New in JHipsterLand - DevNexus 2017

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

Page 41: What's New in JHipsterLand - DevNexus 2017

Keep in touch!

raibledesigns.com

@mraible

Presentations

slideshare.net/mraible

Code

github.com/mraible

Questions?