CNCF general introduction to beginners at openstack meetup Pune & Bangalore February 2018. Covers broadly the activities and structure of the Cloud Native Computing Foundation.
1. CNCF - Introduction
@ India Open Stack User Group Meeting (Pune & Bangalore)
February 2017
by
Sajid Akthar – Open Stack Ambassador
Krishna Kumar – CNCF Ambassador
The materials in the presentation are from public websites and it is used here for just educational purposes.
Thanks to the respective authors for sharing
2. Contents
• What & Why?
• Cloud Native Software Stacks!
• The people behind!
• How to engage/contribute?
3. Who we are
CNCF is an open source
foundation created to
make cloud-native
computing universal.
We promote the use of
dynamically-
orchestrated
containerized
applications in a
microservices
architecture on any
public, private or hybrid
cloud. Cloud-native
technologies enable
software developers to
build great products,
allowing businesses to
move faster than ever
before.
https://www.cncf.io/
4. What is cloud native …????
Cloud-native applications are
purpose built for the cloud
model. These applications—built
and deployed in a rapid cadence
by small, dedicated feature
teams to a platform that offers
easy scale-out and hardware
decoupling—offer organizations
greater agility, resilience, and
portability across clouds. Pivotal
At the heart of "cloud-native" lie Linux,
Linux containers, and the concept of
applications assembled as microservices in
containers. Indeed, the Linux Foundation
launched the Cloud Native Computing
Foundation. But cloud-native means a lot
more than implementing Linux clusters and
running containers. It's a term that
recognizes that getting software to work in
the cloud requires a broad set of
components that work together. It also
requires an architecture that departs from
traditional enterprise application design. .
Charles -informationWeek
Here’s how a blog on IBM’s developer
web site distinguishes the two adjectives
Cloud-Native and Cloud-Enabled:
You can say that a cloud-enabled
application is an application that was moved
to cloud, but it was originally developed for
deployment in a traditional data center.
Some characteristics of the application had
to be changed or customized for the cloud.
On the other hand, a cloud-centric
application (also known as cloud-native and
cloud-ready) is an application that was
developed with the cloud principles of multi-
tenancy, elastic scaling and easy integration
and administration in its design.
12 factors
(One of the
solid
principle for
Cloud Native
Software
Architecture)
Codebase
One codebase tracked in revision
control, many deploys
Dependencies
Explicitly declare and isolate
dependencies
Config
Store configuration in the
environment
Backing Services
Treat backing services as attached
resources
Build, release, run
Strictly separate build and run
stages
Processes
Execute the app as one or more
stateless processes
Port binding
Export services via port binding
Concurrency
Scale out via the process model
Disposability
Maximize robustness with fast
startup and graceful shutdown
Dev/prod parity
Keep development, staging, and
production as similar as possible
Logs
Treat logs as event streams
Admin processes
Run admin/management tasks as
one-off processes
6. Graduation Criteria
CNCF projects can be at inception,
incubating or graduated stage. View the
CNCF graduation criteria and the
current status of each project.
7. 1) Kubernetes: Automating deployment, scaling, and management of containerized applications
2) Prometheus: Monitoring, metrics, alerting, visualizing, queries, integration
3) OpenTracing: Distributed tracing. Libraries available for various languages
4) Fluentd: Fluentd allows you to unify data collection and consumption for a better use and understanding of data.
5) GRPC: Define your service using Protocol Buffers, a powerful binary serialization toolset and language
6) Conainerd: An industry-standard container runtime with an emphasis on simplicity, robustness and portability.
7) Rkt: pod-native container engine for Linux. It is composable, secure, and built on standards.
8) CNI: Container Network Interface - networking for Linux containers
9) Envoy: EDGE AND SERVICE PROXY
10) Jaeger: Jaeger, inspired by Dapper and OpenZipkin, is a distributed tracing system released as open source by Uber
11) Notary: A project that allows anyone to have trust over arbitrary collections of data
12) TUF: The Update Framework specification
13) Vitess: A database clustering system for horizontal scaling of MySQL
14) Linkerd: ServiceMesh - A transparent proxy that adds service discovery, routing, failure handling, and visibility
15) CoreDNS: DNS & Service Discovry - chains plugins. Each plugin performs a DNS function, such asKubernetes service
discovery, Prometheus metricsor rewriting queries.
16) Rook: File, Block, and Object Storage Services for your Cloud-Native Environments
• New proposals:
1) NATS: https://github.com/cncf/toc/pull/81
2) OPA: Consistent policy expression and enforcement mechanism and common toolset.
https://github.com/cncf/toc/pull/71
3) SPIFFE: Service identity (LOAS) bringing together all the pieces to recreate the environment
https://github.com/cncf/toc/pull/68
8. Kubernetes – The soul of CNCF…..
https://github.com/kubernetes/steering
http://blog.kubernetes.io/2017/12/kubernetes-19-workloads-expanded-ecosystem.html
Kubernetes Office hours - https://github.com/kubernetes/community/blob/master/events/office-hours.md
9. Related projects:
OCI (Open Container Initiative):
Established in June 2015 by Docker
and other leaders in the container
industry, the OCI currently contains
two specifications: the Runtime
Specification (runtime-spec) and the
Image Specification (image-spec).
The Runtime Specification outlines
how to run a “filesystem bundle”
that is unpacked on disk. At a high-
level an OCI implementation would
download an OCI Image then
unpack that image into an OCI
Runtime filesystem bundle.
Istio: An open platform to connect
microservices.
Istio essentially provides developers with a
single service mesh that provides the
monitoring services to then implement the
necessary load balancing, flow-control and
security policies they need to keep their
applications running even if the network
isn’t reliable.
Istio also allows developers to authenticate
and secure the communications between
different applications using a TLS
connection (which means the developer
doesn’t have to manage certificates, for
example).
Google, IBM and Lyft launch Istio, an open-
source platform for managing and securing
microservices
MetaParticle:
Metaparticle enables you to focus on
your code, while allowing you to treat
your architecture as code as well.
Metaparticle works by defining service
patterns, which you can instantiate via
simple code. This code contains both the
definition of your architecture as well as
the implementation of the service itself.
This work was an experimental by
Brendanburns, Kuberntes Creator.
10. CNCF taking up Serverless Computing…..
CNCF created the Serverless Working Group to ‘explore the intersection of cloud native and serverless technology.’ The first
output of the group was creation of serverless landscape, which is available. https://www.cncf.io/blog/2018/02/14/cncf-takes-
first-step-towards-serverless-computing/
19. Source Code: Git Hub
One of the prominent contributions to the open source community is in the
form of source code to existing projects.
https://github.com/cncf
https://github.com/kubernetes/kubernetes
To get start attend the SIG to start code contribution:
https://github.com/kubernetes/community/blob/master/sig-list.md
And so on.. For each project has its own repo, communities…..
Creating a new project
• If you have a new project to propose to CNCF please go through the
document shown in the link
https://github.com/cncf/toc/blob/master/process/project_proposals.adoc
• You start with proposing the project to the Technical Oversight Committee
(TOC) and based on the vote in TOC it may get accepted to the inception,
incubation or graduate stage. The process is the same for both existing
projects which seek to move into the CNCF, and new projects to be formed
within the CNCF. To graduate from inception or incubation status, the
project must meet the criteria as shown in the link
https://www.cncf.io/projects/graduation-criteria
Note: To get start: Documents are an essential part of the any software
development process but most often ignored. These may include user guides,
architectures, presentations, etc.
Governance (Similar to most of the projects)
• Kubernetes:https://github.com/kubernetes/community/
blob/master/governance.md
• Prometheus:https://prometheus.io/governance/
20. Certifications
For Companies For Developers/users
• Introduction to Kubernetes (free!)-
https://www.edx.org/course/introduction-kubernetes-
linuxfoundationx-lfs158x#!
• Kubernetes Fundamentals -
https://training.linuxfoundation.org/linux-courses/system-
administration-training/kubernetes-fundamentals
https://github.com/cncf/curriculum/blob/master/certified_kubernetes_administrator_exam_v1.9.0.pdf
21. CIL (Community Infrastructure Lab) Setup
The CNCF Community Infrastructure Lab (CIL) provides free access to state-of-the-art computing
resources for open source developers working to advance cloud native computing. Offer access to
both x86 and ARMv8 bare metal servers for software builds, continuous integration, scale testing, and
demonstrations. https://www.cncf.io/community/infrastructure-lab/
You can help setting up CNCF test bed at local or supporting existing cluster setup available
https://github.com/cncf/cluster
CNCF Store
Variety of catalogues/products. https://store.cncf.io/
Blogs
This area https://www.cncf.io/newsroom/blog covers lots of useful information. Not only you can
contribute to the blog section, the newsletter can be subscribed and shared. Some of the latest
information on the community are described in detail here.
News Letter
https://www.cncf.io/newsroom/newsletter/
22. Ambassador Program
• CNCF has a program called ambassadors who contribute to the CNCF projects in various ways. The Cloud Native Ambassador
program exists to empower community members with tools and resources needed to promote cloud native projects and
technology, educate a local community on the CNCF mission and contribute to CNCF projects:
• More details are here https://www.cncf.io/about/ambassadors (There are currently 40 Ambassadors world wide)
Conferences / Roadshows
• https://www.cncf.io/events/
• https://events.linuxfoundation.org/
Meetup
http://www.meetup.com/pro/cncf/
24. Upcoming Events:
• #1 Bangalore CNCF meetup with other 8 meetup groups EVENT (Complete container stack
discussion) - March 24th, 930am - 5pm IST https://www.meetup.com/Bangalore-Mesos-cncf-
User-Group/events/247806174
• #2 Google cloud Event:(e.g: Migrating 2 lakhs sites in two weeks) - March 28, 8.30am - 1.15pm
IST https://cloudonair.withgoogle.com/events/modernize
• #3 CloudNativeCOn Europe - May 2-4 Copenhagen, Denmark
https://events.linuxfoundation.org/events/kubecon-cloudnativecon-europe-2018/
• #4 ContainerCon China - June 25-27 Beijing, China https://www.lfasiallc.com/events/lc3-2018/
• #5 Signup Kubeweekly for ton of information: http://kube.news