Tina Tsou · 2021年01月27日

边缘云原生:具有K3s和GitLab的CI/ CD

作者:Ivan Yang

Cloud Native at the Edge: CI/CDwith K3s and GitLab

微信图片_20210127120358.jpg

概要

为了满足网络边缘对高级的,可扩展的数据处理的不断增长的需求,Arm Cassini方案为边缘开发带来了安全的云原生体验。该方案使用Kubernetes和CI / CD系统创建了一种简化的方法,为任意数量的边缘和终端设备来实现应用程序的交付,维护和控制。

边缘在哪里

网络边缘正在发生根本性的转变,要求连接的设备做更多的事情。通常,要使数据从端点到云再往返之间花费大量时间和精力,这意味着越来越多的数据正在网络边缘被分析,处理和存储。

数据生成和管理方式的这些变化催生了硬件和软件方面的新方法,这些新方法旨在向边缘节点和终端提供传统上的云计算功能。

更多的过去仅在云中发生的事情现在需要在边缘发生。

在边缘操作

为了开发这种新的,边缘密集型的操作方式,需要对任务如何在云,边缘和终结点之间进行划分的更新视图,并意味着要考虑到边缘特有的操作要求。

v 计算资源

边缘设备通常是资源受限的系统,配备有较小的处理器和较少的板载内存,并由电池供电。许多用于数据处理的基于云的应用程序旨在在具有更多计算和功能资源可供使用的系统上运行。

v 延迟和带宽

实时操作需要在延迟和带宽之间实现最佳平衡,同时要对本地化的数据中心,边缘云和本地工作负载进行足够快速的服务,以实现本地决策。为了支持有效的本地决策,现在需要花费100毫秒以上的时间来完成远程数据中心或公共云的处理,而这需要在边缘更快地完成,在某些情况下等待时间低至5毫秒或更短。

v 可扩展性

边缘部署需要支持在靠近数据来源处做智能数据处理决策,即使这意味着要处理大量设备,这些设备生成大量实时数据。可扩展性必须内置于部署的基准架构中,因此迅速增长的IoT组件和端点数量不会淹没设置能力或对聚合,分析和存储数据的能力产生负面影响。

v 安全

与数据中心设备相比,边缘设备通常面临更多的威胁,这意味着数据中心安全机制并不总是能很好地转化为边缘环境。缺乏对边缘设备的物理访问会进一步使事情复杂化,从而使问题出现时变得更加困难。就安全性的硬件和软件方法而言,边缘状况也非常分散,对于边缘特定保护的标准化安全原则的需求日益增长。

微信图片_20210127120412.png

                                                 边缘的实时操作需要非常快速的响应

通过Cassini方案将安全的云原生体验带到边缘

几年来,致力于满足可扩展的实时数据处理需求的开发人员已经使用云原生方法来增加自动化并简化应用程序的设计,编码和定制化。

这些已被用来构建仅在云端运行的应用程序的同样云原生技术,可以加以定制以供在边缘端使用,因此在满足特定于边缘的操作要求的同时,开发人员可以更加高效。

Arm创建了Cassini方案来满足这一需求。这是一项全面的行业计划,旨在使用云原生技术在网络边缘创建一种安全,灵活和可扩展的开发方法,从而使开发人员更容易满足边缘节点和终端的操作要求。

云原生架构的两个元素——Kubernetes和CI / CD(连续集成/连续交付)系统——是Cassini方案用例的一部分,用于在边缘进行可扩展的实时数据处理。

v Kubernetes

容器解决了从以下位置迁移时可靠运行软件的需求:

o 一个计算环境到另一个,

o 从开发人员的笔记本电脑到测试环境,

o 从过渡环境到生产然后再部署。

开源Kubernetes容器编排系统因其使用而闻名统一标准,可在设备之间提供一致的功能和体验。

v CI / CD管道

CI / CD管道为从事给定软件开发项目的所有开发人员,测试人员和产品经理创建了一个通用框架。它还减少了手工工作量,有助于尽早发现关键错误,并使合并反馈更加容易。

流水线的持续集成(CI)部分在代码更改后构建和测试应用程序,而持续交付(CD)部分将批准的更改推送到各种环境。使用CI/ CD管道进行软件开发会为每个人(包括开发人员,测试人员和产品经理)创建一个通用框架。尤其是,CI / CD管道可以部署较小的增量更新,从而逐渐将其逐步部署到大量分布式边缘设备,从而降低了风险,因此任何可能导致其他组件发生故障的重大更改都可以避免。在产生重大影响之前迅速解决。

Ø 在边缘使用容器的好处

o 改进的可预测性–在任何地方都以相同的方式运行软件功能

o 更高的安全性–使用权限驱动的交互的隔离微服务,

o 软件重用–提供保证在环境中运行的标准

o 降低复杂性–在通用环境中部署通用操作

o 更高的一致性–每次都部署相同的功能

Ø 在边缘使用CI/CD 的好处

Ø 更好的代码和更快的发布–带有更小的更新,更易于隔离,测试和修复;

Ø 新功能的上市时间更快;快速推出,以提供更快速响应的服务;

Ø 顺畅的操作;具有更少非关键缺陷的更干净的代码

Ø 自动化程度更高–具有部署代码的能力只需最少的人工干预,即可达到生产环境

Ø 更高的效率–开发人员有更多时间专注于代码质量和创新

Cassini方案建议:Rancher K3s和GitLab CI / CD

为了以针对边缘设备优化的格式提供云原生开发的优势,Cassini方案将基于RancherK3s的容器解决方案与在基于Arm的边缘设备(RaspberryPi)上运行的GitLab CI / CD系统相结合。

Rancher K3s是一种轻量级的生产级Kubernetes发行版,针对Arm架构。其占用空间小(约40 MB),可将应用程序快速,可靠地部署到边缘设备和其他资源受限的环境。

GitLab是一个基于Web的DevOps平台,提供了一个基于Git的存储库来跟踪对项目中文件的所有更改。Project Cassini管道使用GitLab服务器的CommunityEdition(CE),以免许可证发行,其中不包含专有代码。

如图所示,协调应用程序的过程包括三个阶段-构建,部署和更新。当开发人员向存储库提交更改时,流程阶段开始。触发管道只需执行一个简单的命令。在Arm架构上受支持的GitLab Runner,拾取构建作业,执行该作业,并将结果发送到GitLab服务器。GitLab服务器托管一个Docker注册表以对应用程序Docker映像进行版本控制,存储和分发。在交付阶段,GitLab运行程序自动从注册表中提取应用程序docker映像,连接到K3s应用程序集群,然后部署应用程序。与这个特定用例相关的所有配置文件都保存在这个github仓库中。

微信图片_20210127120415.jpg

                                  K3s / GitLab CI / CD管道会自动将更改从构建转移到部署和更新

每次更新完成时,都会在K3s集群上部署该应用程序的新版本。该过程使测试和部署云本机应用程序变得容易。总体方法具有高度可伸缩性,这意味着可以根据负载添加多个实例。

CI / CD流水线只是卡西尼方案描述的一部分

CI / CD流水线是边缘驱动用例进行数据处理的宝贵蓝图,并且是Cassini方案生态系统中云原生开发的重要组成部分。Cassini方案的其他要素使该流水线更加完善,这些要素解决了标准和安全性问题。

为了支持标准化,SystemReady合规性方案解决了底层固件和硬件功能之间的碎片问题,因此,现成的和社区的软件发行版(“发行版”)以及其他工作负载可以在各种Arm平台上无缝运行。为了应对安全威胁,在实施称为“信任根”(RoT)的安全基础时,经过ArmPlatform安全体系结构(PSA)认证的计划可对质量进行客观评估。通过与Docker的合作,PARSEC使PSA认证更加强大,该合作为跨平台的应用程序提供了安全的RoT抽象。

微信图片_20210127120418.jpg

                    Cassini项目使用标准,安全性和生态系统来创建云原生边缘体验

告诉我们你的想法

我们很荣幸能在支持者中选拔一些最有影响力的技术领导者。至关重要的是我们合作伙伴的反馈。我们欢迎您提供回应,并希望对我们提供的信息发表评论。我们期待着在边缘收到想法和想法,以及如何最好地确保和利用它。

要与我们分享您的反馈,我们邀请您发送电子邮件至:project-cassini@arm.com

Arm致力于协作。我们欢迎您对Cassini方案的见解。

采取下一步

要了解有关Project Cassini及其与Edge部署的关系的更多信息,

请访问www.arm.com/project-cassini

更多边缘云原生相关技术知识请关注Arm软件开发者专栏。
推荐阅读
关注数
5747
内容数
525
定期发布Arm相关软件信息,微信公众号 ArmSWDevs,欢迎关注~
目录
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息