JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB...

32
" m " for menu, "? " for other shortcuts JAVA DEVELOPMENT IN THE AGE OF THE WHALE JavaLand 2018, München Dr. Roland Huß, Red Hat, @ro14nd

Transcript of JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB...

Page 1: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

"m " fo r menu , "? " fo r o ther shor tcu ts

JAVADEVELOPMENTINTHEAGEOFTHEWHALE

JavaLand2018,München

Dr. RolandHuß,RedHat, @ro14nd

Page 2: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.
Page 3: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.
Page 4: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.
Page 5: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.
Page 6: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.
Page 7: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.
Page 8: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.
Page 9: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

KUBERNETES

OpenSourceorchestrationsystem

forcontainers

Scheduling

Horizontalscaling

Self-healing

Servicediscovery

Automatedrolloutandrollbacks

Page 10: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

ARCHITECTURE

Page 11: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

KUBERNETESINTHECLOUD

GoogleContainerEngine(GKE)

AzureContainerService(AKE)

OpenShiftOnline

AWSEC2,DigitalOcean,...

Stackpoint.io

CoreOSTectonic

KubernetesOperations(kops)

Page 12: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

RASPICLUSTER

4RaspberryPi3

WifiRouter

6PortUSBcharger

32GBSD-Cards

Costs:~300€

InstallviaAnsible

kubeadm

FullStory:https://ro14nd.de/kubernetes-on-raspberry-pi3

Page 13: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

MINIKUBE

Single-nodeKubernetesclusterinsidea

VM

NoDockerdaemonrequired

Idealforlocaldevelopment

SupportsDNS,NodePorts,Volumes,...

https://github.com/kubernetes/minikube

Page 14: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.
Page 15: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

FABRIC8

MicroservicesPlatformfor

Kubernetes&OpenShift

Upstreamprojectsforopenshift.io

Themes:

ContinousDelivery

ManagementUI

Funktion

Quickstarts

Tooling

Page 16: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

FABRIC8-MAVEN-PLUGIN

CreatesDockerimagesand

resourcedescriptors

Zero-configurationwith

opinionateddefaults

Full-configurationwithenrichable

fragments

https://maven.fabric8.io

Page 17: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

GOALS

fabric8:build Buildapplicationimages(Docker,

S2Ibinary,S2Isource)

fabric8:resource CreateKubernetesandOpenShift

resourcedescriptors

fabric8:apply Applyresourcedescriptorstoa

runningcluster

Page 18: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

CONFIGURATION

ZeroConfig

OpinionatedDefaults

Limitedconfigurationoptions

XMLConfiguration

Restrictedconfigurationsyntax

ResourceFragments

Mostpowerful

Verbose

Page 19: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

ZEROCONFIG

GeneratorsforImagegeneration <build>

<plugins>

<plugin>

<groupid>io.fabric8</groupid>

<artifactid>fabric8-maven-plugin</artifactid>

<version>3.5.31</version>

</plugin>

<plugin>

<groupid>org.springframework.boot</groupid>

<artifactid>spring-boot-maven-plugin</artifactid>

</plugin>

</plugins>

</build>

Page 20: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

RESOURCEFRAGMENTS

Resourcefragment

src/main/fabric8/pong-rc.yml

Enrichersaddmissingpieces

spec:

replicas: 1

template:

spec:

containers:

- name: pong

ports:

- containerPort: 8080

Page 21: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

GENERATORS

ExtractDockerimage

configurationfrompom.xml

Supportedtechnologies:

SpringBoot

WildflySwarm

FatJars

EclipseVert.x

Webapps

Karaf

Page 22: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

ENRICHERS

AdddefaultKubernetesresources

Updateexistingresources

E.g.

DefaultDeploymentandService

Gitinformationaslabels

Addhealthchecks

AddOpenShiftroutes

....

Page 23: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

PROFILES

Namedcollectionofenrichersand

generators

-Dfabric8.profiletoselect

raw Noenrichment

explicit Onlydefaultobjects

minimal Smallenrichments

aggregate Combineresourcesfromdependencies

Page 24: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

K8S&OPENSHIFT

Kubernetes:

Dockerbuilds

Deployments

Ingress

OpenShift

S2I&DockerBinaryBuilds

DeploymentConfig

ImageStream

Template

Page 25: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

MISC

fabric8:install Installlocaldevelopment

environment

fabric8:cluster-

start

Startminikubeorminishift

fabric8:watch Watchforchangesand

redeployments

fabric8:debug Debugintopods

Page 26: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.
Page 27: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

OPENSHIFT

AddstheBUILDtoKubernetes

InfrastructureServices

Registry

Router

OAuth2SSO

Multitenancy

ManagementUI

...

Page 28: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

OPENSHIFTEXTRAS

Page 29: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

MINISHIFT

Single-nodeOpenShiftOrigincluster

insideaVM

Basedonoc cluster up

Supportsroutes,registry,s2ibuilds,....

https://github.com/minishift/minishift

Page 30: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

WRAPUP

StartingwithKubernetescanbe

almostaseasyaswithDocker

KubernetesandOpenShiftare

powerfulorchestrationplatforms

withenterprisegradefeatures.

Usefabric8-maven-pluginforJava

apps

Page 31: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

https://leanpub.com/k8spatterns

Page 32: JAVA DEVELOPMENT IN THE AGE OF THE WHALE · RASPI CLUSTER 4 Raspberry Pi 3 Wifi Router 6 Port USB charger 32 GB SD-Cards ... Wildfly Swarm Fat Jars Eclipse Vert.x Webapps Karaf.

QUESTIONS?

Twitter @ro14nd

Slides https://github.com/ro14nd-talks/kubernetes-for-java-developers