16
Cloud Native Computing Foundation Projects Neependra Khare, CloudYuga @neependra

CNCF Projects Overview

Embed Size (px)

Citation preview

Cloud Native Computing Foundation Projects

Neependra Khare, CloudYuga @neependra

About the Presenter • Founder and Principal Consultant at CloudYuga

• Docker Captain

• Author of “Introduction to Kubernetes” course on Edx

• Author of Docker Cookbook

• Co-author of “Introduction to Cloud Infrastructure Technologies” course on Edx

• Self Paced online courses at school.cloudyuga.guru

• Containers Fundamentals - Docker, runC & rkt, online self paced course (2017)

• Containers (Docker) for Dev and QA , online self paced course (2017)

CNCF• A Linux Foundation Project

• Aims to acceleration adoption of containers, microservices and cloud native application

• CNCF hosts procjects like Containerd, Kubernetes but they work under their pre-existing governance structure.

• New projects can be added

Container Runtime Containerd

• Container runtime

• Available as daemon on Linux and Windows

• Uses runC to run containers

• Manages complete life-cycle of containers

• image transfer and storage

• container execution and supervision

• low level storage

• network attachment

• Exposes gRPC APIs over local Unix socket

Container Runtime Containerd

Container Runtime rkt

• Container runtime

• Available on Linux

• Supports swappable execution engines

• Can run Docker and OCI images

• Currently it based on appc specification. Development is progress to fully support OCI images and runtimes.

Remote Procedure Call

• High performance

• Open source Universal RPC

• With gRPC, we define a service

• specifies methods that can be called remotely

• uses Protocol Buffers as Interface Definition Language (IDL)

• Protocol Buffers are a language and platform neutral mechanism to serialise structured data

• Bi-directional streaming with integrated auth

https://grpc.io

Container Networking Container Network Interface (CNI)

Container Runtime

Container Network Interface

Loopback Plugin

Bridge Plugin

MACvlan Plugin

IPvlan Plugin

3rd Party Plugins

Orchestration Kubernetes

Kubernetes is an open-source system for automating deployment, scaling, and management of containerized applications.

• Kubernetes features • Automatic binpacking • Self-healing • Horizontal scaling • Service discovery and load balancing • Automated rollouts and rollbacks • Secrets and configuration management • Storage orchestration • Batch execution

DNS & Service Discovery CoreDNS

• Provides DNS and Service Discovery

• DNS functions are implemented as middlewares like

• Kubernetes Service Discovery

• Re-writing queries

• loadbalance

• …

• CoreDNS chains middlewares, based on requirement

• Can replace kube-dns in Kubernetes

Service Mesh Linkerd

• Layer 5 Proxy

• Work with HTTP, HTTP/2, gRPC (not raw TCP)

• Provides

• Service Discovery ( Kubernetes, Marathon, Swarm)

• Intelligent Load Balancing

• Retries (Improve success rate)

• Circuit Breakers (Improve resilience)

• Metrics and Tracing

Monitoring and Alerting Prometheus

https://prometheus.io

Logging Fluentd

• Unified Logging with JSON

• Pluggable Architecture

• Minimum Resources Required

• Built-in Reliabilityhttps://www.fluentd.org/architecture

Tracing OpenTracing

• Standard instrumentation APIs

• Tracing tools, that uses OpenTracing

• Zipkin

• LightStep

• Jaeger

• Hawkular

• ….

References • http://cncf.io

• http://kubernetes.io/

• https://prometheus.io/

• http://opentracing.io/

• http://fluentd.org/

• https://www.linkerd.io/

• http://www.grpc.io/

• https://coredns.io/

• http://containerd.io/

• https://github.com/rkt/rkt

• https://github.com/containernetworking

Thanks

[email protected] https://www.linkedin.com/in/neependra/

@neependra