技术培训 | 资源编排,人人都可以成为架构师

今天和大家分享的话题是如何利用青云资源编排服务快速创建批量资源组合、规划和构建系统,同时谈谈资源编排如何帮助我们复制一整套IT环境,以及如何实现跨区做相同架构资源的拷贝。

资源编排到底是什么呢?

大家知道云服务本质上是做 IT 架构软件化和 IT 平台智能化的工作。

传统方式我们构建一个系统,不管是做医疗、教育还是金融、媒体等等,最上层需要部署自身的业务代码;

中间层是业务依赖的专业软件、平台中间件、服务组件等;

下层是部署的硬件系统,包括计算节点、存储资源、网络,然后安装操作系统等等。

中下两层是运维层面的内容,用传统的IT 架构方式,企业可能需要很多工程师,包括在现场做苦活、累活、脏活的现场运维、开发工程师。

因为有些操作需要去啃硬件的使用手册、了解主板芯片接口、路由器指令等等。

云服务提供的智能化是把每一层都用软件的方式实现,以标准化接口的方式提供,这样很多苦活、累活都不用做了。

软件的灵活调度特性能够在 IaaS 层解决硬件的容错问题, PaaS 层的标准组件能够省却 DevOps 搭建中间件需要考虑和维护的集群化、动态控制节点规模、备份、容灾等问题。

很多人都已经在使用云计算服务了,还有很多人没有选择上云。

他们的区别在于你是否相信,云服务提供的 IaaS/PaaS 服务能够满足企业的要求,它是否具有稳定性、安全性、弹性以及足够的性能等等。

下面我们来说资源编排。

资源编排在哪一层呢?我们一般说的编排,包括资源编排、服务编排,后者是业务层面、应用层面的编排,以前者为基础。

资源编排是在 IaaS 层之上的构建层,称为 Resource Orchestration。它是在 IaaS 平台之上构建系统,并且对这个系统进行生命周期管理。

资源编排需要具备抽象建模能力:每类云资源有不同的设备,如主机、路由器、负载均衡器、大数据等组件,你需要对它进行抽象建模——需要哪些资源,并且资源之间的拓扑关系是怎样的;

然后你能够对它的生命周期进行管理,如何从无到有进行创建,之后资源之间要能够更新、增加、减少,如何操作。

具体来说资源编排具备的能力有几点:

一是能否对现有资源做抽象、能够按照我们定义好的模板规范建模;

二是基于模板把资源实例化出来,成为一整套具有独立性的资源,并能对资源的属性、原数据进行增删、查改、回收等操作。

资源编排能做什么?

概念是抽象的,我们看看具体能做什么事情。

青云QingCloud 的云服务是想构建一个生态圈的概念,我们底层有 IaaS 、 Technical PaaS 。

线下交流时有人问,能否在青云平台上面提供 Hadoop 服务让他们的用户去使用?当然可以,你可以利用现有的 IaaS 和 PaaS 的 API 接口来做。

要完成这个任务,通过传统方式来做,需要对整个 Hadoop 集群所依赖的资源,比如路由器、私有网络、主机、镜像、硬盘、公网 IP 等等,有一个拓扑概念和配置规划,然后决定先后顺序,调用 API 来完成这个搭建任务。

使用资源编排来做的话,只需给这个任务的配置做一个描述、生成模板,即可一次性地创建出来。

这对我们合作伙伴或是在这青云QingCloud 上提供服务的独立开发者来说是非常方便的。

只要将提供服务所需要的资源组合配置为模板,调用一次 API 即可生成资源。

如果不是作为应用提供者,我们列举一些使用场景。

第一种场景是利用云平台做资源申请审批管理。

我们有些传统客户,他的主账号是作为资源审批者,是管理部门;子账号作为资源申请和使用者,是业务部门。

每次需要资源时,业务部门要先向管理部门申请。申请的时候以业务为单位,按业务类型和规模来申请。

比如要做内部开发系统、WEB 系统等等。每种业务系统其实是有类似的资源配置和组合的,只是规模大小有所不同。

这种场景,管理者可以先预定几套资源编排配置模板,或者写一个实时生成业务模板的逻辑,接收规模、配置等作为参数。这样不论是需要主机、数据库、 Hadoop,需要资源组网、VPN 登录,这些分散的资源可以组合整理出来,一次性生成。

第二种场景是多套环境的复制。

比如说开发初期只有一个小的开发环境,上线后要做测试、部署 Staging 环境以及线上环境。

每套环境对小规模系统来说,重建一套比较简单。如果资源很多规模很大的话怎么办?运维工程师要做很复杂的工作,会很累。

资源编排有抽象能力的话,可以把现有的资源、拓扑关系和背景全部抽取出来,利用这套模板快速生成资源,原本需要大半天的时间,现在只需要十几分钟就可以搞定了。

第三种场景,没有在云上使用任何资源,但你想规划现在的 IT 系统。

这种场景通常知道大概要上线的服务需要多少台主机资源、数据库资源,但并不知道他们之间应该如何通过网络连接、如何挂载附加资源,不知道它的价格是多少,不知道横向扩展时如何核算成本。

你可以使用资源编排功能,先架构系统,看看它能否满足你的要求,包括物理性能和配置,再看看价格预算是否在你接受的范围内。

第四种场景,跨区的备份和部署。

如果大家在使用我们资源的时候可能会碰到一种情况:我们有不同区域的机房,实体资源都在具体机房里。

如果在广东 1 区有了一套系统,想要在两地部署,北京 2 区复制一份这样的结构,相同资源组合必须在北京 2 区生成并连接、组合起来。

利用资源编排的话,广东 1 区的资源可以提取成全局唯一的抽象模板,然后我们在新区域应用这个模板即可。

尝试过资源编排的同学,可能觉得它就只是资源配置,其实里面的事情还是挺复杂的。资源之间的关系、约束能否真正实例化、能否管理,这有很多工作。

首先我们会有抽象化的过程:有哪些资源,他们的关系如何,如何定义他们的约束;其次把它具体化形成一个个实体,包括路由器、数据库、缓存等等,把这些实体所具备的配置、关联,比如硬盘、网络等等,作为它的属性建模;最后把拓扑结构实例化出来,真正形成资源。

开放的 API

我们每次发布服务都会提供相应的 API,把 API 直接暴露出来提供给用户。

因为在云上使用服务的用户,有的偏技术一些,利用云平台要做很多事情,包括我们的合作伙伴在上面构建系统,需要用 API 做编程,用软件形成快速部署;

另一种是终端用户,通过控制台,更喜欢用图形化的操作方式。

资源编排 API 主要分为三类,一是 TopologyTemplate 相关 API,完成拓扑模板的维护,即增删查改,还有配置、定义等等;

二是 Topology 实例化,把资源真正的批量创建出来;

三是检查配置是否合法,能否满足配额,能否建立起资源。

资源编排怎么用呢?

说了这么多,资源编排怎么用呢?在控制台上,资源编排可以使用图形化的操作来创建模板。

我们在建立模板时提供了 4 种方法:以系统推荐模板作为样本创建、从当前的资源抽取拓扑结构创建、从无到有手动创建,以及将已经创建的模板作为样本创建。

如果您对青云平台还不太熟悉,或者对业务的资源需求不太了解,可以先从系统推荐的模板开始创建。

这里系统推荐了几种常见业务所需要的青云平台资源配置以及资源间的关系。

比如简单的 Linux 主机集群、公网负载均衡器的入口集群、数据库和缓存的集群、大数据集群等等。

点击不同的模板,可以预览它的拓扑关系,并查看每一种资源的基本配置,还可以查看到这个组合的资源价格。这里的推荐模板是我们初始提供的,根据用户的反馈和实际使用情况,我们会给出更多常见和入门的配置。

如果希望抽取当前的资源的属性作为配置,并进一步复制出资源,可以从当前资源抽取模板。

抽取的对象是用户名下的实体资源,如主机、路由器 / VPC、负载均衡器、共享存储、数据库和大数据平台等。

硬盘、公网 IP、防火墙这些附属资源不能单独选择,而是作为实体资源的关联资源提取出来。

提取之后,可以继续对该模板进行编辑,不影响被提取的资源。

资源编排的模板是跨区域共享的,用户可以从某个区域的资源抽取一份模板,并将其在其他区域应用生成编排,就实现了跨区域复制资源结构。

若模板依赖的资源,例如自有映像在新区域不存在,可以先迁移映像。

在熟悉资源编排功能之后,手动创建模板是最常用的创建方式。

在这里可以根据构想的资源组合,从无到有生成资源以及资源之间的关系。

资源的组合遵循实际依赖关系,如私有网络必须挂载在路由器 / VPC 内,硬盘必须挂载在主机或 Virtual SAN / VNAS 下,公网 IP 只能绑定到主机、路由器 / VPC 或负载均衡器等。

对创建好的模板可以修改基本属性,以及删除操作。还可以基于该模板继续创建新模板。

在模板列表右键,或详情页左侧信息区右上角操作列表,可以找到该按钮。点击该按钮,会进入模板编辑页面,并将模板的配置导入当前编辑的模板中。

模板编辑界面分为3个区域:选择区、绘图区、配置区,分别提供了资源选取、拓扑编辑、配置编辑的功能。

  • 资源支持几乎所有的 IaaS/PaaS 资源和组件,用拖动的方式可以拖拽到绘图区。
  • 绘图区现实当前模板的拓扑结构,可以添加、删除、复制资源、缩放拖拽绘布、刷新、清空、查看价格等;
  • 配置区可以看到选中资源的配置,并对它进行修改。模板资源之间的关系如端口转发、负载均衡器后端等,通过提取配置,可以直接显示在图中。

创建好的模板,在编排模板列表中可以看到。

可以查看模板的结构,基于模板新建,或者应用模板生成具有相同配置的一整套资源。

应用模板之后,系统开始按依赖关系创建资源。创建的过程,可以控制台右上角的实时任务中看到。

如果资源较多,或者有层次和依赖关系,可能需要数分钟或更多的时间,请耐心等待。

创建资源时如果配额不足、余额不足或其他原因导致的失败,整个创建过程回滚,阶段性创建的资源也会回收。

以上是我们对资源编排的定义、作用、接口和控制台功能做的介绍。

开始提到的服务编排的功能,后续我们会基于资源编排去提供。

另外,编排出的资源,对于用户可以是一个业务视图,这些视图会提供新的展示方式和更丰富的图形化交互,以便不同的用户方便管理自己的资源和业务。

时间: 2024-10-08 21:07:41

技术培训 | 资源编排,人人都可以成为架构师的相关文章

普通程序员,三年成为年薪70w架构师,只因做到了这些

每个程序员.或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来.今天给大家分享的是一篇来自阿里Java架构师对普通程序员的职业建议,希望对你有启发. 程序员的三个阶段 第一阶段---三年 我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人.这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本上的内容迈向真正的企业级开发.我们知道如何团队协作.如何使用项目管理工具.项目版本如何控制.我们写的代码如何测

从普通Java程序员到阿里高级架构师,他用了6年!

6年间,一位架构师待过四大门户中的两户,已完成了工程师到架构师的蜕变.经手几款从零到一产品的开发和增涨,也亲身经历国內最大社交网络平台亿级数据流量和用户的架构设计及优化工作.在工作中思路清晰.尽职尽责,是同事们心目中出色 Problem Solver.参加工作时间:8 年服务公司:4 家(含四大门户中的两户)近期岗位:Java 架构师职场关键词:社交网络平台.高并发系统架构设计.技术团队管理.多款从零到一的产品城市! 问:介绍一下下你自身 答:我 2007 年本科大学毕业,前 2 年在一家传统式

怎么成为java高级架构师?图灵学院总结的java架构师学习路线

怎么成为一个java高级架构师呢?相信这是很多java从业者,又或者说是coder/码农们比较感兴趣的问题,要回答这个问题,首先需要明白的是java架构师是什么?简单点说,架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作.主要着眼于系统的"技术实现",工作内容就是确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节.扫清主要难点的技术人员,并且需要有良好的组织管理能力.因此应该是特定的开发平台.语言.工具的大师,对常见应用场景能马上给出最

从初入IT职场到技术总监,我用一张图告诉你什么是系统架构师!

这张图从架构师的综合能力.岗位认识.岗位职责等方面,清楚的画出了作为一个架构的基本准则.人人都想成为架构师,可作为架构你达到了图上面的要求了吗? 系统架构师是个神奇的岗位.为什么这么说,在一个人数不多的小公司,你可能什么都需要做,身体力行,做总监兼架构师或者是主管/高级开发兼架构师:在大公司,你可能只负责某个平台的架构,某些中间件的架构,你就是某一类的架构师. 无论怎么分,作为一个架构师,你必须具备以下几个特性. 技术能力 技术能力,不用置疑肯定是最重要的.技术能力弱的架构不是一个好架构.所以,

人人都可以成为运维专家

运维工作普遍要经历这样一个过程:运维质量的提升.运维效率的提升.运维价值的提升. 在运维质量提升阶段,我们首先希望是操作流程是标准化的.一套标准化的操作体系,无论运维环境如何复杂,IT资源如何增加,都能快速应对各种突发业务需求.用一句话来说,就是运维质量不会因运维环境的改变或运维人员数量.经验的多少而改变. 举个例子来说,要上线一套业务系统,需要经过软硬件的安装.部署.配置管理.监控.安全扫描等各个操作.对于企业来说,这往往需要多个部门的协同操作,费时费力.但是,如果能将所有的系统上线操作集中为

服务器太多了不好管?UCloud基于Terraform的资源编排工具详解

背景 随着用户在 UCloud 上资源用量的指数增长,传统 API/SDK 手动编写脚本的资源管理方式已经无法满足其需要.为此,UCloud 研发团队基于 Terraform 编写了一套自己的资源编排工具,帮助用户降低云上资源的管理成本,为其提供安全可靠.高度一致的产品使用体验,尽可能消除迁移上云时的风险. Terraform 代表了业界前沿的技术和标准,我们基于此,并配合 UCloud CLI 等工具,编写了新一代 UCloud 资源编排工具,进一步拓展 Terraform 的功能,实现基础设

IaC云资源编排-Terraform

Terraform 2019/10/14 Chenxin 整理 转自: https://cloud.tencent.com/developer/article/1469162 IaC与资源编排 IaC(Infrastructure as Code)这一理念随着云技术的普及以及多云时代的到来而被广泛接受和认可,特别是众多生态工具产品的涌现使得IaC由概念逐渐成为现实. 1.与传统的"ClickOps"管理模式相比,IaC主要可以在以下3方面优势: 提高资源部署的速度和效率 所有的云服务都

向架构师进军-->可重用架构资源

如果你对项目管理.系统架构有兴趣,请加微信订阅号"softjg",加入这个PM.架构师的大家庭 软件架构有三个主要来源:拿取.方法以及直觉.拿取也就是可重用资源.对于一个标准的系统而言,可能包含80%的拿取.19%的方法和1%的直觉.而崭新的系统则包含30%的拿取.50%的方法和20%的直觉.由此可见,拿取在软件架构中的重要性,本节我来带领大家了解可重用架构资源. 一个可重用资源可以代表一个可重用需求(在不同系统里反复出现的需求).可重用的解决方案元素(一个架构模式或者可重用代码).可

资源编排之自动化运维

资源编排ROS 资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务.用户通过模板描述多个云计算资源的依赖关系.配置等,并自动完成所有资源的创建和配置,以达到自动化部署.运维等目的.编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能. https://www.aliyun.com/product/ros?spm=5176.100239.blogrighta