There is a growing choice of Cloud Platforms available today - these provide services and tooling for developers to deploy applications to the Cloud. The Cloud has brought considerations such as elastic scalability and distributed computing to the forefront of modern application architectures. Over time, a new type of application has now emerged, known as the Cloud Native Application. Such an application is said to be purpose-built for deployment on the Cloud. This has even led to a new paradigm known as Cloud Native Computing. In practice though, it is easy to be confused or unclear as to what Cloud Native means. How does a Cloud Native approach change the way in which developers code applications? How does this influence the architecture of an application? Does it force you to use a certain set of technologies such as Containers? Or, does it mean that an application that simply runs and scales on a distributed Cloud Platform is somehow considered to be running natively on the Cloud? Cloud Native Computing impacts on the answers to each of these questions, and applications running on the Cloud may not be considered Cloud Native at all.
In this talk, the meaning of Cloud Native will be explored and clarified. With practical examples where appropriate, the concepts behind a Cloud Native Application will be demonstrated. These examples will not only touch on the common terms and phrases around Cloud Native Computing such as DevOps, Microservices, The 12-Factor App methodology, but also on the technologies that have driven the creation this new paradigm, such as Cloud Foundry, Docker, and Kubernetes. How these technologies are used to deploy and scale Cloud Native Applications on "Platform as a Service" (PaaS) Cloud Platforms will also be presented.
At the conclusion, what is considered a Cloud Native Application and why should be clear - the attributes and typical architecture of such an application, as well as how technologies and PaaS services can be used to drive these applications on the cloud.
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