DevOps 与 Docker 的最佳实践

2020-02-27 58浏览

  • 1.DevOps & Docker 的最佳实践 云络科技/ 王 寒
  • 2.自我介绍 • 王寒 • 香港科技大学 • IBM,微软 • 云络科技 (ChinaNetCloud) 架构师
  • 3.内容 1 DevOps的现状 2 DevOps的四个阶段 3 DevOps的基础 4 DevOps案例分享 5 Docker的优势与挑战 6 DevOps的愿景 7
  • 4.DevOps DevOps是一种在促进开发与运维的交 流与合作的条件下,以自动化工具与流 程为基础,更快速,高效和稳定的实现 环境搭建,代码的部署,交付,测试以 及发布的一种文化和趋势。 文化 合作 自动化 高效
  • 5.DevOps 的四个阶段 传统简单自动化 持续交付与静态Docker 增强与动态Docker 全面持续交付 与自动化 DevOps
  • 6.第一阶段:传统简单自动化 • 编写脚本 • 简单的自动化工具,如 Ansible
  • 7.第二阶段:持续交付与静态Docker • 实现持续交付 (Continuous Integration) • 静态Docker系统,没有调度,扩展等自动化机制,人工决定资源的调配, 系统对于动态负载的弹性较弱
  • 8.第三阶段:加强与动态Docker • 不断改进持续交付以及实现自动化测试 • 支持更复杂的应用架构 • 动态Docker集群,自动调度,恢复,服务发现等,利用Swarm, Kubernete等工具
  • 9.第四阶段:全面持续交付与自动化 • 全自动化的阶段 • Infrastructure – as – code 整个系统和应用是在Git中的一系列文件,包括 云(基础设施) 服务器 应用 等一切 • 非常理想化也非常困难
  • 10.DevOps的基础 Full Version Control 版本控制 代码提交,复查,合并等 Environment/System abstraction 抽象环境 满足多环境部署,配置独立且自动化 Full-automated Testing 自动测试 功能和依赖关系的测试自动化 Full Continuous Integration 持续集成 持续性测试任何变更,持续部署各个环境
  • 11.DevOps 案例分享 — 背景 • 实现 DevOps 第二阶段 • 应用环境在 AWS • 每两周发布新版本,每日推送更新3-4次 版本控制 GITLAB 环境抽象化 Docker 自动化测试 自动脚本 完全持续交付 Jenkins
  • 12.DevOps 案例分享 — 环境与架构 • • • • • • • • • AWS 中国 开发语言 (Java / Nodejs) Docker (CoreOS) Redis (Elastic Cache) MySQL (RDS) Postgres (RDS) MongoDB cluster (EC2) ELK (EC2) Hadoop (EC2, self host) Solr (EC2) ELB, S3, SQS, SNS
  • 13.DevOps 案例分享 — 环境与架构Port:'>Port: