文档章节

基于微服务架构的云平台总体设计

 普元云计算
发布于 2016/11/14 10:10
字数 2376
阅读 43
收藏 2
点赞 0
评论 0

正好这段时间我们在封闭研发我们的新一代数字化云平台(theplatform),借此机会和大家分享一下我们的总体设计及思路:


theplatform是一款基于微服务架构的DevOps容器云平台,设计主体分成了三个步骤:
1. 看问题:企业IT运营中的常见问题有哪些
2. 找方法:应对上述问题,常规手段有哪些
3. 做设计:这是今天的重点,导出概念模型、全景图、技术栈、工作分工、4视图等




其实对“看问题”和“找方法”我们同事都有过详细描述,这里我们先简单回顾一下

企业一般有信息流和业务流两段,尤其在业务流中,从需求到最终运营的各环节中,每个环节都有趋于完善的方法和要解决的实际问题

比如:设计阶段,设计总是在纸面,真实开发时并不完全依据,或者只有详细设计,缺少优秀理念支撑
再比如:运营阶段,随着系统的增加,故障定位越来越困难,故障处理方法和积累的知识传递性不佳,对后续的产品发展指导性不强




数字化运营同样面临着诸多挑战
比如:业务语言和技术语言失真传递
再比如:因技术原因导致的技术欠债导致包袱越来越重
再比如:因重复劳动、个人注意的一些问题,团队分工不合理,价值感不强等,导致人员变更影响巨大,同时束缚了知识工作者的创造力


那我们看看有些什么解决方法呢?

最简单的,我们遇到问题解决问题(被动的做法),将问题逐个击破
比如:对于关键事情依赖人的问题,我们可以让机器来做相关的事情,解放生产力
再比如:对于技术债务积压的问题,可以通过找合适的人,优秀的组织分工等慢慢改进


还能想到些什么方法或名词或理念?

还有很多很有针对性的方法,比如敏捷,扁平组织,PDCA质量环


那我们选择了DevOps这条路,来实现我们理想的运营,同时以微服务架构为核心,协作与治理相结合,打造广义的DevOps


接下来就是我们如何做设计了,我做设计的方法一般是从两个视角出发

平台视角很好理解,看全景,那人的视角是什么:
记得有位大拿说过,架构师必须有人员安排的权利,如果你不清楚团队的人的特点,或者没法调动最合适的资源,即使设计再牛的架构,也未必落得了地。


那我们先看看如何推演第一个视角关心的全景图:

我们分了三个比较重要的工作:
1. 场景拆分,用场景流程来发现需要改进的问题,然后用自助或自动的方式来解决问题,同时把这些解决方法划分到各领域系统,形成平台的支撑,这里场景拆的很多,有些草图,各位可简单浏览,就不用细看了,都是之前的初稿:









2. First app,或者大家习惯叫原型应用,这个其实是非常重要的一环,我们正是通过原型应用开发来验证场景,同时将我们从设计到运营归纳成了第一版:23步完成,最终版:9步完成,具体步骤以后会有同学分享
3. 源图宣讲,我们提前小范围,大范围宣讲了不止30次,一是为了大家有统一的思想和理解,二是为了通过大家的验证反馈来优化我们的源图


最终我们导出了这张全景图:

这张图把DevOps工作者需要的服务能力(包括服务接入能力)、自动化处理能力、运营看板、遥测优化等做了定义,最终希望形成一个有机的devops整体,当然,还要涵盖我们之前的拆分场景,体现我们firstapp中的步骤等

那我们再看看如何推演第二个视角关心的组织架构工作的

同样是三点:
1. 基于全景图罗列技术,得到需要预研或对比的技术列表

2. 对人员能力进行划分,形成团队,要注意团队成员的互补性,这个前两天有同事已经介绍过了
3. 领域系统分层,将之前导出的各领域系统分类,让团队领取各系统,最终结合系统分层,形成有层次(上下游)的团队


最终结果是这样的:

这张图其实把团队分工、支撑领域系统和组件、需要掌握和使用的技术栈做了分解,结合这张图,后续我们会有同学来分享各个领域系统的设计和具体技术栈,这里我就不赘述了

那有了团队,有了全景图,我们接着做啥呢?
我们可以回到传统设计,概念模型,4+1视图,确实我们也是这么做的

这图其实花了我们最长时间来定稿,这里面概念看似简单,其实很多:
比如:部署包=介质包+配置,这和传统的CI和CD体系就有点不一样
再比如:环境分开发、测试、预发、生产,我们觉得即使公有云上,也应该给客户将这些做物理或逻辑隔离,因为大家的配额需求不一样,容器replication需求也可能不一样
再比如:运维反馈,既然要做devops,那整个过程导出都应该可以有检查点插入,为运营提供有效数据,我们把检查点至少分成了四类,包括过程的、安全的、性能的、业务的

有人说,总体设计期间,各小团队的工作有点难以开展,我们除了培训外,同步,我们的各团队已经开始了技术预研工作

这些工作其实是需要结合各团队预研成果,补充进总体设计的


我们前面提到了导出领域系统,我一直没讲有哪些,这里给出一个完整的:

上面部分是核心的,大家可以仔细看下,每个系统都解决的是一个领域的问题:
比如:软件产品的管理,软件各阶段环境的管理,质量的管理,部署包、二进制包的管理,资源管理,监控中心,认证中心等
下面部分是完整的,按能力分层的,通过这个其实我们就可以出逻辑架构图了

图上分了:
基础设施层:包括IaaS,CaaS,我们分别是基于Openstack和Kubernetes的,上层有一层不同环境的适配
基础服务层:包括服务管理与调度的基础能力,如注册中心,编排,伸缩漂移。还有一堆具体的企业级或互联网式的云服务
DevOps层:更多的是工作流程的串接,看板等文化的体现

再接着是部署视图(或者叫物理视图),我们的公有云是要部署在阿里云上的(当然遇到了不少坑,后面有机会可以再分享,片子已经准备好了,呵呵)

图上最上面一层是用户的微应用,下层是我们的管理节点,当然配置不一样都是有所考虑的

再接着是运行视图(或者叫进程视图),这个比较简单写,我们本身是分布式的管理,通过统一的门户来提供入口(只有门户和两个需要开放的进程放到DMZ)

运行过程统一了rest的资源风格,我们所有的节点都是跑在容器中(自己开发自己吧)

再接着就是开发视图了

图上有两个典型项目:
一个是对外的能力包,定义了API,SPI
另一个其实是具体实现包,script是启停的钩子脚本,sql是数据库相关(包括回滚)

这里图上的例子是说,在我们的模型中,如果A产品依赖B产品,那么我们需要引入Adapter这个概念,A本身对外提供API能力,A的SPI需要B实现,但可能B已经有自己的API能力了,那中间Adapter其实是做了SPI与API的适配(这块概念也很多,后面也会有同学详细讲,我们分布式设计的开发设计)

当然,我们还做了其他的一些关键设计,包括:

像灰度发布,多租户这些,还有我们的邀请客户(邀请码,邀请方式)的设计(这个会涉及到资源预置等方面,大家都懂的)
还有MVP,因为设计的很多,我们第一个版本只有很短的周期,必须要有取舍,又要体现我们的理念


差不多初步设计就这样了,希望各位给出好建议!



本文转载自:http://blog.csdn.net/guwei9111986/article/details/51388587

共有 人打赏支持
粉丝 1
博文 23
码字总数 18356
作品 0
海淀
北达软微服务架构设计与实践圆满结束

2016年10月26-27日,为期两天的微服务架构设计与实践在北京大学成功举办。随着新一代信息技术的快速发展,业务需要快速变化、快速创新,互联网的连接带来了大的并发量和数据量。从单机架构走...

玄学酱 ⋅ 05/10 ⋅ 0

Kubernetes与OpenStack融合支撑企业级微服务

EasyStack云架构师钟宇澄 2017年10月21日,七牛云架构师实践日活动于深圳成功举办,本次活动由七牛云、K8S技术社区联合主办,特邀vivo、平安科技共同参与,会议以Kubernetes 技术落地过程中遇...

ra681t58cjxsgckj31 ⋅ 2017/12/12 ⋅ 0

[5.19 线下活动]Docker Meetup杭州站—拥抱Kubernetes,容器深度实践

对本次线下活动感兴趣的朋友,欢迎点击此处报名,领取免费票。 今年3月,Docker刚刚过完5岁生日,五年期间,Docker也逐渐在技术和实践方面趋于成熟,更是在去年年底主动拥抱Kubernetes。 5月...

wangyiyungw ⋅ 05/10 ⋅ 0

9月成都&重庆源创会报名启动,新兴实用技术一网打尽

转眼到了九月,伴随着赵雷“在成都的街头走一走,走到玉林路的尽头,坐在小酒馆的门口”的歌声,OSC 源创会又将和成都重庆的小伙伴们来一场重逢。 9月23日成都源创会报名及详情请点击:https...

王练 ⋅ 2017/09/04 ⋅ 15

敏捷大数据方法论

“Between 70% to 80% of business intelligence projects fail”- Gartner, Feb. 2011 前段时间有报道称,有学者质疑“大数据”理论,也有硅谷公司负责人质疑大数据应用的效果。结合2011年G...

阿杜白话大数据 ⋅ 2017/06/20 ⋅ 0

阿里云ACM英文版上线,论“全局配置”在电商国际化微服务平台建设中的妙用

这是一个最好的时代。中国的品牌正在走向世界。希望我们的云服务商们,能够助力它所承载的中国企业出海,以国际化的视野和全球化的高度,为世界各地的客户提供我们最好的服务。 ACM 英文版上...

中间件小哥 ⋅ 06/12 ⋅ 0

收下这份北京沙龙PPT,学好2018开源与架构第一课!

新年伊始,万象更新。在互联网+新业态持续推进的新一年,企业想要冲破成本高昂、运维繁琐的传统IT架构的束缚,需要勇气,更需要方法。为此,DBAplus社群举办了本年度首场线下沙龙,带大家以正...

DBAplus社群 ⋅ 01/15 ⋅ 0

网易容器云平台的微服务化实践

摘要:网易云容器平台期望能给实施了微服务架构的团队提供完整的解决方案和闭环的用户体验,为此从 2016 年开始,我们容器服务团队内部率先开始进行 dogfooding 实践,看看容器云平台能不能支...

fl63zv9zou86950w ⋅ 2017/12/15 ⋅ 0

高手问答第 167 期 —— 高性能 RPC 开发框架 Tars

OSCHINA 本期高手问答(2017 年 8 月 23 日 — 8 月 29 日)我们请来了刘豪 @helloopenworld 为大家解答关于微服务和 RPC 框架 Tars 方面的问题。 刘豪,腾讯后台高级工程师,主要从事微服务...

局长 ⋅ 2017/08/23 ⋅ 33

汉得宣布开源:基于容器的企业级应用 PaaS 平台

2018年5月20日,Choerodon猪齿鱼正式发布 0.5.0 版本,同时汉得公司宣布Choerodon猪齿鱼平台开源,公司希望通过开源社区的力量不断完善和提升产品的体验,并为企业提供数字化转型的企业级应用...

Choerodon ⋅ 05/20 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

DevOps 资讯 | PostgreSQL 的时代到来了吗 ?

PostgreSQL是对象-关系型数据库,BSD 许可证。拼读为"post-gress-Q-L"。 作者: Tony Baer 原文: Has the time finally come for PostgreSQL?(有删节) 近30年来 PostgreSQL 无疑是您从未听...

RiboseYim ⋅ 14分钟前 ⋅ 0

Cube、Cuboid 和 Cube Segment

1.Cube (或Data Cube),即数据立方体,是一种常用于数据分析与索引的技术;它可以对原始数据建立多维度索引。通过 Cube 对数据进行分析,可以大大加快数据的查询效率 2.Cuboid 在 Kylin 中特...

无精疯 ⋅ 52分钟前 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 54分钟前 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 今天 ⋅ 0

云计算的选择悖论如何对待?

人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云计算为...

linux-tao ⋅ 今天 ⋅ 0

Redis 注册为 Windows 服务

Redis 注册为 Windows 服务 redis 注册为 windows 服务相关命令 注册服务 redis-server.exe –service-install redis.windows.conf 删除服务 redis-server –service-uninstall 启动服务 re......

Os_yxguang ⋅ 今天 ⋅ 0

世界那么大,语言那么多,为什么选择Micropython,它的优势在哪?

最近国内MicroPython风靡程序界,是什么原因导致它这么火呢?是因为他功能强大,遵循Mit协议开源么? 错!因为使用它真的是太舒服了!!! Micropython的由来,这得益于Damien George这位伟大...

bodasisiter ⋅ 今天 ⋅ 0

docker 清理总结

杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有已经停止的容器(docker rm没有加-f参数,运行中的容器不会删掉) docker rm $(docker ps -a -q) 删除所有未打 dangling 标...

vvx1024 ⋅ 今天 ⋅ 0

关于学习

以前学车的时候,教练说了这样的一句话:如果一个人坐在车上一直学,一直学,反而不如大家轮流着学。因为一个人一直学,就没有给自己留空间来反思和改进。而轮流着学的时候大家下来之后思考上...

mskk ⋅ 今天 ⋅ 0

压缩工具之gzip-bzip2-xz

win下常见压缩工具:rar zip 7z linux下常见压缩工具:zip gz bz2 xz tar.gz tar.bz2 tar.xz gzip 不支持目录压缩 gzip 1.txt #压缩。执行后1.txt消失,生成1.txt.gz压缩文件 gzip -d 1.txt....

ZHENG-JY ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部