SlideShare a Scribd company logo
DevOps & Docker 的最佳实践
云络科技/ 王 寒
自我介绍
• 王寒
• 香港科技大学
• IBM,微软
• 云络科技 (ChinaNetCloud) 架构师
1 DevOps的现状
内容
3 DevOps的基础
2 DevOps的四个阶段
4 DevOps案例分享
5 Docker的优势与挑战 6 DevOps的愿景
7
DevOps
DevOps是一种在促进开发与运维的交
流与合作的条件下,以自动化工具与流
程为基础,更快速,高效和稳定的实现
环境搭建,代码的部署,交付,测试以
及发布的一种文化和趋势。
文化 合作 自动化 高效
DevOps 的四个阶段
传统简单自动化
持续交付与静态Docker
增强与动态Docker
全面持续交付与自动化
DevOps
第一阶段:传统简单自动化
• 编写脚本
• 简单的自动化工具,如 Ansible
第二阶段:持续交付与静态Docker
• 实现持续交付 (Continuous Integration)
• 静态Docker系统,没有调度,扩展等自动化机制,人工决定资源的调配,
系统对于动态负载的弹性较弱
第三阶段:加强与动态Docker
• 不断改进持续交付以及实现自动化测试
• 支持更复杂的应用架构
• 动态Docker集群,自动调度,恢复,服务发现等,利用Swarm,
Kubernete等工具
第四阶段:全面持续交付与自动化
• 全自动化的阶段
• Infrastructure – as – code 整个系统和应用是在Git中的一系列文件,包括
云(基础设施)
服务器
应用
等一切
• 非常理想化也非常困难
DevOps的基础
Full Version Control 版本控制
代码提交,复查,合并等
Environment/System abstraction 抽象环境
满足多环境部署,配置独立且自动化
Full-automated Testing 自动测试
功能和依赖关系的测试自动化
Full Continuous Integration 持续集成
持续性测试任何变更,持续部署各个环境
DevOps 案例分享 — 背景
版本控制
环境抽象化
自动化测试
完全持续交付
GITLAB
Docker
自动脚本
Jenkins
• 实现 DevOps 第二阶段
• 应用环境在 AWS
• 每两周发布新版本,每日推送更新3-4次
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
DevOps 案例分享 — 环境与架构
Docker 1
Docker 2
.
.
.
Docker 9
Internal ELB
Docker 1
Docker 2
.
.
.
Docker 9
Docker 1
Docker 2
.
.
.
Docker 9
…...
Port: 50002
Port: 50001
Port: 50011Port: 500n1
VM (n) VM2 VM1
API GATEWAY (Docker 9)
Public ELB
Port: 4080
Port: 50000, 50010 … 5000n0
Port: 50010
Node.js (Stateless)
Port: 443
Redis
Session Control
VM IP
Docker IP
Mapping
DevOps 案例分享 — 环境与架构
Commit
Build
Package
Docker
Image
Docker
Registry
(Testing)
Test
Testing
Deploy
Testing
Dcoker
Registry
(UAT +
Prod)
Deploy
Prod
Deploy
UAT
Staging
UAT
Test
Prod
Local
AWS
DevOps 案例分享 — Docker 打包
Commit
Package Docker
Image Docker Registry
Build
Testing
Push
Pull Run
• 代码提交打包
• 创建Docker Image
• 注册Docker Registry
• 多环境部署就绪
DevOps 案例分享 — Docker 部署
• Docker可以帮助实现环境抽象化,有如下两种方式:
• 起 Docker container时定义-e environment, 自动匹配相对应的环境配置, 弊端
是每次环境配置变更,都要重新制作Docker image并且重新部署所有环境
• 另外一种方法是用Docker和CoreOS (etcd)相配合,将环境变量和image分离,由
etcd服务来发现和管理配置,每个image中包含不同环境的代码和配置,实现
数据和配置的解耦
DevOps 案例分享 — Jenkins & Docker
DevOps 案例分享 — Jenkins
• 利用Jenkins
• 变更持续更新
• 多环境测试
Docker 的优势
• 高性能,运行时性能可以提升
• 工具,有系统的工具去动态管理环境,发现服务,存储等
• 灵活,将应用和系统“容器化”,更加便捷部署应用
• 敏捷,可以快速复原和更新变更
• 轻量,在一个服务器上可以部署很多容器
• 便宜,来源,免费,低成本
• 生态系统,越来越受欢迎
Docker 的挑战
监控
日志
排障
安全
网路
Docker 的挑战 — 监控
• 基本监控:Docker 是否正常运行
• 三种监控技术:Cgroup 文件,Docker API 和 Docker 命令行
• 硬盘空间的检测需自定义
• 如何监控 Container 里的服务
1. Agent 在 Container 内
2. Agent 在 Container 外
Zabbix Low level Discovery
Docker 的挑战 — 日志
应用
日志
ELK
工作
专用
容器
GELF
Docker 的挑战 — 故障排查
Bash Shell
Container 修改难度大
无法SSH到Container
Docker 的挑战 — 安全
• Docker 安全补丁复杂
• Container 与 虚拟机的隔离
• Docker 的安全标准与规范
Docker 的挑战 — 网络
• 多种模式
• 动态系统
• 集群工具
1. Links — 端口
2. Selinux — 增强安全
DevOps 的愿景
自动伸缩
动态 Docker
Green/Blue
滚动
• 通过CloudWatch设定监控阈值
• 与AWS Auto -Scaling相结合
AWS Launch Configuration
• 集群化
• 自动调度,恢复,服务发现
• Swarm, Fleet, Kubernete, Meso等等
• 严格执行蓝/绿测试规则
• 通过AWS CLI/API将一台服务
器从ELB中取出
• 放入新的ELB下部署且测试
• 再将此服务器放入生产ELB
下,另一台取出,滚动部署
总结
• DevOps 是一种文化,趋势
• 我们建议实现第二阶段的DevOps
• Docker 是实现DevOps的重要技术,要做应对挑战的准备
• Dev 做巧,Ops 做好
Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲

More Related Content

PPTX
cec-hello-docker
PPTX
快速上手 Windows Containers 容器技術 (Docker Taipei)
PDF
Docker home ted
PPTX
開發人員不可不知的 Windows Container 容器技術預覽
PDF
Docker 最佳实践
PPTX
Rancher: 建立你的牧場艦隊
PPTX
Docker 淺入淺出
PPTX
用 Docker 改善團隊合作模式
cec-hello-docker
快速上手 Windows Containers 容器技術 (Docker Taipei)
Docker home ted
開發人員不可不知的 Windows Container 容器技術預覽
Docker 最佳实践
Rancher: 建立你的牧場艦隊
Docker 淺入淺出
用 Docker 改善團隊合作模式

What's hot (20)

PPTX
Docker 基礎介紹與實戰
PDF
容器式基礎架構介紹
PPTX
Docker tutorial
PDF
Docker Build
PDF
從軟體開發角度
談 Docker 的應用
PDF
容器式軟體開發介紹
PPTX
Docker Compose
PDF
docker intro
PDF
前端工程師一定要知道的 Docker 虛擬化容器技巧
PPTX
Rancher 快速打造叢集的解決方案
PDF
PDF
Wot2013云计算架构师峰会 -陈轶飞2
PPTX
Docker基礎
PPTX
[Study4TW Visual Studio Everywhere] asp.net core 實務開發經驗分享
PDF
My DevOps Tour 0.1
PDF
認識那條鯨魚 Docker 初探
PDF
AWS EC2 for beginner
PPTX
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
PDF
Docker容器微服務 x WorkShop
PDF
20150604 docker 新手入門
Docker 基礎介紹與實戰
容器式基礎架構介紹
Docker tutorial
Docker Build
從軟體開發角度
談 Docker 的應用
容器式軟體開發介紹
Docker Compose
docker intro
前端工程師一定要知道的 Docker 虛擬化容器技巧
Rancher 快速打造叢集的解決方案
Wot2013云计算架构师峰会 -陈轶飞2
Docker基礎
[Study4TW Visual Studio Everywhere] asp.net core 實務開發經驗分享
My DevOps Tour 0.1
認識那條鯨魚 Docker 初探
AWS EC2 for beginner
[2020 .NET Conf] 企業Azure DevOps Service 實際應用架構與秘辛
Docker容器微服務 x WorkShop
20150604 docker 新手入門
Ad

Viewers also liked (14)

PDF
零到千万可扩展架构 AWS Architecture Overview
PPTX
OpsStack--Integrated Operation Platform
PDF
Serverless api gateway + lambda
PPTX
2016 AWS Summit TPE - Hiiir 如何透過 AWS IAM 做好雲端權限控管
PPTX
AWS Summit OaaS Talk by ChinaNetCloud
PPTX
基于AWS Lambda的无服务器架构在Strikingly中的应用
PDF
基于Aws的持续集成、交付和部署 代闻
PDF
淺談系統監控與 AWS CloudWatch 的應用
PDF
Aws summit devops 云端多环境自动化运维和部署
PPTX
AWS EC2 and ELB troubleshooting
PDF
AwSome day 分享
PDF
基于Aws的dev ops实践指南 王毅
PPTX
AWS Solutions Architect 準備心得
PPTX
AWS ELB Tips & Best Practices
零到千万可扩展架构 AWS Architecture Overview
OpsStack--Integrated Operation Platform
Serverless api gateway + lambda
2016 AWS Summit TPE - Hiiir 如何透過 AWS IAM 做好雲端權限控管
AWS Summit OaaS Talk by ChinaNetCloud
基于AWS Lambda的无服务器架构在Strikingly中的应用
基于Aws的持续集成、交付和部署 代闻
淺談系統監控與 AWS CloudWatch 的應用
Aws summit devops 云端多环境自动化运维和部署
AWS EC2 and ELB troubleshooting
AwSome day 分享
基于Aws的dev ops实践指南 王毅
AWS Solutions Architect 準備心得
AWS ELB Tips & Best Practices
Ad

Similar to Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲 (13)

PPTX
Docker介绍及应用
PDF
从CI到CD[麻袋理财王天青]v1
PDF
Docker初识
PDF
摩登開發團隊的DevOps之道 (@DevOpsTaiwan)
PPTX
Cloud and-devops
PPT
The way to continuous delivery
PPTX
前端转行 DevOps 经验分享
PDF
Docker In-Depth
PPTX
Docker一期培训
PPTX
Docker+mesos安装最佳实践
PPT
Software Engineer Talk
PPTX
Docker
PDF
Hyper 基于hypervisor的docker引擎.pptx
Docker介绍及应用
从CI到CD[麻袋理财王天青]v1
Docker初识
摩登開發團隊的DevOps之道 (@DevOpsTaiwan)
Cloud and-devops
The way to continuous delivery
前端转行 DevOps 经验分享
Docker In-Depth
Docker一期培训
Docker+mesos安装最佳实践
Software Engineer Talk
Docker
Hyper 基于hypervisor的docker引擎.pptx

More from ChinaNetCloud (20)

PPTX
ChinaNetCloud Online Lecture:Something About Tshark
PPTX
ChinaNetCloud Online Lecture: Fight Against External Attacks From Different L...
PPTX
Steve Mushero on Entrepreneurship - 创业 - 崔牛会
PPTX
云中漫步 颠覆创新_创业邦春季创新峰会主题演讲 Cloud Innovation in China
PDF
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
PDF
Running Internet Systems in China - The Details You Need to Succeed in Chines...
PDF
Making Internet Operations Easier
PPTX
Internet Cloud Operations - ChinaNetcloud & AWS Event Beijing
PPTX
Big Data Security (ChinaNetCloud - Guiyang Conference)
PPTX
Internet System Security Overview
PPTX
Why Work at ChinaNetCloud
PPTX
Cloud Operations Challenges - Talk by ChinaNetCloud at Joint Cisco event
PPTX
Automatically Managing Internet Operations In The Cloud - 云计算平台的自动化运维
PPTX
ChinaNetCloud - Aliyun Joint Event on Cloud Operations
PDF
Clouds in China
PPTX
ChinaNetCloud - Public Clouds in China Overview
PPT
ChinaNetCloud - China Internet Infrastructure Summary
PPT
Linux Memory Basics for SysAdmins - ChinaNetCloud Training
PPT
Networking Layer Basics - ChinaNetCloud Training
PPTX
ChinaNetCloud Training - iptables Intro
ChinaNetCloud Online Lecture:Something About Tshark
ChinaNetCloud Online Lecture: Fight Against External Attacks From Different L...
Steve Mushero on Entrepreneurship - 创业 - 崔牛会
云中漫步 颠覆创新_创业邦春季创新峰会主题演讲 Cloud Innovation in China
运维安全 抵抗黑客攻击_云络安全沙龙4月上海站主题分享
Running Internet Systems in China - The Details You Need to Succeed in Chines...
Making Internet Operations Easier
Internet Cloud Operations - ChinaNetcloud & AWS Event Beijing
Big Data Security (ChinaNetCloud - Guiyang Conference)
Internet System Security Overview
Why Work at ChinaNetCloud
Cloud Operations Challenges - Talk by ChinaNetCloud at Joint Cisco event
Automatically Managing Internet Operations In The Cloud - 云计算平台的自动化运维
ChinaNetCloud - Aliyun Joint Event on Cloud Operations
Clouds in China
ChinaNetCloud - Public Clouds in China Overview
ChinaNetCloud - China Internet Infrastructure Summary
Linux Memory Basics for SysAdmins - ChinaNetCloud Training
Networking Layer Basics - ChinaNetCloud Training
ChinaNetCloud Training - iptables Intro

Dev-Ops与Docker的最佳实践 QCon2016 北京站演讲

Editor's Notes

  • #9: Kubernete 集群管理,可视化工具