第7 章 IaaS & PaaS 如果想要产品交付越来越快,就需要提升基础设施的交付能力。虚拟化技术,通过OpenStack平台统一了虚拟机/物理机的资源交付,提供了真正意义上的IaaS服务。
一套稳定的,可靠的,高效的持续交付平台---PaaS平台应用而生。在PaaS平台,我们从持续交付入手,打通了持续交付过程中核心的几个部分:资源,版本,发布。在版本
方面,引入了git,包管理工具,依赖管理工具,静态代码扫描工具,对各种语言进行了标准化治理。同时,新打造的build平台,统一了编译,打包的标准和过程;在发布
方面,配合应用治理系统的上线,打通了服务发现和元数据管理系统,使应用交付更加稳定,可靠和高效。进行DevOps实践时,治理是永恒的话题,而标准化是治理的前提。任何产品想要达到稳定,可靠,高效的状态,必须通过一定的规则,手段进行标准化。标准化可以
缩小问题范围,降低问题复杂度,提升一致性,而让一件事情具备反复执行的能力。容器的产生是对虚拟机的降维打击,那么k8s的出现就是对 "IaaS+PaaS"的降维打击。有 OpenStack,Mesos,K8s,Swarm。K8s的出现,就把Iaas和PaaS融为
一体,不仅关注应用的交付,还为应用治理提供了各种解决方案。Deployment,StatefulSet,DaemonSet等概念都是从应用治理的角度去思考和设计的。7.1 网络架构演进 在云计算模型中,IaaS层会对物理的计算,网络和存储资源进行虚拟化和池化,以更细粒度,更易管理和扩展的方式交付给上层的工具和用户使用,后者无需关心物理设备的相关细节。在一个提供IaaS服务的现代数据中心中,网络通常分为以下两层:1.数据中心网络2.虚拟化网络数据中心网络,也称为物理网络,通过物理网络设备将所有服务器连接成一个数据中心。在物理网络之上,云计算平台(如OpenStack)会创建一层虚拟化网络,并将其中的虚拟资源分配给用户使用。所以云计算平台的网络架构既包括 物理网络,也包括虚拟化网络。在云计算时代,xc的网络架构经历了以下演进过程:1.基于VLAN的二层网络2.基于VXLAN的大二层SDN网络3.基于BGP的三层SDN网络数据中心的物理网络拓扑结构是典型的 "接入---汇聚---核心" 三层网络架构。7.1.1 基于 VLAN 的二层网络 第一代方案的缺点:1.在硬件拓扑上,三层网络架构的可扩展性不好,而且所有的OpenStack网关都配置在核心路由上,使得核心路由称为潜在的性能瓶颈。2.在这种传统的二层网络里,虚拟机只能在一个很小的范围内迁移,大大限制了容灾和故障恢复能力。另外,还有一些新的需求,和子公司网络打通,把子公司当做独立的租户,因此有了多租户和VPC的需求。7.1.2 基于VXLAN 的大二层SDN 网络 SDN控制平面和数据平面协议:在数据中心网络层,数据平面基于VXLAN协议,控制平面基于MP-BGP EVPN 协议(在设备之间同步控制信息),这两者都是RPC标准协议。网关是分布式的,每一个leaf节点都是网关。VXLAN协议的封装和解封装都在leaf节点内完成,leaf节点以下是VLAN网络,leaf节点以上是VXLAN网络。7.1.3 基于BGP 的三层SDN 网络 第二代方案的问题:   1.随着集群规模的进一步扩大,中心式的IPAM逐渐成为性能瓶颈。2.目前的方案中,IP地址在整张大二层网络中都是可漂移的,因此故障范围特别大。3.较高的容器部署密度本身会在大二层网络的交换机表项(NLRI)带来压力,这涉及一些大二层涉及本身及硬件的限制。最终选择基于"Local+IPAM+BGP"的网络方案,其中软件基于"Cilium+Brid+CNC"。Cilium 是最近出现的一套容器网络解决方案。7.2 K8s 和容器化的实践 7.2.1 部署架构 7.2.2 网络 7.2.3 调度 7.2.4 存储 7.2.5 监控 7.2.6 容器化 7.3 混合云 7.3.1 混合云整体设计 7.3.2 混合云网络& 安全 7.3.3 混合云计费& 对账 7.3.4 混合云运维 7.4 持续交付 7.4.1 发布的艺术 1.蓝绿部署2.滚动部署3.金丝雀发布4.暗部署5.A/BTesting6.重建部署7.4.2 Tars 系统设计 1.Croller 发布模式也称为火车发布:每天有固定的车次安排,一般是两小时一次,并以pool为单位安排车厢,在同一个pool的应用中必须在同一个车次的同一个车厢进行发布。实际的情况是:每一个应用在发布前需要"买票",即申请和备案的过程,然后被分配到某个"车次"并与在同一pool中且需要发布的其他应用形成一个"车厢",当达到规定的发布时间时,该"车厢"内的所有应用,会以灰度的方式进行发布。缺点:1.即使提前做好了发布准备,但是没达到规定时间,也只能等待;2.如果错过了某个发布时间,只能等下一次;3.如果在发布过程中,同一个"车厢"内的某个应用发布失败,则整个车厢都会发布失败,需要整体回滚。2.Tars 发布流程1.Smoking 的过程为,拉出堡垒机->下载发布的包->安装应用程序->点火检查。当点火通过后,则认为发布成功。2.Baking,是指用户手动拉入的过程,在此之前,应该先进行堡垒测试。3.在经过Baking后,说明堡垒机已经接入了正式流量,开发人员在此阶段应该关注应用的监控系统,确认是否有异常,如果有异常,则回滚堡垒机,否则进行接下来的Rolling操作。4.Rolling的过程就是批量部署Group内的机器。在部署时将Group分成多个批次,用户可以设置每一个批次的数量,并配置批次内的机器为并发执行部署,这个做法既能保证部署的灰度进行,又能保证部署的速度不会太慢。5.在Rolling的过程中,与堡垒机部署的不同在于拉入过程是自动的,只有Verify正确才会认为部署成功。如果有个别机器部署失败,不会影响到整个部署流程,但是当数量超过一定比例,就会停止部署,我们称之为"刹车"。6.除此之外,发布系统还允许对其他依赖的系统进行降级。

7.携程架构实践 --- IaaS & PaaS相关推荐

  1. 【社区图书馆】JAVA开发与架构(携程架构实践)

    发这篇博文主要是想学习一下携程的架构.携程出了一本<携程架构实践>,无奈现在还没开源.看京东价大概109元人民币.如果看到次博文的网友能发我一本<携程架构实践>pdf.不胜感谢 ...

  2. 【社区图书馆】携程架构与实践图书

    发这篇博文主要是想学习一下携程的架构.携程出了一本<携程架构实践>,无奈现在还没开源.看京东价大概109元人民币.如果看到次博文的网友能发我一本<携程架构实践>pdf.不胜感谢 ...

  3. 研发管理-质量与效率提升-混沌工程在携程的实践

    研发管理-质量与效率提升-混沌工程在携程的实践 前几天听了携程SRE运维总监方菊女士的演讲,特别有感触,也是因为负责的产品和项目团队在上线过程中出现了很多的故障.本人前几篇文章介绍了携程在故障处理方面 ...

  4. 中小型研发团队架构实践三要点(转自原携程架构师张辉清)

    如果你正好处在中小型研发团队-- 中小型研发团队很多,而社区在中小型研发团队架构实践方面的探讨却很少.中小型研发团队特别是 50 至 200 人的研发团队,在早期的业务探索阶段,更多关注业务逻辑,快速 ...

  5. 携程Docker实践

    原文地址:http://www.iteye.com/news/31468         请点击原文阅读 ---------------------以下是原文--------------------- ...

  6. Spark SQL在携程的实践经验分享

    本文根据张翼老师在2018年5月13日[第九届中国数据库技术大会]现场演讲内容整理而成. 讲师简介: 张翼,10年互联网老兵;2015年3月加入携程,携程的大数据平台技术总监,带领团队构建稳定,高效的 ...

  7. 干货 | 日访问过亿,办公IM及开放式平台在携程的实践

    作者简介 Jim,携程高级研发经理,关注Java&Go技术栈后端研发.目前致力于TripPal开放平台的高可用.开放化进程及核心衍生服务. 简介 携程内部的办公IM项目最早在2016年立项,经 ...

  8. 图形验证码在携程的实践之路

    作者简介:闵杰,携程信息安全部产品经理.2015年加入携程,主要负责黑产防刷,验证码,反爬以及UGC方面的产品设计,关注在低成本的前提下,解决以上场景的实际问题.本文由携程技术中心投稿,微信公号ID: ...

  9. 携程数据库高可用架构实践

    作者:携程技术团队,来自:DataFunTalk 导读: 我们推荐使用数据库三副本,一主一从一异地容灾.如果想要节省成本,也可以只保留两副本,但是一旦其中一台服务器发生故障,服务器维修时间会比较长,那 ...

  10. 干货 | 携程中台化背景下的元数据驱动架构实践

    作者简介 灿荣,携程软件技术专家,目前关注互联网中台以及中间件领域. 一.背景介绍 为解决系统重复建设.能力复用性低的问题,携程启动了中台化建设步伐.旅游行业的中台建设,携程并非从零开始,前期已经积累 ...

最新文章

  1. 【java开发系列】—— java输入输出流
  2. 【Java算法】一天24小时中,时针和分针一共重合多少次?
  3. DCMTK:Telnet发起程序(ti)主程序
  4. 模型OnMouseXXX事件
  5. 树莓派的四种登陆方式
  6. vSphere 5.5 VM整合磁盘失败之—文件被锁定无法访问
  7. Handler 消息传递机制
  8. 被裁员和降薪,你选哪个?
  9. [Android自定义控件] Android自定义控件
  10. Linux下安装whl文件
  11. 基于web的网上书城网站设计与实现(SpringBoot ,Vue,MySQL )
  12. windows7计算机图片,win7照片查看器无法显示图片计算机可用内存不足 需要技巧...
  13. lwj_C#_作业 ListT应用
  14. 软件测试笔记——如何测试一个矿泉水瓶?
  15. IDEA中单词拼写错误
  16. java青蛙跳台阶问题
  17. 「Computer keyboard」- 在键盘中,手指的摆放位置 @20210331
  18. 阿里云小福利!水杯免费送
  19. Png文件可横向拉伸html布局,png透明格式 以cad2010操作为例:
  20. 钱多多的互联网金融面试经验谈

热门文章

  1. springboot 集成 freemarker
  2. CodeForces - 18A Triangle(数学?)
  3. Xamarin.Android Binding-----百度地图SDK
  4. 实时控制软件第二次作业
  5. js为lable和div赋值
  6. 正则---让人喜欢让人忧(3)
  7. HAproxy配置文件操作
  8. Atitit. Dwr 抛出异常error解决方案
  9. javascript变量说明
  10. 利用MessageUI发送邮件