O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E...
Transcript of O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E...
![Page 1: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/1.jpg)
WILDFLY AND KUBERNETESWILDFLY AND KUBERNETES HOW THEY PLAY TOGETHERHOW THEY PLAY TOGETHER
ONDŘEJ CHALOUPKAONDŘEJ CHALOUPKA
, http://narayana.io @_chalda
![Page 2: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/2.jpg)
AGENDAAGENDAWILDFLY TO KUBERNETESWILDFLY TO KUBERNETES
s2i buildsGalleon provisioning toolWildFly Operator
![Page 3: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/3.jpg)
Expectation to audience: - a basic knowledge of WildFly and basic knowledge of Kubernetes WildFly and particularly JBoss EAP - as a Red Hat's product based on the WildFly project - focuses on smooth integration to OpenShift. Some of the design decisions is based on that fact.
Speaker notes
![Page 4: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/4.jpg)
AGENDAAGENDAWILDFLY TO KUBERNETESWILDFLY TO KUBERNETES
![Page 5: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/5.jpg)
DEMO PROJECTDEMO PROJECT
ServletCDI
WildFly Quickstart / HelloWorld
https://github.com/wildfly/quickstart
![Page 6: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/6.jpg)
S2IS2I
Source: https://blog.openshift.com/save-yourself-from-the-next-glibc/
![Page 7: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/7.jpg)
- abbreviation for source to image - goal : building artifacts from sources and injecting them to container - executing scripts and using plugins to adjust the behaviour * https://github.com/openshift/source-to-image * https://docs.openshift.com/aro/creating_images/s2i.html
Speaker notes
![Page 8: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/8.jpg)
WILDFLY CONTAINERSWILDFLY CONTAINERS
https://quay.io/organization/wildfly
quay.io/wildfly/quay.io/wildfly/quay.io/wildfly/
wildfly-centos7wildfly-runtime-centos7wildfly-operator
![Page 9: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/9.jpg)
- wildfly-centos7: s2i image with environment prepared for galleon to work - wildfly-runtime-centos7: no WFLY included. a bare container with set-up environmental variables that is to be shipped with a container in a chain build - wildfly-operator: Kubernetes Operator for managing WFLY
Speaker notes
![Page 10: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/10.jpg)
s2i build -e GALLEON_PROVISION_DEFAULT_FAT_SERVER=true -e MAVEN_OPTS="-Dcom.redhat.xpaas.repo.jbossorg"
--context-dir helloworld --ref 18.0.0.Final quay.io/wildfly/wildfly-centos7 helloworld-wildfly-centos7
https://github.com/wildfly/quickstart
s2i command to build
environmental variables configures how the build goes directory where build is started
tag/branchthe source code
base docker image
result docker image
![Page 11: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/11.jpg)
* https://github.com/wildfly/wildfly-s2i * https://github.com/cekit/cekit (CEKit helps to build container images from image definition files with strong focus on modularity and code reuse) * https://github.com/wildfly/quickstart * https://github.com/wildfly/quickstart/blob/master/helloworld/src/main/java/org/jboss/as/quickstarts/helloworld/HelloWorld
Speaker notes
![Page 12: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/12.jpg)
CHAINING BUILDSCHAINING BUILDS
Source: https://blog.openshift.com/chaining-builds/
![Page 13: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/13.jpg)
WHY S2IWHY S2I
Galleon features availableOpenShift integration
wildfly/wildfly-s2i / wildfly-s2i-chained-build-template.yml
![Page 14: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/14.jpg)
- OpenShift upstream project is Okd.io
Speaker notes
![Page 15: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/15.jpg)
WILDFLY MODULESWILDFLY MODULES
java jar $JBOSS_HOME/jbossmodules.jar mp $JBOSS_HOME/modules org.jboss.as.standalone
java command jar of the module system
where the modules reside
start-up module
![Page 16: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/16.jpg)
- JBoss Modules is a standalone implementation of a modular (non-hierarchical) class loading and execution environment for Java * http://jboss-modules.github.io/jboss-modules/manual/ * https://wildfly.org/news/2016/12/12/Jigsaws-Missing-Pieces (Jason Green's critique on Jigsaw project)
Speaker notes
![Page 17: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/17.jpg)
GALLEONGALLEON
galleon.sh install wildfly:current layers=jaxrs,cdi dir=mywildflyserver
galleon command to install
WildFly maven repo
Galleon layers - XML descriptors for WildFly Core build
wildfly/wildfly-core / core-galleon-pack/src/main/resources/layers/standalone
Layers to be generated
Output directory
![Page 18: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/18.jpg)
- provisioning tool used for WildFly builds * https://docs.wildfly.org/galleon/ (documetation) * https://wildfly.org/news/2019/12/17/Ship-your-WildFly-additions-via-Galleon-feature-packs/ (WildFly blogpost) * https://wildfly.org/news/2019/03/01/Galleon_Openshift/ (Galleon on OpenShift)
Speaker notes
![Page 19: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/19.jpg)
DEMO PROJECTDEMO PROJECT
JAX-RS (HTTP REST)EJBJPA (Hibernate ORM)JMS (Messaging)JTA (Transactions)Clustering
https://github.com/ochaloup/wildfly-kubernetes-presentation
![Page 20: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/20.jpg)
Demo is simple but shows the multiple Java EE technologies. We will touch them with concern of the journey to run them in Kubernetes.
Speaker notes
![Page 21: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/21.jpg)
DEMO PROJECTDEMO PROJECT
CLIENT
(CALLER)
SERVER
CALEE
SERVER
EJBJTAJMS
EJBJTAJPAClustering
HTTP REST call
![Page 22: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/22.jpg)
DEBUGGINGDEBUGGING
environmental variable DEBUGkubectl port-forward <pod> 8787:8787
s2i magic debugging with variableSCRIPT_DEBUG
![Page 23: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/23.jpg)
* https://blog.openshift.com/debugging-java-applications-on-openshift-kubernetes
Speaker notes
![Page 24: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/24.jpg)
SUMMARYSUMMARY
WildFly uses s2i to build docker imagesWildFly Operator is the way to run on Kubernetes
![Page 25: O N D Ř E J C H A L O U P K A H O W T H E Y P L AY TO G E ...chalda.cz/presentations/wildfly-and-kubernetes-speakers-notes.pdf · D E M O P R O J E C T CLIENT (CALLER) SERVER CALEE](https://reader033.fdocuments.us/reader033/viewer/2022050214/5f6039d5c988fa06d72aec12/html5/thumbnails/25.jpg)
ENJOY THE RESTENJOY THE RESTOF THEOF THE
CONFERENCECONFERENCE