SlideShare a Scribd company logo
Ray Tsang and Matt Raible
Choose Your Own Adventure with JHipster & K8s
@saturnism | @mraible
Hello, JHipster!
https://jhipster.tech
Application Generator
Development Platform
Popular Open Source Project
Monoliths, Microservices, and Gateways
Who is Ray Tsang?
Developer Advocate at Google Cloud
Kubernetes Enthusiast
JHipster Committer
Backpacker, snowboarder, photographer
@saturnism on Twitter
Who is Matt Raible?
Developer Advocate at Okta
Web Framework Enthusiast
JHipster Committer
Skier, rafter, classic VW fan
@mraible on Twitter
Choose Your Own Adventure
JHipster Gives You Lots of Options
Spring Boot
Spring Security
SQL or NoSQL
Maven or Gradle
Bootstrap
Angular, React, or Vue
End-to-End Tests
Performance Tests
26,000+ options https://arxiv.org/abs/1710.07980
Spring Boot
Google Trends for Spring Boot
The Rest of the Java Pack
Monolith vs. Microservice Architecture
Monolith Microservices
Pro Single app to manage
Single CI/CD pipeline
Low latency between calls
Low coupling
Faster build / deploy cycle per service
Easier to scale out individual services
Con Slow build / deploy cycle
High coupling
Harder to scale out
Multiple apps to manage
Multiple CI/CD pipeline
Multiple EVERYTHING!
High latency and issues between calls
Proper service boundary
Monolith
Legacy forever!
At least only one pile of...
Microservices
So you like the difficult stuff?
Unpopular Opinion
"Monoliths are the future because the problem people are trying to solve with
microservices doesn’t really line up with reality."
https://changelog.com/posts/monoliths-are-the-future
Maven or Gradle?
Java, Kotlin, .NET, or Node?
jhipster/jhipster-kotlin
jhipster/jhipster-dotnetcore jhipster/generator-jhipster-nodejs
The End
FYI... Micronaut & Quarkus Support is in development
https://github.com/jhipster/generator-jhipster-micronaut
npm install -g generator-jhipster-micronaut
mhipster
https://github.com/jhipster/jhipster-quarkus
npm install -g generator-jhipster-quarkus
jhipster -d --blueprint quarkus
Which Authentication Type?
Authentication: Session, JWT, or OAuth 2.0?
Because friends don't let friends write authentication!
MySQL, PostgreSQL, or MongoDB?
Spring MVC or Spring WebFlux?
CRUD with WebFlux?
https://github.com/jhipster/generator-jhipster/issues/7608
Angular, React, or Vue.js?
Comparing Angular, React, and Vue.js
Google Trends for Angular, React, and Vue.js
PWA or Mobile?
The End
Yes to PWA!
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', function() {
navigator.serviceWorker.register('/service-worker.js')
.then(function () {
console.log('Service Worker Registered');
});
});
}
</script>
src/main/webapp/index.html
PWA Requires HTTPS
@EnableWebSecurity
public class SecurityConfiguration extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.requiresChannel()
.requestMatchers(r -> r.getHeader("X-Forwarded-Proto") != null)
.requiresSecure();
}
}
SecurityConfiguration.java
https://developer.okta.com/blog/2018/07/30/10-ways-to-secure-spring-boot
Want Ionic? Use Ionic4J!
Want React Native? Use Ignite JHipster!
What do you want to build?
Monoliths
21 Points Health
Blog
Bug Tracker
Microservices
Online Store
Blog + Store
https://github.com/jhipster/jdl-samples
Let's Get Started!
start.jhipster.tech
High Code Quality and Performance by Default
https://github.com/mraible/healthy-hipster
Where to deploy to?
Kubernetes
Created by Google in 2014
Based on learnings from Google's internal orchestration tool
Manages deployment of containers across a cluster of machines
Currently managed by Cloud Native Foundation
Single deployment target, multiple cloud/on-prem environments
Kubernetes
You've chosen the path to become a
YAML developer...
Everything will be YAML from here on!
Don't fear. JHipster will generate all the
YAMLs for you!
With Istio or Without?
• Kubernetes manages deployment of applications
• Istio manages the services to service communication
• Retries
• Traces
• Monitoring
• L7 Routing
• L7 Load Balancing (internal and external)
• mTLS
• Out of the box Observability with Jaeger, Kiali, Prometheus, Grafana
Kubernetes to the Cloud!
Run Kubernetes sub-generator
Deploy to GKE on GCP
Have a look 👀 at K9s
Who let the pods out?!?
https://github.com/derailed/k9s
Additional Configuration for OAuth 2.0
JHipster uses Keycloak by default
Configuration is not auto-generated for Kubernetes
Remember to configure Issuer, Client ID, and Client Secret
Load Balancer, NodePort, or Ingress...
JHipster Gateway has 2 functionalities
• The frontend code
• Routing ("/service/blog/api" → Blog Service)
• Has Retries
• But 1 extra hop
Kubernetes has built-in URL mapping via Ingress
• No retries
The End
You survived today's encounter with YAML, and
the paradox of choice.
Take the JHipster adventure, and good luck!
Congratulations!
Coming Soon: JHipster 7! 🚀
https://github.com/jhipster/generator-jhipster/issues/10958
Questions?
49
Keep in Touch!
@mraible / matt.raible@okta.com
@saturnism / rayt@google.com
Presentation
speakerdeck.com/mraible
Code
github.com/mraible
skiday.dev

More Related Content

PDF
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
PDF
Java Web Application Security - UberConf 2011
PDF
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
PDF
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
PDF
Apache Roller, Acegi Security and Single Sign-on
PDF
JavaOne India 2011 - Running your Java EE 6 Apps in the Cloud
PDF
Java Web Application Security - Jazoon 2011
PDF
Web App Security for Java Developers - PWX 2021
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Sprin...
Java Web Application Security - UberConf 2011
10 Excellent Ways to Secure Spring Boot Applications - Okta Webinar 2020
Case Study: Migrating Hyperic from EJB to Spring from JBoss to Apache Tomcat
Apache Roller, Acegi Security and Single Sign-on
JavaOne India 2011 - Running your Java EE 6 Apps in the Cloud
Java Web Application Security - Jazoon 2011
Web App Security for Java Developers - PWX 2021

What's hot (20)

PDF
Front End Development for Back End Java Developers - Jfokus 2020
PDF
Web App Security for Java Developers - UberConf 2021
PDF
JHipster and Okta - JHipster Virtual Meetup December 2020
PDF
Java REST API Framework Comparison - PWX 2021
PDF
Use Angular Schematics to Simplify Your Life - Develop Denver 2019
PDF
Bootiful Development with Spring Boot and React - UberConf 2018
PDF
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
PDF
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...
PDF
Seven Simple Reasons to Use AppFuse
PDF
How to Win at UI Development in the World of Microservices - THAT Conference ...
PDF
Front End Development for Back End Developers - vJUG24 2017
PDF
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
PDF
Front End Development for Backend Developers - GIDS 2019
PDF
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
PDF
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
PPT
Choosing a Java Web Framework
PDF
Security Patterns for Microservice Architectures - ADTMag Microservices & API...
PDF
Bootiful Development with Spring Boot and React - SpringOne 2017
PDF
Mobile Development with Ionic, React Native, and JHipster - AllTheTalks 2020
PDF
JAX-RS JavaOne Hyderabad, India 2011
Front End Development for Back End Java Developers - Jfokus 2020
Web App Security for Java Developers - UberConf 2021
JHipster and Okta - JHipster Virtual Meetup December 2020
Java REST API Framework Comparison - PWX 2021
Use Angular Schematics to Simplify Your Life - Develop Denver 2019
Bootiful Development with Spring Boot and React - UberConf 2018
Java REST API Comparison: Micronaut, Quarkus, and Spring Boot - jconf.dev 2020
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Utah JUG...
Seven Simple Reasons to Use AppFuse
How to Win at UI Development in the World of Microservices - THAT Conference ...
Front End Development for Back End Developers - vJUG24 2017
Microservices for the Masses with Spring Boot, JHipster, and OAuth - South We...
Front End Development for Backend Developers - GIDS 2019
Spring Boot APIs and Angular Apps: Get Hip with JHipster! KCDC 2019
Mobile Development with Ionic, React Native, and JHipster - ACGNJ Java Users ...
Choosing a Java Web Framework
Security Patterns for Microservice Architectures - ADTMag Microservices & API...
Bootiful Development with Spring Boot and React - SpringOne 2017
Mobile Development with Ionic, React Native, and JHipster - AllTheTalks 2020
JAX-RS JavaOne Hyderabad, India 2011
Ad

Similar to Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020 (20)

PDF
Choose Your Own Adventure with JHipster & Kubernetes - Denver JUG 2020
PDF
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Jforum S...
PDF
Front End Development for Back End Developers - UberConf 2017
PDF
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
PDF
Java REST API Framework Comparison - UberConf 2021
PDF
Front End Development for Back End Java Developers - NYJavaSIG 2019
PPT
Hands on web development with play 2.0
PDF
Rapidly Building and Deploying Scalable Web Architectures
PDF
Microservices for the Masses with Spring Boot and JHipster - RWX 2018
PDF
CI and CD with Spinnaker
PPTX
Spring on PAS - Fabio Marinelli
PDF
Startup eng-camp 3
PDF
Spring and Pivotal Application Service - SpringOne Tour Dallas
PPTX
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
PPTX
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
PPTX
Microservices with kubernetes @190316
PDF
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
PDF
SpringBoot and Spring Cloud Service for MSA
PPTX
Introduction and CloudStack news
PDF
Microservices for the Masses with Spring Boot and JHipster - Chicago JUG 2018
Choose Your Own Adventure with JHipster & Kubernetes - Denver JUG 2020
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Jforum S...
Front End Development for Back End Developers - UberConf 2017
Microservices for the Masses with Spring Boot, JHipster, and OAuth - Switzerl...
Java REST API Framework Comparison - UberConf 2021
Front End Development for Back End Java Developers - NYJavaSIG 2019
Hands on web development with play 2.0
Rapidly Building and Deploying Scalable Web Architectures
Microservices for the Masses with Spring Boot and JHipster - RWX 2018
CI and CD with Spinnaker
Spring on PAS - Fabio Marinelli
Startup eng-camp 3
Spring and Pivotal Application Service - SpringOne Tour Dallas
Spring Boot & Spring Cloud Apps on Pivotal Application Service - Daniel Lavoie
SpringOne Tour Denver - Spring Boot & Spring Cloud on Pivotal Application Ser...
Microservices with kubernetes @190316
Кирилл Толкачев. Микросервисы: огонь, вода и девопс
SpringBoot and Spring Cloud Service for MSA
Introduction and CloudStack news
Microservices for the Masses with Spring Boot and JHipster - Chicago JUG 2018
Ad

More from Matt Raible (18)

PDF
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
PDF
Micro Frontends for Java Microservices - Belfast JUG 2022
PDF
Micro Frontends for Java Microservices - Dublin JUG 2022
PDF
Micro Frontends for Java Microservices - Cork JUG 2022
PDF
Comparing Native Java REST API Frameworks - Seattle JUG 2022
PDF
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
PDF
Comparing Native Java REST API Frameworks - Devoxx France 2022
PDF
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
PDF
Native Java with Spring Boot and JHipster - Garden State JUG 2021
PDF
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
PDF
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
PDF
Native Java with Spring Boot and JHipster - SF JUG 2021
PDF
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
PDF
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
PDF
Security Patterns for Microservice Architectures - SpringOne 2020
PDF
Security Patterns for Microservice Architectures - London Java Community 2020
PDF
Security Patterns for Microservice Architectures - Oktane20
PDF
Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020
Keep Identities in Sync the SCIMple Way - ApacheCon NA 2022
Micro Frontends for Java Microservices - Belfast JUG 2022
Micro Frontends for Java Microservices - Dublin JUG 2022
Micro Frontends for Java Microservices - Cork JUG 2022
Comparing Native Java REST API Frameworks - Seattle JUG 2022
Reactive Java Microservices with Spring Boot and JHipster - Spring I/O 2022
Comparing Native Java REST API Frameworks - Devoxx France 2022
Lock That Sh*t Down! Auth Security Patterns for Apps, APIs, and Infra - Devne...
Native Java with Spring Boot and JHipster - Garden State JUG 2021
Mobile App Development with Ionic, React Native, and JHipster - Connect.Tech ...
Lock That Shit Down! Auth Security Patterns for Apps, APIs, and Infra - Joker...
Native Java with Spring Boot and JHipster - SF JUG 2021
Reactive Java Microservices with Spring Boot and JHipster - Denver JUG 2021
Get Hip with JHipster - Colorado Springs Open Source User Group 2021
Security Patterns for Microservice Architectures - SpringOne 2020
Security Patterns for Microservice Architectures - London Java Community 2020
Security Patterns for Microservice Architectures - Oktane20
Full Stack Reactive with React and Spring WebFlux - Switzerland JUG 2020

Recently uploaded (20)

PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
history of c programming in notes for students .pptx
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PPTX
Monitoring Stack: Grafana, Loki & Promtail
PPTX
Advanced SystemCare Ultimate Crack + Portable (2025)
PDF
Navsoft: AI-Powered Business Solutions & Custom Software Development
PDF
Autodesk AutoCAD Crack Free Download 2025
PPTX
Reimagine Home Health with the Power of Agentic AI​
PDF
Download FL Studio Crack Latest version 2025 ?
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Cost to Outsource Software Development in 2025
PDF
Website Design Services for Small Businesses.pdf
PPTX
assetexplorer- product-overview - presentation
PPTX
Patient Appointment Booking in Odoo with online payment
PDF
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
PPTX
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
DOCX
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
PDF
Salesforce Agentforce AI Implementation.pdf
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
history of c programming in notes for students .pptx
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Monitoring Stack: Grafana, Loki & Promtail
Advanced SystemCare Ultimate Crack + Portable (2025)
Navsoft: AI-Powered Business Solutions & Custom Software Development
Autodesk AutoCAD Crack Free Download 2025
Reimagine Home Health with the Power of Agentic AI​
Download FL Studio Crack Latest version 2025 ?
Odoo Companies in India – Driving Business Transformation.pdf
Cost to Outsource Software Development in 2025
Website Design Services for Small Businesses.pdf
assetexplorer- product-overview - presentation
Patient Appointment Booking in Odoo with online payment
CCleaner Pro 6.38.11537 Crack Final Latest Version 2025
Embracing Complexity in Serverless! GOTO Serverless Bengaluru
Design an Analysis of Algorithms II-SECS-1021-03
iTop VPN 6.5.0 Crack + License Key 2025 (Premium Version)
Greta — No-Code AI for Building Full-Stack Web & Mobile Apps
Salesforce Agentforce AI Implementation.pdf

Choose Your Own Adventure with JHipster & Kubernetes - Utah JUG 2020

  • 1. Ray Tsang and Matt Raible Choose Your Own Adventure with JHipster & K8s @saturnism | @mraible
  • 2. Hello, JHipster! https://jhipster.tech Application Generator Development Platform Popular Open Source Project Monoliths, Microservices, and Gateways
  • 3. Who is Ray Tsang? Developer Advocate at Google Cloud Kubernetes Enthusiast JHipster Committer Backpacker, snowboarder, photographer @saturnism on Twitter
  • 4. Who is Matt Raible? Developer Advocate at Okta Web Framework Enthusiast JHipster Committer Skier, rafter, classic VW fan @mraible on Twitter
  • 5. Choose Your Own Adventure
  • 6. JHipster Gives You Lots of Options Spring Boot Spring Security SQL or NoSQL Maven or Gradle Bootstrap Angular, React, or Vue End-to-End Tests Performance Tests 26,000+ options https://arxiv.org/abs/1710.07980
  • 8. Google Trends for Spring Boot
  • 9. The Rest of the Java Pack
  • 10. Monolith vs. Microservice Architecture Monolith Microservices Pro Single app to manage Single CI/CD pipeline Low latency between calls Low coupling Faster build / deploy cycle per service Easier to scale out individual services Con Slow build / deploy cycle High coupling Harder to scale out Multiple apps to manage Multiple CI/CD pipeline Multiple EVERYTHING! High latency and issues between calls Proper service boundary
  • 11. Monolith Legacy forever! At least only one pile of...
  • 12. Microservices So you like the difficult stuff?
  • 13. Unpopular Opinion "Monoliths are the future because the problem people are trying to solve with microservices doesn’t really line up with reality." https://changelog.com/posts/monoliths-are-the-future
  • 15. Java, Kotlin, .NET, or Node? jhipster/jhipster-kotlin jhipster/jhipster-dotnetcore jhipster/generator-jhipster-nodejs
  • 17. FYI... Micronaut & Quarkus Support is in development https://github.com/jhipster/generator-jhipster-micronaut npm install -g generator-jhipster-micronaut mhipster https://github.com/jhipster/jhipster-quarkus npm install -g generator-jhipster-quarkus jhipster -d --blueprint quarkus
  • 19. Authentication: Session, JWT, or OAuth 2.0? Because friends don't let friends write authentication!
  • 21. Spring MVC or Spring WebFlux?
  • 25. Google Trends for Angular, React, and Vue.js
  • 28. Yes to PWA! <script> if ('serviceWorker' in navigator) { window.addEventListener('load', function() { navigator.serviceWorker.register('/service-worker.js') .then(function () { console.log('Service Worker Registered'); }); }); } </script> src/main/webapp/index.html
  • 29. PWA Requires HTTPS @EnableWebSecurity public class SecurityConfiguration extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.requiresChannel() .requestMatchers(r -> r.getHeader("X-Forwarded-Proto") != null) .requiresSecure(); } } SecurityConfiguration.java https://developer.okta.com/blog/2018/07/30/10-ways-to-secure-spring-boot
  • 30. Want Ionic? Use Ionic4J!
  • 31. Want React Native? Use Ignite JHipster!
  • 32. What do you want to build? Monoliths 21 Points Health Blog Bug Tracker Microservices Online Store Blog + Store https://github.com/jhipster/jdl-samples
  • 34. High Code Quality and Performance by Default https://github.com/mraible/healthy-hipster
  • 36. Kubernetes Created by Google in 2014 Based on learnings from Google's internal orchestration tool Manages deployment of containers across a cluster of machines Currently managed by Cloud Native Foundation Single deployment target, multiple cloud/on-prem environments
  • 37. Kubernetes You've chosen the path to become a YAML developer... Everything will be YAML from here on! Don't fear. JHipster will generate all the YAMLs for you!
  • 38. With Istio or Without? • Kubernetes manages deployment of applications • Istio manages the services to service communication • Retries • Traces • Monitoring • L7 Routing • L7 Load Balancing (internal and external) • mTLS • Out of the box Observability with Jaeger, Kiali, Prometheus, Grafana
  • 39. Kubernetes to the Cloud! Run Kubernetes sub-generator Deploy to GKE on GCP Have a look 👀 at K9s Who let the pods out?!? https://github.com/derailed/k9s
  • 40. Additional Configuration for OAuth 2.0 JHipster uses Keycloak by default Configuration is not auto-generated for Kubernetes Remember to configure Issuer, Client ID, and Client Secret
  • 41. Load Balancer, NodePort, or Ingress... JHipster Gateway has 2 functionalities • The frontend code • Routing ("/service/blog/api" → Blog Service) • Has Retries • But 1 extra hop Kubernetes has built-in URL mapping via Ingress • No retries
  • 42. The End You survived today's encounter with YAML, and the paradox of choice. Take the JHipster adventure, and good luck! Congratulations!
  • 43. Coming Soon: JHipster 7! 🚀 https://github.com/jhipster/generator-jhipster/issues/10958
  • 44. Questions? 49 Keep in Touch! @mraible / matt.raible@okta.com @saturnism / rayt@google.com Presentation speakerdeck.com/mraible Code github.com/mraible skiday.dev