首页>>互联网>>DevOps->devops怎么上传(devops发布)

devops怎么上传(devops发布)

时间:2023-12-06 本站 点击:0

导读:本篇文章首席CTO笔记来给大家介绍有关devops怎么上传的相关内容,希望对大家有所帮助,一起来看看吧。

DevOps的概念和历史

当你看敏捷的时候,不经意间出现了DevOps这个词,你还在好奇,这是什么的时候,发现规模化敏捷也出现了,这个时候如果你还发现自己对这个词很陌生,那说明你的知识该补齐了,毕竟他们如果总是频繁出现,说明他们的相关性很高。

其实不只是敏捷,在CMMI、ITIL都在提到DevOps,说明我们真的很有必要对它进行一个系统性的了解了。

1.CMMI中提到关于Devops

图 CMMI

2.ITIL中提到关于DevOps

各类管理体系其实都在走向融合,而且都需要DevOps的支持,所以你还觉得自己不需要认真了解下它么?

如果你想快速的系统性的了解DevOps,可以先阅读以下几本书:

《凤凰项目》

《持续交付》

《独角兽项目》

《凤凰项目 一个IT运维的传奇故事》

《DevOps精要》

如果你报考了DevOps Master认证,那你《EXIN DevOps Master WhitePaper》是必读的。

DevOps是对敏捷软件开发与精益生产思想的演进,应用于IT端到端的价值链中,使得业务基于现代信息技术,并通过文化,组织与技术变革来获得更大的成功。

这是《DevOps精要》中关于DevOps定义,定义都有其严谨性,所以往往看完定义让我们摸不着头脑。DevOps其实是英文单词Development(Dev)和Operations(Ops)的组合,为什么要把这两个词组合到一起,最初创造这个词的人目的就是期望开发和运维能够紧密的合作,随后逐步的被扩展和衍生,下面这个“DevOps能力环”是对这种打破部门墙,进行顺畅交付的一个非常经典的一个表达。它强调了IT专业人员(研发,运维,测试)在应用和服务生命周期中的协作和沟通;强调整个组织合作以及交付和基础设施变更的自动化,从而实现持续集成、持续部署和持续交付。

[图片上传失败...(image-c93581-1650555848432)]

DevOps能力环

我们为什么要了解其历史,如果我们只是想用DevOps的一些工程实践,大可不必,但是如果你的团队还对这个概念很陌生,他们不知道为什么要用DevOps,如果是这样的话,我们还是有必要花几分钟来了解下它。

DevOps起源于敏捷,是在2008年敏捷论坛上被提出的,所以现在很多人会认为DevOps是敏捷的一部分,对于到底是谁属于谁,谁包含谁,这些观念大家不必纠结,各大体系都认为自己包括别人。敏捷认为它包括DevOps,而DevOps认为自己是它的衍生。

DevOps的概念在2010年的《What is DevOps》这篇文章中得到了较为完整的描述。DevOps在2013年之后被业界快速接受,源于相关技术的同步发展,2013年,dotCloud公司推出Docker项目,同年,Google推出开源项目Kubernetes,提供了以容器为中心的不部署、伸缩和运维平台,2015年云原生的概念也逐步成熟,他们的发展助推了DevOps的快速发展。

大家可能还听说过DevSecOps,Sec是不是安全,你猜的没错,就是安全和合规性,这是在2016年开始逐步推出的一个理念。关于历史的部分就讲到这里,大家感兴趣的可以再做进一步的了解。

为什么DevOps很好,但却很难落地,大家对DevOps是怎么理解的?

DevOps不是一开始就有的,为什么现在的声音越来越大了。其实原因很简单,说明市场,也就是各软件公司碰到问题了,DevOps可以帮助解决这个问题,为客户创造价值。

那客户的问题又是什么呢?比如现在的互联网公司越来越多,市场的竞争也越来越激烈,产品迭代的频率越来越快,做得极致又成功的比如Netflix,可以做到一天发布好多次。如果还是像以前的模式,可能你的公司早就被淘汰掉了。

其实理解起来很简单,就像图上面一样Dev和Ops合作一起搞事情了(但上图的幽默用来隐喻实际的效果是刚刚好的)- 貌合神离。如果只管自己的一亩三分地,因为有各种KPI的原因,这也再正常不过。但试想一下,如果一家公司的KPI是:对开发团队,一个月内发布10个版本。对运维团队,线上环境可靠性是99.99%。很明显这样就会让开发团队和运维团队一下子变成了对立面。如果想快速发布版本,得过质量(测试团队)的关,还有运维团队的关,因为要上线,可能因基础设施等各种原因受到影响。再说运维团队,会很小心的测试,因为好容易弄稳定的环境,你又给我增加了新的风险,我当然不乐意了。

因为上面的种种制度的原因,再加上将Ops前置,导致的工作量和工作复杂度的加大,因为在软件行业,并没有因为新事务的出现,而消灭了一些复杂度,而是将复杂度从一个地方搬到了另一个地方。所以难度是变大了的。组织结构不动,观念不调整,就已经为DevOps落地埋下了失败的种子,再加上能力上需要提升,就会让这件好事情离成功越来越远。

CODING X C-Life:DevOps 加速企业数智化

数字化开始从抽象化、标准化走向智能化

2020 给全民普及了什么是线上化、数字化、智能化,也加速了企业的数字化转型。“全数字化”时代,已经不仅仅是简单粗放的数据采集、映射、抽象。 数字化开始迈入高级阶段——数据驱动的智能化 :基于云管端 + AIoT 等为代表的新技术群落开始大量涌现,数智化企业思考的核心问题转向了如何以客户运营为核心,通过智能化手段提高客户全生命周期的体验。

作为物联网大数据行业的排头兵, 深圳数联天下智能 科技 有限公司 (以下简称数联天下)倾力打造的 C-Life 大数据综合计算服务平台,致力于为个人、行业、政府提供全周期、全链条、全维度、全方位的专业级运营顾问式服务。依托着公司强大的研发投入与技术实力,数联天下在智慧养老、智慧 健康 校园、智慧美业、智慧家庭、智慧酒店、智慧农业、智慧水生态等多个智慧领域,打造了一批又一批的标杆示范项目。

企业的敏捷性、适应性、反脆弱性,决定其在这场数字化颠覆中的胜与负

在交付各个领域的智慧项目过程当中,数联天下的研发部门逐渐发现问题:研发团队面对的是一个更加不确定、个性化、碎片化的市场需求。行业项目虽然存在着一定的通用性,但也因地制宜的存在大量定制化需求。如何让个性化与规模化齐头并进?多变的客户需求带动了研发组织开展与业务相适应的调整。 通过研发流程数字化提升研发流程的敏捷性、适应性、反脆弱性,数联天下开启了研发提效之路 。

数联天下研发团队和我们分享道:“客户项目周期紧张,需求变化比较频繁,开发团队需要在短时间内完成软件开发并发布上线。而在之前的研发流程当中:发布流程长,审批环节多,发布节奏缓慢,开发运维之间没有良好协作来提升发布效率。所以亟需打破跨部门之间的壁垒,减少开发、测试、运维之间的沟通环节、沟通成本。DevOps 是我们在较短开发周期内开发高质量软件的首选方法,希望通过使用 DevOps 平台 —— CODING 来提升客户满意度。”

区别于之前通过多个工具自建研发流程,数联天下团队首先基于 CODING 的持续集成、制品库、持续部署逐步提升交付带宽,再将项目管理、研发数据管理等流程统一至 CODING ,渐进式实现研发流程从需求提出到应用部署的价值交付,从而让研发团队各个角色基于统一平台通力协作,按期保质交付项目。

持续交付驱动业务加速

在使用 CODING 的过程中,数联天下研发团队遵循着循序渐进的路线。首先基于 CODING 持续集成、制品库、持续部署建立持续交付流水线。区别于自建 Jenkins 与 Nexus, CODING 的持续集成与制品库开箱即用 ,研发团队通过持续集成构建好的 Docker 镜像可以直接推送到 CODING 制品库中,再通过持续部署拉取指定版本镜像进行部署。

CODING 持续集成在构建脚本语法上全面兼容 Jenkins,支持数联天下无缝地迁移 Jenkins 的构建到 CODING 中。并且支持 Docker 镜像的构建,在基础功能上满足了研发团队对构建制品的迁移需求。

在使用上,CODING 比自建 Jenkins 要方便许多,打开浏览器就可以使用,不需要繁琐的机器配置、构建环境搭建、软件插件安装。而且 CODING 提供了多地域境内外构建节点,并优化国内访问海外主流镜像链路,支持构建任务中开启缓存,大大提升了构建速度。在构建资源的灵活性上,既支持数联天下使用 CODING 云主机进行构建,也支持数联天下将使用中的腾讯云机器设置为构建资源。

在使用 CODING 制品库之前,数联天下团队基于开源项目自建制品库,在使用自建私服制品库常常遇到性能问题或易用性问题,比如一上传大容量的 Docker 镜像时,自建的制品库就常常服务不可用,导致后续一系列的版本发布受阻,使用 CODING 后这类问题就迎刃而解了。 CODING 制品库是专为生产环境打造的企业级制品库 ,无论是制品库的容量、分发效率都经过产品团队精心优化。数联天下团队将所有制品推送至 CODING 制品库,利用 CODING 制品库提供的版本策略、权限控制、安全扫描等能力对制品进行了规范管理。

不仅仅是 Docker,CODING 制品库提供了十多种主流制品类型,包括 Helm、通用文件、npm、Maven、PyPI 等等,可以支持研发团队多样化制品托管需求。同时制品库提供的精细化的权限设置,支持每个制品库设置项目内、团队内、公开的开放范围,针对多团队并行开发的场景,数联天下可以轻松地将通用组件设置为团队内开放,将项目独有的制品设置为项目内可见,既能加速公共制品在企业研发内部的共享与流动,也能确保项目独有制品的权限安全。

对于频繁进行商业交付的研发团队,安全也是商业客户关心问题之一。CODING 制品库除了解决数联天下团队的制品托管问题,还对制品的安全质量进行了规范。通过制品扫描设置质量红线标准,杜绝问题组件发布至生产环境,扫描方案还提供了详细扫描记录和缺陷统计,方便研发团队快速修复。这在一定程度上提高了制品的安全性,减少了应用在生产环境出现的安全漏洞问题。

接下来就是打通持续交付的最后一环——持续部署。通过持续部署,研发团队可以自动、频繁地将软件部署到各种生产环境,使软件产品能够快速地交付使用。

1. 清晰灵活的流程编排

数联天下运维团队首先根据测试流程、上线流程以及部署环境规划好每个应用的 部署流程 。针对开发环境、测试环境、类生产环境、生产环境分别创建不同的流程分支。基于 CODING 持续部署,可以快速地编排出串行或者并行的部署流程:例如针对类生产与生产环境,必须要在类生产的集成测试(自动化+人工)通过之后,才可以进入生产环境发布;而多地域的生产环境发布,就可以并行部署,提高效率。

基于 CODING 持续部署 清晰灵活的流程编排,应用所有的部署分支流程一目了然。

2. 人工审批加上自动通知机制

针对过去运维发布过程中的多环节、多审批、多等待的情况,数联天下团队根据发布流程的级别差异将测试、产品经理等角色加入审批环节,配合自动化部署过程和通知机制,解决了从前需要人工反复确认部署环节的问题;也解决了从前开发人员只能等待运维人员定时部署版本的难题,开发和运维人员都可以随时随地按需部署应用。

每个环节的通知除了支持常见的站内通知、企业微信、钉钉、Bearychat 等方式,还支持团队通过 Webhook 的方式接入企业使用的其它协作工具,满足团队的个性化通知需求。

3. 规范的制品版本规则

在项目紧张的开发周期当中,数联天下的制品构建地十分频繁,制品数量也在急剧增长,其中包含了开发自测的 snapshot 版本和正式转测的版本。如何确保测试环境、生产环境等能够始终选择主干发布的稳定版本,避免因为手误选到开发自测版本?通过在持续部署中的制品分支策略制定所选制品的规则,杜绝以往人工选择临时分支版本导致的错误情况。

4. 统一的部署控制台

在数联天下团队的日常应用部署管理过程当中,CODING 持续部署提供了以应用为视角的控制台。运维人员可以对所有应用的配置信息、基础设施、资源分配、部署流程进行全面管理,无需在各个项目视图之中来回切换。这对于需要面对繁多项目的数联天下研发团队来说, 统一的部署控制台面板,大大提升了应用部署管理效率。

在应用部署完成后,就可以在 Kubernetes 集群面板中方便地检查部署好的资源,包括集群内资源的工作负载情况。一气呵成的部署操作帮助运维或者开发人员一站式完成部署资源准备、部署流程编排、应用部署、部署后的检查工作。

紧接着研发团队将代码管理、项目管理迁移至 CODING 的代码托管、项目协同中。告别了过去的 SVN 代码管理,基于 CODING 代码托管进行 Git 式开发,基于代码扫描与 Code Review 建立研发质量的基线。切换到项目协同进行项目管理后, 真正打通了从需求-代码-制品-应用的全部链路 ,数联天下研发团队基于统一云平台真正实现端到端的价值交付。和以前基于多个工具自建研发平台的方式对比,统一研发管理平台带来的好处有:

基于 CODING 的 DevOps 实践,数联天下的交付带宽达到了较大提升。DevOps 实践给数联天下的研发团队带来的不仅仅是流程上、工具上的改变,也进一步加深了团队的业务共识。所有角色都坐在了一起:测试、运维、开发、产品、项目管理等,研究如何基于统一平台通力协作,按期保质地交付项目,服务好客户。

数据已经成为生产的要素之一

研发数字化不仅仅是自动化流程的搭建,更重要的是在数字化落地过程当中,如何将有机串联的研发环节发挥出 1 + 1 2 的效果?如何让研发数据服务于研发?

目前数联天下的研发团队已经将研发全流程切换到 CODING,慢慢积累的研发数据也给研发管理带来了新的指引。通过效能度量,可以清晰分析成员工作负载;通过仪表盘可以清晰看到代码提交数、事项完成数、构建次数、发布次数等等多个维度的数据展示。这些数据也将支撑着研发团队快速地调整和检视以适应更加多变的未来。

数联天下研发团队负责人告诉我们:“最开始选择 CODING,因为 CODING 持续集成全面兼容 Jenkins 的持续集成服务,支持 Java、Python、Node.js 等所有主流语言,并且支持 Docker 镜像的构建。这与公司现有的发布方式,架构体系相吻合。在使用了一段时间后,不仅仅是持续集成,包括 CODING 制品库、持续部署在内的 DevOps 工具给我们的研发流程带来不少提升,也期待 CODING 能够在研发工具链上给我们带来更多惊喜。”

在全面了解数联天下的 DevOps 实施路径之后,我们也发现企业的研发变革不是一蹴而就的,需要从流程上环环打通, 选择一个迁移成本低、使用门槛低、功能灵活的一站式研发管理工具,能够让变革事半功倍。

我们欣喜地看到,数联天下一直走在提升内部效率的道路上,这家志在提升各行业数智化水平的企业全然拥抱了研发数字化,我们期待 C-Life 凭借着变革初心与极速交付能力,逐步成为智慧生活的强有力支撑平台。在这场数字化颠覆中,CODING 也会坚定地与研发团队站在一起,依托 DevOps、云原生、敏捷等研发利器,帮助各行各业改进、提升并创新。

基于容器的DevOps平台应该提供哪些功能

“DevOps”提倡开发和IT运维之间的高度协同,它拓展和完善了持续集成和发布流程,从而能够提高复杂的分布式应用的开发和运维效率,加快交付速度。DevOps的理论已经响彻业界,快节奏的互联网公司大都已经按照不同的方式在公司内部的研发体系中引入了DevOps流程,它的效果也已经得到了实践验证。公有云巨头们都了提供DevOps服务,例如亚马逊的AWS OpsWorks、阿里云的CRP持续交付平台、网易蜂巢等;一些新兴的创业公司例如时速云、DaoCloud、灵雀云等也都提供了基于容器云平台的DevOps服务解决方案。

然而,DevOps只是一个方法、过程的统称。 运维人员可以自己编写脚本或者使用Puppet、chef、Docker等自动化配置工具实现DevOps的流程(我们的项目就是通过自己攒的工具实现了DevOps流程),也可以由专门的平台提供全套DevOps解决方案,但是这个平台该有什么具体功能、该如何实现,并没有标准答案。

本章节将简要对比分析业内的各平台提供的DevOps平台服务功能及实现方式,并且依据自身项目的实践经验,梳理出适合支持DevOps流程的、比较实用且适合为企业提供容器服务的平台需求。

几家DevOps相关平台的对比

如表所示简要对比了阿里云CRP平台、阿里云容器服务、网易蜂巢、时速云、DaoCloud几家:

阿里云CRP(持续发布平台):主要作用是在Dev阶段提供快速构建、发布功能,最终能直接将开发成果发布到阿里云ESC上,Ops部分就由ESC接管了。具体来说平台提供项目代码管理、代码构建、持续集成、持续发布功能,其功能亮点在于可视化的CI、CD流程,代替了Jenkins的部分功能,不过个人感觉简化了的可视化发布向导,方便得同时有失灵活性。

阿里云容器服务平台、时速云和DaoCloud差不多:包括构建源代码将应用打包成容器镜像、将容器部署到云端、镜像仓库管理、服务编排、平台对运行的容器及集群进行调度管理、支持负载均衡及数据卷等功能。可以说把Dev阶段和Ops阶段连接起来了,但是更侧重于Ops阶段的容器管理。

网易蜂巢:功能纯粹只管Ops阶段,支持用户把镜像提交到镜像仓库,然后在平台上部署容器、并提供容器调度及负载均衡等操作。

容器服务平台针对运维阶段应该具备的重点功能:

Google在很早以前就已经把容器应用到生产运维环境了,目前,包括腾讯、新浪、京东在内越来越多的国内互联网企业已经在生产环境中受益于容器的轻量和敏捷性,大幅提高了运维资源使用效率,据京东员工发布的技术文章提到:今年618核心业务都容器化了。因而主流的容器服务平台都在容器弹性调度和容器集群管理方面下功夫,具体来说对于运维的支持以下功能是必不可少的:

i. 镜像仓库:镜像仓库中需要具有较为丰富的基本镜像;并且支持用户高速的上传、下载镜像,并且镜像仓库需要有一定的权限控制;

ii. 容器调度管理:容器实例的启、停;容器集群资源管理;弹性伸缩;实例的failover;安全控制等。

iii. 相关容器组合的编排管理:包括容器的跨节点关联、涉及到网络和数据共享等功能;容器集的动态生命周期和横向扩展等功能,可实现例如数据库集群部署等复杂的运行环境部署和管理。

iv. 服务发现相关功能:可以让一个应用或者组件动态发现其运行环境以及其它应用或组件的信息,主要场景如负载均衡、环境变量的更新等功能。

v. 运行环境的日志、监控和告警:为保证生产环境正常运行,容器实例及其主机系统级别的日志、监控和告警功能是必不可少的。

容器服务平台针对开发阶段应该具备的重点功能:

随着容器技术的兴起,近1-2年容器技术大会也频繁的召开,根据各家互联网公司的积极分享的实践经验可知:容器重新定义了交付方式,大多数互联网公司已经大规模的把容器引入了开发环节,采用容器交付应用。实践证明:容器的可移植性和良好的隔离性,能够充分提高开发和发布效率。因为各家公司软件开发使用的开发工具和开发流程不同,具体在开发阶段基于容器实现快速开发、部署的功能并没有标准化。这里梳理一下开发阶段的容器服务平台应该具有的功能:

i. 提供基础的开发环境,使得开发者只需要关注代码开发减少相关工具的安装和配置工作量:例如本项目用到的Git库、Docker镜像仓库、禅道、wiki、jenkins等工具;

ii. 利用自动化工具及持续集成工具如Puppet、chef或者原生的脚本、jenkins、Dockerfile等工具,实现自动化的持续集成和持续发布,简化运维工作;

iii. 提供各类服务的容器镜像,可在平台上快速部署开发所需要的服务,并且支持通过环境变量绑定服务;

iv. 实现开发环境、测试环境以及生产环境的隔离以及环境的快速搭建和回收;

v. 持续集成、部署的日志和监控、告警等。

几个优质的DevOps开源项目分享

《开源精选》是我们分享Github、Gitee等开源社区中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是几个优质的DevOps开源工具。

Jpom是一个简而轻的低侵入式在线构建、自动部署、日常运维、项目监控软件。当项目出现问题时,可以能够通过Jpom即时排查问题,问题解决后还可以直接上传修改后的Jar,项目的堆栈信息,服务器CPU、内存使用情况一目了然,不必再登录服务器管理。

项目地址:

猪齿鱼Choerodon全场景效能平台,提供体系化方法论和协作、测试、DevOps及容器工具,帮助企业拉通需求、设计、开发、部署、测试和运营流程,一站式提高管理效率和质量。从团队协同到DevOps工具链、从平台工具到体系化方法论,猪齿鱼全面满足协同管理与工程效率需求,贯穿端到端全流程,助力团队效能更快更强更稳定。

项目地址:

面向中小型企业设计的无 Agent的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件在线上传下载、应用发布、任务计划、配置中心、监控、报警等一系列功能。

项目地址:

walle 让用户代码发布终于可以不只能选择 jenkins!支持各种web代码发布,php、java、python、go等代码的发布、回滚可以通过web来一键完成。walle 一个可自由配置项目,更人性化,高颜值,支持git、多用户、多语言、多项目、多环境同时部署的开源上线部署系统。

项目地址:

Zadig 是一款面向开发者设计的云原生持续交付(Continuous Delivery)产品,具备高可用 CI/CD 能力,提供云原生运行环境,支持开发者本地联调、微服务并行构建和部署、集成测试等。

项目地址:

Gokins一款由Go语言和Vue编写的款轻量级、能够持续集成和持续交付的工具。作为一个可扩展的自动化服务器,Gokins 可以用作简单的 CI 服务器,或者变成任何项目的持续交付中心。

项目地址:

KubeSphere 愿景是打造一个以 Kubernetes 为内核的云原生分布式操作系统,它的架构可以非常方便地使第三方应用与云原生生态组件进行即插即用(plug-and-play)的集成,支持云原生应用在多云与多集群的统一分发和运维管理。

项目地址:

怎么理解devops

在软件开发的过程中,开发人员负责编写代码,然后将代码交给 QA(质量保障)团队进行测试,然后将最终的发布版交给运维团队去布署。

DevOps 就是 Development(开发)和 Operations(运维)两个词的组合。但这里的组合并不是简单地将两个团队合并,而是要从思维和流程上变革,根据 DevOps 思想重新梳理全流程的规范和标准。

DevOps 既是一种思维方式,同时也是一种工作方式,作为一套促进开发、技术运营和质量保障三个部门之间的沟通、协作与整合的方法论,使得组织的快速迭代,实现竞争优势成为现实。

在 DevOps 的流程下,运维人员会在项目开发期间就介入到开发过程中,了解开发人员使用的系统架构和技术路线,从而制定适当的运维方案。而开发人员也会在运维的初期参与到系统部署中,并提供系统部署的优化建议。

DevOps 的实施,打破了团队内各角色的职能壁垒,让开发人员和运维人员更好地沟通合作,通过自动化流程来使得软件开发的整体过程更加快捷和可靠。

结语:以上就是首席CTO笔记为大家介绍的关于devops怎么上传的全部内容了,希望对大家有所帮助,如果你还想了解更多这方面的信息,记得收藏关注本站。


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