使用Docker云化的技术实践


ArchSummit全球架构师峰会 深圳站2015 易传媒使用Docker云化的技术实践 郑 罡 产品功能和业务需求 系统功能特点: 系统可以部署安装在客户本地IDC机房、私有云服务、主要公共云 (AWS,aliyun),易传媒云服务 系统部署在易传媒云服务中,客户数据有私有存储空间,保证数据安全 系统部署在易传媒云服务中,可以根据客户选择系统运行使用的资源数 量 程序化交易操作系统平台,同时支持多种商业模式,可以根据不同业务定制成包 含业务逻辑、数据管理和外部接口整合的系统。能帮劣 企业减少在程序化交易上 的技术和运营开支,迅速建立或加强全新的数字广告业务。 产品业务功能架构 Tos媒体 前端管理系统 广告投放服务 大数据计算服务 交易数据收集 Tos广告主 前端管理系统 企业级用户 企业级用户 互联网用户 系统部署形态 Docker集群 (Acount1) AWS (Account1) AWS (Account2) Aliyun (Account2) Aliyun (Account1) Aliyun (Account3) Docker集群 (Acount2) Docker集群 (Acount3) IDC集群 (Acount) 大客户 大、中客户 大、中客户 租用客户 租户产品架构的变迁 Tos 前端管理系统 管理系统DB1 广告投放服务 DB 广告投放服务 消息队列服务 ETL 投放交易数据1 数据计算Job 业务报告DB1 管理系统DB2 投放交易数据2 业务报告DB2 Tos 前端管理系统 管理系统DB1 广告投放服务 DB1 广告投放服务1 消息队列服务 ETL1 投放交易数据1 数据计算Job 业务报告DB1 管理系统DB2 投放交易数据2 业务报告DB2 Tos 前端管理系统 广告投放服务 DB2 广告投放服务2 ETL2 Tos 前端管理系统 管理系统DB 广告投放服务 DB 广告投放服务 消息队列服务 ETL 投放交易数据 数据计算Job 业务报告DB 使用用户名登录 数据按照UID区分 每套系统有独立的User体系 数据基于Docker容器隔离 独立限制每个系统可用资源 每套系统有独立的User体系 数据基于Docker容器隔离 限制每组系统的可用资源 不同角度的功能需求 从客户应用角度(Saas) 数据的物理隔离,保证数据安全性 可选择系统运行使用的资源数量 系统创建迅速,扩容简便 低故障率,可用性高 从易传媒运营角度(Iaas) 系统搭建迅速,部署简便,需要投入的人力少 能充分利用服务器资源,支持按需使用 易于在访问量增减时,为需要的客户单独增减运行资源支援 服务迁移方便,故障硬件快速退出 支持多种部署环境 企业云化的选择 选择云服务 修改应用适配云服务 使用云监控监控应用 迁入公有云服务 选择私有云系统 构建私有云服务 修改应用适配云 服务 构建监控服务监 控应用 迁入私有云服务 易传媒产品的云化选择,自有服务选择“构建企业私有云,将企业应用迁入”,企业级应用客 户选择“迁入公有云服务”或在客户内网“构建企业私有云,将企业应用迁入” 市场主要公共云比较 虚拟化 EC2 Auto Scaling Amazon VPC Elastic Load Balancing 存储 Amazon S3 Amazon EBS DynamoDB ElasticCache Amazon EMR RDS 消息服务 SQS SWF SNS 监控与安全 IAM Amazon CloudWatch Amazon CloudFront Amazon Route 53 虚拟化 ECS ESS VPC SLB 存储 RDS OTS OCS/KVStore OSS ODPS 消息服务 SLS MQS ONS 监控与安全 CDN 云监控 AWS 50+服务 Aliyun 27+服务 应用系统主要使用云服务 虚拟化 虚拟机服务 负载均衡服务 弹性扩展服务 存储 关系数据库 NoSQL DB 缓存服务 文件存储服务 大数据分析服务 消息服务 消息队列 订阅服务 监控与安全 系统监控 报警服务 身份讣证 TOS使用aliyun的架构 应用系统私有云服务 虚拟化 Docker容器 LoadBalance (Nginx) 自主开发Docker 容器管理 存储 MySQL Starfish Redis 文件存储服务 Hadoop/Spark 消息服务 LightMQ 监控与安全 Cacti Nagios Saltstack Docker容器技术简介 Server Host OS Hypervisor Guest OS Bins/ Libs APP A1 Guest OS Bins/ Libs APP B1 Guest OS Bins/ Libs APP A2 Server Host OS Docker Engine Bins/ Libs APP A1 Bins/Libs APP A2 APP B1 APP B2 APP A3 APP A4 VMs Container Docker容器技术优劣势 资源隔离不彻底 权限管理有缺陷 网络管理功能弱 管理工具相对少 资源占用小 启劢速度快 系统消耗低 搭建成本低 易传媒选择Docker的原因 如何利用Docker容器的优点 • 资源占用小:单台宿主机可容纳的容器数量多,可以为每个服务使用单独容器 • 启劢速度快:新增容器迅速,可以迅速寻找服务器资源,启劢容器补充服务需求 • 系统消耗低:单台宿主机有效服务承载更高 • 搭建成本低:学习成本低,可以迅速搭建私有云服务.应用可以作为容器镜像部署,保 证运行环境一致性。 如何避免Docker容器的缺点 • 资源隔离不彻底:监控容器内进程对资源的占用,及时杀掉占用资源进程 • 权限管理有缺陷:不使用root用户,严格显示容器内应用执行用户,不使用ssh服务 • 网络管理功能弱:使用host模式绑定容器网卡,在宿主机层面管理容器网络 • 管理工具相对少:自主开发管理工具 软件开发架构需要接受的变化 系统服务层IP与接口变化频繁,服务配置不再相对固定,软件开发 必须接受服务变化的思想 容器失效的状况更加频繁,必须尽量将服务开发为无状态 需要将应用服务分层,习惯容器即服务 容器的文件系统写操作性能不高,软件数据数据或log文件,目录应 该统一,方便输出到容器外 运维方式需要接受的变化 出现大量容器,人工管理和维护无法进行,自劢化部署和运维成为 必须 容器资源隔离有漏洞,权限管理有缺陷。不能将容器当虚机使用。 容器文件系统写操作性能有限,应用系统产出数据应该写入挂载宿 主机目录 容器网络设置繁琐,需要做好网络规划。 运维人员必须熟悉每种容器内运行的服务所属类型,帮劣开发人员 规划服务间访问权限与部署宿主机 Docker使用中碰到的问题 架构 • 数据输出随意,导致写满Docker文件系统 • 不考虑容器可能失效的状况 • 没有配置服务,更改服务配置困难 • 需要与运维团队一起协作,考虑运维需求 • 需要考虑网络架构,考虑网络访问权限 运维 • 将容器当虚拟机使用 • 容器可能无法启劢,运维困难 • 容器版本更新快,容易出现版本分裂 • 没有自劢化运维工具,依靠人力完成 • 需要具备一定的编程能力,来满足实现自劢化运维的需要 • 需要理解应用对资源的使用需求和状态,在容器容量规划时考虑 Q&A
还剩20页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 8 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

e6ef

贡献于2015-09-14

下载需要 8 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf