SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
JBCNConf2022
GovsJavaenelcontextodeKubernetes!
Barcelona,Spain
MauricioSalatino-@Salaboy
https://github.com/salaboy/from-monolith-to-k8s
1
Agenda
Intro/Background
IDEs,LenguajesyFrameworks
HablemosdeContainersyKubernetes
ExtendiendoKubernetes
Alternativasmássaludables
2
Intro
@Salaboy
http://mng.bz/jjKP 3
Background
Java/J2EE/JavaEE5
JBoss
JavaEE/Wildfly
Kubernetes
MiprimerKubernetesControllerconFabric8.io
JenkinsX
SpringBootySpringCloud
SpringCloudKubernetes
KubernetesControllersconSpringCloudKubernetes
Go
KubernetesControllersconKubeBuilder
KnativeEventing&&KnativeFunctionsWGco-lead 4
IDEs,LenguajesyFrameworks
VamoscrearunservicioqueexponeunendpointREST
GolandandIntellijIdea
SpringBoot&Quarkus
Go
5
ResumenGo
Ventajas
Administraciondedependencias(GoModules)integrada
UnitTestingintegrado
MarshallingdeYAMLyJSONintegrado
Desventajas
NohayframeworksdefactocomoSpringBoot,cadaunoeligeeintegra
Gocreabinariosquedependendendelaplataformdondehacemoselbuild.
SimilaralosproblemasquevamosatenerconGraalVM
6
HablemosdeContainersyKubernetes
CreandocontainersyYAMLs:
SpringBoot
EclipseJKubeMavenPlugin(ex-Fabric8MavenPlugin)
mvn k8s:push / mvn k8s:resource / mvn k8s:apply
Quarkus
QuarkusKubernetesExtension
Go
google/ko
ko build main.go / ko resolve / ko apply
IssueforSpringBoot:https://github.com/spring-projects/spring-boot/issues/31662
7
ResumenGo
SpringBootyQuarkusproveenintegracionesconJibyBuildpacksparacontruir
containerssinDockerfiles
AmbasintegracionesusanlaversiondefinidaenMavenparataggearelcontainer
EnGopodemosusarKoparaconstruirypublicarestoscontainersanuestroregistry
preferido
ko construyeypublicacontainersusandounSHA.Nospermitecorrercontainers
siemprelosultimoscambios
ko nocreaYAMLspero ko resolve -f reemplazalasreferencias
ko apply -f construye,publicaydesplieganuevaversiones
IssueforSpringBoot:https://github.com/spring-projects/spring-boot/issues/31662
8
KubernetesAPIs
TardeotempranovamosaquererinteractuarconlasAPIsdeKubernetes:
Fabric8.ioKubernetesAPIs
Ejemplo
KubernetesClientJava
Ejemplo
GoClient
Ejemplo
9
CuandoextenderKubernetes
AutomatizaciondetareasmanipulandorecursosdeKubernetes(Controlladoresque
instalan,configuranomonitoreancomponentes)
NecesitamosconceptosdemasaltonivelqueKubernetesnoprovee
IntegracionesentredistintosproyectosoconserviciosexternosaKubernetes
10
ComoextenderKubernetes
CreamosnuevosCustomResourceDefinitionsyKubernetesControllers
RecomendadoUnderstandingKubernetestools/cachepackageBlog 11
Casodeusodeejemplo
Monitorearycorrertestdeproducción
12
Veamosalgunasherramientas
KubeBuilderGo
JavaOperatorSDK
Bug/EdgeCase-FIXED
SpringDocumentationupdated
13
Mencionesespeciales
KnativeSampleController:EsteSampleControllerusalosmismosmecanismosque
usanloscontrollersdeKnative.Estoscontrollersestanprobadosenescenariosdealta
demandayhanmaduradopormasde4años.Estoscontrollerspuedencorrer
multiplereplicasconcurrentesmirandodistintos buckets derecursos.
KubernetesClientJava:ElclienteoficialdeKubernetesJavacontienehoyendiauna
versiondeControllerRuntime,conobjetoscomoControllersyReconcilers.
GoOperatorsSDKUsaKubebuilderyproveeintegracionesconHelm
14
PorquenoconstruirK8sControllers
Peroen2022deberiamosescribircontrollers?
=>K8sControllers==EdgeCaseFactories
RequirenpermisosespecialesparaaccederalasAPIsdeK8s
Soncomponentescomplejosenunmundodeaplicacionesdistribuidas
Tienenquepoderco-existirotroscontrolladores
TienenqueescalarsiguiendoloslineamientosdeKubernetes/buenosciudadanos
(leaderelection,altadisponibilidad)
15
Alternativasmássaludables
MetaController
CloudEventsparaintregraciones
CrossplaneProviders
16
MetaController
Paranocrearymantenercodigocomplejo
SpringBootPR
17
MetaControllerEjemplo
18
CloudEventsparaintregraciones
Paraescenariosdeintegraciondondenoqueremosquetodosloscomponentestengan
accessoalasAPIsdeKubernetes
https://knative.dev/docs/eventing/sources/apiserversource/ 19
Crossplane.ioProviders
ParasituacionesdondequeremosintegrarserviciosexternosaKubernetes
https://crossplane.io 20
Gracias!
Esperohaberlosbombardeadoconinformaciónutil!
@Salaboy
Knative
21

Más contenido relacionado

Similar a JBCNConf 2022: Go vs Java (Kubernetes)

Jobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket
 
HTML5 en el universo Windows (Apps universales)
HTML5 en el universo Windows (Apps universales)HTML5 en el universo Windows (Apps universales)
HTML5 en el universo Windows (Apps universales)Quique Fdez Guerra
 
Webinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaWebinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaDomingo Suarez Torres
 
Meterpreter en android el desembarco en tu smartphone
Meterpreter en android   el desembarco en tu smartphoneMeterpreter en android   el desembarco en tu smartphone
Meterpreter en android el desembarco en tu smartphoneJASENT
 
Grails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaDani Latorre
 
Presentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdf
Presentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdfPresentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdf
Presentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdfGustavo G. Mármol
 
Presentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdf
Presentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdfPresentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdf
Presentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdfGustavo G. Marmol Alioto
 
Programacion basica-en-java
Programacion basica-en-javaProgramacion basica-en-java
Programacion basica-en-javaDaniel Martinez
 
[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockitoJose Barba Martinez
 
Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket
 

Similar a JBCNConf 2022: Go vs Java (Kubernetes) (20)

Comenzando con GWT
Comenzando con GWTComenzando con GWT
Comenzando con GWT
 
Jobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto realJobsket.com, Grails en un proyecto real
Jobsket.com, Grails en un proyecto real
 
HTML5 en el universo Windows (Apps universales)
HTML5 en el universo Windows (Apps universales)HTML5 en el universo Windows (Apps universales)
HTML5 en el universo Windows (Apps universales)
 
Webinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador JavaWebinar: Groovy y la producttividad para el desarrollador Java
Webinar: Groovy y la producttividad para el desarrollador Java
 
Cv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-webCv dennys-jose-marquez-reyes-desarrollador-web
Cv dennys-jose-marquez-reyes-desarrollador-web
 
Meterpreter en android el desembarco en tu smartphone
Meterpreter en android   el desembarco en tu smartphoneMeterpreter en android   el desembarco en tu smartphone
Meterpreter en android el desembarco en tu smartphone
 
Modulo 1
Modulo 1Modulo 1
Modulo 1
 
SOLID - ¿Cómo lo aplico a mi código?
SOLID - ¿Cómo lo aplico a mi código?SOLID - ¿Cómo lo aplico a mi código?
SOLID - ¿Cómo lo aplico a mi código?
 
Introducción a groovy
Introducción a groovyIntroducción a groovy
Introducción a groovy
 
S8-DS2.pptx
S8-DS2.pptxS8-DS2.pptx
S8-DS2.pptx
 
Grails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web JavaGrails: Aumenta tu productividad en tus aplicaciones web Java
Grails: Aumenta tu productividad en tus aplicaciones web Java
 
DotNetDom: El futuro de Xamarin
DotNetDom: El futuro de XamarinDotNetDom: El futuro de Xamarin
DotNetDom: El futuro de Xamarin
 
Presentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdf
Presentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdfPresentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdf
Presentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdf
 
Presentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdf
Presentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdfPresentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdf
Presentación Univ Austral-Oracle v Google-Gustavo G Marmol Alioto.pdf
 
Tutorial 2
Tutorial 2Tutorial 2
Tutorial 2
 
Programacion basica-en-java
Programacion basica-en-javaProgramacion basica-en-java
Programacion basica-en-java
 
Tutorial 2
Tutorial 2Tutorial 2
Tutorial 2
 
Tutorial 2
Tutorial 2Tutorial 2
Tutorial 2
 
[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito[UNED2016] Practica 1 - Biblioteca mockito
[UNED2016] Practica 1 - Biblioteca mockito
 
Jobsket Spring 2GX Madrid
Jobsket Spring 2GX MadridJobsket Spring 2GX Madrid
Jobsket Spring 2GX Madrid
 

Más de Mauricio (Salaboy) Salatino

Lessons Learnt from creating platforms on Kubernetes @ Rejekts
Lessons Learnt from creating platforms on Kubernetes @ RejektsLessons Learnt from creating platforms on Kubernetes @ Rejekts
Lessons Learnt from creating platforms on Kubernetes @ RejektsMauricio (Salaboy) Salatino
 
Building Developer Experiences for the Cloud .pdf
Building Developer Experiences for the Cloud .pdfBuilding Developer Experiences for the Cloud .pdf
Building Developer Experiences for the Cloud .pdfMauricio (Salaboy) Salatino
 
KUBEDAY - JAPAN 2022 - Building FaaS Platforms.pdf
KUBEDAY - JAPAN  2022 - Building FaaS Platforms.pdfKUBEDAY - JAPAN  2022 - Building FaaS Platforms.pdf
KUBEDAY - JAPAN 2022 - Building FaaS Platforms.pdfMauricio (Salaboy) Salatino
 
The Challenges of building Cloud Native Platforms
The Challenges of building Cloud Native PlatformsThe Challenges of building Cloud Native Platforms
The Challenges of building Cloud Native PlatformsMauricio (Salaboy) Salatino
 
Functions Working Group Update - August 2022.pdf
Functions Working Group Update - August 2022.pdfFunctions Working Group Update - August 2022.pdf
Functions Working Group Update - August 2022.pdfMauricio (Salaboy) Salatino
 
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022 Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022 Mauricio (Salaboy) Salatino
 
Spring I/O 2022: Knative and Spring - Bringing back the `func`
Spring I/O 2022: Knative and Spring - Bringing back the `func`Spring I/O 2022: Knative and Spring - Bringing back the `func`
Spring I/O 2022: Knative and Spring - Bringing back the `func`Mauricio (Salaboy) Salatino
 
Knative Maintainers KubeConEU 22 Knative Overview and Update
Knative Maintainers KubeConEU 22 Knative Overview and UpdateKnative Maintainers KubeConEU 22 Knative Overview and Update
Knative Maintainers KubeConEU 22 Knative Overview and UpdateMauricio (Salaboy) Salatino
 
CDEventsCon Expanding Interoperability in the CD ecosystem
CDEventsCon Expanding Interoperability in the CD ecosystemCDEventsCon Expanding Interoperability in the CD ecosystem
CDEventsCon Expanding Interoperability in the CD ecosystemMauricio (Salaboy) Salatino
 
A Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
A Polyglot Developer Experience on Kubernetes - KubeCon EU ValenciaA Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
A Polyglot Developer Experience on Kubernetes - KubeCon EU ValenciaMauricio (Salaboy) Salatino
 
KCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre AbstraccionesKCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre AbstraccionesMauricio (Salaboy) Salatino
 
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS OfferingKubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS OfferingMauricio (Salaboy) Salatino
 
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with KnativeCloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with KnativeMauricio (Salaboy) Salatino
 

Más de Mauricio (Salaboy) Salatino (20)

Devoxx UK - Platforms on top of K8s
Devoxx UK - Platforms on top of K8sDevoxx UK - Platforms on top of K8s
Devoxx UK - Platforms on top of K8s
 
WTF_is_SRE_DeveloperEnabledPlatforms.pdf
WTF_is_SRE_DeveloperEnabledPlatforms.pdfWTF_is_SRE_DeveloperEnabledPlatforms.pdf
WTF_is_SRE_DeveloperEnabledPlatforms.pdf
 
Lessons Learnt from creating platforms on Kubernetes @ Rejekts
Lessons Learnt from creating platforms on Kubernetes @ RejektsLessons Learnt from creating platforms on Kubernetes @ Rejekts
Lessons Learnt from creating platforms on Kubernetes @ Rejekts
 
Building Developer Experiences for the Cloud .pdf
Building Developer Experiences for the Cloud .pdfBuilding Developer Experiences for the Cloud .pdf
Building Developer Experiences for the Cloud .pdf
 
KUBEDAY - JAPAN 2022 - Building FaaS Platforms.pdf
KUBEDAY - JAPAN  2022 - Building FaaS Platforms.pdfKUBEDAY - JAPAN  2022 - Building FaaS Platforms.pdf
KUBEDAY - JAPAN 2022 - Building FaaS Platforms.pdf
 
The Challenges of building Cloud Native Platforms
The Challenges of building Cloud Native PlatformsThe Challenges of building Cloud Native Platforms
The Challenges of building Cloud Native Platforms
 
Functions Working Group Update - August 2022.pdf
Functions Working Group Update - August 2022.pdfFunctions Working Group Update - August 2022.pdf
Functions Working Group Update - August 2022.pdf
 
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022 Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX -  2022
Expanding Interoperability in the CD ecosystem - CDCon - Austin, TX - 2022
 
Spring I/O 2022: Knative and Spring - Bringing back the `func`
Spring I/O 2022: Knative and Spring - Bringing back the `func`Spring I/O 2022: Knative and Spring - Bringing back the `func`
Spring I/O 2022: Knative and Spring - Bringing back the `func`
 
KnativeCon 2022 - Knative Functions
KnativeCon 2022 - Knative FunctionsKnativeCon 2022 - Knative Functions
KnativeCon 2022 - Knative Functions
 
Knative Maintainers KubeConEU 22 Knative Overview and Update
Knative Maintainers KubeConEU 22 Knative Overview and UpdateKnative Maintainers KubeConEU 22 Knative Overview and Update
Knative Maintainers KubeConEU 22 Knative Overview and Update
 
CDEventsCon Expanding Interoperability in the CD ecosystem
CDEventsCon Expanding Interoperability in the CD ecosystemCDEventsCon Expanding Interoperability in the CD ecosystem
CDEventsCon Expanding Interoperability in the CD ecosystem
 
A Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
A Polyglot Developer Experience on Kubernetes - KubeCon EU ValenciaA Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
A Polyglot Developer Experience on Kubernetes - KubeCon EU Valencia
 
Pave the Golden Path On Your Internal Platform
Pave the Golden Path On Your Internal PlatformPave the Golden Path On Your Internal Platform
Pave the Golden Path On Your Internal Platform
 
Knative and Spring - Bringing back the func.pdf
Knative and Spring - Bringing back the func.pdfKnative and Spring - Bringing back the func.pdf
Knative and Spring - Bringing back the func.pdf
 
KCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre AbstraccionesKCD Guatemala - Abstracciones sobre Abstracciones
KCD Guatemala - Abstracciones sobre Abstracciones
 
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS OfferingKubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
KubeCon NA - 2021 Tools That I Wish Existed 3 Years Ago To Build a SaaS Offering
 
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with KnativeCloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
Cloud Native Islamabad - Getting Closer to Continuous Delivery with Knative
 
Intro to the Cloud with Knative (Spanish)
Intro to the Cloud with Knative (Spanish) Intro to the Cloud with Knative (Spanish)
Intro to the Cloud with Knative (Spanish)
 
Keptn Meetup Interoperable ci/cd ecosystem
Keptn Meetup Interoperable ci/cd ecosystemKeptn Meetup Interoperable ci/cd ecosystem
Keptn Meetup Interoperable ci/cd ecosystem
 

JBCNConf 2022: Go vs Java (Kubernetes)