Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Getting Started with Cloud Native

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers. →

Getting Started with Cloud Native

#1 Cloud Native Surat Meetup Slides

Avatar for Yash Thakkar

Yash Thakkar

July 16, 2017

Other Decks in Technology

Transcript

  1. Agenda • Introduction about Cloud Native Computing Foundation • Brief

    overview about projects under CNCF • How to get started, integrate projects in your application • Q/A, discussion, knowledge sharing regarding projects • Open discussion about next meetup & topic
  2. “If someone asks me what cloud computing is, I try

    not to get bogged down with definitions. I tell them that, simply put, cloud computing is a better way to run your business.” ~ Marc Benioff, Founder, CEO and Chairman of Salesforce
  3. What is Cloud Native Computing Foundation (CNCF)? • CNCF is

    a nonprofit organization committed to advancing the development of cloud native applications and services • Announced on 21 July, 2015 • Under Linux Foundation umbrella • All projects are open-source
  4. • Initiative to spread awareness about cloud development • Help/Guide

    developers on how to work on cloud environment • Promote developers to contribute in open source projects • Discuss about latest cloud native projects • Share meetup members cloud development experience with others Cloud Native Surat Meetup
  5. Kubernetes • Automating deployment, scaling, and management of containerized applications

    • Developed by Google • Highly inspired from Google’s internal tool “Borg” • Type: Container Orchestration • Project accepted: March 10, 2016 • Similar projects: ◦ Docker Swarm, Mesos, Nomad
  6. • Automatic binpacking • Automated rollouts and rollbacks • Service

    discovery and load balancing • Storage orchestration • Secret and configuration management • Self-healing • Horizontal scaling • Batch execution Kubernetes Features
  7. • Monitoring system and alerting toolkit • Helps with metrics

    and monitoring • Started in SoundCloud • Type: Monitoring • Project accepted: April 9, 2016 • Similar projects: ◦ Graphite, InfluxDB, Nagios Prometheus
  8. • Dimensional data • Powerful queries • Great visualization •

    Efficient Storage • Precise alerting Prometheus Features
  9. • Provides insight about individual requests as they propagate throughout

    a system • Focus on event tracing not event logging • consider all requests from all services, then connect the dots • Type: Tracing • Project accepted: October 11, 2016 • Use case: ◦ Application Code, Library Code, OSS Services, RPC/IPC Frameworks OpenTracing
  10. • Detailed logs for any component • Request counts /

    Operation counts • Distributions of latency measurements • Peer relationships within distributed systems ◦ … and thus service dependency graphs Why use OpenTracing?
  11. • Lightweight Unified Logging Layer • Invented by Treasure Data

    • Type: Logging • Project accepted: November 9, 2016 • Similar projects: ◦ Logstash, Apache Flume • Use Case: ◦ Centralized App Logging, Log Management & Search, Data Archiving Fluentd
  12. • Pluggable Architecture • More than 600 plugins available •

    Full integration with Docker and Kubernetes • Libraries in many languages Fluentd Features
  13. • Works as a proxy • layer that manages the

    communication between apps or parts of the same app • Developed by buoyant • Type: Service Mesh • Similar projects: ◦ Envoy, Istio • Project accepted: January 23, 2017 Linkerd
  14. • HTTP proxy integration • Runtime traffic routing • Latency-aware

    load-balancing • Distributed tracing • Protocol upgrades • Drop-in service discovery Linkerd Features
  15. • RPC framework • Use Protocol Buffers for serializing structured

    data • enables client and server applications to communicate • Type: Remote Procedure Call • Developed by Google • Project accepted: March 1, 2017 • Similar project: ◦ Apache Thrift gRPC
  16. • Low latency, highly scalable, distributed systems • Developing mobile

    clients which are communicating to a cloud server • Bi-directional streaming and integrated auth • HTTP/2 • Layered design for extensions gRPC Features
  17. • Distributed service for announcement and discovery of services •

    Utilizes DNS queries to discover available services • Server framework developed as part of the web server Caddy • Can run in place of the standard Kube-DNS in Kubernetes • Type: Service Discovery • Project accepted: March 2, 2017 CoreDNS
  18. • Load balancing of responses • Automatically load zone files

    from disk • Health checking endpoint • Provide metrics (by using Prometheus) • Caching • Serve as a proxy to forward queries to some other nameserver • Middleware support CoreDNS Features
  19. • Based on the Docker Engine’s core container runtime •

    It contains two specifications: ◦ runtime-spec: The runtime specification ◦ image-spec: The image specification • Developed by Docker • Type: Container Runtime • Project accepted: March 29, 2017 containerd
  20. • OCI(Open Container Initiative) Image Spec support • Container execution

    and supervision • OCI Runtime Spec support (aka runC) • Network Interfaces Management • Local storage • Native plumbing level API containerd Features
  21. • CLI for running application containers on Linux • automating

    deployment, scaling, and management of containerized applications • Developed by CoreOS • Type: Container Engine • Similar projects: ◦ Docker • Project accepted: March 29, 2017 rkt(rocket)
  22. • Goal is to create a generic plugin-based networking solution

    for containers • Kubernetes, rkt natively supports CNI • Proposed by CoreOS • Type: Networking • Project accepted: March 29, 2017 CNI(Container Network Interface)
  23. • Pluggable networking interface • Reduce duplicate work for container

    runtimes and orchestrators • Common interface between the network plugins and container execution Why CNI?
  24. • Fix small errors(typos, broken links) • Read issues, answer

    them if you know • Don’t hesitate for opening new issue • Try for small pull requests • Improve sample code Contribute in open source projects
  25. Helpful links CNCF Projects (https://www.cncf.io/projects) TOC meeting (https://lists.cncf.io/mailman/listinfo/cncf-toc) The New

    Stack (https://thenewstack.io) Google Cloud Platform Podcast (https://www.gcppodcast.com) Kube Weekly(https://kubeweekly.com/introducing-kubeweekly/) Docker (https://www.docker.com)