Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

No content

Slide 5

Slide 5 text

No content

Slide 6

Slide 6 text

Conway’s Law Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure. Melvyn Conway 1967

Slide 7

Slide 7 text

"Do one thing and do it well."

Slide 8

Slide 8 text

The Future?

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

No content

Slide 11

Slide 11 text

No content

Slide 12

Slide 12 text

No content

Slide 13

Slide 13 text

start.spring.io

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

No content

Slide 18

Slide 18 text

Microservices are awesome, but they’re not free. Les Hazlewood Stormpath CTO

Slide 19

Slide 19 text

No content

Slide 20

Slide 20 text

No content

Slide 21

Slide 21 text

No content

Slide 22

Slide 22 text

No content

Slide 23

Slide 23 text

Securing Your API Choose the Right API Security Protocol Basic API Authentication with TLS (aka SSL) OAuth 1.0a, OAuth 2.0, OpenID Connect API Keys vs. Username/Password Authentication Store Your API Security Key securely Use globally unique IDs (e.g. Url62) Avoid sessions, especially in URLs

Slide 24

Slide 24 text

JSON Web Tokens

Slide 25

Slide 25 text

Create a JWT in Java String jwt = Jwts.builder() .setSubject("users/TzMUocMF4p") .setExpiration(new Date(1300819380)) .claim("name", "Robert Token Man") .claim("scope", "self groups/admins") .signWith( SignatureAlgorithm.HS256, "secret".getBytes("UTF-8") ) .compact();

Slide 26

Slide 26 text

Validating a JWT String jwt = // get JWT from Authorization header Jws claims = Jwts.parser() .setSigningKey("secret".getBytes("UTF-8")) .parseClaimsJws(jwt) String scope = claims.getBody().get("scope") assertEquals(scope, "self groups/admins");

Slide 27

Slide 27 text

Better Secret String b64EncodedSecret = "Yn2kjibddFAWtnPJ2AFlL8WXmohJMCvigQggaEypa5E="; .signWith(SignatureAlgorithm.HS256, TextCodec.BASE64.decode(b64EncodedSecret))

Slide 28

Slide 28 text

No content

Slide 29

Slide 29 text

No content

Slide 30

Slide 30 text

JHipster by the numbers +250 contributors +6800 Github stars +480,000 installations +150 companies officially using it

Slide 31

Slide 31 text

How to use JHipster To install JHipster, you run an npm command: $ npm install -g generator-jhipster $ mkdir myapp && cd myapp $ yo jhipster

Slide 32

Slide 32 text

What’s Generated? Spring Boot application Angular application Liquibase changelog files Configuration files

Slide 33

Slide 33 text

Security Screens Several generated screens Login, logout, forgot password Account management User management Useful for most applications Pages must be tweaked User roles will be added/extended Provides good examples of working screens Forms, directives, validation…

Slide 34

Slide 34 text

Admin Screens Monitoring Health Spring Boot configuration Spring Security audits Log management Very useful in production

Slide 35

Slide 35 text

Liquibase

Slide 36

Slide 36 text

Microservices with JHipster

Slide 37

Slide 37 text

No content

Slide 38

Slide 38 text

JHipster on Google Cloud https://youtu.be/dgVQOYEwleA

Slide 39

Slide 39 text

Microservices are not free, but you get a deep discount on microservices with JHipster. Matt Raible 2016

Slide 40

Slide 40 text

JHipster.next JHipster CLI gRPC Support React Support Spring 5 and Reactive Improved Kafka Support

Slide 41

Slide 41 text

No content

Slide 42

Slide 42 text

Do one thing and do it well. Unix philosophy

Slide 43

Slide 43 text

This Presentation and Demos https://github.com/mraible/microservices-for-the-masses

Slide 44

Slide 44 text

No content

Slide 45

Slide 45 text

No content

Slide 46

Slide 46 text

Image Credits Fountain of colours - Paulius Malinovskis on Flickr Ponte dell’Accademia at Sunrise - Trey Ratcliff on Stuck in Customs Conway’s Law - Martin Fowler and James Lewis on Microservices Good Morning Denver - Sheila Sund on Flickr Monoliths - Arches National Park on Flickr Mexico - Trish McGinity on McGinity Photo Future - vivianhir on Flickr Spring Runoff - Ian Sane on Flickr The memory Seeker, Santa Monica Pier, CA - Pacheco on Flickr San Francisco By Night - Trish McGinity on McGinity Photo