自动化离线交付在云原生的应用和思考

自动化,离线,交付,原生,应用,思考 · 浏览次数 : 19

小编点评

**作者:京东科技 王晓飞** **前言** 本文没有具体的技术和方案,而是探讨了离线设计的一般思路和方法。 **离线的理解** 离线设计与公网应用的理解相对于不同。对于离线设计,用户环境是私有云,无法访问公开资源,因此需要解决交付问题。 **离线的优势** * 降低 SRE 和交付团队试错成本。 * 保持交付环境的一致性。 * 提高生产效率。 **离线的常见技术** * 基于 Kubernetes 的插拔式设计。 * 数据解藕。 * 流程化。 **离线的应用场景** * K8S 集群中依赖特定的内核版本。 * 自动化内核升级。 **离线的优点** * 简化交付流程。 * 提高效率。 * 确保生产安全。

正文

作者:京东科技 王晓飞

前言

本文不谈论具体的技术和方案,在对于每一个产品来讲,都有其特殊性存在。单一的产品解决方法并不适合所有的产品。但是我们可以提供一种思路,一种通用方法,甚至我们曾经在某个技术点走的弯路,旨在为各位在离线设计上有更多的案例可循。

对离线的理解

相对于公网应用,可以从公共镜像仓库拉取镜像,比如Dockerhub,各大云厂商的公共镜像仓库。二进制编译文件,软件包也非常方便的从github,各种yum源中获取。此时应用无论是部署,交付,生产都处于完全流程。那么离线就是用户环境是私有云,专有云用户的生产环境无法访问这些公开资源,并且从安全角度来讲,并不能保证其生产安全。在离线环境交付大型生产项目,一般要有成熟的基础设置(yum源,镜像仓库,chart仓库,NTP服务等)

解决离线交付会减少SRE和交付团队试错成本,排障成本。并且在一定程度上能够保持交付环境的一致性。这里举一个场景例子:

我们在K8S集群时,会依赖特定的内核版本,那么离线交付工具会自动化的进行内核升级,并且按照统一的配置进行下发。

这样一来,整个环境的所有OS的内核版本,配置全部保持一致。

插拔式设计

插拔式设计在现代架构设计并不陌生,所以离线交付中需要考虑插拔式设计。有诸多可以看到的好处是对已有代码架构侵入不多,完全可以依据交付需求进行开关。

比如以下代码完全是判断开关才进行工作:

还有一种重要的考虑点是:数据解藕,即离线设计的实现不能对元数据进行强以来,元数据应该以配置或者模版的方式,在离线真正运行是动态读取。

并且能够依据不同的元数据(配置或者模版)进行执行行为的改变。

依赖感知

依赖模块感知

离线交付是一个链条,需要上下模块感知,并且动态修改配置的方式,传递离线的配置信息。

比如:A模块需要获取一个镜像,那么在离线模式下,A模块应该能够感知到离线,并且自动变更获取镜像的地址,指向离线仓库。

系统自动适配

在实际生产中,往往要兼容不同的OS或者平台,那么在离线设计时要进行充分的考虑,离线要能够做到自动识别OS或者平台,自动的适配合适的离线包。

下图展示了,我们在生产中进行分类的方法:

全自动化离线设计

离线的设计,对于用户或者终端来讲,他们并不关心,主要是交付方为了提升生产效率进行的行为。所以需要在模块与模块之间,组件与组件之间进行无缝对接。

形成全自动化流程。

比如:A,B,C都依赖离线,那么当离线开启时,A,B,C模块都能够根据离线的上下文信息自动修改,并且能够做到不中断。

下图中展示了完整的离线设计流程,流程虽然复杂,但是大多数都使用了流水线。并且在真正实现的部分,又可以做到流程化。

对于用户来讲,无需感知这些。

重在流程设计

离线本身不是独立的流程存在,整个离线需要在以下方面进行设计和实现:

1. 文档和培训,用于离线交付的使用手册以及指导手册;

2. 离线包的制作全自动化,使用流水线功能将离线包构建,版本控制,发行就行全自动化控制,减少人工参与;

3. 交付团队和SRE团队可以快速的获取离线包。

结论

1. 离线交付是在ToB,ToG中非常常见的交付方式;

2. 离线交付理念应该融资在整个架构设计中,而不是将它看成独立的模块功能;

3. 尽可能的使用自动化维护整个离线包;

与自动化离线交付在云原生的应用和思考相似的内容:

自动化离线交付在云原生的应用和思考

本文不谈论具体的技术和方案,在对于每一个产品都有其特殊性存在。单一的产品解决方法并不适合所有的产品。但是我们可以提供一种思路甚至我们曾经在某个技术点走的弯路,旨在为各位在离线设计提供更多案例。

Timing!!!

End or Beginning "毕业",一个令人无限憧憬的具象化名词。适逢高考结束,又有一批人将奔赴更远的地方,离开他们生活了十八年的城市,在这之中亦然有着曾经的我们。但大家把目光交距在高中生的未来选择时,同时各校的大四学生也迎来了属于自己的毕业季。这一次他们的再次离开不单是为了求学探索新的生活

程序员失业日记2:失业后迷茫

在上一篇 程序员失业日记1:工作五年,交接半天 收到很多回复,其中最多的就是公司能赔 n+1 已经很良心了。不知道自己的该庆幸,还是该失落,作为一个普通打工人,遇到什么样的公司大部分还是看运气,少部分靠自己一点点的努力。 从公司离职后,开始几天是非常开心的,不用工作,心情很放空,每天都睡到自然醒。每

CCE云原生混部场景下的测试案例

本文分享自华为云社区《CCE云原生混部场景下在线任务抢占、压制离线任务CPU资源、保障在线任务服务质量效果测试》,作者:可以交个朋友。 背景 企业的 IT 环境通常运行两大类进程,一类是在线服务,一类是离线作业。 在线任务:运行时间长,服务流量及资源利用率有潮汐特征,时延敏感,对服务SLA 要求高,

claude3国内API接口对接

众所周知,由于地理位置原因,Claude3不对国内开放,而国内的镜像网站使用又贵的离谱! 因此,团队萌生了一个想法:为什么不创建一个一站式的平台,让用户能够通过单一的接口与多个模型交流呢?这样,用户就可以轻松地比较不同模型的表现,并根据需要选择最合适的一个。于是诞生了这个ChatGPT,Claude

《最新出炉》系列初窥篇-Python+Playwright自动化测试-3-离线搭建playwright环境

1.简介 有些小伙伴或者童鞋们私信留言说自己是在公司局域网办公,或者公司为了安全对网络管控比较严格(尤其是一些大的国企、央企),总之就是一句话无法连到外网去在线下载,宏哥刚看到留言时觉得这问题还留言问啊,你找个有网的电脑下载好安装包然后安装就可以用了。(第一种情况及解决办法:带要搭建环境的电脑到有网

OpenAI的离线音频转文本模型 Whisper 的.NET封装项目

whisper介绍 Open AI在2022年9月21日开源了号称其英文语音辨识能力已达到人类水准的Whisper神经网络,且它亦支持其它98种语言的自动语音辨识。 Whisper系统所提供的自动语音辨识(Automatic Speech Recognition,ASR)模型是被训练来运行语音辨识与

2022年终总结

这是工作的第三年了,IT人的三年之痒,亦或许是觉得自己翅膀硬了,我辞去了毕业后第一份国企工作,投奔了某IT大厂 一、变化 这一年,我从泉城济南,来到了成都;离家的距离从1500公里+缩减到了,700公里,以后回家可以考虑飞机以外的交通工具了。 职业上,从纯开发,逐渐向自动化、测试工具开发靠拢,感觉上

数值计算:前向和反向自动微分(Python实现)

自动微分技术(称为“automatic differentiation, autodiff”)是介于符号微分和数值微分的一种技术,它是在计算效率和计算精度之间的一种折衷。自动微分不受任何离散化算法误差的约束,它充分利用了微分的链式法则和其他关于导数的性质来准确地计算它们。我们可以选择定义一种新的数据类型来存储[u,u′]和[v,v′]这类数对。我们可以在这些数对上定义一种代数运算,这些代数运算编码了一些经典的操作。

一键启动的AI离线知识库,无需复杂环境依赖,小白都能上手了

简介 在人工智能技术飞速发展的今天,我们经常面临一个挑战:如何快速、简便地部署和使用AI技术?AntSK项目,一个开源的AI知识库和智能体,就是为了解决这一问题而诞生的。现在,我们自豪地宣布,AntSK已经实现了无需复杂部署的一键启动功能,让每个人都能轻松拥抱AI的便利。 为什么选择AntSK? 无