倪朋飞 基于Kubernetes的DevOps

1. 基于 Kubernetes 的 DevOps 倪朋飞 Microsoft Azure
3. Pengfei Ni Senior Software Engineer • 就职于 Microsoft Azure • 主要关注 Kubernetes 与微服务 • SIG Azure Tech Lead • Kubernetes 项目维护者 • 开源书籍《Kubernetes指南》 • kubernetes.feisky.xyz
4. • Kubernetes 简介 • 基于 Kubernetes 的 Devops • 基于 AKS 的 CI/CD 实践 • Devops 挑战
5. 1. Kubernetes简介
6. Kubernetes 简介 生产级 容器编排系统 云原生应用 最佳平台 可移植 公有云、私有云、混合云、跨云 可扩展 模块化、插件化、易扩展 自我修复 自动部署、自动故障恢复、自动扩展
7. Kubernetes 特性 调度编排 存储编排 监控 自动故障恢复 自动扩展 网络 服务发现 负载均衡 配置管理
8. Kubernetes 架构 Internet Master etcd Controller-manager API Server scheduler replication, namespace, serviceaccounts, etc. Node Kubelet Kube-proxy Pod Containers Pod Containers Docker Pod Containers
9. Kubernetes 101
10. 2. 基于Kubernetes的Devops
11. Devops DevOps is the union of people, process, and products to enable continuous delivery of value to your end users. 来源:https://docs.microsoft.com/zh-cn/azure/devops/learn/what-is-devops 构建 测试 部署 开发 持续 运维 交付 规划 跟踪 监控 优化
12. Devops 收益 高效交付 改善组织文化 自动化 基础架构一致性 缩短故障恢复时间 提高生产力
13. Devops 工具链 来源:http://www.jamesbowman.me/post/continuous-delivery-tool-landscape/
14. Kubernetes Devops 工具链 编排 CI/CD 日志 来源:https://landscape.cncf.io 监控 跟踪 配置
15. 典型流程 VS Code 项目开发 推送代码 Prometheus 监控告警 生产环境 单元测试 构建镜像 推送 DockerHub 测试环境部署 生产环境部署 预发测试 预发环境部署 测试环境 集成测试 预发环境
16. 3. 基于AKS的Devops
17. Azure Kubernetes Service Application architect Infrastructur e architect Managed Applications Operations Kubernetes Docker Azure infrastructure services • Managed control pane • Automated upgrades, patches • Easy cluster scaling • Self-healing • Cost savings
18. Azure 容器服务 PaaS Partner services OpenShift Pivotal Cloud Foundry Docker Enterprise Edition Mesosphere DC/OS OSBA Azure services SQL Database Redis Cache CosmosDB And more! Azure App Service Azure Kubernetes Service (AKS) ACS Engine Virtual kubelet Service Fabric Batch Azure Container Registry (ACR) Azure Container Instances (ACI) Azure Virtual Machines Virtual Machine Scale Sets (VMSS) IaaS
19. 基于AKS的Devops 创建项目 No 已有配置 Yes • 开发 • 配置 • 本地测试 • 持续变更 Draft up 初始化配置 应用部署 镜像推送 镜像构建 代码推送 拉取代码 镜像构建推送:Jenkins, Azure Devops Draft create VS Code Azure Devops ACR AKS Init CI CD Production 测试环境部署 测试 No 通过 Yes 预发布环境部署 回开发环境 验证 通过 No Yes 生产环境部署 回滚 监控 创建Backlog
20. 4. Devops挑战
21. Devops 挑战 • 自动化测试投入不足 Ø 适当的测试覆盖率、组织文件建设 • 工具链缺少连接 Ø 选用Kubernetes生态中的工具链 • 量化成果和团队协同 Ø 使用ServiceMesh构建调用链监控 • 未遵循最佳实践 Ø 应用最佳实践:资源限制、容器隔离、 健康检查、总是使用控制器……