软件和算法、数据和模型的持续交付-Tekton&Tecton

原创
2020/06/02 06:16
阅读数 345

按照DevOps理念,在kubernetes上实现CI/CD(持续集成/持续交付)能力,以及进一步实现数据和算法(如ML-机器学习)流程,是kubernetes集群的下一步目标。Tekton是一个CI/CD平台,Tecton是ML的数据平台。

集群环境下的CI/CD(持续集成/持续交付)与单机环境、持续交付有何不同?集群环境尤其是容器集群环境需要进行容器镜像服务支持、容器镜像的构建、容器镜像的多节点部署、集群的设置和版本切换、多实例集群化测试、灰度测试与金丝雀发布等更多的步骤,远远比传统的单机或中心式集群复杂。目前github.com/GitLab/hub.docker.com都提供了容器的镜像构建能力,但是缺乏生产环境的灰度测试和发布能力,因此尚无法提供完整的DevOps能力,仍然是传统的持续交付方式。

ML(机器学习)工作流程,上图来自于 https://tecton.ai/blog/devops-ml-data/

JenkinsX

JenkinsX跟Jenkins类似,但是针对Kubernetes集群环境的持续集成/持续交付工具。通过将代码抓取、自动化构建、测试与分发、部署集成到一个完整的开发流程,实现软件的自动化交付流程。

Tekton

Tekton 是一个功能强大且灵活的 Kubernetes 原生框架,用于创建 CI/CD 系统。通过抽象出底层实现细节,允许开发者跨多云环境或本地系统进行构建、测试与部署。

特性包括:

  • 工件管理:存储、管理和保护工件,同时 Tetkon 管道可以很好地与其它第三方工具相配合。
  • 部署管道:部署管道旨在支持复杂的工作流程,包括跨多个环境的部署以及金丝雀部署和蓝/绿部署。
  • 结果:作为内置结果存储 API 的一部分,通过日志可以深入了解测试与构建结果。

更多参考:

Tecton

Tecton与Tekton虽然只有一字之差,但设计思路也有类似的地方,但Tecton是专注于ML的数据流程,而Tekton是用于CI/CD的,说白了就是用于代码/配置参数/二进制软件等的持续集成和持续交付。

为什么需要Tecton呢?因为对于ML(机器学习),传统的CI/CD工具就不太好使了。在ML流程中,涉及到训练数据集、参数集、测试数据集等多种数据及其多个版本,而且往往数据量比较大,在集群中还需要多个节点能够同时访问。换句话说,在ML工作流程中,是以数据为中心的,而且往往需要多次迭代、调优。

Tecton是专门为ML设计的DevOps系统,Tecton平台组成包括:

  1. Feature Pipelines, for transforming your raw data into features or labels
  2. Feature Store, for storing historical feature and label data
  3. Feature Server, for serving the latest feature values in production
  4. SDK, for retrieving training data and manipulating feature pipelines
  5. Web UI, for managing and tracking features, labels, and data sets
  6. Monitoring Engine, for detecting data quality or drift issues and alerting

详情查看:

KubeFlow

KubeFlow也是一个ML的流程化工具,但是侧重于数据探索和模型构建,而不是流程和运维管理。

关于KubeFlow的更多介绍参考:

可以用于数据流程的工具还有AirFlow、NiFi、MLFlow等等。参考:

随着ML(机器学习)的投入生产应用,将CI/CD方法和DevOps理念与ML流程结合起来,提高ML流程的效率,实现算法模型的持续学习、快速迭代、动态部署、运维监控、持续优化,以及进一步将其运用到边缘计算设备中,是机器学习实现生产力提升的关键步骤,同时也需要建立相应的数据、算法、模型库等AI基础设施来进行支持。

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部