Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Cloud Native Practice

383 views

Published on

雲原生實踐步驟 @ Cloud Native Forum 2019-10-09

Published in: Technology
  • Be the first to comment

Cloud Native Practice

  1. 1. Cloud Native Practice 鄭淳尹(Philipz) 2019-10-09 Docker.Taipei 共同發起人
  2. 2. About Me ◆ 開源愛好者,網管人雜誌技術專欄作家 ◆ 國泰金控 DDT 數位架構發展部 技術架構師 ◆ 經歷:momo購物網、臺北榮總、玉山銀行等 ◆ 翻譯審閱多本容器技術書籍
  3. 3. What’s Cloud Native?
  4. 4. What’s Cloud Native? A cloud-native (or cloud-based) application is the one which is created in the cloudand is builtas microservices packaged in containers.
  5. 5. How to DO?
  6. 6. Step 1. Version Control
  7. 7. Version Control ● Source Code ● SA/SD/PG Document ● DB Schema ● Application Configuration ● Configuration Management ○ Terraform ○ Ansible ● And so on. ● GitOps
  8. 8. Step 2. CI Pipeline
  9. 9. CI Pipeline ● Let programmers do the coding well. ● Unit Test, Mock Test ● Code Quality Analysis Tools - SonarQube... ● TDD - Test Driven Development ● Jenkins X, GitLab-CI, Travis CI, CircleCI, GitHub Actions… ● Automating Workflow
  10. 10. Step 3. Stateless
  11. 11. Stateless ● Horizontal Auto Scaling ● Sharing Session ● Remove Hard Coded config. ● Keys & Certificates ● Service Registry & Discovery ○ Multi-K8S or Hybird Cloud Application ○ Consul https://www.consul.io ● Logs forwarding & Collection ○ Logstash ○ Fluentd ○ DynaTrace
  12. 12. Step 4. Containerization
  13. 13. Containerization ● Dockerfile or By Building Tools ● Real Container ○ One Container ○ One Customer ○ One Commodity ● Software Container ○ One Container ○ One Process ● VM-style Container ● Container is a Process, K8S is Systemd. BuildKit img Buildah MakisuKaniko Bazel S2I Docker Container Building Tools
  14. 14. Step 5. Common Services
  15. 15. Common Services ● Each common service should have its own API access layer. ● Cache - Redis ● RDB ● NoSQL ● Event Bus & Queue - Ka a ● Storage ○ Block ○ Object ● Use VM or Container?
  16. 16. Step 6. Kubernetes
  17. 17. Kubernetes ● Immutable infrastructures & Phoenix Server ● Public Cloud - KaaS ● CI Pipeline ● The master nodes in VM, the work nodes on bare metal. ● Never put all your eggs in one cluster.
  18. 18. Step 7. Observability
  19. 19. Observability ● Tracing, aka distributed tracing - Zipkin ● Metrics - Pinpoint ● Logging Collection - ELK, EFK, Splunk ● APM ● OpenTracing + OpenCensus = OpenTelemetry ○ https://opentelemetry.io/
  20. 20. Step 8. Monitoring
  21. 21. Monitoring ● Fault isolation is difficult. ○ What Is Root Cause? In application, network, or OS layer??? ● Health Check by K8S ● Post-mortem ● Fault Pattern ● Prometheus, Netdata, Zabbix ● Predict & Alert, osquery ● SRE & Chaos Engineering
  22. 22. Step 9. DDD
  23. 23. Domain Model Java DDD
  24. 24. Domain Driven Design ● By Eric Evans, 2004 ● Decomposition Patterns ○ By Business Capability ○ By Subdomain ● SOLID principle ● Archteture Patterns ○ CQRS ○ Event Sourcing ○ Saga
  25. 25. Step 10. Microservices & Serverless
  26. 26. Microservices Patterns
  27. 27. Microservices Patterns
  28. 28. Microservices & Serverless Arch. From: Azure Architecture Center GitLab CI
  29. 29. Step 11. Cloud
  30. 30. Cloud Strategy From: Slicing the hybrid cloud elephant
  31. 31. Common Services μs μs Public Cloud API Cloud
  32. 32. Step 12. Reconstructing
  33. 33. Stone Soup for the Enterprise
  34. 34. Responsibilities of Architects How to build a technology platform The Architect Elevator — Visiting the upper floors
  35. 35. Open Source Challenge
  36. 36. There are known unknows, and there are unknown unknows.
  37. 37. Thank you. Q&A

×