DevOps成都站|架构与运维峰会,你可能错过的干货(附PPT)

Posted UCloud云计算

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DevOps成都站|架构与运维峰会,你可能错过的干货(附PPT)相关的知识,希望对你有一定的参考价值。

5月15日,UCloud主办的Devops Workshop架构与运维峰会于成都举行,大会邀请到了UCloud DevOps Workshop系列活动成都站,UCloud 邀请到了KVM运维专家肖力、1号店技术部-架构部总监张立刚和UCloud综合开发中心总监文天乐,分享他们在海量服务架构探索过程中的技术实践。


到场的听众来自各大互联网公司,包括文轩在线、长虹、京东、虹微、华为、tap4fun、四川移动、三零盛安、万达飞凡、马上消费金融、多点生活、任我行、数之联、TestBird、Testin、Camera360 、咕咚、启明星辰、神州数码等,现场积极的提问更是突显了听众对内容的关注。

DevOps成都站|架构与运维峰会,你可能错过的干货(附PPT)
图:肖力,金山西山居系统运维经理

金山西山居系统运维经理肖力,他带来了题为《我的虚拟化项目运维实践》的分享,从项目评估开始,介绍如何将自己的业务迁移到虚拟化或者云上,同时介绍如何做好监控、报警、灾备,持续的运维。

DevOps成都站|架构与运维峰会,你可能错过的干货(附PPT)
图:文天乐,UCloud综合研发总监

UCloud综合研发总监文天乐带来的演讲主题是《账户计费系统高可用架构设计与实践》,为大家着重分享了UCloud账户计费系统架构设计与实践,以及演化过程中积累的经验,主要内容有:账户计费系统现状与面临的问题、深入账户计费系统架构演进、简要介绍灰度切换方案、经验总结。他认为架构没有最好的,只有最合适当前业务发展的架构。

以下整理了金山西山居系统运维经理肖力和UCloud综合研发总监文天乐分享的内容。


肖力:我的虚拟化项目运维实践

嘉宾介绍

肖力,KVM运维专家。金山西山居系统运维经理,前盛大游戏研究员。15年工作经验,10年游戏行业运维经验,5年KVM虚拟化运维经验维护有微信订阅号:“KVM虚拟化实践”著有《深度实践KVM》一书。

本次分享主要有四个部分:非技术因素及业务压力模型构建、技术及经验分享、监控、灾备、应急响应、案例和公有云运维的一些经验。

本文主要截取非技术因素、业务压力模型构建、如何将业务迁移到虚拟化环境、软硬件选型和灾备方案方面进行整理。


一、非技术因素

2015年是云计算大爆发的一年,对云计算虚拟化的直观感受是人才需求量越来越大、职业待遇逐步提高,云计算招聘的微信群异常活跃。第二个感受是做云计算的朋友在公司内部越来越受重视。

总体来说:

1.云是更高级的资源利用的方式

2.云使业务部署更高效便捷

3. 随着这几年的发展,云真的成为基础架构和生态系统,在大数据、视频、教育、医疗等各个方面得到应用。

现在的问题,已从企业要不要上云的问题,变成为如何上云的问题。企业上云可以选择使用公有云,可以选择自建私有云,也可以选择使用混合云,大部分使用云的方式以后应该是混合云。

云计算对运维人带来的影响最为明显的是分工更专业、要求更高,比如原来你在一个公司的内部,可能是计算或业务方面的运维;在上云后,可能会把系统、底层方面的运维工作都交到云,从而将更多精力关注到业务,将业务做得更好、更专业。如果去做私有云,也就是IaaS层的运维,包括数据中心、网络、安全等,只在大型企业存在,。此外,因为云计算平台有众多的API,如果你利用好这些API,可以实现从底层到上层的全面打通,运维方面的趋势是更强调自动化。


二、业务如何迁移到虚拟化环境

第一步,要说服老板和同事支持做虚拟化。随着云计算虚拟化概念的普及,很多人对云已然不再如开始般排斥,但是去做第一个项目时,一定要保证它的成功,树立好榜样。

第二步,如何选择潜力股

如何保证第一个项目成功虚拟化呢?一定要选择潜力股,找到一个比较好做成功的虚拟化项目,它有很多特征:

  • 单进程,现在CPU都是多核的,单进程可以非常容易去做;

  • 其次是利用率不高的业务,比如常年那些利用率只有20~30%的业务,可通过将几个业务合并到一个宿主机上,从而提高它的利用率;

  • 频繁变动的业务,通常非常喜欢做虚拟化,因为虚拟化快速部署的提点,解决了业务频繁变动这样的痛点;

  • 非核心业务,如果一开始就着手核心业务做虚拟化,一旦出现问题,将面临着很大的压力,甚而会影响到整个公司对于虚拟化的信心,所以第一个虚拟化项目从非核心业务开始。

另外,不是所有业务时候做虚拟化,在物理机上压力已经非常高的业务,就很难通过虚拟化来做整合。

第三步,虚拟化项目实施周期。实施虚拟化一般应该遵循以下样的流程:业务性能需求评估、根据压力模型设计一个虚拟化方案、搭建测试环境、系统综合测试、业务测试、小规模部署、全面部署、全面部署好最终的虚拟化运维。

第四步,解决实施中的问题。在实施过程中有一些问题需要注意,首要关注虚拟化层的稳定性,然后虚拟机快速自动管理维护,接着解决与业务更紧密的结合,最重要的是需要拥有一套监控、健康、报警、应急习响应预案。


三、业务压力模型分析

DevOps成都站|架构与运维峰会,你可能错过的干货(附PPT)
构建业务压力模型的时候,如何具体地做。首先要对业务架构熟悉,它的逻辑角色类型是怎样的,最好画一个图出来做到心中有数,明确角色间的关系

然后进行性能数据收集与分析,有两种方法:

  • 一是收集每个项目的服务器数量和角色,看长期的监控数据、CPU内存等压力情况,一般观察两个月;

  • 二是通过脚本收集现有服务器性能,这个主要为了收集更细的数据;

  • 通过收集的压力数据,得出压力模型,根据压力模型,确定虚拟化比例

 

四、软硬件选型

 软件方面,对于生产环境我们一般肯定要选择稳定版本。但是,在稳定版本的基础上,内存版本越高越好,为什么?这里有一个数据,数据时间比较长,同样配置情况下CentOS 6.1和 CentOS 5.6的CPU计算能力的对比,CentOS 6.1要比CentOS 5.6好9%,就是内核版本越高,它的CPU中断和上下文切换优化得越好,同时网络IO、磁盘IO也优化得越好。

硬件方面,尽量一开始配置要稍微好一点,因为配置得越强悍,你可以虚拟的虚拟机越多,你最终肯定节省成本;另外,内存也要稍微大一点,因为你的宿主机跑上一段时间以后,往往你会发现内存不够,到时候又要加内存。最后,尽量选择主流品牌。


五、灾备方案

虚拟机灾备策略—应用层备份(在线迁移不是灾备手段)

灾备有两种思路:

  • 应用层灾备,基本上跟原来物理机上一样,你在物理机上怎么做灾备,在虚拟机上用同样的方法做灾备;

  • 虚拟化灾备,做快照,做多份的镜像复制。

一般建议在应用层次做灾备,因为在应用层做灾备消耗的资源要少很多。注意的是,灾备要定期演练,一方面让大家熟悉过程,再来验证一下灾备这个机制到底是不是生效,可总结为两点:

  • 所有的虚拟机xml描述文件应定时交叉备份;

  • 定期演练,我们自己要熟悉过程,相关的业务也需要让他们去演练一下,出现问题的时候我们可以很快的恢复。


总结

第一个上云是趋势,虚拟化是第一步;然后在生产环境,我们尽量选成熟的技术、完善的预案,因为对生产环境要有定位;虚拟化是基本的IT技能,不管原来做哪方面的运维,可能或多或少用到虚拟化的运维。此外,我们在企业内部推荐虚拟化的时候,口碑也是非常重要的,一旦有问题就会影响我们口碑去推需虚拟化。


文天乐:账户计费系统高可用架构实践

嘉宾介绍

文天乐,UCloud综合开发中心总监全面负责UCloud经营数据分析、账户计费系统、网络、多账号平台研发项目。拥有7年以上互联网及 IT 研发相关经验,曾就职于商派、盛大在线、盛大云,历任高级研发工程师,盛大云监控及计费产品的开发负责人。

本文主要截取账户计费系统架构演进过程的六个阶段进行整理。


服务架构的演进过程

DevOps成都站|架构与运维峰会,你可能错过的干货(附PPT)

UCloud服务架构的演进主要经历了以下六个阶段:

  • 单体模式;

  • 具有灰度发布能力;

  • 前后端分离;

  • 服务化改造;

  • 按SET部署;

分机房按SET部署,按SET进行跨机房热备容灾


1. 单体模式架构上线业务系统

UCloud服务初期上线时的架构主要分三部分:

  • php Web Conosle,负责所有前端展现交互、后台服务间逻辑组装;

  • 平台类服务,账户、计费、监控、名字服务等公共服务;

  • 各业务系统分数据中心后台服务的接入层。

PHP Web Console、业务系统分数据中心的服务、平台类服务组合上线,Web Console 通过Protobuf与所有后端服务进行通信。


2. 具备灰度发布能力

要解决前面面临的问题,我们首先需要支持Web层灰度发布包含以下的灰度方式:

  • 无用户态特性按照 单IP -> IP段(地区) -> 到IP取模逐步灰度控制影响范围;

  • 有用户态特性按照 单内部用户(开发账号) -> 内部测试账号 -> 用户分级逐步灰度发布控制影响范围。


3. 前后端分离

DevOps成都站|架构与运维峰会,你可能错过的干货(附PPT)

  • 开发API Gateway 层用来管理后端 API 注册和管理、权限验证管理、流量控制;

  • 开发API层,解决前台交互层,需要整合跨系统逻辑调用问题,前端只专注产品交互和用户体验;

  • 开发统一的单点登陆Token,系统方便前端实现跨域API调用让前端代码可以完全静态化。

在此阶段,完成前端展现可以独立控制发布,彻底实现了前后端解耦,API协议保证向前兼容,Web端可以随意重构交互优化前端架构,实现了跨域独立部署,独立的灰度策略互相之间不受影响,极大的提高了前端团队开发效率和稳定性。


4. 服务化改造

 对业务端API开发效率优化:

  • 按照业务模块化,所有业务API由后台产品研发部门独立部署发布上线;

  • 抽象通用平台类特性例如:子账号特性,权限体系,计费等特性抽象公共能力让业务端在API中组装。

总体目标:让业务API开发效率提升并单独部署维护,提高产品特性的研发迭代效率并提高稳定性。


5. 按SET部署

DevOps成都站|架构与运维峰会,你可能错过的干货(附PPT)

基础架构优化完毕,各个业务系统单独部署发布,开始对系统进行容量和容灾方面的考虑,从部分平台类系统开始考虑按SET部署架构测底解决容量和容灾问题,每个SET只服务一部分用户,保证遇到物理服务器宕机等故障情况下只影响部分用户或业务。

例如图上所示, SET 1 服务1 ~ 服务50000000 用户,SET 2 服务50000001 ~ 100000000 的用户,一个SET 出现问题只影响一个部分用户,不同的业务根据自身情况进行SET切分,规模大小也视情况而定,按SET部署后合理的划分方式下不同SET之间数据还可以互相迁移,来平衡搞负载或高容量的SET,极大的提高了可运维性。


6. 分机房部署SET

按SET部署架构改造完毕后还没有达到最理想的状态,如果所有服务部署在单机房还是可能会出现问题,机房整体出现断电、断网等故障还是会出现大面积影响。

  • 跨地域SET在相邻节点部署热备,以便出现机房故障时能具备异地快速恢复服务的能力。

总体介绍了UCloud在不同的阶段架构演进的一些过程和经验,架构没有最好的,只有最合适当前业务发展的架构。



点击阅读原文,下载PPT资料,开门口令:kqjr

以上是关于DevOps成都站|架构与运维峰会,你可能错过的干货(附PPT)的主要内容,如果未能解决你的问题,请参考以下文章

2021云上架构与运维峰会将于12月4日在上海举办,五大精彩看点不容错过

抢先报名丨2021云上架构与运维峰会将于11月6日在北京举办,五大精彩看点不容错过

互联网产品灰度发布

互联网产品灰度发布

抢先看!女神邀你参加成都Gdevops全球敏捷运维峰会

打造易于落地的DevOps工具链(附PPT还送新书)