SlideShare una empresa de Scribd logo
Firmansyah.profess@gmail.com
2018
Eclipse Vert.x
Chapter 06
Reactive Microservices
in OpenShift
01. OpenShift
a. Definition:
1. RedHat OpenShift is an open source container platform.
2. OpenShift is built on top of Kubernetes (https://kubernetes.io/).
3. Kubernetes is a project with lots of functionality for running clusters
of microservices inside Linux containers at scale.
4. The OpenShift container platform:
Kubernetes
OpenShift
01. OpenShift
b. The OpenShift Components:
1. Build Configuration: The build is the process of creating container
images that will be used by OpenShift to instantiate the different
containers that make up an application.
a) OpenShift builds can use different strategies:
• Docker: Build an image from a Dockerfile.
• Source to Image (S2I): Build an image from the
application source, built on OpenShift by a builder
image.
01. OpenShift
b. The OpenShift Components:
• Jenkins Pipeline—Build an image using a Jenkins pipeline
(https://jenkins.io/doc/book/pipeline) potentially containing
multiple stages such as build, tests, and deployment.
b) A build configuration can be triggered automatically by:
• A Git push.
• A change in the configuration or an update in a dependent
image.
• Manual.
2. Deployment Configurations:
a) It defines the instantiation of the image produced by a build.
b) It defines which image is used to create the containers and the
number of instances we need to keep alive.
c) It also describes when a deployment should be triggered.
d) It acts as a replication controller and is responsible for keeping
containers alive. To achieve this, you pass the number of
desired instances. The number of desired instances can
be adjusted over time or based on the load fluctuation
(auto-scaling).
e) It can also specify health checks to manage rolling
updates and detect dead containers.
01. OpenShift
b. The OpenShift Components:
3. Pods:
a) A pod is a group of one or more containers. However, it is
typically comprised of a single container.
b) The pod orchestration, scheduling, and management are
delegated to Kubernetes.
c) Pods are fungible, and can be replaced at any time by another
instance. For example, if the container crashes, another
instance will be spawned.
4. Services:
a) Services allow us to communicate with the pods without relying
on their addresses but by using the service virtual address.
b) A service acts as a proxy in front of a group of pods.
c) It may also implement a load-balancing strategy.
5. Routes:
a) It exposes a service at a hostname like www.myservice.com so
that external clients can reach it by name.
b) Other applications running in OpenShift can access the
functionality offered by the pods using the service,
but external applications need a route.
02. OpenShift Installation
a. Options for install OpenShift:
1. Minishift (https://github.com/minishift/minishift). In this demo we will
install this option and requires a VirtualBox, please download at
https://www.virtualbox.org/wiki/Downloads and follow its installation
guides.
2. OpenShift Starter Online
(https://www.openshift.com/products/pricing/), need sign up.
3. Red Hat Container Development Kit
(https://developers.redhat.com/products/cdk/download/)
b. Minishift Installation:
1. Download the latest version for your OS from the Minishift releases
page (https://github.com/minishift/minishift/releases),
2. Unpack it to your preferred location,
3. Create variable name MINISHIFT_HOME inside environment
variable and its value is your unpacking preferred location.
4. Add the MINISHIFT_HOME (minishift binary) to your PATH
environment variable.
5. (Optional) Remove C:WindowsSystem32OpenSSH from
your PATH environment variable, if there are some error
occurred.
02. OpenShift Installation
b. Minishift Installation:
6. Once installed, start Minishift using:
minishift start --vm-driver virtualbox --show-
libmachine-logs -v5
7. Once started, you should be able to connect to your OpenShift
instance using web browser with launch following command:
Minishift console
8. You may have to validate the SSL certificate.
9. Log in with developer/developer.
c. OpenShift client (oc):
1. Find oc binary in MINISHIFT_HOMEcacheocv3.11.0windows
2. Add the oc binary to your PATH environment variable.
3. Connect to your OpenShift instance using:
oc login https://192.168.99.100:8443 -u
developer -p developer
4. Create example project, execute:
oc new-project project-example
oc policy add-role-to-user admin developer -n project-example
oc policy add-role-to-user view -n project-example -z default
5. In your browser, open:
https://192.168.99.100:8443/console/project/project-example/.
03. Create OsHttpMicro01
a. Create a directory called “chapter06” and sub
directory called “oshttpmicro01”
b. Generate the project structure using maven inside
oshttpmicro01 folder:
mvn io.reactiverse:vertx-maven-plugin:1.0.18:setup 
-DprojectGroupId=io.vertx.chapter06 
-DprojectArtifactId=os-http-micro-vertx-app 
-Dverticle=io.vertx.chapter06.OsHttpMicro01 
-Ddependencies=web
c. Modify io.vertx.chapter06.OsHttpMicro01 class
d. Modify pom.xml file
e. Login into openshift:
oc login https://192.168.99.100:8443 -u developer -p
developer
f. Package and deploy OsHttpMicro01 to
OpenShift, launch:
mvn fabric8:deploy -Popenshift
04. Create OsHttpMicro02
a. Create a directory called “oshttpmicro02” under
directory “chapter06”
b. Generate the project structure using maven inside
oshttpmicro02 folder:
mvn io.reactiverse:vertx-maven-plugin:1.0.18:setup 
-DprojectGroupId=io.vertx.chapter06 
-DprojectArtifactId=os-http-micro02-vertx-app 
-Dverticle=io.vertx.chapter06.OsHttpMicro02 
-Ddependencies=web,rx,web-client,service-discovery,vertx-
service-discovery-bridge-kubernetes,circuit-breaker
c. Modify io.vertx.chapter06.OsHttpMicro02 class
d. Modify pom.xml file
e. Login into openshift and make sure has access right:
oc login https://192.168.99.100:8443 -u developer -p developer
oc policy add-role-to-user admin developer -n myproject
oc policy add-role-to-user view -n myproject -z default
f. Package and deploy OsHttpMicro02 to OpenShift,
launch:
mvn fabric8:deploy -Popenshift
Thank You!
Any questions? You can find me at
firmansyah.profess@gmail.com
Credits
PPT: ALLPPT.com
Music: https://www.bensound.com
Chapter 06: Eclipse Vert.x - Reactive Microservices with OpenShift

Más contenido relacionado

La actualidad más candente

Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
Massimiliano Dessì
 
Scaling Docker with Kubernetes
Scaling Docker with KubernetesScaling Docker with Kubernetes
Scaling Docker with Kubernetes
Carlos Sanchez
 
ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...
ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...
ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...
Tobias Schneck
 
Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10
Vishnu Kannan
 
Containers and Kubernetes -Notes Leo
Containers and Kubernetes -Notes LeoContainers and Kubernetes -Notes Leo
Containers and Kubernetes -Notes Leo
Léopold Gault
 
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes MeetupCreating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Tobias Schneck
 
Bug smash day magnum
Bug smash day magnumBug smash day magnum
Bug smash day magnum
Ton Ngo
 
Deep Dive into Kubernetes - Part 2
Deep Dive into Kubernetes - Part 2Deep Dive into Kubernetes - Part 2
Deep Dive into Kubernetes - Part 2
Imesh Gunaratne
 
kubernetes for beginners
kubernetes for beginnerskubernetes for beginners
kubernetes for beginners
Dominique Dumont
 
Learn kubernetes in 90 minutes
Learn kubernetes in 90 minutesLearn kubernetes in 90 minutes
Learn kubernetes in 90 minutes
Larry Cai
 
Workshop WSO2 BPS 3.5.x - BPMN
Workshop WSO2 BPS 3.5.x - BPMN Workshop WSO2 BPS 3.5.x - BPMN
Workshop WSO2 BPS 3.5.x - BPMN
Edgar Silva
 
Let's talk about the cache! - Mathilde Lemée - Codemotion Rome 2015
Let's talk about the cache! - Mathilde Lemée - Codemotion Rome 2015Let's talk about the cache! - Mathilde Lemée - Codemotion Rome 2015
Let's talk about the cache! - Mathilde Lemée - Codemotion Rome 2015
Codemotion
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introduction
Sparkbit
 
Use open stack to run java programs inside a Docker container
Use open stack to run java programs inside a Docker containerUse open stack to run java programs inside a Docker container
Use open stack to run java programs inside a Docker container
Miano Sebastiano
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
Ryan Jarvinen
 
WSO2 Micro Services Server - Basic Workshop Part 1
WSO2 Micro Services Server - Basic Workshop Part 1WSO2 Micro Services Server - Basic Workshop Part 1
WSO2 Micro Services Server - Basic Workshop Part 1
Edgar Silva
 
C#on linux
C#on linuxC#on linux
C#on linux
AvarinTalks
 
Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...
Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...
Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...
Docker, Inc.
 

La actualidad más candente (18)

Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
Microservices in Go_Dessi_Massimiliano_Codemotion_2017_Rome
 
Scaling Docker with Kubernetes
Scaling Docker with KubernetesScaling Docker with Kubernetes
Scaling Docker with Kubernetes
 
ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...
ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...
ClusterAPI Overview - Managing multi-cloud Kubernetes Clusters - k8s Meetup@v...
 
Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10Kubernetes deep dive - - Huawei 2015-10
Kubernetes deep dive - - Huawei 2015-10
 
Containers and Kubernetes -Notes Leo
Containers and Kubernetes -Notes LeoContainers and Kubernetes -Notes Leo
Containers and Kubernetes -Notes Leo
 
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes MeetupCreating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
Creating Kubernetes multi clusters with ClusterAPI @ Stuttgart Kubernetes Meetup
 
Bug smash day magnum
Bug smash day magnumBug smash day magnum
Bug smash day magnum
 
Deep Dive into Kubernetes - Part 2
Deep Dive into Kubernetes - Part 2Deep Dive into Kubernetes - Part 2
Deep Dive into Kubernetes - Part 2
 
kubernetes for beginners
kubernetes for beginnerskubernetes for beginners
kubernetes for beginners
 
Learn kubernetes in 90 minutes
Learn kubernetes in 90 minutesLearn kubernetes in 90 minutes
Learn kubernetes in 90 minutes
 
Workshop WSO2 BPS 3.5.x - BPMN
Workshop WSO2 BPS 3.5.x - BPMN Workshop WSO2 BPS 3.5.x - BPMN
Workshop WSO2 BPS 3.5.x - BPMN
 
Let's talk about the cache! - Mathilde Lemée - Codemotion Rome 2015
Let's talk about the cache! - Mathilde Lemée - Codemotion Rome 2015Let's talk about the cache! - Mathilde Lemée - Codemotion Rome 2015
Let's talk about the cache! - Mathilde Lemée - Codemotion Rome 2015
 
Kubernetes - introduction
Kubernetes - introductionKubernetes - introduction
Kubernetes - introduction
 
Use open stack to run java programs inside a Docker container
Use open stack to run java programs inside a Docker containerUse open stack to run java programs inside a Docker container
Use open stack to run java programs inside a Docker container
 
Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17Hands-On Introduction to Kubernetes at LISA17
Hands-On Introduction to Kubernetes at LISA17
 
WSO2 Micro Services Server - Basic Workshop Part 1
WSO2 Micro Services Server - Basic Workshop Part 1WSO2 Micro Services Server - Basic Workshop Part 1
WSO2 Micro Services Server - Basic Workshop Part 1
 
C#on linux
C#on linuxC#on linux
C#on linux
 
Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...
Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...
Using Docker Swarm Mode to Deploy Service Without Loss by Dongluo Chen & Nish...
 

Similar a Chapter 06: Eclipse Vert.x - Reactive Microservices with OpenShift

Microservices in Java
Microservices in JavaMicroservices in Java
Microservices in Java
Anatole Tresch
 
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Amrita Prasad
 
Docker and Vagrant usage in OPENi
Docker and Vagrant usage in OPENiDocker and Vagrant usage in OPENi
Docker and Vagrant usage in OPENi
openi_ict
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
Fabio Fumarola
 
Build containerized application using Docker and Azure.pdf
Build containerized application using Docker and Azure.pdfBuild containerized application using Docker and Azure.pdf
Build containerized application using Docker and Azure.pdf
Hamida Rebai Trabelsi
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
Fabio Fumarola
 
From CoreOS to Kubernetes and Concourse CI
From CoreOS to Kubernetes and Concourse CIFrom CoreOS to Kubernetes and Concourse CI
From CoreOS to Kubernetes and Concourse CI
Denis Izmaylov
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
Fabio Fumarola
 
CASCON 2017 - OpenAPI v3
CASCON 2017 - OpenAPI v3CASCON 2017 - OpenAPI v3
CASCON 2017 - OpenAPI v3
Arthur De Magalhaes
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific Computing
Peter Bryzgalov
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
Patrick Chanezon
 
Rome .NET Conference 2024 - Remote Conference
Rome .NET Conference 2024  - Remote ConferenceRome .NET Conference 2024  - Remote Conference
Rome .NET Conference 2024 - Remote Conference
Hamida Rebai Trabelsi
 
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetupCloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
Krishna-Kumar
 
Mihai Criveti - PyCon Ireland - Automate Everything
Mihai Criveti - PyCon Ireland - Automate EverythingMihai Criveti - PyCon Ireland - Automate Everything
Mihai Criveti - PyCon Ireland - Automate Everything
Mihai Criveti
 
MongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise Kubernetes
MongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise KubernetesMongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise Kubernetes
MongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise Kubernetes
MongoDB
 
Devoxx 2016: A Developer's Guide to OCI and runC
Devoxx 2016: A Developer's Guide to OCI and runCDevoxx 2016: A Developer's Guide to OCI and runC
Devoxx 2016: A Developer's Guide to OCI and runC
Phil Estes
 
Mesos and Kubernetes ecosystem overview
Mesos and Kubernetes ecosystem overviewMesos and Kubernetes ecosystem overview
Mesos and Kubernetes ecosystem overview
Krishna-Kumar
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
Kumton Suttiraksiri
 
Virtual machines and containers
Virtual machines and containersVirtual machines and containers
Virtual machines and containers
Patrick Pierson
 
OpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image LifecycleOpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image Lifecycle
Mihai Criveti
 

Similar a Chapter 06: Eclipse Vert.x - Reactive Microservices with OpenShift (20)

Microservices in Java
Microservices in JavaMicroservices in Java
Microservices in Java
 
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
Puzzle ITC Talk @Docker CH meetup CI CD_with_Openshift_0.2
 
Docker and Vagrant usage in OPENi
Docker and Vagrant usage in OPENiDocker and Vagrant usage in OPENi
Docker and Vagrant usage in OPENi
 
Linux containers and docker
Linux containers and dockerLinux containers and docker
Linux containers and docker
 
Build containerized application using Docker and Azure.pdf
Build containerized application using Docker and Azure.pdfBuild containerized application using Docker and Azure.pdf
Build containerized application using Docker and Azure.pdf
 
2 Linux Container and Docker
2 Linux Container and Docker2 Linux Container and Docker
2 Linux Container and Docker
 
From CoreOS to Kubernetes and Concourse CI
From CoreOS to Kubernetes and Concourse CIFrom CoreOS to Kubernetes and Concourse CI
From CoreOS to Kubernetes and Concourse CI
 
Develop with linux containers and docker
Develop with linux containers and dockerDevelop with linux containers and docker
Develop with linux containers and docker
 
CASCON 2017 - OpenAPI v3
CASCON 2017 - OpenAPI v3CASCON 2017 - OpenAPI v3
CASCON 2017 - OpenAPI v3
 
Docker Application to Scientific Computing
Docker Application to Scientific ComputingDocker Application to Scientific Computing
Docker Application to Scientific Computing
 
Oscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby projectOscon 2017: Build your own container-based system with the Moby project
Oscon 2017: Build your own container-based system with the Moby project
 
Rome .NET Conference 2024 - Remote Conference
Rome .NET Conference 2024  - Remote ConferenceRome .NET Conference 2024  - Remote Conference
Rome .NET Conference 2024 - Remote Conference
 
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetupCloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
Cloud foundry integration-with-openstack-and-docker-bangalorecf-meetup
 
Mihai Criveti - PyCon Ireland - Automate Everything
Mihai Criveti - PyCon Ireland - Automate EverythingMihai Criveti - PyCon Ireland - Automate Everything
Mihai Criveti - PyCon Ireland - Automate Everything
 
MongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise Kubernetes
MongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise KubernetesMongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise Kubernetes
MongoDB World 2018: Partner Talk - Red Hat: Deploying to Enterprise Kubernetes
 
Devoxx 2016: A Developer's Guide to OCI and runC
Devoxx 2016: A Developer's Guide to OCI and runCDevoxx 2016: A Developer's Guide to OCI and runC
Devoxx 2016: A Developer's Guide to OCI and runC
 
Mesos and Kubernetes ecosystem overview
Mesos and Kubernetes ecosystem overviewMesos and Kubernetes ecosystem overview
Mesos and Kubernetes ecosystem overview
 
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB201904_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
04_Azure Kubernetes Service: Basic Practices for Developers_GAB2019
 
Virtual machines and containers
Virtual machines and containersVirtual machines and containers
Virtual machines and containers
 
OpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image LifecycleOpenShift Virtualization - VM and OS Image Lifecycle
OpenShift Virtualization - VM and OS Image Lifecycle
 

Más de Firmansyah, SCJP, OCEWCD, OCEWSD, TOGAF, OCMJEA, CEH

Microservices Decomposition Patterns.v1.0.20191009
Microservices Decomposition Patterns.v1.0.20191009Microservices Decomposition Patterns.v1.0.20191009
Microservices Decomposition Patterns.v1.0.20191009
Firmansyah, SCJP, OCEWCD, OCEWSD, TOGAF, OCMJEA, CEH
 
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
Firmansyah, SCJP, OCEWCD, OCEWSD, TOGAF, OCMJEA, CEH
 
Microservices Decomposition Patterns
Microservices Decomposition PatternsMicroservices Decomposition Patterns
Microservices Decomposition Patterns
Firmansyah, SCJP, OCEWCD, OCEWSD, TOGAF, OCMJEA, CEH
 
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDKComparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK
Firmansyah, SCJP, OCEWCD, OCEWSD, TOGAF, OCMJEA, CEH
 
Chapter 04: Eclipse Vert.x - Message Based Microservices
Chapter 04: Eclipse Vert.x - Message Based MicroservicesChapter 04: Eclipse Vert.x - Message Based Microservices
Chapter 04: Eclipse Vert.x - Message Based Microservices
Firmansyah, SCJP, OCEWCD, OCEWSD, TOGAF, OCMJEA, CEH
 
Chapter 03: Eclipse Vert.x - HTTP Based Microservices
Chapter 03: Eclipse Vert.x - HTTP Based MicroservicesChapter 03: Eclipse Vert.x - HTTP Based Microservices
Chapter 03: Eclipse Vert.x - HTTP Based Microservices
Firmansyah, SCJP, OCEWCD, OCEWSD, TOGAF, OCMJEA, CEH
 
Chapter 02: Eclipse Vert.x - Java First Verticle
Chapter 02: Eclipse Vert.x - Java First VerticleChapter 02: Eclipse Vert.x - Java First Verticle
Chapter 02: Eclipse Vert.x - Java First Verticle
Firmansyah, SCJP, OCEWCD, OCEWSD, TOGAF, OCMJEA, CEH
 
Liferay Platform Overview
Liferay Platform OverviewLiferay Platform Overview
Solution Architecture Framework
Solution Architecture FrameworkSolution Architecture Framework
Solution Architecture Definition
Solution Architecture DefinitionSolution Architecture Definition
Mobile Application Development Platform 2017
Mobile Application Development Platform 2017Mobile Application Development Platform 2017
Mobile Application Development Platform 2017
Firmansyah, SCJP, OCEWCD, OCEWSD, TOGAF, OCMJEA, CEH
 

Más de Firmansyah, SCJP, OCEWCD, OCEWSD, TOGAF, OCMJEA, CEH (11)

Microservices Decomposition Patterns.v1.0.20191009
Microservices Decomposition Patterns.v1.0.20191009Microservices Decomposition Patterns.v1.0.20191009
Microservices Decomposition Patterns.v1.0.20191009
 
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK.v1.0.20191009
 
Microservices Decomposition Patterns
Microservices Decomposition PatternsMicroservices Decomposition Patterns
Microservices Decomposition Patterns
 
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDKComparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK
Comparison between Oracle JDK, Oracle OpenJDK, and Red Hat OpenJDK
 
Chapter 04: Eclipse Vert.x - Message Based Microservices
Chapter 04: Eclipse Vert.x - Message Based MicroservicesChapter 04: Eclipse Vert.x - Message Based Microservices
Chapter 04: Eclipse Vert.x - Message Based Microservices
 
Chapter 03: Eclipse Vert.x - HTTP Based Microservices
Chapter 03: Eclipse Vert.x - HTTP Based MicroservicesChapter 03: Eclipse Vert.x - HTTP Based Microservices
Chapter 03: Eclipse Vert.x - HTTP Based Microservices
 
Chapter 02: Eclipse Vert.x - Java First Verticle
Chapter 02: Eclipse Vert.x - Java First VerticleChapter 02: Eclipse Vert.x - Java First Verticle
Chapter 02: Eclipse Vert.x - Java First Verticle
 
Liferay Platform Overview
Liferay Platform OverviewLiferay Platform Overview
Liferay Platform Overview
 
Solution Architecture Framework
Solution Architecture FrameworkSolution Architecture Framework
Solution Architecture Framework
 
Solution Architecture Definition
Solution Architecture DefinitionSolution Architecture Definition
Solution Architecture Definition
 
Mobile Application Development Platform 2017
Mobile Application Development Platform 2017Mobile Application Development Platform 2017
Mobile Application Development Platform 2017
 

Último

8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
kalichargn70th171
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
Bert Jan Schrijver
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
brainerhub1
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
Rakesh Kumar R
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Julian Hyde
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
dakas1
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
Grant Fritchey
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Envertis Software Solutions
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
Rakesh Kumar R
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
ToXSL Technologies
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
Rakesh Kumar R
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
Green Software Development
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
GohKiangHock
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
Remote DBA Services
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
VALiNTRY360
 

Último (20)

8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf8 Best Automated Android App Testing Tool and Framework in 2024.pdf
8 Best Automated Android App Testing Tool and Framework in 2024.pdf
 
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
J-Spring 2024 - Going serverless with Quarkus, GraalVM native images and AWS ...
 
Unveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdfUnveiling the Advantages of Agile Software Development.pdf
Unveiling the Advantages of Agile Software Development.pdf
 
What next after learning python programming basics
What next after learning python programming basicsWhat next after learning python programming basics
What next after learning python programming basics
 
Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)Measures in SQL (SIGMOD 2024, Santiago, Chile)
Measures in SQL (SIGMOD 2024, Santiago, Chile)
 
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
一比一原版(UMN毕业证)明尼苏达大学毕业证如何办理
 
Using Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query PerformanceUsing Query Store in Azure PostgreSQL to Understand Query Performance
Using Query Store in Azure PostgreSQL to Understand Query Performance
 
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative AnalysisOdoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
Odoo ERP Vs. Traditional ERP Systems – A Comparative Analysis
 
How to write a program in any programming language
How to write a program in any programming languageHow to write a program in any programming language
How to write a program in any programming language
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?How Can Hiring A Mobile App Development Company Help Your Business Grow?
How Can Hiring A Mobile App Development Company Help Your Business Grow?
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
Fundamentals of Programming and Language Processors
Fundamentals of Programming and Language ProcessorsFundamentals of Programming and Language Processors
Fundamentals of Programming and Language Processors
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
GreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-JurisicGreenCode-A-VSCode-Plugin--Dario-Jurisic
GreenCode-A-VSCode-Plugin--Dario-Jurisic
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
SQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure MalaysiaSQL Accounting Software Brochure Malaysia
SQL Accounting Software Brochure Malaysia
 
Oracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptxOracle 23c New Features For DBAs and Developers.pptx
Oracle 23c New Features For DBAs and Developers.pptx
 
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdfTop Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
Top Benefits of Using Salesforce Healthcare CRM for Patient Management.pdf
 

Chapter 06: Eclipse Vert.x - Reactive Microservices with OpenShift

  • 2. 01. OpenShift a. Definition: 1. RedHat OpenShift is an open source container platform. 2. OpenShift is built on top of Kubernetes (https://kubernetes.io/). 3. Kubernetes is a project with lots of functionality for running clusters of microservices inside Linux containers at scale. 4. The OpenShift container platform: Kubernetes OpenShift
  • 3. 01. OpenShift b. The OpenShift Components: 1. Build Configuration: The build is the process of creating container images that will be used by OpenShift to instantiate the different containers that make up an application. a) OpenShift builds can use different strategies: • Docker: Build an image from a Dockerfile. • Source to Image (S2I): Build an image from the application source, built on OpenShift by a builder image.
  • 4. 01. OpenShift b. The OpenShift Components: • Jenkins Pipeline—Build an image using a Jenkins pipeline (https://jenkins.io/doc/book/pipeline) potentially containing multiple stages such as build, tests, and deployment. b) A build configuration can be triggered automatically by: • A Git push. • A change in the configuration or an update in a dependent image. • Manual. 2. Deployment Configurations: a) It defines the instantiation of the image produced by a build. b) It defines which image is used to create the containers and the number of instances we need to keep alive. c) It also describes when a deployment should be triggered. d) It acts as a replication controller and is responsible for keeping containers alive. To achieve this, you pass the number of desired instances. The number of desired instances can be adjusted over time or based on the load fluctuation (auto-scaling). e) It can also specify health checks to manage rolling updates and detect dead containers.
  • 5. 01. OpenShift b. The OpenShift Components: 3. Pods: a) A pod is a group of one or more containers. However, it is typically comprised of a single container. b) The pod orchestration, scheduling, and management are delegated to Kubernetes. c) Pods are fungible, and can be replaced at any time by another instance. For example, if the container crashes, another instance will be spawned. 4. Services: a) Services allow us to communicate with the pods without relying on their addresses but by using the service virtual address. b) A service acts as a proxy in front of a group of pods. c) It may also implement a load-balancing strategy. 5. Routes: a) It exposes a service at a hostname like www.myservice.com so that external clients can reach it by name. b) Other applications running in OpenShift can access the functionality offered by the pods using the service, but external applications need a route.
  • 6. 02. OpenShift Installation a. Options for install OpenShift: 1. Minishift (https://github.com/minishift/minishift). In this demo we will install this option and requires a VirtualBox, please download at https://www.virtualbox.org/wiki/Downloads and follow its installation guides. 2. OpenShift Starter Online (https://www.openshift.com/products/pricing/), need sign up. 3. Red Hat Container Development Kit (https://developers.redhat.com/products/cdk/download/) b. Minishift Installation: 1. Download the latest version for your OS from the Minishift releases page (https://github.com/minishift/minishift/releases), 2. Unpack it to your preferred location, 3. Create variable name MINISHIFT_HOME inside environment variable and its value is your unpacking preferred location. 4. Add the MINISHIFT_HOME (minishift binary) to your PATH environment variable. 5. (Optional) Remove C:WindowsSystem32OpenSSH from your PATH environment variable, if there are some error occurred.
  • 7. 02. OpenShift Installation b. Minishift Installation: 6. Once installed, start Minishift using: minishift start --vm-driver virtualbox --show- libmachine-logs -v5 7. Once started, you should be able to connect to your OpenShift instance using web browser with launch following command: Minishift console 8. You may have to validate the SSL certificate. 9. Log in with developer/developer. c. OpenShift client (oc): 1. Find oc binary in MINISHIFT_HOMEcacheocv3.11.0windows 2. Add the oc binary to your PATH environment variable. 3. Connect to your OpenShift instance using: oc login https://192.168.99.100:8443 -u developer -p developer 4. Create example project, execute: oc new-project project-example oc policy add-role-to-user admin developer -n project-example oc policy add-role-to-user view -n project-example -z default 5. In your browser, open: https://192.168.99.100:8443/console/project/project-example/.
  • 8. 03. Create OsHttpMicro01 a. Create a directory called “chapter06” and sub directory called “oshttpmicro01” b. Generate the project structure using maven inside oshttpmicro01 folder: mvn io.reactiverse:vertx-maven-plugin:1.0.18:setup -DprojectGroupId=io.vertx.chapter06 -DprojectArtifactId=os-http-micro-vertx-app -Dverticle=io.vertx.chapter06.OsHttpMicro01 -Ddependencies=web c. Modify io.vertx.chapter06.OsHttpMicro01 class d. Modify pom.xml file e. Login into openshift: oc login https://192.168.99.100:8443 -u developer -p developer f. Package and deploy OsHttpMicro01 to OpenShift, launch: mvn fabric8:deploy -Popenshift
  • 9. 04. Create OsHttpMicro02 a. Create a directory called “oshttpmicro02” under directory “chapter06” b. Generate the project structure using maven inside oshttpmicro02 folder: mvn io.reactiverse:vertx-maven-plugin:1.0.18:setup -DprojectGroupId=io.vertx.chapter06 -DprojectArtifactId=os-http-micro02-vertx-app -Dverticle=io.vertx.chapter06.OsHttpMicro02 -Ddependencies=web,rx,web-client,service-discovery,vertx- service-discovery-bridge-kubernetes,circuit-breaker c. Modify io.vertx.chapter06.OsHttpMicro02 class d. Modify pom.xml file e. Login into openshift and make sure has access right: oc login https://192.168.99.100:8443 -u developer -p developer oc policy add-role-to-user admin developer -n myproject oc policy add-role-to-user view -n myproject -z default f. Package and deploy OsHttpMicro02 to OpenShift, launch: mvn fabric8:deploy -Popenshift
  • 10. Thank You! Any questions? You can find me at firmansyah.profess@gmail.com Credits PPT: ALLPPT.com Music: https://www.bensound.com

Notas del editor

  1. Maven Plugin for Eclipse Vert.x The project has been migrated to: https://github.com/reactiverse/vertx-maven-plugin and https://reactiverse.io/vertx-maven-plugin/ for the documentation This repository should not be used anymore. This Maven plugin is a one-stop-shop for packaging, running, starting and stopping vert.x Java applications. This plugin combines the goals of Maven Shade, Maven Exec into one, allowing the users to have a simplified pom.xml.
  2. Maven Plugin for Eclipse Vert.x The project has been migrated to: https://github.com/reactiverse/vertx-maven-plugin and https://reactiverse.io/vertx-maven-plugin/ for the documentation This repository should not be used anymore. This Maven plugin is a one-stop-shop for packaging, running, starting and stopping vert.x Java applications. This plugin combines the goals of Maven Shade, Maven Exec into one, allowing the users to have a simplified pom.xml.