Cloud Native Challenges in Private Cloud with K8s, Knative

Cloud Native Challenges in Private Cloud with K8s, Knative

Yuki Nishiwaki
LINE Verda Platform Development Team Manager
https://linedevday.linecorp.com/jp/2019/sessions/C1-6

Be4518b119b8eb017625e0ead20f8fe7?s=128

LINE DevDay 2019

November 20, 2019
Tweet

Transcript

  1. 2019 DevDay Cloud Native Challenges in Private Cloud With K8S,

    Knative > Yuki Nishiwaki > LINE Verda Platform Development Team Manager
  2. About Me > Yuki Nishiwaki > Joined LINE in 2017/12

    > Manager of Private Cloud Platform Team • OpenStack • Managed Kubernetes • Function as a Service
  3. Verda: Private Cloud

  4. WebUI API Identity Verda Family Network Controller VM Bare metal

    DNS Load Balancer Object Storage Block Storage CDN IaaS Managed Database Managed Kafka Managed Kubernetes Managed Service Platform
 Service Function
 Service PaaS Backend Components User Interface
  5. Scale of Verda +20,000 VMs in a year

  6. What Is Cloud Native?

  7. Definition of Cloud Native https://github.com/cncf/toc/blob/master/DEFINITION.md

  8. Definition of Cloud Native https://github.com/cncf/toc/blob/master/DEFINITION.md

  9. Definition of Cloud Native https://github.com/cncf/toc/blob/master/DEFINITION.md

  10. What We Want To Solve With Cloud Native?

  11. Benefits of Cloud Native For Application Engineers Free From Infrastructure

    Management For Private Cloud (Infra) Engineers Able To Control Infrastructure Resources Without Communications With Application Engineers
  12. Life Cycle of Service Development Prepare Infrastructure Application Deployment Application

    Operation Application Development Private Cloud Service Application Engineers Application Engineers Application Engineers 4000 Projects Non Cloud Native
  13. What's happening? VM VM VM Verda VM Project B Project

    A Keep
 for Future Usage For
 Operation Script For Cron
  14. What's happening? More Than 60% Server's CPU Usage Under 10%

  15. Difficultly in Utilization VM VM VM VM App App Script

    Private Cloud Service Application Engineers Application Deployment Application Operation Application Development Prepare Infrastructure Resources App We Don't Know What's Running/if It's Really Used
  16. Responsibility Differences Prepare Infrastructure Resources Application Deployment Application Operation Application

    Development Non Cloud Native Application Engineers Application Engineers Application Engineers Private Cloud Service Prepare Infrastructure Resources Application Deployment Application Operation Application Development Cloud Native Private Cloud Service Private Cloud Service Private Cloud Service Application Engineers Application Engineers Application Engineers
  17. Describe What Application Needs VM VM VM VM Private Cloud

    Service Application Engineers Abstraction of Computing Resources Script App Script App App App Script Script We Know What's Running How Cloud Native Changes Deployments
  18. Describe What Application Needs How Cloud Native Changes Deployments VM

    VM VM VM Private Cloud Service Application Engineers Abstraction of Computing Resources App Script App App App Script Script Script Be Able To Control Infra Resources While Be Aware of "Service/System"
  19. Diving Into Implementations VM VM Script Script Script Script Function

    Service Kubernetes
 Manifest VM VM App App App Kubernetes App Managed Middleware Database
  20. Managed Kubernetes

  21. Kubernetes Cluster Deploy / Update High Availability Performance Private Cloud

    Collaboration Kubernetes Operation Kubernetes Solution Architect Managed Kubernetes Missions
  22. Cluster Management
 - Deploy - Monitor
 - Update Private Cloud

    Users Automated Operating 
 Multiple Clusters Kubernetes Kubernetes Kubernetes Cluster Operation - Cluster Create
 - Cluster Update
 - Add Workers API Overview of Managed Kubernetes Add-on Manager Add-on Management
 - Deploy - Monitor
 - Update
  23. Add-on Manager improves k8s Usability Kubernetes Everyone Needs... Everyone Doesn't

    Have To Know the Details How Many Pod? Configuration? Do We Need Update?
  24. Rancher is the key of "Operation Automation" Events When Nodes

    Break When Entire Cluster Breaks When Cluster Needs Update 1 API Call To Replace Nodes 1 API Call To Restore From Snapshot 1 API Call To Update
  25. Types of Monitoring Simple Advanced 1. Kubernetes API Availability
 2.

    TCP Connectivity With Agent 3. Kubelet Status 4. Component Status API Result 1. Node Resource Usage 2. Etcd /Metrics API 
 3. Kube-XXXX /Metrics API
  26. Current Scale vs. Operators 5 Operators 130 Clusters 2000 Nodes

    Scale
  27. Roadmap > Cover Basic Use Case • Provide Simple Cluster

    with HA • Add-on Management • Operation Automation DONE TODOs > Encourage more users to use • Support More Add-ons • Performance Consideration
  28. Diving Into Implementations VM VM Script Script Script Script Function

    Service Kubernetes
 Manifest VM VM App App App Kubernetes App Managed Middleware Database
  29. Function as a Service

  30. What Kubernetes Provides? Kubernetes Cluster App App App 2. Auto

    Scaling App 3. Rolling Upgrade App 1. Auto Healing
  31. You have more things... When an Alert Get Fired When

    Bug Ticket Is Created When K8S Node Is Healed Every 1 Hour
  32. Overview of Function as a Service Event Provider Event Provider

    Notify Slack Prepare Cloud Resource Run Test Deploy Application Function
 Service Every 30 min VM Created User Added CPU Usage exceed 80% Events Functions
  33. Kubernetes Cluster Controller API eventing source serving build istio-ingressgateway Function

    Function Function Function Event Providers Function Service OpenStack
  34. Roadmap > Simple Function Execution > Just 3 type events

    (trigger) • OpenStack Resource Event • Cron • HTTP DONE TODOs > Supporting More Events • Maintenance Event • Monitoring Event • Third-party System Event > Function Pipeline > Rich Control on Function Behavior
  35. Future of LINE Cloud Native

  36. Introduce Abstraction(K8S, Function Service) 
 to Decouple Application and Infrastructure

    Encourage More Service
 to Adapt K8S, Function Service Improve Resource Efficiency
 by Making Use of Abstraction Now
  37. Options Short Term Cluster 1 Cluster 2 Auto Scale in

    out Large Cluster Long Term Large Cluster With Enrich Isolation Project A Project B Project A Project B /