写点什么

从太平洋保险 DCOS 实践看传统企业的魅力变革

  • 2016-03-21
  • 本文字数:3415 字

    阅读完需:约 11 分钟

云计算驱动企业 IT 架构演进

随着云计算的快速普及,传统企业越来越关注基于云计算的下一代 IT 架构变革了。回顾企业 IT 架构演进历史,主要经历了“传统孤岛”、“x86+ 虚拟化”和“云化”这三个阶段。

最初的“传统孤岛”,软硬件堆栈各层间缺少统一的工业标准化,呈现出内聚与耦合的特征。随后的 x86 标准化带来计算、存储、网络、操作系统、中间件、应用层等多层次水平分工架构,为了提升 IT 灵活性和资源利用率,虚拟化开始在数据中心部署,IaaS 实现了虚拟机级弹性伸缩,但 IT 基础设施扩张很快,系统层层堆叠,各层间集成交付的难度越来越大,同时,仅虚拟化也难以满足不断增加的业务对资源的变化需求。

于是企业开始期望将服务作为 IT 核心,提升业务敏捷性,同时大幅降低 TCO,这时 PaaS 和应用资源池化实现了集群级弹性伸缩,很大程度上缓解了 IT 资源与业务发展之间的矛盾,让企业更专注于上层业务逻辑的运营。如果说 IaaS 属于云化的“初级”阶段,PaaS 和应用资源池化就是云化的“进阶”阶段。而今天故事的主角 DCOS 实现了数据中心级弹性伸缩,使它称得上“深度”云化的发动机了。

回顾:DCOS 是什么?

数据中心操作系统(Data Center Operating System,简称 DCOS)是为整个数据中心提供分布式调度与协调功能,实现数据中心级弹性伸缩能力的软件堆栈,它将所有数据中心的资源当做一台大型计算机来调度,可以视作这个大型主机的操作系统。下表给出了 Linux OS 与 DCOS(以基于 Mesos 为例)的类比:

Linux OS

DCOS

资源管理

Linux Kernel

Mesos

进程管理

Linux Kernel

Docker

任务调度

Init_d、cron

Marathon、Chronos

内部进程通信

Pipe、Socket

ActiveMQ、RabbitMQ

文件系统

ext4

HDFS、Ceph

太平洋保险 DCOS 平台关键技术选型

在今年春节期间,太平洋保险联合上海天玑数据,采用 DCOS 平台改造微信应用系统来支撑推出的“除夕夜摇红包”、“初五迎财神”等系列活动。活动期间 DCOS 轻松支撑高达每秒 10 万笔交易的业务高峰,仅除夕当夜微信增粉量就超过 1300 万。

这次太平洋保险进行综合评估技术选型后,最终选择了基于 Mesos + Docker 搭建 DCOS 平台。功能框架如下:以 Docker 为基础封装各类应用和运行环境,以 Mesos、Marathon 为核心实现容器资源的分布式调度与协调,以 HAProxy、Etcd 为辅助实现服务注册引流。

1. 应用封装:Docker

Docker 为开源的应用容器引擎,在标准的 LXC 之上融合 AUFS 分层镜像管理机制,抛弃传统虚拟机试图模拟完整机器的思路,而是以应用为单元进行“集装封箱”,是轻量级的虚拟化技术。

  • Docker Engine 可以自动化部署应用到可移植的的容器中,这些容器独立于硬件、语言、框架、打包系统。一个标准的 Docker 容器包含一个软件组件及其所有的依赖,包括二进制文件,库,配置文件,脚本等,实现持续集成与部署,快速迭代应用程序。
  • Docker 容器可以封装任何有效负载,几乎可以在任何服务器之间进行一致性运行。开发者构建的应用只需一次构建即可多平台运行。运营人员只需配置他们的服务,即可运行所有应用。

2. 资源调度: Mesos

Mesos 是为构建和运行其他分布式系统提供服务的分布式系统。它将 CPU、内存、存储介质以及其它计算机资源从物理机或者虚拟机中抽象出来,构建支持容错和弹性的分布式系统,并提供高效的运行能力。

Mesos 以 Framework(框架)的形式,提供了“两级调度机制”,将任务的调度和执行分离。

  • Mesos Master 负责将资源分配给各个框架,而各个框架的 Scheduler 进一步将资源分配给其内部的各个应用程序。
  • Mesos 能和不同类型的 Framework 或 Application 通信,每种 Framework 或 Application 由相应的应用集群管理。
  • Mesos Slave 的 Executor 具备调用 Docker 能力,当 Executor 接收到 Task 时启动 Docker,其可以调用 Docker 去启动一个容器。

3. 任务调度: Marathon

Marathon 是基于 Mesos 来做任务调度,Mesos 仅负责分布式集群资源分配,不负责任务调度。

  • Mesos 集群可以混合运行来自 Marathon 的不同类型的任务。
  • Marathon 基于 Mesos 的任务调度为动态调度,即每个任务在执行之前是不知道将在哪一台服务器上执行和绑定哪一个端口。
  • 下图为 Marathon 执行任务调度示意图。9 台服务器(灰色)组成的 Mesos 集群上混合运行各种 Marathon 调度的任务,其中一台服务器坏掉以后,这台服务器上的任务就受影响,Marathon 可把任务迁移到其他服务器上,实现容错。

4. 服务注册与引流: HAProxy + Etcd

HAProxy 提供高可用、负载均衡的解决方案,而 Etcd 是一个高可用的键值存储系统,主要用于共享配置和服务发现,提供了数据 TTL 失效、数据改变监视、多值、目录监听、分布式锁原子操作等功能,可以方便的跟踪并管理集群节点的状态。 Etcd 与 HAProxy 配合能够实现数据中心应用的动态引流。

太平洋保险 DCOS“春节红包活动”实践

为应对这次春节红包活动业务系统的瞬时高峰压力,太平洋保险 DCOS 平台采用 223 个主机节点,其中平台部分由 5 个节点构成 Mesos Master Cluster,80 个节点构成 HAProxy Cluster,138 个计算节点承载 674 个 Docker Container,其中动态计算节点 113 个,静态计算节点 25 个。该平台可在 1 分钟内轻松实现扩展到 1000 个以上 Docker 节点。

DCOS 的实战威力

1. 巧妙分离动静态资源池,大幅提升应用访问速度

考虑到互联网应用中会使用大量图片和动画等静态资源,为提高服务访问速度,该 DCOS 架构通过动静分离,将静态资源服务器和动态资源服务器池化并分开管理(分别放置在 DMZ-WEB 区和 DMZ-APP 区,前者放置静态资源池,后者放置动态资源池,见上图)。于是,静态资源请求可直接通过静态资源池完成,不必再访问后端动态资源池,减少动态资源池的压力。而且采用专门的静态资源服务器,具备 Cache 能力,可大幅提升静态资源的访问速度。

2. 简化网络复杂度,提高网络访问速度

太保原架构 DMZ-WEB 区的请求在穿过防火墙后需再经过 DMZ-APP 区的一个 F5 设备和 HAProxy 才能到达动态资源服务器,这样就多增了两层网络服务器的访问,降低访问速度,当然故障点也增多了。而改造后的架构,将动态资源池的路由信息同步到 DMZ-WEB 区的 HAProxy 中,HAProxy 根据路由信息将动态请求直接转发到动态资源池上,从而极大简化网络路径的复杂度,网络访问速度明显提升。

3. 超强弹性伸缩、快速持续集成

此次除夕微信红包与初五抽奖活动间隔时间紧,若采用繁琐耗时的传统部署方法——得经过主机、操作系统、中间件、数据库和应用的集成部署,还得经过一定调试后才能对外提供服务。而改造后的 DCOS 通过与容器技术的深度结合,实现超强弹性伸缩,快速响应、持续交付,仅在 10 分钟内就完成共享资源的全部调整,有力保障业务的连续。

4. 更细粒度资源调度,实现高资源利用率

DCOS 相较于虚拟机管理,有着基于 CPU、内存的更细粒度的资源调度,多个计算框架或应用程序可共享资源和数据,大幅提升资源利用率,根据统计 DCOS 资源消耗可以节省 50%。

5. 高效的跨数据中心的资源调度

DCOS 平台展现了其在线性动态扩展、异地资源调度等方面的优异性能,1 分钟内快速扩展到 1000+ 的容器(如果应用更轻量启动速度还可以更快),平台和计算节点完全跨机房分布式调度。

6. 分布式架构保障高可用

DCOS 平台所有组件采用分布式架构,应用跨机房分布式调度。自动为宕机服务器上运行的节点重新分配资源并调度,保障业务不间断,做到故障自愈。

结束语

总之,传统企业在“互联网 +”的背景下,IT 基础架构的发展要确保新技术的研究和应用与企业未来业务发展需要相一致。而今,云计算相关技术正在逐渐演化成熟,尤其 PaaS 领域的技术发展更是日新月异。以 DCOS 为代表的下一代轻量级 PaaS 正越来越为业内所关注。DCOS 凭借其数据中心级弹性伸缩能力、快速持续集成等轻量优势,帮助企业快速应对业务需求,为传统 IT 的敏捷转型提供了新机遇。

作者介绍

胡罡,现担任中国太平洋保险集团股份有限公司信息技术中心应用运行支持部副总经理。长期从事保险行业信息化建设,曾多次主持大型保险信息系统建设和推广工作,参与和实施保险核心系统数据大集中和重构工作,参与大型数据中心建设和系统搬迁,参与智能移动保险平台建设。目前主要从事云计算和大数据相关技术研究和应用,面对移动互联浪潮的挑战和机遇,积极探索和实践传统行业 IT 运维模式的转型升级。


感谢郭蕾对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016-03-21 17:472840

评论

发布
暂无评论
发现更多内容

Rust 元宇宙 14 —— 创建角色和同步

Miracle

rust 元宇宙

【IT运维】公司内网服务器可以远程桌面连接吗?怎么连接?

行云管家

云计算 运维 IT运维 远程运维

中科柏诚持续推进数字网络技术,蓄力元宇宙布局

联营汇聚

函数计算 GB 镜像秒级启动:下一代软硬件架构协同优化揭秘

Serverless Devs

运维提效 60%,视野数科 SAE + Jenkins 打造云原生 DevOps

Serverless Devs

大数据 数据 视野数科

尚硅谷Maxwell视频教程发布!

@零度

大数据 Maxwell

npm进阶(一) 更换成淘宝镜像源以及 cnpm

No Silver Bullet

npm 12月日更

飞桨双十二礼包,上海“拆箱”啦!

百度大脑

人工智能

Kafka之为什么需要消息队列

编程江湖

大数据 kafka

JavaScript 中的 .forEach() 和 for...of

devpoint

JavaScript foreach for...of 12月日更

谈谈对微软Dapr的理解

行云创新

微软 服务网格 dapr

恒源云(GPUSHARE)_【功能更新】实例日志上线,操作一目了然

恒源云

深度学习 算力加速

【等保小知识】信息安全等级保护四级系统有哪些?

行云管家

网络安全 等级保护

南瓜电影 7 天内全面 Serverless 化实践

Serverless Devs

阿里云 ECS 南瓜电影 SAE

腾讯音乐iOS开发四次面试记录

iOSer

ios 腾讯 面试题 iOS面试 腾讯音乐

解决 Serverless 落地困难的关键,是给开发者足够的“安全感”

Serverless Devs

阿里巴巴 Serverless 运维 Faas 业务

跨越可观测性鸿沟|高手们都在用的“火焰图”是什么

尔达Erda

程序员 微服务 云原生 可观测性 链路追踪

Python代码阅读(第68篇):指定值出现次数

Felix

Python 编程 列表 阅读代码 Python初学者

List 去重的 6 种方法

编程江湖

List java 编程

十年期货股票行情数据轻松处理——TDengine在同心源基金的应用

TDengine

数据库 tdengine 时序数据库

常见杀毒软件及其引擎的特点

喀拉峻

网络安全 病毒扫描

如何搭建批流一体大数据分析架构?

Kyligence

es单机安装及配置其系统服务

elasticsearch

7.《重学JAVA》--运算符

杨鹏Geek

Java 25 周年 28天写作 12月日更

网易云信发布两大元宇宙解决方案,打响进军元宇宙第一枪

网易云信

人工智能 音视频 元宇宙

Aeron 是如何实现的?—— Ipc Subscription

BUG侦探

共享内存 Aeron Ipc Subscription

大厂高频面试题Spring Bean生命周期最详解

Tom弹架构

Java spring 源码

Kyligence + 亚马逊云科技丨实现云上的精细化运营和数字化指挥

Kyligence

netty系列之:性能为王!创建多路复用http2服务器

程序那些事

Netty 程序那些事 http2 12月日更

主机入侵检测策略之基线检测

网络安全学海

网络安全 信息安全 渗透测试 安全漏洞 暴力猜解

SpringBoot中如何优雅的使用多线程

编程江湖

JAVA开发 springboot

从太平洋保险DCOS实践看传统企业的魅力变革_最佳实践_黄超_InfoQ精选文章