关于灰度发布:通过-OpenKruise-实现基于-Higress-的全链路灰度

OpenKruise 是一个基于 Kubernetes 的扩大套件,次要聚焦于云原生利用的自动化,比方部署、公布、运维以及可用性防护。本文介绍通过 OpenKruise 构建自动化运维的形式实现全链路灰度性能。 灰度公布进步利用交付的稳定性和效率在公布利用的过程中,咱们通常心愿用大量特定流量来验证新版本的公布是否失常,以保障整体稳定性。这个过程被称为灰度公布。对于灰度公布,咱们通过逐渐减少公布的范畴,来验证新版本的稳定性。如果新版本呈现问题,咱们也能及时发现,管制影响范畴,保障整体的稳定性。 渐进式公布个别具备以下特点: 逐渐减少公布的影响范畴,回绝一次性全副公布;阶段性的公布过程,能够通过金丝雀公布形式小心验证,以验证新版本的稳定性;可暂停、可回滚、可持续、可自动化状态流转,以便灵便地管制公布过程并确保稳定性。据调研数据 70% 的线上问题都是因为变更导致,咱们常说平安生产三板斧,可灰度、可观测、可回滚,也是为了管制变更带来的危险与影响面。通过采纳灰度公布的形式,咱们可能更加持重地公布新版本,防止因公布过程中呈现的问题而带来的损失。 微服务架构对灰度公布提出了更高的要求 在微服务架构的场景下,传统的灰度公布模式往往不能满足微服务交付的简单、多样化的需要。这是因为: 微服务调用链路比拟长,比较复杂。在微服务架构中,服务之间的调用链路比较复杂,一个服务的改变可能会影响到整个调用链路,从而影响整个利用的稳定性。一次灰度可能波及多个模块,整个链路都要调用新版本。因为微服务架构中服务之间相互依赖,一个服务的批改可能须要其余服务的相应调整。这就导致了在进行灰度公布时,须要同时调用多个服务的新版本,减少了公布的复杂度和不确定性。多个我的项目并行,须要部署多套环境,环境构建不灵便、老本高。在微服务架构中,往往会有多个我的项目并行开发,须要部署多套环境来反对不同的我的项目。这就减少了环境构建的难度和老本,从而导致公布效率低下。为了解决这些问题,咱们须要采纳更加灵便、可控并且实用于微服务场景的公布形式,全链路灰度公布的场景也就应运而生。通常每个微服务都会有灰度环境或分组来承受灰度流量。咱们心愿进入上游灰度环境的流量也能进入上游灰度的环境中,确保1个申请始终在灰度环境中传递,从而造成流量“泳道”。在“泳道”内的流量链路中,即便这个调用链路上有一些微服务利用不存在灰度环境,那么这些微服务利用在申请上游利用的时候仍然可能回到上游利用的灰度环境中。 $$全链路灰度为微服务公布保驾护航$$ 这种形式能够依据服务的理论状况,能够对单个服务能够进行独立的公布和流量管制,也能够管制多个服务同时进行公布变更,从而保障整个零碎的稳定性。同时,还能够采纳自动化的部署形式,实现疾速、牢靠的公布过程,进步公布效率和稳定性。 实际全链路灰度的挑战在 K8s 中实现微服务全链路灰度公布是一个非常复杂的过程,须要波及多个组件和配置的批改与协调。以下是具体的一些步骤和问题: 在微服务架构中,网关是服务的入口,须要依据灰度公布的要求,调整网关配置,实现路由匹配和流量特色(比方 Header 批改)。为了实现全链路灰度公布,须要新部署一套灰度应用环境,并为其打上灰度标记(新部署一套 Gray 利用以及 Gray 灰度标)。这样能够将流量流向灰度环境,从而实现灰度公布。验证流量失常,将基线环境降级,销毁灰度环境,复原网关配置。在灰度公布过程中,须要对流量进行验证,确保流量的失常流向和服务的失常运行。如果验证通过,能够将基线环境降级到灰度版本,并销毁灰度环境。最初,须要复原网关的配置,以确保流量失常流向。如果产生异样,须要疾速回滚。因为微服务架构简单,可能会呈现各种异常情况,比方服务解体、流量异样等。在这种状况下,须要疾速回滚,以防止产生更大的损失。因而,须要事后设计好回滚计划,并在产生异样时疾速执行回滚操作。另外一方面,生产的流量是端到端的,那么意味着咱们须要管制流量在前端、网关、后端各个微服务等组件中闭环。不仅仅是 RPC/Http 的流量,对于异步调用比方 MQ 流量咱们也须要合乎全链路“泳道”调用的规定,这整个过程中波及到的流量管制的复杂度也是十分高的。 为了简化微服务全链路灰度公布的过程,能够应用一些自动化工具和产品,如 MSE、Kruise Rollout 等。这些工具和产品能够帮忙咱们更加便捷地实现微服务全链路灰度公布,并进步公布的效率和稳定性。 Kruise Rollout+MSE 端到端的全链路灰度公布实际为什么要 Kruise Rollout?Kruise Rollout[1]是 OpenKruise 社区开源提出的一个渐进式交付框架。其设计理念是提供一组可能将流量公布与实例灰度相结合,反对金丝雀、蓝绿、A/B Testing 等多样化公布模式,以及反对基于 Prometheus Metrics 等自定义 Metrics 实现公布过程自动化,无感对接、易扩大的旁路式规范 Kubernetes 公布组件。次要个性如下: 非侵入性:不对用户的利用交付配置做任何的侵入,应用旁路的形式来扩大渐进式交付的能力,并且可能做到即插即用的成果。可扩展性:充分考虑了对多种相似的工作负载的反对(Deployment、StatefulSet、CloneSet 以及自定义 CRD 工作负载);在流量调度方面,通过 lua 脚本的计划可能反对 Nginx、Alb、Mse、Gateway API 等多种流量调度计划。 Kruise Rollout 自身就反对各种灰度公布的能力(金丝雀、A/B Testing、蓝绿公布),深刻理解后发现它的公布模型十分符合 MSE 全链路灰度,因而与 Kruise Rollout 联合后能够十分不便的让用户实现 MSE 全链路灰度公布能力。 ...

August 17, 2023 · 4 min · jiezi

关于灰度发布:功能管理Feature-management对软件交付的影响

对于产品研发团队来说,每次软件新版本公布的时候都会面临很大的压力,研发人员、产品经理、测试人员甚至市场经营人员都要在新版本上线的时刻随时待命应答随时可能呈现的意外状况,新版公布当天加班熬夜也曾经成了常态。一批性能历经一个迭代周期的开发,再从测试环境公布到生产环境上,总会存在较大的危险。如何改善以后软件交付的情况?是否让软件公布简略、疾速、平安低危险呢?要实现这一个指标,就要从性能治理说起。 一、什么是“性能治理”?"性能治理"是一种软件开发中的理念与实际。将新性能通过带有开关管制的代码部署到生产环境中,并将性能有选择性地开释给终端用户。与以往的版本公布形式不同,按版本为粒度的公布通常揉合了一批新的性能,所有性能只能在这一个批次中全副提供给用户,遇到公布问题只能全副进行回滚。而性能治理能够做到按性能粒度灵便地、无效地、平安地、疾速地抉择公布规定,并且能够独自验证每个性能的成果。 二、性能治理与渐进式交付渐进式交付是将简单的工程项目进行分阶段拆解,通过继续进行小型迭代闭环,升高交付老本并节俭交付工夫。性能治理和渐进式交付的指标是统一的,都是升高软件产品危险,疾速验证商业指标。性能治理在『性能』粒度为渐进式交付铺平道路,使单个性能的渐进式交付成为了可能。在以后变幻无穷的商业环境中,通过渐进式性能交付,让产品在软件开发过程中赢在起跑线上。 三、性能治理与DevOps性能治理也是 DevOps 中的重要一环,通过性能治理,能够更好的达成 DevOps 中的以下指标: 进步部署和公布效率缩小变更筹备工夫升高 MTTR(均匀修复工夫)升高变更失败率四、性能治理的四大支柱性能治理由构建、运维、复盘、赋能,四大支柱撑持。通过这四大支柱的实际,能力施展性能治理最大的效用。 构建构建蕴含了性能开关的创立、新性能的交付、问题修复和代码变更等。布局和构建性能开关是产品性能公布前,甚至是研发开始前的重要流动。它会影响到软件的产品性能以及研发打算,比如说开发团队采纳哪种分支管理模式、测试过程如何安顿独立性能与性能组合测试、产品性能维度的推广公布打算等。构建的指标是更快的开发部署,升高产品试错老本,并且能够疾速的验证代码变更带来的成果。 运维在产品运维过程中,能够利用性能开关监控去查看性能的线上运行状况与用户反馈,一旦性能有故障或者用户反馈异样,能随时敞开性能,能够在几秒内疾速打消影响,保障应用程序其余性能的失常应用。 复盘复盘能够让产品团队更好地理解到产品更新是如何影响到零碎和用户,整个团队包含设计、产品、研发、管理者都能够通过性能治理平台复盘学习,更全面地理解产品对用户行为的最终影响,最初由数据驱动产品。 赋能传统的软件交付形式依赖于研发人员,只能由研发人员来操作设置公布。性能治理能够将产品公布受权给经营、产品、销售等非研发技术人员。相比拟研发人员来说,产品、销售、经营等工作人员接触到前端的实在用户,能够更理解用户的实在需要,但因为不足技术能力,导致他们无法控制公布,也不足验证需要以及商业可行性的伎俩与工具。性能治理能够赋予他们这些应有的能力。他们不须要把握研发技术,只须要极少的学习老本即可疾速上手将产品性能公布给特定条件下的用户,并获取到用户反馈。 FeatureProbe 是为性能治理量身打造的产品,咱们的使命是让产品性能公布更有价值,推动行业软件工程能力的晋升,由被动的软件交付形式转为被动布局、性能粒度管制的公布模式。 目前 FeatureProbe 应用 Apache 2.0 License 协定曾经齐全开源。你能够在 GitHub 或 Gitee 获取到所有代码。与此同时,咱们提供了无需部署的在线试用环境 和一个仅需5分钟即可体验的示例我的项目.

September 14, 2022 · 1 min · jiezi

关于灰度发布:kong安装部署含Canary

1.装置kong## centos7 参考 https://docs.konghq.com/install/centos/## 下载包,如果环境没联网,能够通过本地下载好上传至服务器wget https://bintray.com/kong/kong-rpm/download_file?file_path=centos/7/kong-2.3.0.el7.amd64.rpmsudo yum install /path/to/kong-2.3.0.el7.amd64.rpm --nogpgcheck## ubuntu 参考 https://docs.konghq.com/install/ubuntu/## 下载包,如果环境没联网,能够通过本地下载好上传至服务器wget https://bintray.com/kong/kong-deb/download_file?file_path=kong-2.3.0.bionic.amd64.debsudo apt-get updatesudo apt-get install /absolute/path/to/kong-2.3.0.bionic.amd64.deb2.装置插件 canary2.1. 在线装置## 在线装置 lua-resty-iputilsluarocks install lua-resty-iputils## 在线装置 canaryluarocks install canary2.2. 离线装置在有网的中央下载好源码文件 ## 提前下载并重命名为 lua-resty-iputils-0.3.0.zipwget https://github.com/hamishforbes/lua-resty-iputils/archive/v0.3.0.zip## 拜访 https://github.com/raoxiaoyan/kong-plugins-canary 下载源码 kong-plugins-canary-master.zip## 下载最新的 canary-1.0.4-1.rockspec,因为源码我的项目没有wget https://luarocks.org/manifests/raoxiaoyan/canary-1.0.4-1.rockspec将 lua-resty-iputils-0.3.0.zip , kong-plugins-canary-master.zip , canary-1.0.4-1.rockspec 上传至指定服务器 ## 解压 lua-resty-iputils-0.3.0.zipunzip lua-resty-iputils-0.3.0.zipcd lua-resty-iputils-0.3.0## 装置luarocks make lua-resty-iputils-0.3.0-1.rockspec## 解压kong-plugins-canary-master.zipunzip kong-plugins-canary-master.zipcd kong-plugins-canary-master## 将之前下载的 canary-1.0.4-1.rockspec 放到当前目录下cp canary-1.0.4-1.rockspec .## 装置luarocks make canary-1.0.4-1.rockspec3.配置kongkong启动是会读取/etc/kong/kong.conf文件,配置文件内容具体如下:装置cassandra集群 log_level = noticeplugins = bundled,canaryproxy_listen = 0.0.0.0:8000# 依据理论状况批改admin_listen = 127.0.0.2:8001database = cassandracassandra_contact_points = 127.0.0.1,127.0.0.2#依据理论状况批改cassandra_port = 9042db_update_propagation = 5cassandra_repl_strategy = SimpleStrategycassandra_repl_factor = 2#异步从Cassandra更新配置worker_consistency = eventual#nginx最大body size 20mnginx_http_client_max_body_size = 20m配置好/etc/kong/kong.conf文件,需执行以下命令: ...

October 19, 2021 · 1 min · jiezi

关于灰度发布:3问详解灰度发布让运维拥抱变更-IDCF

导读what:什么是灰度公布?——灰度公布概念、次要组成部份。why:为什么要有灰度公布?——灰度公布的背景、多角度剖析作用。how:如何实现灰度公布?—— 灰度公布次要步骤、架构计划抉择、常见的部署计划、案例介绍。写在最后面谁说利用变更只能早晨公布,白天公布能够有。谁说运维不晓得利用上线后性能怎么样,性能怎么样能够晓得。谁说新利用上线后会所有客户都是小白鼠,能够让多数的人先尝鲜。谁说测试的重点在功能测试,用户体验测试与交互评估也能够有。谁说利用变更回切计划太简单,无缝切换部署能够有。利用零碎通过建设灰度公布平台,能够实现: 放大可能危险的波及范畴,比方新推产品或性能,容易呈现用户体验不爽或者性能低下等有余; 尽早排汇用户的反馈,产品不用100%完满才推出,能够先让局部用户试用,剖析用户行为或吸取用户反馈后,再采取疾速步骤改良产品; 进步产品的最终品质,分流的灰度公布等于除了行内测试外再扩充测试人群的范畴,咱们让更多的忠诚用户直接参与测试,让更多双眼睛来发现暗藏的缺点; 程序降级更加有序和自动化,以往如果降级波及简单的数据变动,很有可能须要停机解决,但如果是以分流公布的形式,逐批更新降级,或由用户触发,就能够实现不停机处理;通过无缝部署、分流等技术计划,运维人员能够在白天公布利用,大大解放了运维人员的生产力。一、什么是灰度公布?灰度公布是利用公布部署的一种形式,因其可尽早的发现问题的同时升高整体公布的危险的特点,己成为互联网产品公布罕用的一种形式,那么什么是灰度公布呢?百度百科的概念是在黑和白之间平滑过渡的一种产品公布形式。 艰深的讲,能够这样了解:产品的公布过程不是欲速不达,而是逐渐扩充应用用户的范畴,从公司外部用户->忠诚度较高的种子用户->更大范畴的沉闷用户->所有用户,在灰度公布过程中,产品发布者依据某种规定策略,让一部分用户持续用原来的产品性能,另一部分用户开始逐步启用新性能,在过渡的过程中通过收集体验应用的数据,对新版本利用的性能、性能、稳定性等指标进行评判,进而决定持续放大新版本投放范畴直至全量降级或回滚至老版本。 从下面的概念形容看,一个灰度公布的架构须要有以下的组成部分: 用户标识:用户标识用于辨别用户,辅助数据统计,保障灰度公布过程中用户体验的连贯性(防止用户在新旧版本中跳变,匿名Web利用比拟容易有这个问题)。匿名Web利用可采纳IP、Cookie等,需登录的利用可间接采纳利用的帐号体系。指标用户选取策略:选取哪些用户后行体验新版本,是强制降级还是让用户自主抉择等。可思考的因素很多,包含但不限于地理位置、用户终端个性(如分辨率、性能)、用户本身特点(性别、年龄、忠诚度等)。对于轻微批改(如文案、大量控件地位调整)可间接强制降级,对于相似新浪微博改版这样的大型降级,应让用户自主抉择,最好可能提供让用户自主回滚至旧版本的渠道。数据反馈:灰度公布的实质实际上是让用户帮你测试,然而用户不是专职的测试,所以他个别不会被动报bug(除非遇到大问题,然而当用户被动报bug的时候,也就是你收到投诉了,这个应该不是你想看到的),然而有用户投诉不是最坏的,最坏的是用户不投诉,或者新产品为用户提供了无力的破绽,这时候如果监控不到位。那迎接你的将是毁灭性的回滚和修复!所以灰度公布要有平安隔离,欠缺的监控,并且有敌对的指标客户群 用户数据反馈在失去用户容许的前提下,收集用户的应用新版本利用的状况。如客户端性能、客户端稳定性、应用次数、应用频率等。用于与旧版本进行比照,决策后续是持续扩充新版本投放范畴还是回滚。服务端数据反馈:新版本服务端性能、服务端稳定性等,作用与用户数据反馈相似。新版本回滚策略:当新版本灰度公布体现不佳时,应回滚至旧版本。对于纯正的Web利用而言,回滚绝对简略。次要难点在于用户数据的无缝切换。对于客户端利用,如果期待用户自行卸载新版本另行装置旧版本,老本和流失率都太高。能够思考通过疾速另行公布新版本,利用降级来“回滚”,笼罩上次灰度公布的批改。二、为什么要灰度公布?每年都会有大大小小的许多利用变更、架构革新等,这些变更有这样一些特点: 新产品或大我的项目首次公布时;利用开发存在大量bug,但业务赶着上线;业务策略不明确拿不准时;面向特定用户群体时;大范畴降级时 ……通过大大小小的各种变更后,咱们晓得面对上述的特点的利用变更轻则带来一些功能性的bug,重则带来重大的客户或行里的资金损失、监管危险,甚至整个业务瘫痪。这些教训让咱们一步步的欠缺高可用的利用架构、弹性的资源池、各种技术应急计划以应答突发事件,但教训却无奈让咱们把握这些利用变更后影响到底有多大,这是运维的困惑,同时也是开发、业务的困惑。灰度公布就是为了解决以上的困惑而来。 2.1 于IT运维人员 — 咱们心愿利用是稳固的,另外咱们真的很累。传统金融正在向互联网金融过渡,互联网金融有一个特点,就是不停的降级,降级,再降级,变更窗口从每月一次,到每月两次,到当初每周一次的公布频率都不算多,系统升级总是随同着危险,新旧版本兼容的危险,用户应用习惯忽然扭转而造成用户散失的危险,零碎宕机的危险..... 正因为变更带来危险,且对运维人员带来的感触是最间接的,所以运维人员则往往视变更为敌人。银行依附运维人员维持失常业务运维和施行让银行赚钱的服务。因为变更会影响稳定性和可靠性,运维业务有理由对它说不。就算不统计,咱们也晓得事件中有80%状况是源于变更。 另外,正是因为变更将给利用带来运行危险,所以在银行的运维人员是苦逼的,数据中心的大楼在早晨夜深人静时往往会分外繁忙,在人们还在睡梦里时咱们在做着咱们最不想做的变更,做完变更还要等着行将产生的各种应急工作。 灰度公布能够提前发现问题,并通过部署策略管制公布动作对业务的影响,一方面能够缩小新版本程序大规模应用后的危险;另一方面也能够让运维人员并不一定要在无业务或大量业务应用的夜晚能力进行变更。 2.2 于开发人员 — 咱们心愿应用软件性能不要出问题。在一个产品研发过程中,个别在公布前都有线下测试阶段,那么是不是线下测试验证通过后,就能够间接将产品的新代码公布上线,笼罩原来的版本呢?这样做其实有很大的危险,因为线下测试的运行环境和线上环境不是完全一致的,可能线下运行OK,到线上就出问题。 另外,失常一个产品开发过程中,会对其进行功能测试,用户体验测试,交互评估等。功能测试能够让产品尽量少的BUG;用户体验测试与交互评估等能够在开发过程中,使产品尽可能的满足于用户的应用习惯,以及对性能的可接受程度。但这些都是少部分人的感觉与习惯所产生的后果,只是公司外部的测试+小范畴内部测试。 同时,在互联网产品的公布中,因为业务心愿最快的抢占市场,大多都是做到这里就间接上线,替换了原有的版本,这种跳跃式的公布是十分危险的。 灰度公布能够减少了更大范畴的内部测试,是一个一直的放量过程,通过这样的公布过程能够使产品的问题裸露进去,而不会影响到全副的用户,最终能够让产品最大水平稳固、适宜用户,而这些问题能够通过业务策略进行管制。 2.3 于业务人员 — 咱们要更多的流量、更多的用户、更多的资金流入。业务人员,尤其是互联网金融的业务人员大脑承受着大量的陈腐事物,他们急不可待的心愿他们的新产品能够更高频度的公布到市场,抢占市场。他们要更多的流量、更多的用户、更多资金流入。 但他们往往又疏忽了变更的高频给开发的版本治理、程序品质带来极大的危险,这种状况带来的后果常常是:在各方迫切的要求下,产品下来了,然而劫难随着而来,零碎不仅不适宜大部分用户,而且还有错账,客户反而散失了。 灰度公布一方面满足业务高频公布利用的需要,另一方面通过灰度分流的公布变更,让新版的零碎越来越稳固。同时通过数据分析,变更优化,让利用设计更合乎客户的应用习惯等要求。使业务人员能够去关注流量、用户量、资金的收益,去思考如何推广新的业务,而不是思考如何进行客户解释、应急工作。 2.4 于客户 — 咱们不仅要有一个相对正确的零碎,还是一个好用的利用。对于用户体验方面,在线下测试阶段的用户是不全的,只有测试、开发和PD等人,他们的体验不能齐全代表线上的大量用户。另外还有性能方面的起因等等。 所以,个别线下测试通过后,在公布阶段会采纳灰度公布的形式,选用线上的局部服务器部署新代码,剩下的服务器依然部署老代码,而后进行引流,局部申请采纳部署了新代码的服务器解决,剩下的申请采纳依然部署着老代码的服务器解决。通过一段时间的线上察看,没问题后,再更新所有的服务器。 三、如何实现灰度公布?3.1 灰度公布前需思考的两个问题1)策略用户策略:用户量规模(程度)、用户群属性(垂直);产品策略:性能笼罩、经营布局试验;数据策略:数据模型、行为剖析 ;部署策略:回滚、新旧零碎并行 。2)部署分流规定设定数据分析系统软件配置软件部署3.2 常见步骤定义策略:确定分流的目标、放量的规模、递增的频率、回滚的策略等;筛选用户:确定分流拜访的用户特色,定义规定或导入名单;拜访分流:技术撑持,通过DRE(分流公布引擎)重定向用户申请;部署利用:打包部署独自的分流环境;体验反馈:收集分流用户试用后的倡议反馈,修改产品设计。3.3 常见架构以下是灰度公布常见部署环境,对于灰度公布有几个重要的组成部门: 分流策略计划(性能、规定、策略)版本治理(含多版本运行,部署回切计划)数据分析(发现问题) 几种可选的计划: 1)灰度计划独立于现有环境部署在原有的生产环境服务器以外,独自部署一套服务器,并在这些独自的服务器上部署灰度版本利用,提供给外部或内部的体验用户应用,灰度体验实现后,再对生产应用的服务器进行惯例的部署公布。这种部署计划下灰度环境相似于试运行或演练环境,但不同的是此环境会用到正式生产环境的后盾接口及数据库模块等。 长处:对现有零碎革新小,灰度环境老本要求低,容易实现。对公布利用的部署形式扭转小,在灰度体验后,还是能够用原来的部署形式进行公布 灰度环境呈现性能问题不会影响到生产服务器 同一台服务器上只有一个版本(生产或灰度),不容易误操作。毛病:在灰度体验完结后,未能平滑的将灰度推广到全网用户,须要对公众环境进行一次传统的中断业务的公布。同于独自部署一套灰度环境,新增服务器的资源决定能够反对灰度体验用户数的规模,通常资源分配无限,无奈进行大面积的灰度体验。 2)灰度与生产服务服务部署在雷同的服务器充分利用服务器资源,在同一个资源中部署两个服务,其中一个正式的SVR,另一个是类度的服务,因为不同的服务端口不一样,能够通过负载均衡器实现不同的版本的申请散发。 长处:可能充分利用硬件环境,灵便分配资源 能够实现版本间不会相互影响 只是服务级别的故障呈现,正式服务不受影响。毛病:在零碎忙碌时,可能呈现灰度利用抢正式利用的资源,一旦硬件故障则所有版本都会有问题。 3.4 版本治理灰度版本治理是指须要有零碎有实现升级包文件、版本号,零碎利用部署、降级、备份、回切等自动化部署的计划。这个版本治理有别于以前的版本治理的一点是:灰度公布呈现的版本升级或回切,不能影响用户端业务的连续性。 3.5 我行建设的灰度公布零碎的参考架构 起源:运维之路 作者:彭华盛申明:文章取得作者受权在IDCF社区公众号(devopshub)转发。优质内容共享给思否平台的技术伙伴,如原作者有其余思考请分割小编删除,致谢。 IDCF DevOps黑客马拉松,2021年度城市公开赛,11月6-7日,深圳站,企业组队参赛&集体参赛均可,一年等一回,错过等一年,连忙上车~公众号回复“黑马”退出

October 12, 2021 · 1 min · jiezi