一文读懂云上大规模资源管理的最佳实践[阿里云]

为了更好地帮助用户在借助DevOps工具缩短开发周期、提升业务效率的同时,也能让业务保持稳定、安全、可靠,且低成本地持续运营,阿里云弹性计算团队独家出品的【弹性计算技术公开课_CloudOps云上运维季】正式启动。阿里云弹性计算团队十三位产品专家和技术专家共同分享云上运维深度实践,详细阐述如何利用CloudOps工具实现运维提效、弹性降本。该系列共10节直播课程,在阿里云官网、阿里云微信视频号、CSDN官网、阿里云钉钉视频号、阿里云开发者微信视频号同步播出,本次课程由战略合作媒体CSDN独家支持。CloudOps云上运维系列课程第七节由阿里云弹性计算高级技术专家林小平主讲《云上大规模资源管理最佳实践》,点击下方链接进入【CloudOps云上运维】课程专题页即可观看课程回放,还可了解最新课程资讯。【CloudOps云上运维:https://developer.aliyun.com/topic/ecs-cloudops】以下内容根据林小平的课程整理而成,供阅览:我们通常认为企业上云以发展优先、业务优先,但当企业发展到一定阶段时,就会产生管理诉求。业务的运作模式从“花钱买效率”到“管理换效率”的管理模式的转变,效率是企业可持续发展的根基,也带来了对云上管理和治理的强烈诉求。企业所要面对的是从管理模式到业务模式的转换,是从管理模式到技术模式的融合过程,如何做好转换是本节课的主题,将从上云的过程看发展的问题。企业的发展到一定阶段所要面临的管理诉求是不可避免的,是每个企业在发展不同阶段过关注问题不同。关于企业的特点的描述有规模大、管理诉求高、资源多、发展快等等,这些关键字也说明了企业在发展的过程当中所面临的问题。如何帮助企业将内部的管理模式和云上的资源管理相结合,实现可执行、可复制的实践落地方案是本节课的主题,本节课将从以下四个方面来进行介绍。首先,从不同的管理模式下企业所要面临的管理问题,介绍企业在上云发展过程中大规模的资源转换面临的问题;其次,学习企业管理视角与业务视角转换的落地方案,这部分将会从设计、检索、规范三个模块进行介绍;再次,就企业资源管理视角下的最佳实践场景:如何解决安全分账、自动化运维的案例进行介绍,从几个典型的业务场景说明资源管理的最佳实践,即如何应对资源管理转换后的模型满足企业的日常工作的需要;最后,介绍对大规模资源管理实践,总结通过本次学习可以带走的最佳实践。

  • 企业大规模资源管理面临问题:不同管理模式下的问题
  • 前面的内容中曾讲到,企业发展到了一定的阶段会存在管理的强烈诉求,这是企业在发展过程中需要进行思考、转变以及大规模的资源管理实践落地的根本原因,我们需要深入地了解企业大规模管理实践的挑战。1、企业大规模资源管理挑战首先,从云下到云上的视角来说,企业的内部管理和云上的连接不足。就如,企业是利用部门来进行人、财、物管理的,但云上是用产品来进行管理的,两者存在差异,如何更好地把部门管理和云上的资源管理进行连接,这是企业大规模资源管理的挑战之一。其次,企业的管理视角不同。在不同管理模式下,需要不同的资源管理视角。如管理者希望看到不同的资源管理视角,包括部门成本情况、人效情况,而项目管理者则希望看到每个项目、每个人的人效情况,那么如何实现种多视角的管理也是企业大规模资源管理挑战之一。再者,不同的角色需要差异化管理,如财务人员需要财务视角,运维人员需要运维视角,技术人员需要技术视角。如何在不同的视角下进行资源管理同样是企业大规模资源管理挑战之一。最后,基于云上资源具有本身种类多、分布广、产品多、难管理等特点,也就形成了资源规模资源管理的难点。面对资源管理的挑战,从企业的资源管理模式研究企业大规模管理问题。2、企业资源管理模式从企业的资源管理模式来说,它分为运维管理模式和财务管理模式。(1)运维管理模式不同的企业管理方式不同,这与企业当下的管理成熟度有关,管理成熟度越高的企业所需的管理越精细。①分散管理分散运维:也就是说企业没有管理,每个人自管自用,即分散管理分散运维模式。它往往是初创企业选择的管理模式,因为其处于业务优先阶段,是发展的选择。②集中管理集中运维:当企业发展到一定阶段,开始会意识到无管理会存在巨大的风险,如不合规、没有流程、无法把控等等,此时则会产生管理需求。首先,进行职责分离,这就诞生了集中管理和集中运维模式。这种模式下,资源对于管理者来讲“只管不用”,对于使用者来讲“只用不管”。但是集中管理模式会存在较大的挑战,因为其必须要由集中管理模式来管理整个资源的生命周期,而当规模、业务发展得越来越大的时候,集中管理模式就会成为“瓶颈”,相应的企业管理就会面临越来越大的压力和挑战。这种与日俱增的压力和挑战可以解决风险问题,但也会阻碍企业的发展,包括集中管理团队经常要负责的成本管理、身份管理、服务管理、安全合规管理、审计管理、资源管理等等,此时,则要考虑管理和效率的平衡,也就到了精细的管理阶段。③集中管理分散运维:原本资源的创建、使用、分配等一系列的日常管理工作直接交付给项目和业务单元自行管理,同时,集中管理团队又有抓手和评估每个业务单元现在最急迫的业务问题。这样就可以提升企业的效率,即集中管理分散运维的管理模式。企业的资源管理分类要适配企业的发展阶段,并无绝对的好坏之分,而是企业发展到某个阶段,使用更精细的方式实现管理和效率之间的平衡。(2)成本管理模式从财务视角,在从云下到云上的过程中,是从计划经济到按需经济的模式转换。没有了预算枷锁管理的模式也让财务头疼不已,先用后买的模式带来了效率,带来了更好的弹性,也使得业务快速发展,但企业的财务也失去了管控权。在传统行业的财务管理模式下,要购买机器,财务会先批复预算,在得到资金批复之后方可购买;而在云上购买则是按需购买,在财务的管理过程中只能被动支付以不影响业务的延续性。如何让企业经营得更好,如何从被动付款到看清费用,再到优化成本,这是是企业在成本发展过程中的关注点。首先,需要看清成本,即了解每个部门使用的资金数额及资金用途,即企业内部多个业务团队使用资源的情况,那么IT部门的负责人需要把成本分摊到责任人的成本中,使得每一笔资金都记录清晰。任何一笔较大数额的资金在内部结算不清楚,都会导致企业经营面对非常大的挑战。如经典的showback模式和chargeback模式。关于showback模式,企业的管理者们需要了解每一笔账目按照部门的核算情况,其关注的是核算以后是否符合预期,这种模式没有预算和独立过核算的要求,而chargeback模式下,企业的管理者不仅要review每个部门的情况,还要各个部门独立地进行成本的计费、核算和预算的管理。3、云上资源管理的问题随着企业在不同阶段、运维管理模式以及成本管理模式的发展,再来探讨云上在资源大规模的资源管理过程中会遇到的问题,如下图所示:这里的问题更直接、更具体,即在不同的角色关注的问题也不同。如运维人员会关注业务应用如何与云上资源快速对应;如何快速找到对应的资源;如何适配快速的检索能力,而检索能力是基础,只有具备快速的检索能力才能帮助运维人员更好地进行运维。在检索过程中,不只要找某个云产品下的资源,更要找的是与业务相关的属性检索。如对于某个项目,其中某责任人对于该项目资源成本的情况。如何保障资源持续、高效、可治理?其中“治理”是第一步,但在整个管理过程中“持续”非常重要,如何持续治理、保证存量可治理、增量可保障的问题是治理的目的,即为了更安全、更便捷、更自动化地使用资源。在日常管理过程中,我们需要安全地使用资源,那如何设置更精细的管理权限来保障资源在使用过程当中足够的安全以及权限足够的可控?在自动化的过程当中,如何实现云上的自动化的运维能力?从财务的视角来说,如何识别资源和资金的关系?这是财务人员最关注的事项之一。怎样把成本分摊到责任人?怎么帮助企业更好更有效地查看云上的成本情况?在看重“先用后买”模式带来的效率和弹性的同时,也要帮助企业更高效地使用云,这也是财务人员的关注点。接下来,就目前存在的这些问题学习大规模的资源管理实践中这些问题相应的解决方案。二、企业管理视角与云上资源连接:设计、检索、规范1、企业管理视角与云上资源转换首先学习企业管理视角和云上资源之间的连接和转换,如下图所示:上图中左侧表示云产品视角,将云上的云产品视角通过标签、资源目录、资源组等快速地关联起来,使用不同颜色的图标表示不同的部门,这样就可以通过标签快速地将各类资源按照部门进行分类,这样就可以清晰地观察到财务部、业务部等部门分别使用的资源,如右侧所示。在这个过程中,之所以能够在标签的分类中快速且方便地将其转换,是因为它利用了标签在云上的特点(资源的标签键),一个资源只能有一个标签值,这样即可保证将所有资源归属到对应的部门,而不会存在资源跨部门混淆的情况,这样就可以非常简单地实现从产品视角到企业业务视角的转换,这就是所谓的大道至简。2、多账号企业管理视角与云上资源转换从部门视角来说,企业上云过程中为了业务发展会在云上使用多个账号来管理每个部门,如何构建出多账号下的企业部门视角?可以通过资源目录了解多账号下企业管理视角与云上资源的转换。如下图所示:观察上图,可以发现在多账号下可以通过资源目录将企业的每个账号变成对应的成员,再对成员进行统一的资源管理与管控。这样就能够快速地构建出企业级的统一规范和管理视角,即实现由单账号下的企业视角到多账号下的企业视图转换的能力。3、如何关联企业管理视角与云上资源沿着上面的视角转换逻辑,学习关联企业的管理和资源管理,如下图:(1)管理的目的:首先,管理的目的在于帮助企业更好地经营,帮助运维人员获得其他角色人员可以更高效的进行资源使用、运维、自动化等能力。因此,关联管理与云上资源时的设计要具备面向业务、可理解的特点,同时希望关联的关系场景是通用的,具备可复用的能力,此外,对于后面的场景需要有一定的认识,即价值可衡量。(2)操作步骤①定义分类(的名称):好的定义,如“应用”“部门”“项目”等,这些事对于应用使用场景较好的分类;而坏的分类,如将像CIM应用等具体的分类值作为分类的定义,如同时使用“owner”和“归属者”来定义归属的分类,这样就具备了相同的分类含义,而多个分类值会导致分类模糊。②制定分类规范:如“责任人”需要用名字的全称或工号等表示,是对于定义分类规范的释义。③定义应用的范围:即要分类的定义是在某个账号下进行管控?或是多账号进行管控?或是在某个项目、应用、部门下进行管控?该步要定义资源所作用的产品的范围、资源类型等。④把对应的分类和应用的指标应用到业务,如管理场景视图、运维视图、财务视图等。⑤根据业务需要设计更多的分类,持续地治理跟使用。4、如何快速检索资源前面的内容中提到了可以通过分类的方式实现方便的查找,那如何进行快速的检索?阿里云提供了多种多样的检索能力,可以通过云产品的API、资源管控的API、各个产品的资源管理的控制台进行检索,本节课介绍的是阿里云提供的高级搜索的全新功能。(1)资源中心高级搜索:此功能不同于传统搜索方式,它不再受限于基于固定的筛选条件,高级的搜索方式提供了灵活、强大的搜索功能,满足个性化的、复杂的查询诉求。该功能支持复杂场景的搜索,无论是关键资源,还是多种条件下的查询,抑或是统计分析等场景,都能借助SQL轻松应对。如下图所示:通过选中的属性自动生成查询条件,快速实现跨账号的查询,同时,对于日常的事例也进行了模板化的管理,可以直接选择模板进行修改,简化整体的编写过程,快速掌握查询的技巧,能够让用户在云上使用和检索资源时更方便、快速地找到所需的资源。(2)多元化的搜索结果呈现:对于查询结果,阿里云支持视图的呈现,如下图所示:满足查询的结果要求以图表的形式呈现,可以更直观地了解资源的占比、分布、趋势,进而实现跨账号、跨资源类型、跨地域的快速查询。也可以通过搜索的API或对应的检索的API进行检索,如标签查询API,实现跨产品、跨资源类型的检索能力。1、如何保障规范管理在可以进行快速资源检索之后,应如何保障资源在使用的生命周期中始终保持规范呢?要保障资源在使用的生命周期中始终规范,就是要控制符合规范的流程,从资源的生命周期上来看,分别是创建、分配、使用、运维、回收,在整个周期中,会有部分节点会产生不规范的资源,如果可以在这些产生不规范资源的节点加以手段进行控制,即可保障资源始终规范。(1)保障的方法:首先,显而易见的是资源的创建。在资源的运维上,如修改资源标签,增量的产生不规范的资源可以通过控制不规范资源生产失败的方式来拦截对于不规范资源的生产,即事前拦截能力。事前拦截能力利用对于标签策略的事前拦截功能,根据情况可以做到完全拦截、半完全拦截。而如果业务不允许影响资源的创建,只能生产出来再做检测,又该如何处理?可以通过标签策略的检测功能以及自动修复能力可以做到分类标签的检测范围。若分类是部门,企业的部门可选值是业务部、市场部、研发部、财务部等,则出现这几种情况便符合规范,而假设部门不在情况之内则是不符合规范的,如IT部,其不在规范中,就不符合规范。这样,即实现对增量的防范和存量的治理,即可保障资源在使用的全生命周期都是符合规范的。总之,就是通过标签策略的方式进行事前拦截、事后检测。(2)保障的步骤:了解了保障资源规范的方法,接下来学习如何保障,即步骤。如下图:首先,要保障你的资源管理,就要知道设计的分类所作用的场景及其规范和标准,例如,标签后续的场景考虑的是分账,则分组设计要考虑对归属者、团队、部门、产品、子公司,此时分组设计中就要进行标签键的确认,如业务标签设计为biz,标签值是data、business等几个确定的、有限的有效值,产品的标签键设计为product,标签值是p name1等确定的标签值,还有一些其他一系列的标签。同时,对于标签值的规范还可以进行正则的匹配、校验设计。在规范下如何进行应用?如在设定标签键时,可以通过规范来进行设置,假设对业务的可选值设定为1个大写字符+6个数字来表示,则A123123符合规范,123123不符合规范。再次选择产品的范围,确定事后检测的范围。如只对ECS的所有资源进行检测,此时,在检测范围内勾选ECS实例。通过检测范围选定以后,再判断是否要进行事前的拦截,即判断“资源不带标签或者带标签但不符合规范是否可以进行生产”的方式来进行拦截,且如果不符合规范,是否进行自动修复。通过以上步骤的配置就可以保障资源的规范管理。针对一种特殊的场景,如在资源管理过程当中,希望ECS云服务器对应绑定的EIP网卡带由实例的标签,即关联的资源能够快速继承标签,使得所有的资源在整个应用的过程中快速地满足诉求,也可以进行勾选,然后配置对应的分类键,只要EIP挂载的实例有标签,就会自动继承,进而实现对全链路云上资源的管理。这样就保障了资源分类和使用过程中的规范和标准,为后续的业务场景的使用做数据和技术的准备。三、大规模资源场景最佳实践:分权、分账、自动化运维接下来学习企业日常的使用过程中,如何更安全、更便捷、更自动化地使用资源,在这个部分,会从分权、自动化运维和分账三个场景案例介绍在资源管理过程中的实践场景。1、安全精细化权限管理场景如下图所示:当前的场景是授权员工能够停止杭州区域生产环境的ECS实例,条件是操作人员必须在公司的内部网络、必须经过MFA登录。这是日常维护格中非常具体的场景,该场景中假设对于云上的权限管控的基础语法有一定的认识。对于权限,所谓的访问控制,就是指什么身份在何种条件下对资源做何种操作,在该过程中需要关注四个要素,即身份、条件、资源和操作。对应在该场景中,“身份”是员工,“条件”包括3项,即必须在公司的内部网络、必须是MFA登录、操作是生产环境,“资源”是杭州的ECS实例,“操作”是停止实例。经过对权限场景的分析后,通过ABAC模型,即基于属性的权限管理策略来进行权限的设计。关于策略设计,如图中右侧所示。这里要强调,生产环境是条件而不是资源。如何判断是条件还是资源呢?资源属性一般带有地域、账号(ID或名称),除此以外,其他的描述资源的信息都属于条件。由此,是否有权限取决于操作的人员是否满足内网和MFA的条件,还要判断是否具备相关操作环境的权限。从上图中的左下侧可以看到,测试人员想要访问生产环境,由于其没有生产环境的标签,因此其不具备访问、运维、生产环境的权限,不能停止生产环境的实例。反之,如果测试人员有对应的测试环境的标签,就可以通过对应的标签进行相关测试环境资源的停止操作。对于运维人员,由于其对应的标签是灵活赋予的,换言之,当运维人员在操作生产环境时,可以被加上生产环境授权的标签,进行生产环境的处理,同样运维人员加上测试环境的标签,就可以对测试环境进行停止运维的操作。左下图中右侧示例图是针对生产环境的权限设计,即图中灰色部分的权限。若要将其转换成黄色部分的权限,只需要把策略右边中的红色字“production”换成“testing”。对于安全、精细的分组管理就会变得非常简单,只需关注标签即可,策略是不需要变化的,能够非常灵活地进行权限的管控。拓展:如项目A的成员可以访问项目A的资源,项目B的成员可以访问项目B的资源,但是两个项目的成员不可以访问彼此的资源,这种情况下要如何进行安全实践场景的落地呢?2、自动化运维场景如下图所示:当前场景是企业用应用管理资源,需要按照应用关注的应用监控信息进行资源的扩容、缩容,目的是降本增效。换言之,就是希望资源可以在业务流量突增时快速扩容机器以应对突发流量带来的业务压力,同时通过弹性伸缩的方式在业务低峰时进行资源的缩容,实现成本的优化,以最大效率的实现资源的高效利用。整个过程都是自动化的,不需要人为介入,应如何实践该场景呢?首先,要在创建应用时候配置云监控自动识别相关的标签,这样只需配置一次即可,在后续的资源生产中都无需再关注配置,创建的资源或者存量打上标签的资源会自动地加入到该分组中。这种自发现资源的能力可以帮助我们快速实现维监控场景的分组监控能力,进而识别业务的峰谷值。例如,在CPU的峰谷值场景下来进行资源扩展的场景。拓展:如何结合普罗米修斯实现容器的自动集群创建能力?1、如何快速分清账单更好的成本管理可以为内部的管理和云上深度的扎根打下坚实的基础,也可以让大家在看清费用的成本的同时,更高性价比地使用云上的资源。而看清费用是成本管理的第一步,也是最关键的一步。如何在杂这关键的一步上进行实践?即谁花了钱?花了多少钱?对于财务管理者来讲,首先要关注的场景分类是什么?例如,财务负责的单元,有些企业按照部门,有些企业按照项目,有些企业按照员工,有的企业按照业务。财务单元的设计是财务成本管理的最小单元,也是企业关注成本及员工效能的进一步优化,以及后续实现企业运营提效的关键一步。那要如何快速的分清账单呢?如下图所示:首先,财务负责设计财务的负责单元,即通过标签进行资源的分类,也就是进行分类类别的设计;然后,开启财务的管理能力;接下来进行财务管理报表的查看;最后通过查看财务报表的数据进行思考,以及落实责任人,实现降本提效。通过这四个步骤,财务的成本管理以及治理就做好了数据准备。分账案例说明:接下来通过案例了解如何实现成本管理,如下图:在此案例中设计标签键department,标签值是业务部、市场部、研发部和运维部。这样通过标签键的视角,就可以看清楚每个部门的成本情况。要进行更多维度的管理,只需通过多个标签来进行分账管理即可。如财务的多级财务管理,要在每个部门下按照项目组进行分账,可以通过对应的多视图的方式关注每个部门、每个项目组的账单情况。同时视图是可以进行保存的,可以实现对相应部门的成本情况持续进行跟踪及优化,这样企业的业务的运作模式就可以从“花钱买效率”转变为“管理换效率”,有效提高企业的可持续发展。从上图中的右侧可以看到,在“维度分类”中选择实例标签,在最下方选择标签为department,即部门分类,查看应付金额,设置时间粒度为月,就可以看到每个部门对于的花费情况,再进一步地通过多维度的视图看到责任人对应花费的金额。企业大规模的资源管理的设计是以全局的、统筹的视角来进行规划和考虑,这往往也是业务发展过程当中最难的一步,因为企业上云的步伐是循序渐渐进的,大部分是一个部门先上云,进行独立管理,此时还没有资源管理和分账的诉求,到每个BU上云进行独立管理(因为初期每个BU都是进行独立管理和独立结算的),当企业规模化上云以后,用云的团队和云上支出开始增加,管理的模式从分散的管理模式到集中的管理模式进行转换,进行统一的支付和成本的分摊。通过管理和治理能力的提升,以及各种成本管理、治理以及分类的工具的使用,能够辅助进一步的加强企业在上云过程中的体验,帮助企业内部结算清晰化,也能够帮助企业降低成本。四、大规模资源管理实践:设计、应用接下来总结一下在资源管理的设计过程中,需要关注的设计点包括哪些。1、大规模管理的原则首先需要了解设计的原则,即如何设计、如何分类,如下图:在设计标签键时:第一,要保障所关注的设计要点的分类可以覆盖所有的资源,即互斥和集体详尽原则,如部门要保证所有的资源都具备部门分类。第二,要确保值的规范,最好配置有限制原则,进行有效的管理资源分类。即设置部门时,由于部门有限,应把部门对应的相关逻辑设计清楚,如一个企业有业务部、数据部、财务部,在把部门梳理清楚以后,即可配置有限值原则,可以更好地进行资源的管理和管控;也可以使用预制标签的方式先将对应的规范定义清楚,在业务使用方在使用资源时只需做出选择即可,不会存在二异性,导致使用错误的情况。第三,要精简标签键的设计,仅在需要时设计分类,而不过度地设计分类,因为过度的设计分类会导致分类过多,进而导致整个使用管理的难度增加。同时,在标签键的设计上不要有二异性,如一个标签分类用多个键来表示。最后,要考虑未来的变化性。如部门的设计,部门分类要考虑未来的变化,部分部门会进行调整,进行整合、转换,转换后对应的值如何变化?带来的资源如何变化?带来的成本如何变化?要考虑未来的变化能够符合对应的设计结果。2、大规模资源管理的步骤如下图所示:

  • 要明确企业的发展阶段以及选择的管理模式。
  • 要确定管理诉求,以确定对应的管理诉求场景,即管理的目的以及要解决问题。
  • 设计场景的分类。
  • 规范场景的标准,要确定每个场景能够被所有的资源规范地使用。
  • 小范围的测试实践场景的分类。
  • 将场景分类应用到对应确认的场景中。
  • 持续地治理优化,不管是资源,还是成本,都要进行持续的治理和优化,才能保障整个管理的结构和步骤持续有效。
  • 3、可以带走的实践通过本节课的内容,可以带走许多与企业管理密切相关的最佳实践,如下图所示:

  • 企业管理和云上资源管理的最佳实践,通过资源的分类设计,为实现企业后续的场景应用做数据基础。这部分内容可以跳转到“企业管理视角与云上资源转换”章节进行了解。
  • 可以带走快速实现多维度的分账的最佳实践,从showback模式和chargeback模式看企业财务管理从计划经济转换成按到按需经济的转变。这部分可以跳转到对应的“如何快速的分清账单”模块了解。
  • 在扩展场景当中,思考项目权限的管理的最佳实践。这部分可以跳转到“如何进行分组的权限设计”学习“企业如何精细化权限管理”模块,学习做项目权限管理的最佳实践。
  • 最后,通过标签策略实现资源的规范管理。这部分可以跳转到对应的“如何保障规范管理”的模块了解。以上就是本节课程的全部内容,同时欢迎大家点击链接 / 扫描下方海报中的二维码进入【CloudOps云上运维】课程官网,了解最新课程资讯!