T4、5K、ECS、云原生、异地多活、混合云、混部

前言

  • 技术很多时候在围绕资源扩充(横向扩容、弹性扩容等)、稳定性(分库分表、冗余存储、主备、异地多活等)和效能(JVM优化、云等)。
  • 离线机器会用尽资源竭力完成任务,在线机器会申请资源尽量完成任务,所以需要协调、分配与整合。
  • 看过猪跑很重要,因为知道哪里有坑,可以避开,这就是经验,降低试错成本。

ECS

ECS是什么?

  • Elastic Compute Service:弹性计算服务,是基于虚拟化技术后的计算单元,支撑了阿里云的整个产品生态。

如何理解ECS做的事情?

  • Native Computer的型号、硬件参数可能不同,机器与机器之间、集群与集群之间可能都是异构的,所以需要有一层包裹,规范机器资源,度量CPU和内存。
  • Virtual Machine将Native Computer资源打平,规范除异构。
  • 还需要有调度层面的管控,水位保障服务可用规避风险,公有资源共享,资源争抢策略,资源调度策略,碎片回收整合,资源利用效能,资源类型划分,资源重排,资源再分配,资源标注,闲置资源短期售卖策略,相关策略预判优化等。
  • 对外售卖的形式,其实就是算力,即:弹性计算服务。
  • 售卖随行的还有资源的计费模式。

POD是什么?

Docker 与 Name Space、Control Groups的关系?

  • Name Space(命名空间):资源划分层面的互相屏蔽隔离。比如隔离文件、进程、网络环境等。
  • Control Groups(控制组):资源使用层面的限制。通过树结构设定管理控制组的各种资源,比如,CPU、内存、网络IO等,防止进程、线程过度使用发生侵占资源越界行为。
  • Docker(集装箱):资源规范化。Docker File,可以理解为操作系统的映射文件,通过Docker File可以知道到去哪里下载安装对应的应用从零到一组建还原操作系统
  • 在使用Docker运行容器时,Docker会为每个容器创建命名空间和cgroups,所以Docker和容器是一一对应的。
    Docker和容器是一一对应的
  • 容器本质上类似于独立的存储仓。如果容器需要与外界通信,容器就需要存储卷或将端口映射到宿主机。
  • 可以借助命名空间,让Docker的容器互相发现并通信。
    Docker容器间互相发现

POD的本质是什么?

  • 可以将命名空间和cgroups与多个线程结合起来,而这正是Kubernetes Pods的本质。
  • Pods让你可以指定想要运行的容器,而Kubernetes自动地建立相应的命名空间和c groups。实际上还要复杂一些,因为Kubernets并不使用Docker网络(Kubernetes使用CNI,Container Network Interface,容器网络接口),但是本质是类似的。
    借助c groups让容器通信
  • 与docker相比,具备更细粒度的控制能力。
    Docker对进程状态无感知
  • 可以管理监控每个进程。
    进程粒度管控能力

K8S是什么?

  • Borg:是谷歌公司的内部容器管理系统。Borg系统运行几十万个以上的任务,来自几千个不同的应用,跨多个集群,每个集群(cell)有上万个机器。

  • Kubernetes,简称K8S,源自谷歌的Borg:规模弹扩、负载均衡、故障替换、容器自动部署复制、容器分组、版本升级。

  • 解决了标准化部署和迁移的问题。

  • 是一个编排容器的工具,其实也是管理应用的全生命周期的一个工具,从创建应用,应用的部署,应用提供服务,扩容缩容应用,应用更新,都非常的方便,而且可以做到故障自愈,例如一个服务器挂了,可以自动将这个服务器上的服务调度到另外一个主机上进行运行,无需进行人工干涉。

  • K8S两个分类:自我管理、集中控制。在这里插入图片描述

  • Docker和K8S都采用Go编写。发展轨迹

5K

如何理解云计算的诞生?

  • 历史总是惊人的相似,自建发电厂到电网,经历了基础设施普及(耗电器,比如电灯)、技术变革(交流电)再到市场规范化(电压、电费)的发展演化,电变为一种提供公共服务的资源,服务器自给自足的个人操办模式也会逐步向整体的专业外包模式发展,云计算作为资源提供公共服务是一种趋势。

如何理解云计算底层的技术挑战?

  • 大型分布式系统,成百上千的机器互联,一个是资源的协调,一个是程序的运行。
  • 屏蔽故障(绝对稳定的无感支持)、全局同步(指数级递进的代价)、动态热点(爆发式增长的热点)
  • 分布式文件系统:树状任务管理。
  • 分布式任务调度:map reduce任务调度编排模型。
  • 资源监控体系。
  • 资源动态预估使用体系。
  • 计费策略。

5K是什么?

  • 5K-飞天是阿里云计算公司,开发的大规模分布式系统,涉及分布式程序控制、底层机器资源管控、故障恢复、数据冗余、弹性计算、负载均衡等,单集群规模达到5K台,支持跨集群计算。力求各个模块规模性能、高可用、可运维。

云原生、异地多活、混合云、混部

什么是云原生?

  • CloudNative,Cloud表示应用程序位于云中,而不是传统的数据中心,Native表示应用程序从设计之初即考虑到云的环境,原生为云而设计,在云上以最佳姿势运行,充分利用和发挥云平台的弹性+分布式优势。
  • 云计算是云原生的基础。
  • 真正的云化不仅仅是基础设施和平台的变化,应用也需要做出改变,摈弃传统的土方法,在架构设计、开发方式、部署维护等各个阶段和方面都基于云的特点,重新设计,从而建设全新的云化的应用,即云原生应用。
  • Pivotal官网曾对云原生概括为4个要点:DevOps+持续交付+微服务+容器。
  • 狭义理解:容器+服务网格。
  • 广义理解:软件、硬件、架构等,因云而生的体系,去适配云。
  • 技术趋势:CPU多元化(阿里神龙芯片)、云数据库(阿里云的PolarDB数据库)。

什么是异地多活?

  • 异地:指地理位置上不同的地方,通俗理解是“不要把鸡蛋放到一个篮子里”。
  • 多活:就是指不同地理位置上的系统都能够提供业务服务,“活”可以理解为活动、活跃的意思。“活”是相对于冷备份而言的,冷备份是备份全量数据,平时不支撑业务需求,只有在主机房出现故障的时候才会切换到备用机房,而多活,是指这些机房在日常的业务中也需要走流量,做业务支撑。
  • 异地多活指的是在不同城市建立独立的数据中心。

什么是数据中心?

  • 数据中心是全球协作的特定设备网络,用来在internet网络基础设施上传递、加速、展示、计算、存储数据信息。在今后的发展中,数据中心也将会成为企业竞争的资产,商业模式也会因此发生改变。随着数据中心应用的广泛化,人工智能、网络安全等也相继出现,更多的用户都被带到了网络和手机的应用中。随着计算机和数据量的增多,人们也可以通过不断学习积累提升自身的能力,是迈向信息化时代的重要标志。
  • 数据中心顾名思义就是用来集中管理(存储,计算,交换/网络)数据的地方。
  • 水=数据流(语音,数据,视频)、水库=数据中心(数据的存储,交换,计算中心)、太平洋=运营商网络管道(Internet骨干)、自来水管=企业网络管道、水龙头=终端。

什么是混合云?

  • 混合云(hybrid cloud)是公共云和私有云的混合,助力客户分步上云,满足部分行业监管合规的需求,构建的一种云架构。
  • 混合云提供既在公共空间又在私有空间中的服务。
  • 当公司需要使用既是公共云又是私有云的服务时,选择混合云比较合适。
  • 假如你公司楼下有一家餐厅,如果有一天你要带全公司的人去用餐,结果包间坐不下,只有一部分人去包间,其他人在大堂,那这就是混合云。
  • 出于安全考虑,企业更愿意将数据存放在私有云中,但是同时又希望可以获得公有云的计算资源,在这种情况下混合云被越来越多的采用,它将公有云和私有云进行混合和匹配,以获得最佳的效果,这种个性化的解决方案,达到了既省钱又安全的目的。
    混合云的优势

什么是混部?

  • 全球的服务器利用率只有6%-12%,Google是没有离线服务器的,全都是动态的资源申请和使用。
  • 大数据发展迅猛,机器资源使用需求越来越高的诉求。
  • 计算任务密集型集群:压力水位较高,时延不敏感。
  • 在线集群:压力水位较低,时延要求高。(比如电商金融业务,平时压力水位较低,但是对延时极为敏感。)
  • 将上述服务器混合,优先保障在线服务,空闲时候再兼顾计算密集型任务,目的是让闲置资源重新利用,提升整体资源利用率。(优先级划分达到共享资源的思想)
  • 当大促、双十一等活动到来,在线服务会有短暂的超高峰流量涌来,此时可以让资源优先集中供给到在线服务提供支持,来顶住短暂的流量访问压力,同时对于时延不敏感的计算密集型任务来说可以接受,皆大欢喜!此种技术,就是混部!

阿里的混部技术发展?

  • 基于进程的大数据计算资源调度系统伏羲。
  • 基于Pouch容器的在线服务资源调度系统Sigma。
  • 混部调度技术将两者混合一起穿接起来。
  • 在线任务、离线批量任务、实时计算、GPU加速任务都借助混部调度匹配合理的资源,提升整体的资源利用率(消峰填谷,资源复用)。
  • 资源竞争问题:在内核层面,将CPU、内存、IO、网络等多方面进行优先级划分。机器学习+算法预测+细粒度的资源精确控制->毫秒级自适应调度或限制,以保证高优先级的任务不受到影响。
  • 硬件层面:在线服务机型与计算任务机型差异较大,异构。所以通过存储计算分离技术把资源分为计算节点和存储节点两大类,统一异构机型。
  • 技术红利:曾经混部技术提升资源利用率到40%,降低30%成本。
  • 混部类型:离在线混部(离线优先)、在离线混部(在线优先)、无差别混部(各种离线、在线、实时、搜索等)。
  • 在离线

混部需要解决的问题?

  • 网络传输带宽。
  • 异地时延。
  • 错峰。
  • 硬件差异性能不齐。

Reference

  • http://dockone.io/article/2682(Kubernetes中的Pod的到底是什么?)
  • https://baijiahao.baidu.com/s?id=1711706871685051441&wfr=spider&for=pc(百度混部实践:如何提高 Kubernetes 集群资源利用率?)
  • https://blog.csdn.net/weixin_34321753/article/details/94100570(2013年8月,阿里云飞天5K集群成功上线,所有的服务对应的都是同一个系统内核、同一套分布式文件系统…)
  • https://baijiahao.baidu.com/s?id=1636910963945946428&wfr=spider&for=pc(K8S(Kubernetes)是什么?)
  • https://zhuanlan.zhihu.com/p/150190166(什么是云原生?这回终于有人讲明白了)
  • https://www.zhihu.com/question/23941104(数据中心是一个什么概念?)
  • https://baike.baidu.com/item/%E5%BC%82%E5%9C%B0%E5%A4%9A%E6%B4%BB/23734068?fr=aladdin(异地多活)
  • https://www.iqiyi.com/w_19s66atlrh.html(什么是混部技术?阿里混部技术,极大提升服务器利用率程序员学起)
  • 《弹性计算 无处不在的算力》

A Word

  • You just have to take the first step, even before you’re ready.
  • 即使没有万全准备,也要勇敢迈出第一步。

版权声明:本文为GZHarryAnonymous原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。