openshift commons briefing a practical guide building ... · building cloud native applications...
TRANSCRIPT
Building Cloud Native Applications with WildFly Swarm and RHOAR
A Practical GuideOpenShift Commons Briefing
James FalknerTechnical Marketing Manager
Red Hat Middleware
RELATED OPENSHIFT COMMONS BRIEFINGScommons.openshift.org/events.html
• #97 RHOAR Explained
• September 27, 2017 - John Clingan
• #96 Building Cloud Native Apps with Spring Boot and RHOAR
• September 21, 2017 - Thomas Qvarnstrom
• # 101 Monoliths to Microservices: A Journey
• October 18, 2017 - James Falkner
Modern, cloud-native application runtimes and a guided developer experience for organizations that are moving beyond 3-tier architectures and embracing cloud-native application development.
SUPPORTED MICROSERVICES RUNTIMES
Reactive
Eclipse Vert.x
MicroProfile
WildFly Swarm
Server-side JS
Node.js
Java EE
JBoss EAP
TESTED AND VERIFIED MICROSERVICES FRAMEWORKS
Spring Boot Netflix RibbonNetflix Hystrix
Java EE Web
Embedded Tomcat
Modern, Cloud-Native Application Runtimes and A Guided Developer Experience
LAUNCH
RHOAR Release Channels
maven.repository.redhat.com (MRRC)
Red Hat Container Catalog (RHCC)
Customer Support Portal (repo downloads)
RH supported artifacts (tomcat, hibernate, …)
developers.redhat.com/launch
● Accelerate the learning / evaluation experience
● Collection of cloud native examples
● Leverage the platform
● Runs entirely in OpenShift○ On Desktop or OpenShift Online
● Spring Boot, Vert.x, WildFly Swarm, Node.js
Cloud Native Samples in the Cloud
My Svc
Java EE microservices● Leverage Java EE expertise● Open standard● Microservices focus● Optimized for OpenShift● Super lightweight● MicroProfile Implementation
My Svc
JAX-RS
$ java -jar my_microservice.jar
● A tangible unit providing a specific piece of functionality● Embodied in a maven artifact● To support the compositional aspect in WF Swarm● Provides the “runtime” capabilities● Means to add API dependencies (e.g. JAX-RS)● Means to configure the system
○ With reasonable defaults● Means to discover other components (topology)● Means to alter deployments (e.g. keycloak)● Can be auto-detected or explicitly declared
WildFly Swarm “pieces” - Fractions
Tooling● Maven & Gradle plugins● JBoss Forge add-on
○ IDE Extension for Eclipse/JBDS/IntelliJ IDEA/NetBeans to generate code/scaffolding
● SwarmTool○ Standalone jar that is used to wrap an existing JAR or WAR file in a -swarm.jar without requiring
any other tooling● Project Generator
○ Akin to start.spring.io○ wildfly-swarm.io/generator
forge$ project-new --named demo --stack JAVA_EE_7forge$ wildfly-swarm-setupforge$ wildfly-swarm-new-test --target-package org.example.rest --named HelloWorldEndpointTest
● Health Checks
● Externalized Config
● Client-side discovery / load balancing
● Circuit Breaking / Bulkheading
● Logging / Monitoring / Tracing / Metrics
● Secure deployments with Keycloak
● MicroProfile
● API Documentation
Cloud Native Support
● Defines open source Java microservices specifications● Industry Collaboration - Red Hat, IBM, Payara, Tomitribe, London Java Community,
SouJava, Oracle, Hazelcast, Fujitsu, SmartBear...● WildFly Swarm is Red Hat’s implementation● Minimum footprint for Enterprise Java cloud-native services (v1.3) :
JSON-P 1.0 Health Check 1.0
CDI 1.2 JAX-RS 2.0
JWT Propagation 1.0
Fault Tolerance 1.0 Metrics 1.0
Config 1.1 OpenTracing 1.0
OpenAPI 1.0
RestClient 1.0
New in 1.3:
● It’s AWESOME● Built on WildFly● Keeps Java EE developers in the game● Path to Microservices / Microprofile