阿里巴巴 DevOps 工具体系

简介: 随着阿里巴巴多元化业务 20 多年的高速发展,技术体系经历了 web 时代、移动化时代、数据智能时代、云计算时代等多个重大变革。在这些变革中,开发者面对的技术体系、工具体系、知识体系也在不断进化。研发工具在其中起到了技术规模化和降本提效的关键作用。

随着阿里巴巴多元化业务 20 多年的高速发展,技术体系经历了 web 时代、移动化时代、数据智能时代、云计算时代等多个重大变革。在这些变革中,开发者面对的技术体系、工具体系、知识体系也在不断进化。研发工具在其中起到了技术规模化和降本提效的关键作用。

工具体系总览

通常企业中技术人员会按照技术工种分为前端、移动端、服务端、数据、算法、测试、运维等多个角色,这也代表着当前软件工程领域的几大技术分工。每种技术栈都有自己独有的技术发展路径和配套工具集,在阿里巴巴除了这种纵向的技术维度切分以外,还存在按照用户感知路径从前往后的横向切分。比如偏向业务侧的 no-code/low-code 编程,偏向通用侧的 pro-code 编程等。

image.png

研发工具体系发展大体分为:技术栈标准化、工具流程平台一体化、细分场景技术多样化三个主要阶段。

在一种特定技术领域发展初期或者公司刚成立之时,会出现技术框架百家争鸣,多种研发流程并行的情况,通常主流技术栈收敛是提升研发效率的第一选择。比如阿里开发中 Java 技术栈人员占比超过 50%,基于 Java 技术栈演进出的中间件、编程框架、配套工具,以及研发流程会高度耦合,形成统一研发解决方案。

解决方案的产品化会诞生一体化的工具流程平台,而此平台对企业的核心收益在于将固有流程标准化和自动化,抬升了所有技术员工的技能底线,从而提升平均人效。另一方面工具平台可以帮助企业积累可用资产,并将过程数据进行汇总分析,为管理者提供决策依据。

研发工具发展的第三阶段是与企业业务深度耦合和定制后的场景化,实现特定领域的效能突破。比如 OA 领域的无代码编程、前端智能化 P2C、服务端函数编程等。

阿里巴巴 DevOps 平台

我们通常所说的 DevOps 是计划、代码、开发、测试、发布、运维、监控的全流程,分为三大阶段:需求分析阶段、代码开发阶段、交付运维阶段,分别对应以需求为中心、以代码为中心、及以应用为中心的三个工具平台。

平台首先需要解决的是如何管理企业研发类资产的问题,通常分为知识类资产(需求、文档、设计图等)、代码类资产(程序、配置、数据等)、应用与资源类资产(实现对外服务的逻辑单元以及背后的物理资产)。其次需要记录研发过程所产生的数据,用于分析寻找提升效率的路径。

工具平台会将资产数据和过程数据沉淀到统一的数据中台之上。而串联数据的正是 DevOps 从计划到监控的标准化流程。在阿里我们称之为价值流,代表着一个业务价值从定义到实现的全过程,而这种价值交付的速度正是研发效能。

image.png

基于“云”的 DevOps 体系

当前企业上云几乎成为必选,建立 DevOps 体系的时候必须要考虑“用好云”的问题。从阿里巴巴的经验来看,“用好云”的关键是给开发和运维两种角色分别建立用云的工具切面。

运维或者 SRE 这个角色是基础设施的创建和维护者,他所关注的是大量零散的 IT 资产,如何管理这些资产,控制其生产和运维流程是最重要的。我们会选择一个基于 ITIL 或者 ITSM 的“云资源管理平台”来帮助运维人员提升管理效率,因此称之为面向“资源”的管云界面。

开发和测试所关注的是如何快速安全的将业务需求转变为线上可以被使用的服务。一个或多个服务的组合我们称之为“应用”,而应用可以运行在一系列云资源之上,因此它会变成一系列资源的逻辑归组。我们会建立应用的开发、测试、运维流程,并将这些流程配置到一个“应用管理平台”之上,这就是面向“应用”的用云界面。

在阿里巴巴,我们通过“云资源管理平台”和“应用管理平台”实现了产研人员与云的有效连接,并通过平台的流程抽象,实现了对云技术细节的屏蔽,提升了各角色用云的效率,并将企业“资源”与“应用”两种最重要的资产沉淀下来。

image.png

DevOps 工具的云原生趋势

随着 kubernetes、容器化、Serverless、Service Mesh 等完全基于云的技术体系逐步成为业界事实标准,云原生化成为了众多企业技术升级的目标。DevOps 工具体系需要进行升级以适应云原生的发展趋势。

Kubernetes 是云原生的代表技术,首先它从容器编排能力开始不断演化,不但实现了对底层物理资源的有效屏蔽,还发展出非常强的可编程的扩展能力。基于此能力发展出了一些列中间件、运维工具,甚至是编程框架;其次它具有面向终态的特性,这种声明式的资源运维模式与传统面向过程的运维模式有着本质区别,有机会彻底摆脱人的控制,实现无人值守的变更。因此云原生的 DevOps 工具不但需要适配云原生的技术和产品,而且要能够继承面向终态的思想,来进一步提升研发运维效率。

阿里巴巴将 GitOps/IaC 理念与云原生技术相结合,并融合传统应用管理经验产生了新一代云原生研发运维平台。相比传统模式,新平台具备以下几个特点。

image.png

应用终态运维

开发人员可以通过代码去描述应用的交付过程和运行时状态,系统根据变更内容自主决定执行策略,将应用状态逐步逼近终态。在此过程中系统可以接收用户指令或者监控数据的变化,来自主改变变更路径,确保系统安全可靠。

分层定义和管控

架构师、SRE、测试工程师、安全工程师都可以对应用的描述代码进行模块化定义,在代码上实现 import功能,引入各个角色的预定义内容和管控规则。应用负责人可以在规则允许的范围内对应用进行细节定义。这样的分层设计一方面可以减少应用定义的复杂度,另一方面可以满足企业分层管控的要求。

配置收敛统一

将包括交付流程、规则配置、配置项、资源配置等方方面面的内容,通过代码这个唯一形式来定义,可以实现运维定义的收敛,大幅降低开发理解各种云产品的复杂度。而且可以形成统一操作界面,防止不同系统不同权限策略带来的不一致风险。

变更流程一致性

任何配置的变更都简化为代码变更后,可以通过统一的 CICD 流程安全可靠地推进到生产环境。这种流程一致性可以最大程度上保障质量和控制风险,甚至可以为运维变更准备自动化测试用例。

总结

阿里巴巴的业务仍在高速发展,云的技术尤其是云原生领域也在快速成熟,不管是软件开发方法还是工具体系都需要及时应对挑战,不断地降低技术门槛,不断地提升效率,不断地降低风险。同时云原生带来的标准化和开放性,也让阿里云云研发团队有机会不断地将内部的实践产品化,通过“云效平台”对外输出,服务于广大云上开发者。期待我们的这些工具和实践可以让大家“用好云”,并与我们一起分享云所带来的效能红利。

原文链接
本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云原生引领全云开发时代

简介: 云原生是近几年最火爆的技术热词之一,几乎所有的云计算产品都会或多或少跟云原生发生关联,云原生正在重塑整个软件的生命周期。但到底什么是云原生?云原生带来的最大的技术创新和未来机会是什么?以及&#xff0c…

中国首部智能交通微纪录片正式发布 探讨交通强国高质量发展路径

12月23日,由央视财经出品,中国首部智能交通题材微纪录片《大国交通-车路智行》正式发布。该微纪录片全景式呈现出中国交通领域智能化转型历程,探索了交通强国高质量发展的中国路径。据悉,《大国交通-车路智行》微纪录片共五集&…

Kettle on MaxCompute使用指南

简介: Kettle是一款开源的ETL工具,纯java实现,可以运行于Windows, Unix, Linux上运行,提供图形化的操作界面,可以通过拖拽控件的方式,方便地定义数据传输的拓扑。Kettle支持丰富的数据输入输出源&#xff0…

使用AirFlow调度MaxCompute

简介: airflow是Airbnb开源的一个用python编写的调度工具,基于有向无环图(DAG),airflow可以定义一组有依赖的任务,按照依赖依次执行,通过python代码定义子任务,并支持各种Operate操作器,灵活性大…

css让背景图片显示透明遮罩_CSS项目测试(支持深色模式)

*事先声明:本文章教程教学、文章封面来源自[CSS]聚光灯项目 by CodingStartup起码课,且已经CodingStartup起码课授权允许转载!为了保持原有风格,本文始终保持与CodingStartup起码课的视频风格一致*在出现同样的代码块时&#xff0…

一文读懂阿里云直播技术是如何实现的

简介: 东京奥运会已落下帷幕。比赛期间,全球亿万观众蜂拥至各大转播平台观看奥运赛事,平台直播能力显的尤为重要。阿里云作为视频直播平台的技术提供商,凭借在产品技术、资源带宽、服务保障等方面优势,可为各大转播平台…

低代码发展专访系列之七:低代码的火爆需要不一样的声音么?

编辑 | 曹芊芊话题:低代码发展系列专访前言:2019年开始,低代码爆火。有人认为它是第四代编程语言,有人认为它是开发模式的颠覆,也有人认为是企业管理模式的变革……有很多声音,社区讨论很热烈。CSDN随后展开…

启动、内存、卡顿三大分析,用户体验就用它?

简介: 启动分析支持通过预置采集和个性化自定义两种方式定义启动阶段,可以分别查询首次启动、冷启动、热启动的情况效果,并可以与设备、系统、版本、地域等维度做交叉筛选查询。 随着大量应用涌入市场加入“App内卷之战”,终端用…

adb echo shell 覆盖_一次写shell脚本的经历记录

点击上方“我的小碗汤”,选择“置顶公众号”精品文章,第一时间送达redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要重启。所以把redis集群的状态检查放到了健康检查中&a…

当新零售遇上 Serverless

简介: Serverless 的出现给传统企业数字化转型带了更多机遇。 某零售商超行业的龙头企业,其主要业务涵盖购物中心、大卖场、综合超市、标准超市、精品超市、便利店及无人值守智慧商店等零售业态,涉及全渠道零售、仓储物流、餐饮、消费服务、…

如果还不懂如何使用 Consumer 接口,就来看这篇!

作者 | 阿Q来源 | 阿Q说代码背景在开发过程中我遇到这么一个问题:表结构:一张主表A ,一张关联表B ,表 A 中存储着表 B 记录的状态。场景:第一步创建主表数据,插入A表;第二步调用第三方接口插入B…

京东:Flink SQL 优化实战

简介: 本文着重从 shuffle、join 方式的选择、对象重用、UDF 重用等方面介绍了京东在 Flink SQL 任务方面做的优化措施。 本文作者为京东算法服务部的张颖和段学浩,并由 Apache Hive PMC,阿里巴巴技术专家李锐帮忙校对。主要内容为&#xff1…

Spring Boot参数校验以及分组校验的使用

简介: 做web开发基本上每个接口都要对参数进行校验,如果参数比较少,还比较容易处理,一但参数比较多了的话代码中就会出现大量的if-else语句。虽然这种方式简单直接,但会大大降低开发效率和代码可读性。所以我们可以使用…

长文解析:作为容器底层技术的半壁江山, cgroup如何突破并发创建瓶颈?

简介: io_uring 作为一种新型高性能异步编程框架,代表着 Linux 内核未来的方向,当前仍处于快速发展中。阿里云联合 InfoQ 发起《io_uring 介绍及应用实践》的技术公开课,围绕 OpenAnolis 龙蜥社区 Anolis OS 8 全方位解析高性能存…

Orion:谷歌的新一代SDN控制器

作者 | 魏煌松来源 | 鲜枣课堂时至今日,谷歌在2015年公布的成果,“利用SDN将广域网带宽利用率提升至接近100%”,仍然是SDN的一个标杆案列,也是难以逾越的巅峰。但事实上,当时使用的SDN控制器Onix,早已退出了…

移动云正式发布基于龙蜥 Anolis OS 的 BC-Linux V8.2 通用版操作系统

简介: 2020年12月CentOS项目组宣布CentOS 8将于2021年12月31日结束支持,这意味着从2022年开始,使用CentOS 8的用户,将无法得到来自官方的新硬件支持、bug修复和安全补丁。针对这一情况,移动云大云操作系统团队基于国内…

干掉讨厌的 CPU 限流,让容器跑得更快

简介: 让人讨厌的 CPU 限流影响容器运行,有时人们不得不牺牲容器部署密度来避免 CPU 限流出现。本文介绍的 CPU Burst 技术可以帮助您既能保证容器运行服务质量,又不降低容器部署密度。文章分为上下两篇,该文为上篇,下…

微弱信号检测_机动车检测线常用传感器介绍

机动车检测线中经常会运用到各种传感器,这些传感器相当于车辆检测系统的“眼睛”、“鼻子”和“耳朵”,通过台体装置和装在台体中的传感器,能够把车辆的性能数据转换成计算机系统能够识别的信号,供计算机处理和计算,最…

赋能开发者,英特尔发布oneAPI 2022工具包

英特尔发布了oneAPI 2022工具包。此次发布的最新增强版工具包扩展了跨架构开发的特性,为开发者提供更强的实用性和更丰富的架构选择,用以加速计算。 英特尔公司首席技术官、高级副总裁、软件和先进技术事业部总经理 Greg Lavender表示:“我十…

Quick BI V4.0功能“炸弹”来袭,重磅推出即席分析、模板市场、企业微信免密登录等强势功能

简介: 2021年7月,Quick BI公共云版本迭代新功能:重磅推出即席分析、模板市场,分析门槛再降低;推出企业微信无缝对接,移动端类目个性配置及管理提升多端能力;数据建模配置交互升级至拖拽模式提升…