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. 1.

    2019 DevDay Cloud Native Challenges in Private Cloud With K8S,

    Knative > Yuki Nishiwaki > LINE Verda Platform Development Team Manager
  2. 2.

    About Me > Yuki Nishiwaki > Joined LINE in 2017/12

    > Manager of Private Cloud Platform Team • OpenStack • Managed Kubernetes • Function as a Service
  3. 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
  4. 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
  5. 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
  6. 13.

    What's happening? VM VM VM Verda VM Project B Project

    A Keep
 for Future Usage For
 Operation Script For Cron
  7. 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
  8. 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
  9. 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
  10. 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"
  11. 19.

    Diving Into Implementations VM VM Script Script Script Script Function

    Service Kubernetes
 Manifest VM VM App App App Kubernetes App Managed Middleware Database
  12. 21.

    Kubernetes Cluster Deploy / Update High Availability Performance Private Cloud

    Collaboration Kubernetes Operation Kubernetes Solution Architect Managed Kubernetes Missions
  13. 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
  14. 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?
  15. 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
  16. 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
  17. 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
  18. 28.

    Diving Into Implementations VM VM Script Script Script Script Function

    Service Kubernetes
 Manifest VM VM App App App Kubernetes App Managed Middleware Database
  19. 30.

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

    Scaling App 3. Rolling Upgrade App 1. Auto Healing
  20. 31.

    You have more things... When an Alert Get Fired When

    Bug Ticket Is Created When K8S Node Is Healed Every 1 Hour
  21. 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
  22. 33.

    Kubernetes Cluster Controller API eventing source serving build istio-ingressgateway Function

    Function Function Function Event Providers Function Service OpenStack
  23. 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
  24. 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
  25. 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 /