SlideShare una empresa de Scribd logo
1 de 52
Descargar para leer sin conexión
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Cloud Native Computing - What is it, and is
your app Cloud Native?
Cork Open Technologies
Michael J. O’Sullivan - @mjjosullivan
19th March 2019
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
CNCF Cloud Native Definition v1.0
Cloud native technologies empower organizations to
build and run scalable applications in modern, dy-
namic environments such as public, private, and
hybrid clouds. Containers, service meshes, mi-
croservices, immutable infrastructure, and declara-
tive APIs exemplify this approach.
These techniques enable loosely coupled systems that are
resilient, manageable, and observable. Combined with robust
automation, they allow engineers to make high-impact
changes frequently and predictably with minimal toil.
From: https:
//github.com/cncf/toc/blob/master/DEFINITION.md
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Cloud Native Computing Foundation
From https://www.cncf.io
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Technology Buzzwords...
▶ Note that the Foundation describes building sustainable
ecosystems...
▶ Orchestration
▶ Containers
▶ Microservices
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Pivotal: What are Cloud-Native Applications?
Cloud-native is an approach to building and run-
ning applications that exploits the advantages of
the cloud computing delivery model. Cloud-native
is about how applications are created and deployed,
not where. ...It’s appropriate for both public and pri-
vate clouds. Most important is the ability to offer
nearly limitless computing power, on-demand, along
with modern data and application services for devel-
opers...
From: https://pivotal.io/cloud-native
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Cloud Native Technologies: Kubernetes
Kubernetes is an open-source system for automating
deployment, scaling, and management of container-
ized applications.
▶ Now open-source and managed under the Cloud Native
Computing Foundation (CNCF).
▶ It is not a container-engine itself - it uses various other
container-engines, notably Docker.
Cloud Native Technologies: Kubernetes -
Architecture
Two-part architecture: Components that run on a Master
Node, and those that run on the Worker Nodes (minions) -
your containers run in Pods on the Worker Nodes.
Diagram from https://kubernetes.io/docs/concepts/
architecture/cloud-controller . . . . . . . . . . . . . . . . . . . .
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Cloud Native Technologies: Prometheus
Prometheus is an open-source systems monitoring
and alerting toolkit originally built at SoundCloud...
It is now a standalone open source project and main-
tained independently of any company. To emphasize
this, and to clarify the project’s governance struc-
ture, Prometheus joined the Cloud Native Comput-
ing Foundation in 2016 as the second hosted project,
after Kubernetes.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Cloud Native Technologies: Prometheus -
Architecture
Prometheus discovers targets - metrics are then scraped, and
alerts can be sent via PagerDuty/Email, and visualised via a
Grafana-based UI.
Diagram from https:
//prometheus.io/docs/introduction/overview/
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Cloud Native Technologies: Envoy
Envoy is an L7 proxy and communication bus de-
signed for large modern service oriented architec-
tures. The project was born out of the belief that
the network should be transparent to applications.
When network and application problems do occur it
should be easy to determine the source of the prob-
lem.
In practice, achieving the previously stated goal is
incredibly difficult.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Cloud Native Technologies: Envoy - Architecture
Envoy is a self contained process that is designed
to run alongside every application server. All of the
Envoys form a transparent communication mesh in
which each application sends and receives messages
to and from localhost and is unaware of the network
topology.
The above example is Istio - an open platform to connect,
manage, and secure microservices by means of Service Mesh.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Slow down... that’s a lot of tech!
▶ The CNCF is incubating this ecosystem of open-source
projects that all address challenges in the deployment
and operation of cloud-based applications...
▶ You may ask, if you don’t use these technologies, are
you doing cloud all wrong, let alone Cloud Native?
▶ If you use all these things, are you now considered to be
Cloud Native?
▶ Do you have to use all of these things?
▶ Are there alternatives?
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Cloud Native Technologies: Cloud Foundry
Cloud Foundry is an open source cloud applica-
tion platform, providing a choice of clouds, devel-
oper frameworks, and application services. Cloud
Foundry makes it faster and easier to build, test,
deploy, and scale applications. It is an open source
project and is available through a variety of private
cloud distributions and public cloud instances.
Cloud Foundry was developed by Pivotal, and is NOT a
CNCF incubated project.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Cloud Native Technologies: Cloud Foundry -
Architecture
A break-down of the architecture is beyond the scope of this
talk, but note the components - Diego (a container
execution engine), Router, Service Broker, Message Bus,
Authentication...
Pivotal describes Cloud Foundry as an ideal Platform for
running Cloud Native applications. Diagram from https:
//docs.cloudfoundry.org/concepts/architecture
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
The Twelve-Factor App
https://12factor.net/
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Why do the Factors matter?
▶ Cloud native applications are consumed as SaaS
(Software-as-a-Service) offerings - the Twelve-Factor
app is a methodology for building such apps.
▶ The objective of the methodology is to enable a
developer to build a scalable, stateless application that
can be deployed on different cloud environments.
▶ The Pivotal definition describing exploiting the cloud
delivery model - as we look at each Factor, you will
understand how that is achieved by means of the Cloud
Platform.
▶ It is based on years of experience by the engineers at
Heroku, deploying and operating, cloud applications.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Spotlight: Cloud Native App for Investigation
The application is a simple store front shopping ap-
plication that displays a catalog of antique comput-
ing devices, where users can search and buy prod-
ucts. It has a web interface that relies on sepa-
rate BFF (Backend for Frontend) services to interact
with the backend data.
From: https://github.com/ibm-cloud-architecture/
refarch-cloudnative-kubernetes/tree/spring
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
App Architecture
In this presentation, we will examine why this is considered
to be a cloud native application.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
I. Codebase
One codebase tracked in revision control, many de-
ploys.
▶ One-to-one correlation between a source code
repository and an app.
▶ A manifest describing the application should also be
present.
▶ The codebase should be the same for all deploys, and
not recompiled or repackaged for different environments.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sample App: Codebases
Each microservice of the overall application is infact, a
standalone application; each has a single codebase in version
control. Each can be deployed on their own without any
changes for each environment.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
II. Dependencies
Explicitly declare and isolate dependencies.
▶ All dependencies must be declared explicitly and
completely in the manifest.
▶ Dependencies are resolved via a package manager (e.g.
maven for Java, npm for Node.js) - not checked into
source code revision control.
▶ An application should never rely implicity on the
existance of a system-wide package for a dependency.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sample App: Dependencies
Each app contains a pom.xml (Maven for Java) or
package.json (npm for Node.js) file as appropriate, explicitly
stating each dependency, and their versions.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
III. Config
Store config in the environment.
▶ A config is what varies between every deployment of an
application (e.g. deploy-specifc properties, credentials,
and resource connection details).
▶ Application config should be provided at deploy-time
using environment variables - they can change without
changing code.
▶ Config should not be stored in config files checked into
source code revision control, or provided as Constants
in the codebase.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sample App: Config
Config is provided as input to the applications via Helm
Charts. Parameters are stored in values.yaml (left), parsed
via a Helm template helper file (center), and then substitued
into the Kubernetes deployment.yaml file (right) as
environment variables.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sample App: Config - CAUTION!!!
Database connection credentials (and other
credentials/keys/certs) are stored here in a public repository
as plaintext! Never do this! Such secret values should be
stored in a credentials manager (such as Vault), and passed
as input to Helm at runtime using deployment automation
tooling:
password=$(vault read secret/mariadb/password)
helm install --set mariadb.password=$password orders
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
IV. Backing services
Treat backing services as attached resources.
▶ A backing service is any service that an application
consumes as part of normal operation (e.g. databases,
message-passing services, RESTful web services, etc).
▶ Each backing service is considered an application
resource, that can be attached/detached at will,
without code changes (e.g. swap an embedded
database for an external MySQL database).
▶ The application does not make any distinction between
local, and third-party services.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sample App: Backing services
The databases are backing services in this application - each
deployed in the Kubernetes cluster as pods (top), and
exposed as Kubernetes services (bottom) for access within
the cluster.
Recall the database properties provided as Helm values - the
databases could be anywhere - the application does not
know where, nor does it care.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
V. Build, release, run
Strictly seperate build and run stages.
▶ Build stage: converts a code repo into an executable
bundle known as a build, typically from a specified
commit in the source code revision control -
dependencies are fetched and compiled into the build.
▶ Release stage: The build produced by the build stage
is combined with the deploy’s current config to a release
(with unique ID and timestamp) - this contains both
the build and the config, and can be immediately
executed in the execution environment.
▶ Run stage: Runs the app release in the execution
environment, by launching some set of the app’s
processes.
One does NOT change the application code at runtime
- the above process is repeated for a new release.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
VI. Processes
Execute the app as one or more stateless processes.
▶ An app is executed as one or more processes.
▶ These processes are stateless and share nothing.
▶ Data/object persistence are providing by a backing
resource, such as a database/object storage system.
▶ An app never writes data/objects that should be kept
beyond a single transaction to the local filesystem.
▶ When these processes restart, filesystem data is wiped -
a process should not rely on such data to start and
recover.
▶ Incoming requests may be served by different processes.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sample App: Processes
The Dockerfile (left) for the inventory application specifies
one startup script for the container - startup.sh
Inside the container (right), startup.sh launches one main
process for the container, Java, to run the compiled app.jar
file. ps -elf shows that it is the only process running in the
container.)
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
VII. Port binding
Export services via port binding.
▶ In the past, webapps sometimes relied on a web server
to be injected at runtime (e.g. drop your WAR file for a
Java webapp into the webapps folder of Apache
Tomcat)...
▶ The app must be completely self-contained, and
must not require a web server to be injected at runtime.
▶ A web app exports HTTP as a service by binding to a
port, and listens for incoming HTTP requests on that
port.
▶ Example: Spring Boot embedded Tomcat/Jetty, an app
with an embedded nginx server.
▶ Other services can be exported via their specified ports
and protocols.
▶ ”Make JAR not WAR...”
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sample App: Port Binding
The inventory app, based on Spring Boot, provides an
embedded Jetty HTTP server (explicitly listed dependency in
the Maven pom.xml file), and configuration parameters in
the application manifest.
As seen previously, the HTTP server is exposed as a service
outside the container by means of a Kubernetes service on a
specified port (31337).
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
VIII. Concurrency
Scale out via the process model.
▶ In twelve-factor apps, processes are first class citizens,
and scale out horizontally (i.e. run more processes in
parallel), on-demand.
▶ The stateless nature of processes allows for this scaling
formation...
▶ ...this also allows incoming requests to be load balanced
to different running instances of the same application.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sample App: Concurrency
Kubernetes can scal out each pod, according to the scaling
policy defined in the ReplicaSet - it specifies the minimum,
maximum, desired, and current number of Pods. Here, there
is only 1 inventory Pod, but a maximum of 2 can run.
A Horizontal Pod Autoscaler can be used to define
automatic scaling behaviour based on metrics such as CPU
usage.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
IX. Disposability
Maximize robustness with fast startup and graceful
shutdown.
▶ An app’s processes are disposable - they can be started
or stopped at a moment’s notice.
▶ Apps should minimise start time (within seconds) to
faciliate fast scaling-out and load-balancing.
▶ Graceful shutdown allows for processes to finish serving
active requests, but cease to accept new requests, on
receiving a SIGTERM signal from the process manager.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sample App: Disposability
The Inventory Pod uses an Init Container, here waiting until
the MySQL database is ready. The longer it takes the
Database to start, the longer the Inventory app will be
unavailable...
Spring Boot graceful shutdown methods:
(https://www.javadevjournal.com/spring-boot/
shutdown-spring-boot-application/)
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
X. Dev/prod parity
Keep development, staging, and production as sim-
ilar as possible.
▶ There should be no divergence between the
Development and Production environment.
▶ An app is designed for continuous delivery, by keeping
the gaps between development and production small.
▶ Time gap: Keep the time between code moving from
Development into Production, small.
▶ Personnel gap: Developers who make changes are
involved in the push into Production, and monitor
application behavior after the change.
▶ Tools gap: Each environment should use identical
technology stacks to prevent inconsistent and
unexpected behaviour.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sample App: Dev/prod parity
In this environment, there are two identical, but seperate,
Kubernetes clusters. A CI/CD tool (such as Apache Jenkins)
will be able to deploy (in this case via Helm), to each of the
two environments without any additional configuration.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
XI. Logs
Treat logs as event streams.
▶ Logs are the stream of aggregated, time-ordered events
collected from the output streams of all running
processes and backing services.
▶ An app never concerns itself with routing or storage of
its output stream - logs are written to stdout only.
▶ The execution environment will collect the logs from all
app streams, and routed to a final destination for
archiving and viewing...
▶ ... the final destination for the stream of logs can be a
third-party log indexing and analysis service, such as
Splunk, which typically provide user-friendly dashboards.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sample App: Logs
Each application writes logs to stdout and stderr -
Kubernetes allows you to view these logs as event streams
with the kubectl logs command...
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sample App: Logs
However, these logs will be lost when the Pod is stopped -
they should be streamed to some other logging service as
illustrated in the diagram above. More information at
https://kubernetes.io/docs/concepts/
cluster-administration/logging/
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
XII. Admin processes
Run admin/management tasks as one-off processes.
▶ Aside from processes running the normal workload of an
app, there are one-off jobs or tasks that need to be
completed from time-to-time (e.g. database migration,
running of a script, etc)... these are call Admin
Processes.
▶ These must run against a release in the execution
environment, from the same codebase and config.
▶ Scripts for admin processes must ship with the relase,
to avoid synchronisation issues, and checked into the
same source code revision control as the app codebase
for consistency.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Sample App: Admin processes
This app has run some one-off admin tasks as Kubernetes
jobs - note that they are either in Completed or Error state.
In this application, the jobs are used to create user entries in
the MySQL Database.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Must my app comply with all 12 to be Cloud
Native?
You do not need all 12 factors to be cloud native!
They are simply guidelines you can choose to adopt. Pivotal
recommend at least the following:
▶ VI. Processes - Execute app as one or more stateless
processes.
▶ VII. Port Binding - Export services via port binding.
▶ IX. Disposability - Fast startup and graceful shutdown.
▶ XI. Logs - Treat logs as event streams.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Choice of Technology Stack
While the CNCF advocates many open source projects, one
does not need to use any of these technologies to be Cloud
Native.
▶ Using a particular set of technologies does not make
your applications Cloud Native.
▶ Cloud Native does not refer to one individual
technology stack.
▶ Cloud Native is just as much about how you design,
architect, and implement your applications.
▶ It should be clear from the Introduction that you have a
choice of technologies to choose from!
▶ Whatever you choose, note the common patterns in the
technologies - the use of Microservices, Containers, and
Orchestration that can be controlled by automation in
particular - experience shows that these make Cloud
Native application development and operations easier.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Automation
The ability to automate as much as possible the build,
deployment, and operations jobs for Cloud Native
Computing is Essential.
▶ Automation makes it easy to realise the goals behind
the Twevle Factor app, such as seperating the build,
release, and run states, configuration
management/injection, and keeping dev/parity.
▶ It allows common tasks to be reliably repeated,
minimizing human error.
▶ There are many Continuous Integration/Continuos
Delivery automation tools available to choose from to
accomplish these tasks.
▶ Apache Jenkins is one such option, describing itself as
”the leading open source automation server, Jenkins
provides hundreds of plugins to support building,
deploying and automating any project.”.
▶ Automation is beyond the scope and time limit today!
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Automation
Experimenting with build servers in your own time is worth it
- e.g. run Apache Jenkins locally with Docker:
docker run -p 8080:8080 -p 50000:50000 jenkins
Here for example, are two stub Jenkins jobs - one to build
the app codebase and publish the built artifact to a
repository (e.g. DockerHub for a Docker Image, Chart
Repository for a Helm Chart), and another that can deploy
that artifact to a specified target environment.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Conclusions
▶ There are different definitions of Cloud Native
Computing, but they each highlight that it is an
approach to building cloud applications that utilise the
features provided by the uderlying Cloud Platform.
▶ Cloud Native applications are usually composed of
Microservices - usually deployed as containers, they are
stateless, and can scale.
▶ Deploying an application to the Cloud does not simply
make it Cloud Native - the app is built guided by the
capabilities of the underlying Cloud Platforms.
▶ The twelve factor app methodology can be used to
guide development of Cloud Native apps.
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Links
▶ CNCF: https://www.cncf.io
▶ Pivotal Cloud Native:
https://pivotal.io/cloud-native
▶ Docker: https://www.docker.com
▶ Kubernetes: https://kubernetes.io
▶ Helm: https://helm.sh/
▶ Prometheus: https://prometheus.io
▶ Envoy Proxy: https://www.envoyproxy.io
▶ Istio: https://istio.io
▶ Cloud Foundry: https://www.cloudfoundry.org
▶ Twelve Factor App: https://12factor.net
▶ Microservices - Martin Fowler: https://
martinfowler.com/articles/microservices.html
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Links
▶ Slides from my previous Cork Open Technologies Talk,
”Kubernetes: An Introduction to the Open Source
Container Orchestration Platform”:
https://bit.ly/2TwTIHW
▶ Heroku Cloud Application Platform:
https://www.heroku.com
▶ Spring Boot:
https://spring.io/projects/spring-boot
▶ NodeJs: https://nodejs.org
▶ Apache Jenkins: https://jenkins.io/
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Article/Tutorial Links
▶ ”Hipster Shop: Cloud-Native Microservices Demo
Application” (for Google Cloud Platform)
https://github.com/GoogleCloudPlatform/
microservices-demo
▶ Microservices with Spring: https://spring.io/blog/
2015/07/14/microservices-with-spring
▶ Cloud Native@Amazon Web Services:
https://aws.amazon.com/blogs/opensource/
cloud-native-computing
Cloud Native
Computing - What
is it, and is your
app Cloud Native?
Michael J.
O’Sullivan -
@mjjosullivan
Introduction
Definitions
Technologies
Kubernetes
Prometheus
Envoy
Cloud Foundry
Twelve Factor App
What and Why?
Cloud Native App
Study/Demo
Spring Boot Store Front
Architetcure/Microservices
Twelve Factors/App Study
Is my App Cloud
Native?
Which Factors
Which Technologies
Automation
Conclusions/Links
Conclusions
Links
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Article/Tutorial Links
▶ ”Building a Cloud Native Node.js application using
Kubernetes”: https://ibm.co/2FCsb4b
▶ ”How to build a cloud native app in 30 minutes”
https://www.ibm.com/blogs/bluemix/2018/03/
building-cloud-native-app-30-minutes
▶ ”Run a Cloud Native Microservices Application on a
Kubernetes Cluster” (for IBM Cloud Platform):
https://github.com/ibm-cloud-architecture/
refarch-cloudnative-kubernetes/tree/spring

Más contenido relacionado

La actualidad más candente

The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native ApplicationEmiliano Pecis
 
Introduction to Cloud Native Computing
Introduction to Cloud Native ComputingIntroduction to Cloud Native Computing
Introduction to Cloud Native ComputingSaju Thomas
 
The Cloud Native Journey
The Cloud Native JourneyThe Cloud Native Journey
The Cloud Native JourneyVMware Tanzu
 
Cloud Native Application
Cloud Native ApplicationCloud Native Application
Cloud Native ApplicationVMUG IT
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Chris Haddad
 
Patterns of Cloud Native Architecture
Patterns of Cloud Native ArchitecturePatterns of Cloud Native Architecture
Patterns of Cloud Native ArchitectureAndrew Shafer
 
Cloud Native Architecture Patterns Tutorial
Cloud Native Architecture Patterns TutorialCloud Native Architecture Patterns Tutorial
Cloud Native Architecture Patterns TutorialMatt Stine
 
The Cloud Native Journey with Simon Elisha
The Cloud Native Journey with Simon ElishaThe Cloud Native Journey with Simon Elisha
The Cloud Native Journey with Simon ElishaChloe Jackson
 
Cloud Native Java Microservices
Cloud Native Java MicroservicesCloud Native Java Microservices
Cloud Native Java MicroservicesKenny Bastani
 
Cloud Native Infrastructure Automation
Cloud Native Infrastructure AutomationCloud Native Infrastructure Automation
Cloud Native Infrastructure AutomationVMware Tanzu
 
CloudWorld: What Does Cloud-Native Mean Anyway?
CloudWorld: What Does Cloud-Native Mean Anyway?CloudWorld: What Does Cloud-Native Mean Anyway?
CloudWorld: What Does Cloud-Native Mean Anyway?Grace Jansen
 
The Cloud Native Journey
The Cloud Native JourneyThe Cloud Native Journey
The Cloud Native JourneyMatt Stine
 
Application Architecture For The Cloud
Application Architecture For The CloudApplication Architecture For The Cloud
Application Architecture For The CloudSteve Loughran
 
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision APIUsing Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision APIVMware Tanzu
 
cross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFV
cross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFVcross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFV
cross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFVKrishna-Kumar
 
Building Cloud Native Applications
Building Cloud Native Applications Building Cloud Native Applications
Building Cloud Native Applications Munish Gupta
 
Cloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A ServiceCloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A ServicePatrick Chanezon
 
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)VMware Tanzu
 

La actualidad más candente (20)

The Need of Cloud-Native Application
The Need of Cloud-Native ApplicationThe Need of Cloud-Native Application
The Need of Cloud-Native Application
 
Introduction to Cloud Native Computing
Introduction to Cloud Native ComputingIntroduction to Cloud Native Computing
Introduction to Cloud Native Computing
 
The Cloud Native Journey
The Cloud Native JourneyThe Cloud Native Journey
The Cloud Native Journey
 
Cloud Native Application
Cloud Native ApplicationCloud Native Application
Cloud Native Application
 
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
Driving Enterprise Architecture Redesign: Cloud-Native Platforms, APIs, and D...
 
Patterns of Cloud Native Architecture
Patterns of Cloud Native ArchitecturePatterns of Cloud Native Architecture
Patterns of Cloud Native Architecture
 
Cloud Native Architecture Patterns Tutorial
Cloud Native Architecture Patterns TutorialCloud Native Architecture Patterns Tutorial
Cloud Native Architecture Patterns Tutorial
 
The Cloud Native Journey with Simon Elisha
The Cloud Native Journey with Simon ElishaThe Cloud Native Journey with Simon Elisha
The Cloud Native Journey with Simon Elisha
 
Cloud Native Java Microservices
Cloud Native Java MicroservicesCloud Native Java Microservices
Cloud Native Java Microservices
 
Cloud Native Infrastructure Automation
Cloud Native Infrastructure AutomationCloud Native Infrastructure Automation
Cloud Native Infrastructure Automation
 
CloudWorld: What Does Cloud-Native Mean Anyway?
CloudWorld: What Does Cloud-Native Mean Anyway?CloudWorld: What Does Cloud-Native Mean Anyway?
CloudWorld: What Does Cloud-Native Mean Anyway?
 
The Cloud Native Journey
The Cloud Native JourneyThe Cloud Native Journey
The Cloud Native Journey
 
Application Architecture For The Cloud
Application Architecture For The CloudApplication Architecture For The Cloud
Application Architecture For The Cloud
 
Cloud Native Application Development
Cloud Native Application DevelopmentCloud Native Application Development
Cloud Native Application Development
 
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision APIUsing Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
Using Pivotal Cloud Foundry with Google’s BigQuery and Cloud Vision API
 
Intro - Cloud Native
Intro - Cloud NativeIntro - Cloud Native
Intro - Cloud Native
 
cross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFV
cross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFVcross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFV
cross cloud inter-operability with iPaaS and serverless for Telco cloud SDN/NFV
 
Building Cloud Native Applications
Building Cloud Native Applications Building Cloud Native Applications
Building Cloud Native Applications
 
Cloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A ServiceCloud Foundry, the Open Platform As A Service
Cloud Foundry, the Open Platform As A Service
 
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
Lo Scenario Cloud-Native (Pivotal Cloud-Native Workshop: Milan)
 

Similar a Cloud Native Computing: What does it mean, and is your app Cloud Native?

Securing a Cloud Migration
Securing a Cloud MigrationSecuring a Cloud Migration
Securing a Cloud MigrationVMware Tanzu
 
Bangalore Cloud Foundry meetup - Mani
Bangalore Cloud Foundry meetup - ManiBangalore Cloud Foundry meetup - Mani
Bangalore Cloud Foundry meetup - ManiMani Chandrasekaran
 
Agile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar Venugopalan
Agile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar VenugopalanAgile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar Venugopalan
Agile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar VenugopalanIndia Scrum Enthusiasts Community
 
Lattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring ApplicationsLattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring ApplicationsMatt Stine
 
OPENi presentation at AppSecEU 2015
OPENi presentation at AppSecEU 2015OPENi presentation at AppSecEU 2015
OPENi presentation at AppSecEU 2015openi_ict
 
TUW-ASE Summer 2015: IoT Cloud Systems
TUW-ASE Summer 2015:  IoT Cloud SystemsTUW-ASE Summer 2015:  IoT Cloud Systems
TUW-ASE Summer 2015: IoT Cloud SystemsHong-Linh Truong
 
Migrating to cloud-native_app_architectures_pivotal
Migrating to cloud-native_app_architectures_pivotalMigrating to cloud-native_app_architectures_pivotal
Migrating to cloud-native_app_architectures_pivotalkkdlavak3
 
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)Tim Kirby
 
Migrating_to_Cloud-Native_App_Architectures_Pivotal
Migrating_to_Cloud-Native_App_Architectures_PivotalMigrating_to_Cloud-Native_App_Architectures_Pivotal
Migrating_to_Cloud-Native_App_Architectures_PivotalEstevan McCalley
 
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)Dean Bruckman
 
Why Cloud Management Makes $ense
Why Cloud Management Makes $enseWhy Cloud Management Makes $ense
Why Cloud Management Makes $enseRightScale
 
DevSecOps in the Cloud from the Lens of a Well-Architected Framework.pptx
DevSecOps in the Cloud from the Lens of a  Well-Architected Framework.pptxDevSecOps in the Cloud from the Lens of a  Well-Architected Framework.pptx
DevSecOps in the Cloud from the Lens of a Well-Architected Framework.pptxTurja Narayan Chaudhuri
 
Why and how are containers the foundation for a hybrid cloud future
Why and how are containers the foundation for a hybrid cloud futureWhy and how are containers the foundation for a hybrid cloud future
Why and how are containers the foundation for a hybrid cloud futureStefan van Oirschot
 
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...CA Technologies
 
Cloud lunchn learn_howtobecomeacloudarchitect_part1
Cloud lunchn learn_howtobecomeacloudarchitect_part1Cloud lunchn learn_howtobecomeacloudarchitect_part1
Cloud lunchn learn_howtobecomeacloudarchitect_part1Turja Narayan Chaudhuri
 
AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...
AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...
AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...AppDynamics
 
GIDS_what does_cloud-native_mean_anyway?
GIDS_what does_cloud-native_mean_anyway?GIDS_what does_cloud-native_mean_anyway?
GIDS_what does_cloud-native_mean_anyway?Grace Jansen
 

Similar a Cloud Native Computing: What does it mean, and is your app Cloud Native? (20)

Securing a Cloud Migration
Securing a Cloud MigrationSecuring a Cloud Migration
Securing a Cloud Migration
 
Securing a Cloud Migration
Securing a Cloud MigrationSecuring a Cloud Migration
Securing a Cloud Migration
 
Bangalore Cloud Foundry meetup - Mani
Bangalore Cloud Foundry meetup - ManiBangalore Cloud Foundry meetup - Mani
Bangalore Cloud Foundry meetup - Mani
 
Agile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar Venugopalan
Agile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar VenugopalanAgile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar Venugopalan
Agile Tour Pune 2015: Dev-ops- niche or mainstream: Bhaskar Venugopalan
 
Lattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring ApplicationsLattice: A Cloud-Native Platform for Your Spring Applications
Lattice: A Cloud-Native Platform for Your Spring Applications
 
OPENi presentation at AppSecEU 2015
OPENi presentation at AppSecEU 2015OPENi presentation at AppSecEU 2015
OPENi presentation at AppSecEU 2015
 
TUW-ASE Summer 2015: IoT Cloud Systems
TUW-ASE Summer 2015:  IoT Cloud SystemsTUW-ASE Summer 2015:  IoT Cloud Systems
TUW-ASE Summer 2015: IoT Cloud Systems
 
Migrating to cloud-native_app_architectures_pivotal
Migrating to cloud-native_app_architectures_pivotalMigrating to cloud-native_app_architectures_pivotal
Migrating to cloud-native_app_architectures_pivotal
 
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
 
Migrating_to_Cloud-Native_App_Architectures_Pivotal
Migrating_to_Cloud-Native_App_Architectures_PivotalMigrating_to_Cloud-Native_App_Architectures_Pivotal
Migrating_to_Cloud-Native_App_Architectures_Pivotal
 
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
Migrating_to_Cloud-Native_App_Architectures_Pivotal (2)
 
Why Cloud Management Makes $ense
Why Cloud Management Makes $enseWhy Cloud Management Makes $ense
Why Cloud Management Makes $ense
 
DevSecOps in the Cloud from the Lens of a Well-Architected Framework.pptx
DevSecOps in the Cloud from the Lens of a  Well-Architected Framework.pptxDevSecOps in the Cloud from the Lens of a  Well-Architected Framework.pptx
DevSecOps in the Cloud from the Lens of a Well-Architected Framework.pptx
 
Twelve factor-app
Twelve factor-appTwelve factor-app
Twelve factor-app
 
Oracle mobile cloud service
Oracle mobile cloud serviceOracle mobile cloud service
Oracle mobile cloud service
 
Why and how are containers the foundation for a hybrid cloud future
Why and how are containers the foundation for a hybrid cloud futureWhy and how are containers the foundation for a hybrid cloud future
Why and how are containers the foundation for a hybrid cloud future
 
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
Technology Primer: Monitor Microservices, Containers, Cloud Foundry and Node ...
 
Cloud lunchn learn_howtobecomeacloudarchitect_part1
Cloud lunchn learn_howtobecomeacloudarchitect_part1Cloud lunchn learn_howtobecomeacloudarchitect_part1
Cloud lunchn learn_howtobecomeacloudarchitect_part1
 
AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...
AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...
AppSphere 15 - Monitoring Cloud Native Apps on Pivotal Cloud Foundry with App...
 
GIDS_what does_cloud-native_mean_anyway?
GIDS_what does_cloud-native_mean_anyway?GIDS_what does_cloud-native_mean_anyway?
GIDS_what does_cloud-native_mean_anyway?
 

Más de Michael O'Sullivan

Developing and Operating Microservice-based Applications on Modern Cloud Plat...
Developing and Operating Microservice-based Applications on Modern Cloud Plat...Developing and Operating Microservice-based Applications on Modern Cloud Plat...
Developing and Operating Microservice-based Applications on Modern Cloud Plat...Michael O'Sullivan
 
IBM Hybrid Cloud Integration UCC Talk, 23rd November 2021 - Cloud Application...
IBM Hybrid Cloud Integration UCC Talk, 23rd November 2021 - Cloud Application...IBM Hybrid Cloud Integration UCC Talk, 23rd November 2021 - Cloud Application...
IBM Hybrid Cloud Integration UCC Talk, 23rd November 2021 - Cloud Application...Michael O'Sullivan
 
IBM Cloud UCC Talk, 8th December 2020 - Cloud Native, Microservices, and Serv...
IBM Cloud UCC Talk, 8th December 2020 - Cloud Native, Microservices, and Serv...IBM Cloud UCC Talk, 8th December 2020 - Cloud Native, Microservices, and Serv...
IBM Cloud UCC Talk, 8th December 2020 - Cloud Native, Microservices, and Serv...Michael O'Sullivan
 
IBM Hybrid Cloud Integration UCC Talk, 21st November 2018
IBM Hybrid Cloud Integration UCC Talk, 21st November 2018IBM Hybrid Cloud Integration UCC Talk, 21st November 2018
IBM Hybrid Cloud Integration UCC Talk, 21st November 2018Michael O'Sullivan
 
Kubernetes: An Introduction to the Open Source Container Orchestration Platform
Kubernetes: An Introduction to the Open Source Container Orchestration PlatformKubernetes: An Introduction to the Open Source Container Orchestration Platform
Kubernetes: An Introduction to the Open Source Container Orchestration PlatformMichael O'Sullivan
 
IBM Cloud UCC Talk, 22nd November 2017
IBM Cloud UCC Talk, 22nd November 2017IBM Cloud UCC Talk, 22nd November 2017
IBM Cloud UCC Talk, 22nd November 2017Michael O'Sullivan
 

Más de Michael O'Sullivan (6)

Developing and Operating Microservice-based Applications on Modern Cloud Plat...
Developing and Operating Microservice-based Applications on Modern Cloud Plat...Developing and Operating Microservice-based Applications on Modern Cloud Plat...
Developing and Operating Microservice-based Applications on Modern Cloud Plat...
 
IBM Hybrid Cloud Integration UCC Talk, 23rd November 2021 - Cloud Application...
IBM Hybrid Cloud Integration UCC Talk, 23rd November 2021 - Cloud Application...IBM Hybrid Cloud Integration UCC Talk, 23rd November 2021 - Cloud Application...
IBM Hybrid Cloud Integration UCC Talk, 23rd November 2021 - Cloud Application...
 
IBM Cloud UCC Talk, 8th December 2020 - Cloud Native, Microservices, and Serv...
IBM Cloud UCC Talk, 8th December 2020 - Cloud Native, Microservices, and Serv...IBM Cloud UCC Talk, 8th December 2020 - Cloud Native, Microservices, and Serv...
IBM Cloud UCC Talk, 8th December 2020 - Cloud Native, Microservices, and Serv...
 
IBM Hybrid Cloud Integration UCC Talk, 21st November 2018
IBM Hybrid Cloud Integration UCC Talk, 21st November 2018IBM Hybrid Cloud Integration UCC Talk, 21st November 2018
IBM Hybrid Cloud Integration UCC Talk, 21st November 2018
 
Kubernetes: An Introduction to the Open Source Container Orchestration Platform
Kubernetes: An Introduction to the Open Source Container Orchestration PlatformKubernetes: An Introduction to the Open Source Container Orchestration Platform
Kubernetes: An Introduction to the Open Source Container Orchestration Platform
 
IBM Cloud UCC Talk, 22nd November 2017
IBM Cloud UCC Talk, 22nd November 2017IBM Cloud UCC Talk, 22nd November 2017
IBM Cloud UCC Talk, 22nd November 2017
 

Último

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyFrank van der Linden
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...Christina Lin
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Intelisync
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 

Último (20)

Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Engage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The UglyEngage Usergroup 2024 - The Good The Bad_The Ugly
Engage Usergroup 2024 - The Good The Bad_The Ugly
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
ODSC - Batch to Stream workshop - integration of Apache Spark, Cassandra, Pos...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)Introduction to Decentralized Applications (dApps)
Introduction to Decentralized Applications (dApps)
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 

Cloud Native Computing: What does it mean, and is your app Cloud Native?

  • 1. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cloud Native Computing - What is it, and is your app Cloud Native? Cork Open Technologies Michael J. O’Sullivan - @mjjosullivan 19th March 2019
  • 2. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CNCF Cloud Native Definition v1.0 Cloud native technologies empower organizations to build and run scalable applications in modern, dy- namic environments such as public, private, and hybrid clouds. Containers, service meshes, mi- croservices, immutable infrastructure, and declara- tive APIs exemplify this approach. These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil. From: https: //github.com/cncf/toc/blob/master/DEFINITION.md
  • 3. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cloud Native Computing Foundation From https://www.cncf.io
  • 4. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Technology Buzzwords... ▶ Note that the Foundation describes building sustainable ecosystems... ▶ Orchestration ▶ Containers ▶ Microservices
  • 5. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Pivotal: What are Cloud-Native Applications? Cloud-native is an approach to building and run- ning applications that exploits the advantages of the cloud computing delivery model. Cloud-native is about how applications are created and deployed, not where. ...It’s appropriate for both public and pri- vate clouds. Most important is the ability to offer nearly limitless computing power, on-demand, along with modern data and application services for devel- opers... From: https://pivotal.io/cloud-native
  • 6. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cloud Native Technologies: Kubernetes Kubernetes is an open-source system for automating deployment, scaling, and management of container- ized applications. ▶ Now open-source and managed under the Cloud Native Computing Foundation (CNCF). ▶ It is not a container-engine itself - it uses various other container-engines, notably Docker.
  • 7. Cloud Native Technologies: Kubernetes - Architecture Two-part architecture: Components that run on a Master Node, and those that run on the Worker Nodes (minions) - your containers run in Pods on the Worker Nodes. Diagram from https://kubernetes.io/docs/concepts/ architecture/cloud-controller . . . . . . . . . . . . . . . . . . . .
  • 8. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cloud Native Technologies: Prometheus Prometheus is an open-source systems monitoring and alerting toolkit originally built at SoundCloud... It is now a standalone open source project and main- tained independently of any company. To emphasize this, and to clarify the project’s governance struc- ture, Prometheus joined the Cloud Native Comput- ing Foundation in 2016 as the second hosted project, after Kubernetes.
  • 9. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cloud Native Technologies: Prometheus - Architecture Prometheus discovers targets - metrics are then scraped, and alerts can be sent via PagerDuty/Email, and visualised via a Grafana-based UI. Diagram from https: //prometheus.io/docs/introduction/overview/
  • 10. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cloud Native Technologies: Envoy Envoy is an L7 proxy and communication bus de- signed for large modern service oriented architec- tures. The project was born out of the belief that the network should be transparent to applications. When network and application problems do occur it should be easy to determine the source of the prob- lem. In practice, achieving the previously stated goal is incredibly difficult.
  • 11. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cloud Native Technologies: Envoy - Architecture Envoy is a self contained process that is designed to run alongside every application server. All of the Envoys form a transparent communication mesh in which each application sends and receives messages to and from localhost and is unaware of the network topology. The above example is Istio - an open platform to connect, manage, and secure microservices by means of Service Mesh.
  • 12. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Slow down... that’s a lot of tech! ▶ The CNCF is incubating this ecosystem of open-source projects that all address challenges in the deployment and operation of cloud-based applications... ▶ You may ask, if you don’t use these technologies, are you doing cloud all wrong, let alone Cloud Native? ▶ If you use all these things, are you now considered to be Cloud Native? ▶ Do you have to use all of these things? ▶ Are there alternatives?
  • 13. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cloud Native Technologies: Cloud Foundry Cloud Foundry is an open source cloud applica- tion platform, providing a choice of clouds, devel- oper frameworks, and application services. Cloud Foundry makes it faster and easier to build, test, deploy, and scale applications. It is an open source project and is available through a variety of private cloud distributions and public cloud instances. Cloud Foundry was developed by Pivotal, and is NOT a CNCF incubated project.
  • 14. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Cloud Native Technologies: Cloud Foundry - Architecture A break-down of the architecture is beyond the scope of this talk, but note the components - Diego (a container execution engine), Router, Service Broker, Message Bus, Authentication... Pivotal describes Cloud Foundry as an ideal Platform for running Cloud Native applications. Diagram from https: //docs.cloudfoundry.org/concepts/architecture
  • 15. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . The Twelve-Factor App https://12factor.net/
  • 16. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Why do the Factors matter? ▶ Cloud native applications are consumed as SaaS (Software-as-a-Service) offerings - the Twelve-Factor app is a methodology for building such apps. ▶ The objective of the methodology is to enable a developer to build a scalable, stateless application that can be deployed on different cloud environments. ▶ The Pivotal definition describing exploiting the cloud delivery model - as we look at each Factor, you will understand how that is achieved by means of the Cloud Platform. ▶ It is based on years of experience by the engineers at Heroku, deploying and operating, cloud applications.
  • 17. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Spotlight: Cloud Native App for Investigation The application is a simple store front shopping ap- plication that displays a catalog of antique comput- ing devices, where users can search and buy prod- ucts. It has a web interface that relies on sepa- rate BFF (Backend for Frontend) services to interact with the backend data. From: https://github.com/ibm-cloud-architecture/ refarch-cloudnative-kubernetes/tree/spring
  • 18. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . App Architecture In this presentation, we will examine why this is considered to be a cloud native application.
  • 19. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . I. Codebase One codebase tracked in revision control, many de- ploys. ▶ One-to-one correlation between a source code repository and an app. ▶ A manifest describing the application should also be present. ▶ The codebase should be the same for all deploys, and not recompiled or repackaged for different environments.
  • 20. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample App: Codebases Each microservice of the overall application is infact, a standalone application; each has a single codebase in version control. Each can be deployed on their own without any changes for each environment.
  • 21. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . II. Dependencies Explicitly declare and isolate dependencies. ▶ All dependencies must be declared explicitly and completely in the manifest. ▶ Dependencies are resolved via a package manager (e.g. maven for Java, npm for Node.js) - not checked into source code revision control. ▶ An application should never rely implicity on the existance of a system-wide package for a dependency.
  • 22. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample App: Dependencies Each app contains a pom.xml (Maven for Java) or package.json (npm for Node.js) file as appropriate, explicitly stating each dependency, and their versions.
  • 23. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . III. Config Store config in the environment. ▶ A config is what varies between every deployment of an application (e.g. deploy-specifc properties, credentials, and resource connection details). ▶ Application config should be provided at deploy-time using environment variables - they can change without changing code. ▶ Config should not be stored in config files checked into source code revision control, or provided as Constants in the codebase.
  • 24. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample App: Config Config is provided as input to the applications via Helm Charts. Parameters are stored in values.yaml (left), parsed via a Helm template helper file (center), and then substitued into the Kubernetes deployment.yaml file (right) as environment variables.
  • 25. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample App: Config - CAUTION!!! Database connection credentials (and other credentials/keys/certs) are stored here in a public repository as plaintext! Never do this! Such secret values should be stored in a credentials manager (such as Vault), and passed as input to Helm at runtime using deployment automation tooling: password=$(vault read secret/mariadb/password) helm install --set mariadb.password=$password orders
  • 26. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IV. Backing services Treat backing services as attached resources. ▶ A backing service is any service that an application consumes as part of normal operation (e.g. databases, message-passing services, RESTful web services, etc). ▶ Each backing service is considered an application resource, that can be attached/detached at will, without code changes (e.g. swap an embedded database for an external MySQL database). ▶ The application does not make any distinction between local, and third-party services.
  • 27. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample App: Backing services The databases are backing services in this application - each deployed in the Kubernetes cluster as pods (top), and exposed as Kubernetes services (bottom) for access within the cluster. Recall the database properties provided as Helm values - the databases could be anywhere - the application does not know where, nor does it care.
  • 28. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . V. Build, release, run Strictly seperate build and run stages. ▶ Build stage: converts a code repo into an executable bundle known as a build, typically from a specified commit in the source code revision control - dependencies are fetched and compiled into the build. ▶ Release stage: The build produced by the build stage is combined with the deploy’s current config to a release (with unique ID and timestamp) - this contains both the build and the config, and can be immediately executed in the execution environment. ▶ Run stage: Runs the app release in the execution environment, by launching some set of the app’s processes. One does NOT change the application code at runtime - the above process is repeated for a new release.
  • 29. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VI. Processes Execute the app as one or more stateless processes. ▶ An app is executed as one or more processes. ▶ These processes are stateless and share nothing. ▶ Data/object persistence are providing by a backing resource, such as a database/object storage system. ▶ An app never writes data/objects that should be kept beyond a single transaction to the local filesystem. ▶ When these processes restart, filesystem data is wiped - a process should not rely on such data to start and recover. ▶ Incoming requests may be served by different processes.
  • 30. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample App: Processes The Dockerfile (left) for the inventory application specifies one startup script for the container - startup.sh Inside the container (right), startup.sh launches one main process for the container, Java, to run the compiled app.jar file. ps -elf shows that it is the only process running in the container.)
  • 31. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VII. Port binding Export services via port binding. ▶ In the past, webapps sometimes relied on a web server to be injected at runtime (e.g. drop your WAR file for a Java webapp into the webapps folder of Apache Tomcat)... ▶ The app must be completely self-contained, and must not require a web server to be injected at runtime. ▶ A web app exports HTTP as a service by binding to a port, and listens for incoming HTTP requests on that port. ▶ Example: Spring Boot embedded Tomcat/Jetty, an app with an embedded nginx server. ▶ Other services can be exported via their specified ports and protocols. ▶ ”Make JAR not WAR...”
  • 32. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample App: Port Binding The inventory app, based on Spring Boot, provides an embedded Jetty HTTP server (explicitly listed dependency in the Maven pom.xml file), and configuration parameters in the application manifest. As seen previously, the HTTP server is exposed as a service outside the container by means of a Kubernetes service on a specified port (31337).
  • 33. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VIII. Concurrency Scale out via the process model. ▶ In twelve-factor apps, processes are first class citizens, and scale out horizontally (i.e. run more processes in parallel), on-demand. ▶ The stateless nature of processes allows for this scaling formation... ▶ ...this also allows incoming requests to be load balanced to different running instances of the same application.
  • 34. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample App: Concurrency Kubernetes can scal out each pod, according to the scaling policy defined in the ReplicaSet - it specifies the minimum, maximum, desired, and current number of Pods. Here, there is only 1 inventory Pod, but a maximum of 2 can run. A Horizontal Pod Autoscaler can be used to define automatic scaling behaviour based on metrics such as CPU usage.
  • 35. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . IX. Disposability Maximize robustness with fast startup and graceful shutdown. ▶ An app’s processes are disposable - they can be started or stopped at a moment’s notice. ▶ Apps should minimise start time (within seconds) to faciliate fast scaling-out and load-balancing. ▶ Graceful shutdown allows for processes to finish serving active requests, but cease to accept new requests, on receiving a SIGTERM signal from the process manager.
  • 36. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample App: Disposability The Inventory Pod uses an Init Container, here waiting until the MySQL database is ready. The longer it takes the Database to start, the longer the Inventory app will be unavailable... Spring Boot graceful shutdown methods: (https://www.javadevjournal.com/spring-boot/ shutdown-spring-boot-application/)
  • 37. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . X. Dev/prod parity Keep development, staging, and production as sim- ilar as possible. ▶ There should be no divergence between the Development and Production environment. ▶ An app is designed for continuous delivery, by keeping the gaps between development and production small. ▶ Time gap: Keep the time between code moving from Development into Production, small. ▶ Personnel gap: Developers who make changes are involved in the push into Production, and monitor application behavior after the change. ▶ Tools gap: Each environment should use identical technology stacks to prevent inconsistent and unexpected behaviour.
  • 38. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample App: Dev/prod parity In this environment, there are two identical, but seperate, Kubernetes clusters. A CI/CD tool (such as Apache Jenkins) will be able to deploy (in this case via Helm), to each of the two environments without any additional configuration.
  • 39. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XI. Logs Treat logs as event streams. ▶ Logs are the stream of aggregated, time-ordered events collected from the output streams of all running processes and backing services. ▶ An app never concerns itself with routing or storage of its output stream - logs are written to stdout only. ▶ The execution environment will collect the logs from all app streams, and routed to a final destination for archiving and viewing... ▶ ... the final destination for the stream of logs can be a third-party log indexing and analysis service, such as Splunk, which typically provide user-friendly dashboards.
  • 40. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample App: Logs Each application writes logs to stdout and stderr - Kubernetes allows you to view these logs as event streams with the kubectl logs command...
  • 41. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample App: Logs However, these logs will be lost when the Pod is stopped - they should be streamed to some other logging service as illustrated in the diagram above. More information at https://kubernetes.io/docs/concepts/ cluster-administration/logging/
  • 42. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XII. Admin processes Run admin/management tasks as one-off processes. ▶ Aside from processes running the normal workload of an app, there are one-off jobs or tasks that need to be completed from time-to-time (e.g. database migration, running of a script, etc)... these are call Admin Processes. ▶ These must run against a release in the execution environment, from the same codebase and config. ▶ Scripts for admin processes must ship with the relase, to avoid synchronisation issues, and checked into the same source code revision control as the app codebase for consistency.
  • 43. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Sample App: Admin processes This app has run some one-off admin tasks as Kubernetes jobs - note that they are either in Completed or Error state. In this application, the jobs are used to create user entries in the MySQL Database.
  • 44. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Must my app comply with all 12 to be Cloud Native? You do not need all 12 factors to be cloud native! They are simply guidelines you can choose to adopt. Pivotal recommend at least the following: ▶ VI. Processes - Execute app as one or more stateless processes. ▶ VII. Port Binding - Export services via port binding. ▶ IX. Disposability - Fast startup and graceful shutdown. ▶ XI. Logs - Treat logs as event streams.
  • 45. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Choice of Technology Stack While the CNCF advocates many open source projects, one does not need to use any of these technologies to be Cloud Native. ▶ Using a particular set of technologies does not make your applications Cloud Native. ▶ Cloud Native does not refer to one individual technology stack. ▶ Cloud Native is just as much about how you design, architect, and implement your applications. ▶ It should be clear from the Introduction that you have a choice of technologies to choose from! ▶ Whatever you choose, note the common patterns in the technologies - the use of Microservices, Containers, and Orchestration that can be controlled by automation in particular - experience shows that these make Cloud Native application development and operations easier.
  • 46. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automation The ability to automate as much as possible the build, deployment, and operations jobs for Cloud Native Computing is Essential. ▶ Automation makes it easy to realise the goals behind the Twevle Factor app, such as seperating the build, release, and run states, configuration management/injection, and keeping dev/parity. ▶ It allows common tasks to be reliably repeated, minimizing human error. ▶ There are many Continuous Integration/Continuos Delivery automation tools available to choose from to accomplish these tasks. ▶ Apache Jenkins is one such option, describing itself as ”the leading open source automation server, Jenkins provides hundreds of plugins to support building, deploying and automating any project.”. ▶ Automation is beyond the scope and time limit today!
  • 47. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Automation Experimenting with build servers in your own time is worth it - e.g. run Apache Jenkins locally with Docker: docker run -p 8080:8080 -p 50000:50000 jenkins Here for example, are two stub Jenkins jobs - one to build the app codebase and publish the built artifact to a repository (e.g. DockerHub for a Docker Image, Chart Repository for a Helm Chart), and another that can deploy that artifact to a specified target environment.
  • 48. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Conclusions ▶ There are different definitions of Cloud Native Computing, but they each highlight that it is an approach to building cloud applications that utilise the features provided by the uderlying Cloud Platform. ▶ Cloud Native applications are usually composed of Microservices - usually deployed as containers, they are stateless, and can scale. ▶ Deploying an application to the Cloud does not simply make it Cloud Native - the app is built guided by the capabilities of the underlying Cloud Platforms. ▶ The twelve factor app methodology can be used to guide development of Cloud Native apps.
  • 49. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Links ▶ CNCF: https://www.cncf.io ▶ Pivotal Cloud Native: https://pivotal.io/cloud-native ▶ Docker: https://www.docker.com ▶ Kubernetes: https://kubernetes.io ▶ Helm: https://helm.sh/ ▶ Prometheus: https://prometheus.io ▶ Envoy Proxy: https://www.envoyproxy.io ▶ Istio: https://istio.io ▶ Cloud Foundry: https://www.cloudfoundry.org ▶ Twelve Factor App: https://12factor.net ▶ Microservices - Martin Fowler: https:// martinfowler.com/articles/microservices.html
  • 50. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Links ▶ Slides from my previous Cork Open Technologies Talk, ”Kubernetes: An Introduction to the Open Source Container Orchestration Platform”: https://bit.ly/2TwTIHW ▶ Heroku Cloud Application Platform: https://www.heroku.com ▶ Spring Boot: https://spring.io/projects/spring-boot ▶ NodeJs: https://nodejs.org ▶ Apache Jenkins: https://jenkins.io/
  • 51. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Article/Tutorial Links ▶ ”Hipster Shop: Cloud-Native Microservices Demo Application” (for Google Cloud Platform) https://github.com/GoogleCloudPlatform/ microservices-demo ▶ Microservices with Spring: https://spring.io/blog/ 2015/07/14/microservices-with-spring ▶ Cloud Native@Amazon Web Services: https://aws.amazon.com/blogs/opensource/ cloud-native-computing
  • 52. Cloud Native Computing - What is it, and is your app Cloud Native? Michael J. O’Sullivan - @mjjosullivan Introduction Definitions Technologies Kubernetes Prometheus Envoy Cloud Foundry Twelve Factor App What and Why? Cloud Native App Study/Demo Spring Boot Store Front Architetcure/Microservices Twelve Factors/App Study Is my App Cloud Native? Which Factors Which Technologies Automation Conclusions/Links Conclusions Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Article/Tutorial Links ▶ ”Building a Cloud Native Node.js application using Kubernetes”: https://ibm.co/2FCsb4b ▶ ”How to build a cloud native app in 30 minutes” https://www.ibm.com/blogs/bluemix/2018/03/ building-cloud-native-app-30-minutes ▶ ”Run a Cloud Native Microservices Application on a Kubernetes Cluster” (for IBM Cloud Platform): https://github.com/ibm-cloud-architecture/ refarch-cloudnative-kubernetes/tree/spring