Red Hat - Moving the
GitOps ecosystem
ever forward
Sérgio Seabra
Senior Solutions Architect - Red Hat
An ocean of Options
How do we navigate???
An ocean of Options
How do we navigate???
An ocean of Options
How do we navigate???
An ocean of Options
How do we navigate???
An ocean of Options
How do we navigate???
An ocean of Options
How do we navigate???
An ocean of Options
How do we navigate???
An ocean of Options
How do we navigate???
An ocean of Options
How do we navigate???
An ocean of Options
How do we navigate???
Making sense of it all (CNCF)
So… What defines a
Cloud Native App
Distributed
Secure
API Centric
Event Driven
Multi-cloud Scalable
Polyglot
Java
.Net
Core
Node.js
Python
Go
Lang
Disposable
Making sense of it all (CNCF)
Making Sense of it all
Making Sense of it all
Making Sense of it all
Making Sense of it all
Yeah… There’s more ¯_(ツ)_/¯
Yeah… There’s more
Yeah… There’s more
Yeah… There’s more
Yeah… There’s more
Yeah… There’s more
Yeah… There’s more
Making Sense of it all
Enabling Cloud Native JAVA
GraalVM
Enabling Cloud Native JAVA
Enabling Cloud Native JAVA
Best of breed Extensions (frameworks et al)
Enabling Cloud Native JAVA
Quarkus + GraalVM
13 MB
Quarkus + OpenJDK
74 MB
Traditional Cloud-Native Stack
140 MB
REST
Quarkus Reduces Memory Utilization
Enabling Cloud Native JAVA
Quarkus Reduces Memory Utilization
REST + CRUD
Quarkus + GraalVM
35 MB
Quarkus + OpenJDK
130 MB
Traditional Cloud-Native Stack
218 MB
Enabling Cloud Native JAVA
Quarkus Improves Startup Time by a lot!
Quarkus + GraalVM 0.014 Seconds
REST
REST + CRUD
Quarkus + OpenJDK 0.75 Seconds
Quarkus + GraalVM 0.055 Seconds
Quarkus + OpenJDK 2.5 Seconds
Traditional Cloud-Native Stack 9.5 Seconds
Traditional Cloud-Native Stack 4.3 Seconds
What is Knative?
"Function as a Service
(FaaS) is serverless in
the same way a square
is a rectangle"
Serverless > Functions
Serverless > Microservices
Serverless > Containers
Serverless then is more than Functions, more than microservices and more than just containers.
FaaS is a specialization of what Serverless is, but definitely not the only way to think about Serverless.
What is Knative?
Serverless Defined
“computing execution model that depends
on services to manage server-side logic and
state where business logic run in stateless,
event-triggered compute linux containers"
event
action
result$
What is Knative?
SERVING
An event-driven model
that serves the container
with your application and
can "scale to zero".
EVENTING
Common infrastructure for
consuming and producing
events that will stimulate
applications.
DEPLOYING
A set of shared and
standard components for
building Kubernetes-style
CI/CD systems
What is Knative?
Microservices, Functions and Apps + Events
What is Knative?
Key Features
● Familiar to Kubernetes users.
Native.
● Scale to 0 and autoscale to
N based on demand
● Applications and functions.
Any container workload.
● Powerful eventing model with
multiple event sources.
● Operator available via
OperatorHub
● Knative v0.8 (v1beta1 APIs)
● No vendor lock in
Keeping microservices
under control
Keeping microservices
under control
Keeping microservices
under control
Key Features
● A dedicated network for service to service
communications
● Observability and distributed tracing
● Policy-driven security
● Routing rules & chaos engineering
● Powerful visualization & monitoring
● Available via OperatorHub
Keeping microservices
under control
Keeping microservices
under control
Keeping microservices
under control
Guided
Configuration of
Traffic Policies
Keeping microservices
under control
Enabling Developers
● Browser-based web IDE and
dev environment in Kube
pods
● Red Hat supported Eclipse
Che
● Available on OCP and OSD
● Enabled via an operator
● Stacks based on Red Hat
Linux and Middleware
CodeReady Workspaces
Enabling Developers
● A developer-focused command-line
tool for rapid development
iterations on OpenShift.
● Simplifies building of microservices
applications on OpenShift.
● GA OpenShift 4.2
OpenShift’s Dev-Focused CLI: “odo”
$ odo create wildfly backend
Component ‘backend’ was created.
$ odo push
Pushing changes to component: backend
$ odo create php frontend
Component ‘frontend’ was created.
To push source code to the component run ‘odo push’
$ odo push
Pushing changes to component: frontend
$ odo url create
frontend - http://frontend-myapp.192.168.99.100.nip.io
$ odo watch
Waiting for something to change in /dev/frontend
Last but not least
● Sucessor to Minishift
● Allows to keep in sync with
our enterprise releases
● Supports Operator Hub!
● Available now!
Try all of this on your laptop with: CodeReady Containers
References
● Tekton documentation
● Tekton tutorial
● OpenShift Pipelines tutorial
● Open Container initiative (CRI-O, Buildha,
Podman & Skopeo
● Quarkus test drive
● Quarkus SpringBoot exercise
● OpenShift 4.x on your laptop
● Camel-K
● All things Quarkus
● Red Hat Istio Service Mesh
● Red Hat AMQ Streams - Kafka on OpenShift
● cri-O runtime
● OpenShift Do (odo cli)
● OpenShift free online training for developers
● Knative tutorial
● KEDA
● Red Hat CodeReady Workspaces
● Red Hat AMQ and GitOps
● Reactive programming and Vert.x
● Red Hat OpenShift Operator Framework
● OpenShift Istio (Kiali)
● OpenShift Istio (Jaeger)
Sergio Seabra - Red Hat - OSL19

Sergio Seabra - Red Hat - OSL19

  • 1.
    Red Hat -Moving the GitOps ecosystem ever forward Sérgio Seabra Senior Solutions Architect - Red Hat
  • 2.
    An ocean ofOptions How do we navigate???
  • 3.
    An ocean ofOptions How do we navigate???
  • 4.
    An ocean ofOptions How do we navigate???
  • 5.
    An ocean ofOptions How do we navigate???
  • 6.
    An ocean ofOptions How do we navigate???
  • 7.
    An ocean ofOptions How do we navigate???
  • 8.
    An ocean ofOptions How do we navigate???
  • 9.
    An ocean ofOptions How do we navigate???
  • 10.
    An ocean ofOptions How do we navigate???
  • 11.
    An ocean ofOptions How do we navigate???
  • 12.
    Making sense ofit all (CNCF)
  • 13.
    So… What definesa Cloud Native App Distributed Secure API Centric Event Driven Multi-cloud Scalable Polyglot Java .Net Core Node.js Python Go Lang Disposable
  • 14.
    Making sense ofit all (CNCF)
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
    Enabling Cloud NativeJAVA Best of breed Extensions (frameworks et al)
  • 31.
    Enabling Cloud NativeJAVA Quarkus + GraalVM 13 MB Quarkus + OpenJDK 74 MB Traditional Cloud-Native Stack 140 MB REST Quarkus Reduces Memory Utilization
  • 32.
    Enabling Cloud NativeJAVA Quarkus Reduces Memory Utilization REST + CRUD Quarkus + GraalVM 35 MB Quarkus + OpenJDK 130 MB Traditional Cloud-Native Stack 218 MB
  • 33.
    Enabling Cloud NativeJAVA Quarkus Improves Startup Time by a lot! Quarkus + GraalVM 0.014 Seconds REST REST + CRUD Quarkus + OpenJDK 0.75 Seconds Quarkus + GraalVM 0.055 Seconds Quarkus + OpenJDK 2.5 Seconds Traditional Cloud-Native Stack 9.5 Seconds Traditional Cloud-Native Stack 4.3 Seconds
  • 34.
    What is Knative? "Functionas a Service (FaaS) is serverless in the same way a square is a rectangle" Serverless > Functions Serverless > Microservices Serverless > Containers Serverless then is more than Functions, more than microservices and more than just containers. FaaS is a specialization of what Serverless is, but definitely not the only way to think about Serverless.
  • 35.
    What is Knative? ServerlessDefined “computing execution model that depends on services to manage server-side logic and state where business logic run in stateless, event-triggered compute linux containers" event action result$
  • 36.
    What is Knative? SERVING Anevent-driven model that serves the container with your application and can "scale to zero". EVENTING Common infrastructure for consuming and producing events that will stimulate applications. DEPLOYING A set of shared and standard components for building Kubernetes-style CI/CD systems
  • 37.
    What is Knative? Microservices,Functions and Apps + Events
  • 38.
    What is Knative? KeyFeatures ● Familiar to Kubernetes users. Native. ● Scale to 0 and autoscale to N based on demand ● Applications and functions. Any container workload. ● Powerful eventing model with multiple event sources. ● Operator available via OperatorHub ● Knative v0.8 (v1beta1 APIs) ● No vendor lock in
  • 39.
  • 40.
  • 41.
    Keeping microservices under control KeyFeatures ● A dedicated network for service to service communications ● Observability and distributed tracing ● Policy-driven security ● Routing rules & chaos engineering ● Powerful visualization & monitoring ● Available via OperatorHub
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
    Enabling Developers ● Browser-basedweb IDE and dev environment in Kube pods ● Red Hat supported Eclipse Che ● Available on OCP and OSD ● Enabled via an operator ● Stacks based on Red Hat Linux and Middleware CodeReady Workspaces
  • 47.
    Enabling Developers ● Adeveloper-focused command-line tool for rapid development iterations on OpenShift. ● Simplifies building of microservices applications on OpenShift. ● GA OpenShift 4.2 OpenShift’s Dev-Focused CLI: “odo” $ odo create wildfly backend Component ‘backend’ was created. $ odo push Pushing changes to component: backend $ odo create php frontend Component ‘frontend’ was created. To push source code to the component run ‘odo push’ $ odo push Pushing changes to component: frontend $ odo url create frontend - http://frontend-myapp.192.168.99.100.nip.io $ odo watch Waiting for something to change in /dev/frontend
  • 48.
    Last but notleast ● Sucessor to Minishift ● Allows to keep in sync with our enterprise releases ● Supports Operator Hub! ● Available now! Try all of this on your laptop with: CodeReady Containers
  • 49.
    References ● Tekton documentation ●Tekton tutorial ● OpenShift Pipelines tutorial ● Open Container initiative (CRI-O, Buildha, Podman & Skopeo ● Quarkus test drive ● Quarkus SpringBoot exercise ● OpenShift 4.x on your laptop ● Camel-K ● All things Quarkus ● Red Hat Istio Service Mesh ● Red Hat AMQ Streams - Kafka on OpenShift ● cri-O runtime ● OpenShift Do (odo cli) ● OpenShift free online training for developers ● Knative tutorial ● KEDA ● Red Hat CodeReady Workspaces ● Red Hat AMQ and GitOps ● Reactive programming and Vert.x ● Red Hat OpenShift Operator Framework ● OpenShift Istio (Kiali) ● OpenShift Istio (Jaeger)