FIT2CLOUD概念及术语


FIT2CLOUD混合云管理及DevOps协作平台建立在IaaS之上,涵盖混合云管理(公有云、私有云、传统IDC托管机器等)、自动化运维、统一的监控告警、自服务IT和持续交付。基于FIT2CLOUD,企业可以实现对应用全生命周期的自动化管理,打通从代码到服务的转化通道,实现云应用的持续交付和自动化运维。FIT2CLOUD能够帮助受限于运维开发资源的组织迅速建立起自动化运维系统,提升运维效率,改进开发与运维的协作,加速交付。

为更好理解FIT2CLOUD的整体结构,方便用户的日常操作。这里,我们首先介绍FIT2CLOUD系统中使用的基本概念和术语。

基本概念

一、云平台和云账号

广义上说,云平台包括提供基础设施(计算、存储和网络)服务的IaaS云,提供平台服务的PaaS云和提供应用服务的SaaS云。在FIT2CLOUD中,云平台特指IaaS云平台,包括公有IaaS云平台(如阿里云、腾讯云、AWS等)和私有IaaS云平台(如OpenStack等)。

FIT2CLOUD中云账号对应用户在IaaS云平台上的账号。由于FIT2CLOUD通过API和各个不同云平台进行交互,用户在FIT2CLOUD中的云账号是通过AccessKey(通过API访问IaaS云的认证信息)配置,而不是大家登陆IaaS云平台的用户名和密码。不同云平台的AccessKey获取方式各有不同,具体请咨询云平台工作人员或者参考它们的文档。

二、跨云管理

当用户的基础设施分布在不同的云平台(可以是多个公有云IaaS平台,也可以是跨公有云和私有云平台,甚至包括部分为云平台基础设施、部分为传统物理机器的场景),用户就存在跨不同云平台进行统一基础设施管理的需求,以便更好标准化、自动化日常运维管理操作。跨云管理即指跨不同云平台进行统一的基础设施管理。

FIT2CLOUD支持统一管理不同来源的虚机,并集成了如脚本执行、监控告警和代码部署等日常运维管理工具,即为一个跨云管理系统。整个FIT2CLOUD系统由服务后台、用户界面以及客户端Agent三部分组成。整个结构如下图所示:

alt

云插件

作为基于混合云管理的一站式平台,FIT2CLOUD帮助用户对不同公有云/私有云/物理机环境下的主机进行管理和配置。为此,FIT2CLOUD设计了插件化框架,方便集成不同云平台的开放API接口,打通FIT2CLOUD与云平台的交互渠道。并且,这种为对接FIT2CLOUD插件化组件、集成云平台开放API的组件被称之为云插件。目前,FIT2CLOUD官方已经支持如下云插件:

  • 亚马逊 AWS
  • 阿里云
  • 青云QingCloud
  • UCloud
  • 腾讯云

同时,FIT2CLOUD完全开放自己的云插件框架接口,欢迎各方开发更多云平台的插件,包括但不限于:

  • Openstack
  • VMware vSphere

三、集群

集群是FIT2CLOUD管理用户不同来源虚机的基本单位。简单来说,用户可以把集群理解成为一个IT系统运行环境。这个环境运行一个或者多个应用,用于特定目的(如开发、测试、生产等)。一个集群通常由一台或者多台机器组成,并且按照机器的不同用途划分成不同的组(即虚机组)。通过集群,用户可以把其所有基础设施按照应用视角进行分类管理,并在集群层面执行批量操作、查看监控状态等。

四、虚机组

虚机组是一个FIT2CLOUD集群内承担相同角色(如前端、后端、数据处理等)的一组机器。一个虚机组内的机器通常有相同的基础环境(如OS、应用运行时等),运行相同的业务逻辑,输入输出也基本对等。在FIT2CLOUD中,用户可以在一个虚机组上面设置告警条件、自动伸缩逻辑等,是用户进行自动化运维与部署的重要基础。

五、虚机

虚机是FITCLOUD管理的最主要目标。尽管FIT2CLOUD系统内称之为虚机,但它可以是任意来源的一台机器(可以是云平台上的云主机,也可以托管在IDC内部的物理机器,甚至可以是企业办公环境中的开发机器)。在FIT2CLOUD中,用户按照集群、虚机组和虚机这三层逻辑组织其所有虚机,并由此提供批量执行脚本,监控告警,自动部署应用等。最后,FIT2CLOUD按照虚机加入系统方式的不同,把所有的虚机分成“导入虚机”和“创建虚机”两类,具体解释如下。

导入虚机

对于已经存在的机器(无论是来自公有云、私有云或者物理机),FIT2CLOUD支持用户把这些机器导入指定的集群/虚机组内进行管理。FIT2CLOUD内部称用这种方式加入到系统的机器为导入虚机。导入虚机的生命周期完全由外部系统控制,FIT2CLOUD不会创建或者停止这些机器。目前,FIT2CLOUD提供多种方式(自动或者手动、单台或者批量)导入虚机,用户可以根据自己的实际情况选择最合适的导入方式。

创建虚机

除了可以导入已经存在的虚机,FIT2CLOUD还可以通过集成的IaaS云平台API主动启动虚机并加入到相应的集群/虚机组内进行管理。FIT2CLOUD内部称用这种方式加入到系统的机器为创建虚机。目前,FIT2CLOUD已经支持国内主流的IaaS云平台(阿里云、AWS、青云、UCLOUD、腾讯云等),并且提供开放接口允许用户自己开发更多的IaaS云平台插件。用户可以在系统中预先设置虚机创建模板,并用该模板手动(FIT2CLOUD控制台)或者自动(如自动伸缩场景)创建虚机。创建虚机的生命周期由FIT2CLOUD完全管理,创建完成后自动加入到对应的集群/虚机组,并可自动执行模板中指定的初始化操作(如执行脚本、进行应用部署等)。从FIT2CLOUD中删除创建虚机时,也会从对应的外部IaaS平台删除相应虚机资源。

虚机创建模板

虚机创建模板是定义启动“创建虚机”时的一系列参数,且只能用于从已经支持的IaaS平台启动虚机。它包括下面几个方面的配置信息:

  • IaaS供应商信息:从哪个IaaS供应商、使用什么云账号创建虚机,创建虚机时的各种配置(虚机类型、网络等等)。
  • 虚机登陆信息:指定创建虚机使用的登陆信息。按照不同IaaS供应商,可能是密码,也可能是秘钥。
  • Agent安装方式:为管理虚机,需要在虚机启动后安装FIT2CLOUD Agent。用户可以选择自动安装或者手动安装Agent。
  • 初始化操作:指定虚机启动后自动执行的初始化操作(可以为一段脚本,也可以是一个应用部署逻辑)。

一旦虚机创建模板设置好,用户就可以利用它在FIT2CLOUD中快速创建云平台上的虚机。同时,FIT2CLOUD系统的自动伸缩模块也是利用虚机创建模板帮助用户按需启动虚机。

无论是导入虚机还是创建虚机,一旦成功加入到FIT2CLOUD系统后就会无差别地进行日常运维管理(自动伸缩和删除虚机操作除外)。一个集群或者虚机组内部可以同时拥有导入虚机和创建虚机,且脚本执行、监控告警和代码部署都可以无差别应用到这两类虚机上。

FIT2CLOUD系统在帮助用户组织集群和虚机组时候,对于虚机来源未做任何限制。虚机可以来自不同云平台或同一个云平台中的不同Region。但是在具体实践过程中,建议用户尽量把不同来源虚机放到不同集群或者同一集群内不同虚机组中管理,这样更容易进行和虚机来源相关的操作(如自动伸缩)。

在FIT2CLOUD中,通过集群、虚机组和虚机三层结构,提供基于应用视角进行基础设施管理,并基于这个组织框架来支持各种日常运维管理工作。例如,如果用户希望在阿里云青岛机房部署一个Wordpress集群,其在FIT2CLOUD中的管理结构可以如下图:

alt

如上图,整个集群由两个虚机组,总共四台机器构成。一个为前端虚机组,由三台虚机组成。另外一台为后端数据库机器,且在另一个独立的虚机组。以上四台机器可以完全是“创建虚机”,可以完全是“导入虚机”,也可以是部分“创建虚机”、部分“导入虚机”。无论如何,一旦如上集群组织结构在FIT2CLOUD里面构建完成。用户就可以基于此进行日常运维。例如:

  • 对前端虚机组进行批量脚本运维(无需指定具体机器IP,批量对三台机器执行脚本)。
  • 查看整个集群或者两个不同虚机组的监控告警情况(如整个前端虚机组平均负载情况,并按照这个平均负载指标设置告警条件)。
  • 对集群内不同虚机组设置不同的初始化和部署逻辑(如前端虚机组启动后自动安装Apache、PHP环境等)

六、自动伸缩

对IT系统进行扩容或者缩容是日常运维中最常见的场景之一。按照扩容/缩容的方式可以分成“垂直伸缩”和“水平伸缩”。其中,“垂直伸缩”通过改变机器内部能力(如CPU核数、内存大小等)来改变整个系统的服务能力。“水平伸缩”则是通过横向伸缩机器数目来提升服务能力。由于云平台获取或者释放虚机非常方便,而且设计得当的架构可以保证整个伸缩过程中无服务中断。所以,云平台上弹性伸缩一般指“水平伸缩”这种模式。在FIT2CLOUD中,自动伸缩即指通过预先定义好的规则(定时,或者按负载)自动替用户完成一个虚机组内的水平伸缩操作,降低运维人员手动进行扩容和缩容的负担。为此,用户需要在FIT2CLOUD的虚机组上启动自动伸缩,并配置自动伸缩的条件和逻辑。

七、持续交付

持续交付(Continuous Delivery)是软件生产流程中的一种实践方式,强调从代码到服务这整个流程中的连续性和持续性。希望通过打通从代码到服务的整个链路,完成快速迭代,持续从最终用户得到最真实的反馈并进行针对性的产品改进。相对于传统软件交付流程的冗长,这种方式更加敏捷,也更有效率。要想达到持续交付的状态,软件研发团队需要从组织结构、团队文化和生产工具等多个方面进行变革。作为一站式的应用交付平台,FIT2CLOUD从生产工具的角度出发,通过自动化软件生产各个阶段(编码、验证,上线等)的内部操作,并主动平滑各个阶段之间的衔接来打造整个持续交付生产流水线(如下图):

alt

在如上整个流程中,FIT2CLOUD提供一致的环境管理,统一管理开发、测试和生产环境。FIT2CLOUD提供代码部署功能,支持在不同环境内一致的部署应用,FIT2CLOUD提供相应的插件和接口对接用户的代码管理,Artifacts管理等来连接软件生产过程的不同环境。