写点什么

从太平洋保险 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:472541

评论

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

2023年超全前端面试题-背完稳稳拿offer(欢迎补充)

肥晨

三周年连更

Golang负载均衡器Balancer的源码解读

骑牛上青山

Go 负载均衡

🔥🔥🔥热乎的前端面试题(昨天)

沉浸式趣谈

JavaScript 面试 Vue 前端面试

2023最NB的JVM基础到调优笔记,光图文就超清晰,吃透阿里P6小case

Java你猿哥

Java JVM Java虚拟机 jvm调优

WebGPU 令人兴奋的 Web 发展

devpoint

WebGL webgpu #WebGPU 三周年连更

劲爆!阿里巴巴面试参考指南(嵩山版)开源,程序员面试必刷

做梦都在改BUG

Java 程序员 面试

Amazon 中国区配置 PingIdentity 身份集成实现 Redshift 数据库群集单点登录

亚马逊云科技 (Amazon Web Services)

我给大家免费公开五份阿里Java架构师学习手册!助力金三银四

Java你猿哥

Java 架构 算法 高并发 Java性能调优

Java的访问修饰符

Java你猿哥

Java oop SSM框架

限时开源!阿里京东架构师出品亿级高并发系统设计手册

会踢球的程序源

Java 架构 后端 java架构师

CNStack 云服务&云组件:打造丰富的云原生技术中台生态

阿里巴巴云原生

阿里云 云原生 CNStack

从初学者角度聊一聊socket到底是什么?

会踢球的程序源

Java 后端 socket

ES6中的Proxy

格斗家不爱在外太空沉思

JavaScript ES6 三周年连更

好用的pdf格式转换器:PDF to Word Document Converter 激活版

真大的脸盆

Mac PDF Mac 软件 PDF格式转换

测试需要写测试用例吗?

老张

软件测试 质量保障 测试用例

阿里巴巴灵魂一问:说说触发HashMap死循环根因

会踢球的程序源

hashmap Java1

如果有一天当你的Redis 内存满了,该怎么办?

会踢球的程序源

Java redis 后端

【Java技术专题】「盲点追踪」突破知识盲点分析Java安全管理器(SecurityManager)

洛神灬殇

Java 安全管理器 SecurityManager

一天吃透操作系统八股文

程序员大彬

面试 操作系统

硬核!阿里P8自爆春招面试核心手册,Github上获赞65.7K

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

带你浅谈下Quartz的简单使用

Java你猿哥

Java SSM框架 quartz

FastDFS收藏起来,现在开始用Minio吧

会踢球的程序源

Java fastdfs

让算力普惠、释放技术红利,阿里云让开发者成为创新主体

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

MySQL索引15连问,你扛得住吗?

做梦都在改BUG

Java MySQL 数据库 索引

多线程&高并发(全网最新:面试题+导图+笔记)面试手稳心不慌

Java你猿哥

Java 多线程 面试题 高并发 多线程与高并发

分布式事务的21种武器 - 1

俞凡

架构

工赋开发者社区 | MES/MOM数据采集系统需求分析和总体设计

工赋开发者社区

fabric.js开发图片编辑器可以实现哪些功能?多图

秦少卫

h5编辑器 FabricJS Fabric.js 海报编辑器 图片编辑

2023春招、金三银四,面试官必问的1000道Java面试题及答案整理

架构师之道

Java 面试

面试官:类是如何加载的?

做梦都在改BUG

霸榜Github三个月的「架构师成长手册」!成为架构师竟然也有捷径

Java你猿哥

Java 分布式 架构设计 架构师 SSM框架

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