gitops:自动化基础架构和LLMS的应用程序部署
>您可能遇到了用于自动化应用程序和模型部署的DevOps和MLOP。 现在,让我们探索Gitops,一个将DevOps原则扩展到基础架构自动化的框架。这篇文章详细介绍了Gitops,其重要性,不同的模型以及其集成到大型语言模型(LLM)项目中。
[
]

>由作者
图像
>通过我们的简短课程增强您对DevOps和Mlops的理解:DevOps概念和MLOPS概念。
了解gitops
gitops是一种操作框架,通过将配置视为代码(基础架构为代码或IAC)来自动化基础架构管理。 它利用版本控制,协作,合规性,CI/CD和可观察性(CORE DEVOPS TENETS)进行一致可靠的基础架构提供,尤其是在云环境中。 与使用源代码的开发人员一样,操作团队在GIT存储库中使用配置文件来确保部署一致。
基本gitops工作流程组件:
-
> git存储库:存储应用程序源代码和基础结构配置文件。
- >连续交付(CD)管道:自动化建筑物,测试和部署应用程序和基础架构的更改。>
>- >应用程序部署工具:确保基于GIT存储库配置的正确且有效的应用程序部署。
- 监视系统:>跟踪系统可靠性的应用程序性能和健康。
gitops vs. DevOps vs. Mlops
>
| devops
| gitops
| mlops
|
定义
| 结合了软件开发和IT操作,以缩短开发生命周期。>
>将DEVOPS原则应用于使用GIT作为真理的单一来源的基础架构管理。
| >将DEVOPS原理应用于机器学习模型开发和部署。>
|
>主要焦点 |
>自动化和改善软件开发,测试和部署。>
通过基于git的工作流程自动化基础架构和应用程序部署。
| >自动化ML模型开发,部署和生命周期管理。
|
关键原理 |
协作,CI/CD,IAC |
IAC,声明性配置,连续对帐,版本控制
模型版本控制,模型监视,可重复性,连续培训和部署
|
| >工具和技术
| jenkins,github动作,Terraform,Ansible,docker,kubernetes
| > argo cd,flux,kubernetes,helm,terraform,github动作
mlflow,kubeflow,tensorflow扩展(tfx),sagemaker,气流
|
| >用例
| >软件开发,应用程序部署,云本地应用程序。>
| 管理云基础架构,kubernetes部署,自动配置更新。
ML模型培训,部署,监视和再培训管道。
|
>自动化范围 |
>自动化应用程序构建,测试和部署到生产中。
| >自动化基础架构提供,配置管理和应用程序部署。
| >自动化ML模型培训,验证,部署和监视。
版本控制 |
用于软件和应用程序配置的版本控制的代码库。>
| git是基础架构状态和配置的真理的单一来源。>
ML模型,数据集和培训管道的版本控制。>
|
| > CI/CD Integration
>具有自动测试,构建和部署管道的核心原则。
>高度集成了CI/CD管道以自动化基础架构更新。 |
与CI/CD集成,但需要专门的ML管道进行连续培训和验证。 |
|
基础架构MGMT |
支持IAC,但更多地关注应用程序部署。
>通过版本控制的配置管理基础架构。 |
支持ML基础架构,并管理模型实验和漂移。
|
| 监视和观察
通过记录,监视工具可观察性。 |
通过gitops控制器(如Argo CD)进行连续监视和自我修复。
专注于模型性能监控,数据漂移检测和重新训练触发器。
|
挑战 |
文化转变,协作,工具链整合复杂性。
| >转向声明性基础架构,在大环境中缩放复杂性。
高基础架构的复杂性,数据管理挑战,与DevOps管道集成。 |
|
为什么选择gitops?
>传统的手动基础架构管理不足以现代云环境。 Gitops提供弹性可靠的基础架构,从而可以快速,一致地部署。它可以最大程度地减少手动错误,提高效率并确保基础架构和应用之间的同步。
密钥gitops优点:
- >版本控制:所有更改均在git中控制,促进回滚和审核。
-
改进的协作:使用熟悉的Git Workfrows有效地合作。
-
提高可靠性:声明配置启用自动系统状态恢复。
- 自动化:减少了手动干预和人为错误。
- 安全性: git的提交历史记录增强了安全性和可追溯性。
基于拉的基于推动的gitops>
存在两个主要的Gitops模型:基于拉的基于拉力和推动。
基于拉动的(典型的gitops): gitops操作员(Flux,argo cd)监视GIT存储库进行更改。检测到更新后,它将拉出配置并将其应用于目标环境。 该模型包括漂移检测和自我修复。>
>基于推动的(使用CI/CD工具):
诸如GitHub操作之类的工具将更新推向Commit上的群集。 它缺乏连续的对帐,漂移检测和自动回滚,但更容易实现。
将Gitops集成到LLM项目
>本节使用基于推动的Gitops方法采用GITHUB动作进行简单。 我们将将GITOPS原则应用于LLM应用程序部署项目(类似于“如何使用Docker部署LLM应用程序”教程。
[]
>
来源:如何使用Docker部署LLM应用程序:逐步指南
>
考虑我们的课程,使用MLOPS Mindset开发生产的机器学习模型,用于有效的模型培训,维护和缩放。
项目结构:
:应用程序代码,依赖项(),dockerfile。
:kubernetes配置(例如,,- ,
app/
)。
requirements.txt
:使用GitHub Action(- ,
infra/
)的CI/CD自动化
dev/
staging/
github操作工作流程:production/
- 开发人员将代码和配置委托给GitHub。
- > CI Pipeline(
ci.yaml
):构建Docker映像,可选地推动它并运行测试。
- cd pipeline(
cd.yaml
):使用kubectl apply
或helm upgrade
。
kubernetes群集已更新。-
>基于推动的gitops:优点和权衡
优点:
>简单:仅需要github动作。-
>一站式商店:github动作处理建筑物,测试和部署。- >
权衡:
不是真正的基于拉的:缺乏连续的和解。- >
无漂移检测:手动群集修改不会自动恢复。- >
安全性:需要仔细处理github秘密中的群集凭据。-
>过渡到基于拉的模型>
>对于较大的项目或更多要求的要求,基于拉的模型(Argo CD,Flux)提供自我修复,连续的对帐和视觉仪表板。
结论
>从gitops开始,逐渐结合其技术。从Docker,然后是Kubernetes开始,然后是基于推动的Gitops方法(GitHub动作)。 最后,过渡到基于拉力的模型,以实现生产水平的稳定性。 这种分阶段的方法最大程度地提高了Gitops对云原生应用的好处。 对于AI初学者,请考虑我们的AI基础知识技能。
以上是什么是Gitops?自动化基础架构管理的简单指南的详细内容。更多信息请关注PHP中文网其他相关文章!