Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >我们如何把持续部署化繁为简的|优维

我们如何把持续部署化繁为简的|优维

作者头像
用户1593318
发布于 2019-11-19 13:43:30
发布于 2019-11-19 13:43:30
5850
举报

在之前的文章中{持续发布的三种反模式及解决方案}提到了持续部署的三种反模式及几种实现。在更早期的文章中介绍了{可视化持续部署系统的设计与实现}里面也详细介绍了持续部署系统的设计与实现细节。或许在之前的文章中大家看到的依然是一个复杂的持续部署系统,那接下来看看我们是如何进一步简化的?适应一切是我们这次设计持续部署的目标。

一、我们似乎都忘了什么

我们忘了什么?我们忘了别人的经验,忘了别人基于经验的总结。这个地方想说的是RPM包,打开RPM包的一个概念描述图。里面的内容如下:

A、描述部分,Description。包的名称/版本/安装的路径/权限等等。

B、动作部分,Action。里面定义了很多种动作,比如说Build,Prep(准备),编译(Configure),安装(Install)等等。

C、文件部分,Files。这是Action要操作的基本对象,比如说文件的构建转化/文件的移动。注:不建议拿源码包到现网编译。Build Once,Run Anywhere应该是我们需要秉持的持续部署核心理念。

我们把Action部分提炼成事件流,等同于程序在执行安装/升级/回滚的时候都由这一连串的Action组成,形如:

对事件流的使用,也要注意,不要有自定义RPC的调用产生,除了构建依赖库动作,不建议有其他的远程调用,比如说到监控系统中屏蔽升级告警。这样做非常不利于控制其中的异常,更多的是把它作为一个执行流能过顺序执行下去,其中的异常由后一部分的去感知,比如说构建库获取不到,则程序编译异常。

试想一下,如果把这套东西可视化出来,是不是能够达到我们的应用部署的要求呢?事实证明是必然的,但需要根据我们的现实情况来去繁就简。

我们把一个应用包拆解开来,就能看到我们的持续部署系统需要管理的对象属性是哪些,其实能看到几个关键维度信息:

A、目录规范/权限规范/日志规范/运行规范。在之前的规范中都已经有解释过了。

B、管理规范。包括应用包的版本规范/应用包关联的环境管理/应用包仓库管理/增量升级/全量升级等等。

C、监控规范。程序异常了如何处理?日志的异常如何处理?可以从源头上控制无效告警的产生。

二、以应用为中心的持续部署实现

一定要把你管理的对象和应用关联起来,否则未来数据无法有效的整合。到Host级别的管理太粗了,特别是到小的企业中,机器复用太严重,一台机器跑十几个应用都是正常。应用的命名采用多级结构,从业务集-》业务-》应用等来级别来定义。

三、持续部署系统的可视化实现

涉及到应用包管理的各个部分都需要在界面上可视化管理起来。比如说:

A、应用包的可视化启动/停止/重启/卸载等等。

B、可视化版本管理,可以在线修改任意文件。可以直接从Jenkins构建过程中Hook,然后推送构建包直接进入到版本仓库。

C、对事件流的Action提供可视化的封装,暂且只支持shell,没有支持更多的语言,比如说python,考虑对包的管理,shell的能力足够了,另外尽量减少对系统环境的依赖。提供了一些内置变量,提高编程效率。

D、可视化环境管理和配置管理。对环境的属性进行任意维度的扩充和管理,同时把配置文件的管理和环境进行关联。

从以上界面可以看出,我们把持续部署实现得非常简单,从目前多家客户的使用来看,对各种语言,各种场景,各种业务都完美支持。

但实现应用包的持续部署还远远不够,我们下个月会推出一键化运维调度平台,无缝对接各种服务和作业,用一个流程引擎服务来驱动业务级,多应用的自动化变更/调度等等。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-11-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 互联网运维杂谈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【DevOps运维】构建面向应用的运维管理新思维
很多问题一直在困扰、在思考,为什么CMDB大部分项目都是失败的?为什么讨论的更多的是运维自动化而不是IT自动化?为什么线上问题永远是运维人的黑锅?带着这些问题我们来一探究竟。
用户1593318
2019/11/19
2.3K0
袋鼠云平台代码规范化编译部署的提效性改进实践
作为全链路数字化技术与服务提供商,袋鼠云提供了从数据湖、大数据基础平台、离线开发、实时开发、数据服务、数据治理、指标管理、客户数据洞察、数据孪生可视化等全产品体系的服务。
袋鼠云数栈
2022/11/07
5330
袋鼠云平台代码规范化编译部署的提效性改进实践
企业如何落地DevOps(下)
常用的版本和配置管理相关的工具,比如Ansible、Git、Apollo、CMDB等,都是被大家所熟知和广泛应用的工具,也是工程实践的一部分。工具和技术的选型根据各自的具体情况选择合适的即可,但其中有几点注意事项:
老_张
2023/08/09
2060
企业如何落地DevOps(下)
持续部署,并不简单!
这几年,持续集成随着敏捷在国内的推广而持续走热,与之相伴的持续部署也一直备受关注。自前两年,持续交付这个延续性概念又闯进了国内IT圈,慢慢开始在社区和会议中展露头角。许多不明真相的群众跟风哭着喊着要“上”,而许多前CI的半吊子玩家换件衣服就接着干,有的甚至衣服都来不及换......国内的这些土财主如果不巧请了某些所谓的战略家,除了建了一堆持续集成环境,以及每天嚷嚷着要这个要那个,混乱的状况在根本上没有得到改善。本文无意费力探讨持续集成和持续交付的概念,而是打算谈谈对于大型软件企业,以持续集成为基础实现持续部署(交付)时,所要面对的问题以及可行的解决方案。地主老财们,夜黑风正猛,山高路又远,注意脚下......
明哥的运维笔记
2019/01/30
5590
统一运维平台建设的一些思路和实践
企业构建一站式运维平台的目的是为了提升运维效率。那么一个成熟的运维系统应该要解决哪些问题呢?笔者认为首先是运维对象要被管理起来,然后是监控这些对象,接着是这些对象的自动化运维,最后是所有的运维操作都要有所规范。概括起来对应的系统就是CMDB、统一监控、自动化平台、ITSM,如下图所示。
用户1107783
2023/10/31
1.3K0
统一运维平台建设的一些思路和实践
运维平台规划体系全介绍
在之前的文章中,谈到过【运维的本质--可视化】,在可视化的篇幅中,着重介绍自动化的可视化和数据的可视化;在后续的篇章中又介绍了【互联网运维的价值体系】,里面分解了几个维度:质量、成本、效率、安全等。以上都是为了清楚的梳理运维的内容边界,基于这个边界,我们再考虑如何进行平台支撑。可以说前两篇文章都是为今天这篇文章作为铺垫,用理念先行,然后在考虑平台落地,最后在细化其中每个内容。我更习惯用如下的方式来整体表达运维的工作方法和思路;
用户1593318
2019/11/18
4.4K0
运维平台体系,你们真的有好好规划吗?
在之前的文章中,谈到过“运维的本质——可视化”,在可视化的篇幅中,着重介绍自动化的可视化和数据的可视化;在后续的篇章中又介绍了“互联网运维的价值体系”,里面分解了几个维度:质量、成本、效率、安全等。以上都是为了清楚地梳理运维的内容边界,基于这个边界,我们再考虑如何进行平台支撑。可以说前两篇文章都是为今天这篇文章作为铺垫,用理念先行,然后再考虑平台落地,最后再细化其中每个内容。我更习惯用如下的方式来整体表达运维的工作方法和思路:
小小科
2018/07/31
2.3K0
运维平台体系,你们真的有好好规划吗?
美国持续网络训练环境(PCTE)内容简报
美国陆军在2019年11月25号发布了最新的持续网络培训环境(PCTE)的项目CYBER TRIDENT(网络培训、就绪、集成、交付和企业技术)网络培训合同要求的最新信息。项目合同额度将近9.570亿美元。PCTE最主要的建设目标是为美国网络司令部网络任务部队提供一个云端的可以从世界任何地方登录以进行培训和演习任务的强大网络培训环境。
时间之外沉浮事
2020/01/02
2K0
柯基数据通过Rainbond完成云原生改造,实现离线持续交付客户
南京柯基数据科技有限公司成立于2015年,提供一站式全生命周期知识图谱构建和运维、智能应用服务,致力于“链接海量数据,从大数据中挖掘智慧“。帮助企业运用知识图谱技术打造世界领先的认知工作自动化智能引擎。
Rainbond开源
2021/09/03
6660
柯基数据通过Rainbond完成云原生改造,实现离线持续交付客户
【平台篇】可视化持续部署系统的设计与实现
持续部署(Continuous Deploy)的收益是全面的,体现在运维规范、自动化和团队合作等方面。
用户1593318
2019/11/19
1.9K0
【平台篇】可视化持续部署系统的设计与实现
01 . Zabbix简介原理及部署
1> 数据采集: 可用性和性能检测,自动发现,支持agent,snmp,JMX,telnet等多种采集方式,支持主动和被动数据传输、支持用户自定义插件,自定义间隔收集数据.
iginkgo18
2020/09/27
7280
01 . Zabbix简介原理及部署
企业级 Kubernetes 监控体系设计与实践
主要都是 kube-state-metrics 收集的, K8s 内置的资源对象 , 只需要添加启动参数即可
SRE运维进阶之路
2025/04/01
1690
企业级 Kubernetes 监控体系设计与实践
携程事件:运维债务的深度剖析与解决方案
********本文是BLUES【公众号ID:bluemidou】向老王约稿,特授权blues独家首发,现转载如此,哈哈********
用户1593318
2019/11/19
1.1K0
企业如何落地DevOps(上)
前面几篇文章,分别从devops的定义和价值、落地路线图以及落地三要素进行了分析。
老_张
2023/03/01
3140
企业如何落地DevOps(上)
柯基数据通过Rainbond完成云原生改造,实现离线持续交付客户
南京柯基数据科技有限公司成立于2015年,提供一站式全生命周期知识图谱构建和运维、智能应用服务,致力于“链接海量数据,从大数据中挖掘智慧“。帮助企业运用知识图谱技术打造世界领先的认知工作自动化智能引擎。
Rainbond开源
2021/09/10
5020
柯基数据通过Rainbond完成云原生改造,实现离线持续交付客户
DevOps 三步工作法之持续反馈的技术与案例
导言 很高兴参与DevOps时代社区的拆书联盟第一季活动,有幸能与几位DevOps大牛一起解读《DevOps Handbook》一书,这本书作者牛,内容也很牛,就连著名的培训机构把这本书作为DevOp
DevOps时代
2018/02/02
1.6K0
DevOps 三步工作法之持续反馈的技术与案例
使用Rainbond实现离线环境软件交付
在传统行业,如政府、能源、军工、公安、工业、交通等行业,为了防止数据泄露和运行安全考虑,一般情况下网络会采取内外网隔离的策略,以防范不必要的风险,毕竟在安全防护方面,网络物理隔离是网络安全防御最有效的手段,而网络隔离在软件交付过程中,对于外部软件开发厂商来说将会带来一系列的交付难题,也增加大量成本投入。例如:
Rainbond开源
2021/11/18
9780
使用Rainbond实现离线环境软件交付
系统架构 | 基于微服务架构,改造企业核心系统之实践
背景与挑战 随着公司国际化战略的推行以及本土业务的高速发展,后台支撑系统已经不堪重负。 在吞吐量、稳定性以及可扩展性上都无法满足日益增长的业务需求。对于每10万元额度的合同,从销售团队准备材料、与客户签单、递交给合同部门,再到合同生效大概需要3.5人天。随着业务量的快速增长,签订合同的成本急剧增加。 合同管理系统是后台支撑系统中重要的一部分。当前的合同系统是5年前使用.NET,基于SAGE CRM(http://www.sagecrm.com/)二次开发的产品。一方面,系统架构过于陈旧,性能、可靠性无法满足
张逸
2018/03/07
1.8K0
系统架构 | 基于微服务架构,改造企业核心系统之实践
深度解析:持续交付将如何拯救IT运维?
作者简介 刘劲辉(微信号:akito_hui),前阿里移动事业群高级运维工程师,现优维科技运维与平台研发专家,专注于DevOps、应用运维和平台架构设计,参与实施监控平台设计、运维规范设计、虚拟化应用、效率提升等相关工作,在若干大中型项目的建设和运维中,积累了丰富的系统运维、架构设计、项目实施经验。 前言 在深入探讨持续交付之前,我们先来看一个典型的场景: A 公司最近很苦恼。 A 是一个传统行业的公司,物流运输为主营业务,IT部门作为支撑部门辅助业务发展。但是随着业务的快速发展,IT 部门开始感觉到有点力
数据和云
2018/03/06
2.1K0
深度解析:持续交付将如何拯救IT运维?
运维的本质---可视化
没有比“可视化”更好的一个词能概括运维的本质,而“可视化”又应该分成两部分:可视化的服务交付和可视化的服务度量!
用户1593318
2019/11/18
1.4K0
相关推荐
【DevOps运维】构建面向应用的运维管理新思维
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档