写点什么

在 Spinnaker 中创建微服务部署管道

  • 2016-03-07
  • 本文字数:2123 字

    阅读完需:约 7 分钟

在近期于德国柏林举办的 microXchg 2016 大会上,Rick Buskens 进行了一场名为“在Spinnaker 中实现微服务部署管道”(Microservice Deployment Pipelines with Spinnaker)的演讲,在演讲中谈到了Netflix 与Google 在 Spinnaker 这个由 Netflix 设计的持续交付平台上的合作关系。Spinnaker 可以为用户创建构建管道,保证了微服务应用程序部署的安全性与可预见性,并且支持多种云环境。

Buskens 是来自 Google 开发者基础设施部门的一位工程经理,他在演讲的开头部分说道,Google 对于 Netflix 所主导开发的 Spinnaker 这个持续交付工具非常感兴趣。Netflix 在使用微服务架构构建流媒体视频平台方面的工作是众所周知的,整个架构中包含了大量组件,并且具有极高的动态性,这也表现出 Netflix 部署代码的频率之高。

任何一个微服务出现故障都有可能破坏用户体验,因此安全的部署是非常关键的,而 Netflix 在确保“工业级”的安全部署方面具有相当丰富的经验。因此,Google 已经与 Netflix 团队展开了合作,目的是创建高效与高适用性的工具,以支持基于微服务的项目的持续交付。

我们清楚有许多社区中的朋友还不愿意采用持续交付流程,因为它过于复杂。他们也不愿意选择某个云环境,是担心将自己的业务锁死在某个平台上。因此,Google 希望能够为用户提供良好的工具,帮助用户将应用可靠地部署在云环境中。

总的来说,通过与 Spinnaker 社区的合作,我们希望为这方面的工具实现标准化。

安全的部署之所以难以实现,是由于部署的“非密封性”,而且常常会受到手动交付流程的影响。尤其当应用的责任由多个开发与运维团队共同承担的时候,这种现象会更为明显。这将导致对于目前所部署内容的不确定性、容易出错的部署、以及失败的部署,而且往往需要那些并不熟悉所部署的组件的人参与到这一过程中。

Buskens 认为,持续交付(CD)能够缓解安全方面的风险。CD 的核心原则包括对每个变更都进行预发布、对生产环境的准备情况进行验证、自动化、避免故障以及最大化部署的可靠性与可预见性。在实现这些原则的时候,可以利用不可变基础设施(例如 VMDK AMI 等服务器镜像,或者 Docker rkt 等容器技术)等技术以避免配置的差错、创建特定于环境的部署步骤、提供蓝绿发布等策略、以及在测试与反馈循环中包含部署标志。

Netflix 所创建的 Spinnaker 能够通过构建管道的创建与管理,以编程方式解决以上问题中的一部分。Spinnaker 本质上是一个面向云环境的持续交付平台,它取代了 Netflix 的开源项目 Asgard 持续交付平台。Spinnaker 平台的输入是构建的结果(例如通过 Jenkins 等持续集成工具所构建的包),它所生成的镜像可部署至某个目标环境。多个管道构建出了一个小型的工作流,提供了部署的阶段和提升门(promotion gate)(例如“提升至生产环境”),这些管道可以链接在一起,以生成一个完整的持续交付工作流。

Spinnaker 中的核心概念包括:“服务器组”,它本质上就是一种“安全、实现了负载均衡、并且具有容错性的微服务”,其中包括了基本配置信息、一个负载均衡器、安全组、机器类型以及分发策略。一个“集群”,即多个服务器组的一种逻辑分组。还有一个“应用程序”,代表多个集群的一个逻辑分组。部署过程包括镜像的发布、流量转换的管理、以及能够简单地进行回滚(如有必要)的功能。Spinnaker 还提供了可适配的部署策略,支持蓝绿发布、高地人发布(highlander,意指只能有一个存在!)、或金丝雀发布。

重点在于,Spinnaker 是基于(Spinnaker)在云环境中部署工业级别的应用程序的经验而设计的。我们很清楚它能够正常运行、并且有良好的伸缩性,它是一系列关键的最佳实践的完美展现。

一个 Spinnaker 管道由配置与阶段所组成。配置的内容包括一系列触发器、参数以及通知,而阶段就是指“上下文感知的操作”,例如“发布至预发布环境”。管道的设计目标是具有良好的可扩展性与重用性,而且通常会与上游的 CI 系统(例如 Jenkins)相集成。多个管道将链接在一起以创建一个工作流。

Spinnaker 目前支持多种云环境,包括 Amazon Web Services、Microsoft Azure、Cloud Foundry 以及 Google Compute Engine。

在 Google 看来,当我们为客户提供 DevOps 解决文案时,可以充分利用 Spinnaker 的强大功能。它是一种支持多个云环境的解决文案,因此我们非常希望确保用户能够选择正确的工具与基础设施,以及流程,让用户能够更快、更可靠地交付软件。

通过对 Spinnaker 的“ clouddriver ”微服务进行扩展,可支持更多的云环境。

Netflix 在 2015 年 11 月 16 日将 Spinnaker 开源,目前已经运用在 Netflix 产品的生产环境中了。 Spinnaker 的代码是开源的,可从 GitHub 上下载,它在 Slack 上建立了一个专门的频道,并且在 StackOverflow 上有一个专门的讨论标签。该项目将很快发布一个公开的路线图。如果用户想快速地尝试一下这个项目,可以使用能够“一键完成”的 Google Cloud Launcher Spinnaker 平台,在 spinnaker.io cloud.google.com/solutions 上可以找到操作指南。

用户可以在会议专属的 Youtube 频道上欣赏 Rick Buskens 的演讲“在Spinnaker 中创建微服务部署管道”的视频。

查看英文原文: Creating Microservice Deployment Pipelines with Netflix’s Spinnaker: A Perspective from Google

2016-03-07 18:003146
用户头像

发布了 428 篇内容, 共 177.6 次阅读, 收获喜欢 38 次。

关注

评论

发布
暂无评论
发现更多内容

GitHub登顶的 Java 面试八股文(2023金九银十最新)附答案详解

架构师之道

程序员 java面试

干货满满:多人语音聊天室源码开发解析

山东布谷网络科技

源码剖析

SpringBoot使用spring.config.import多种方式导入配置文件

java易二三

Java spring 程序员 Spring Boot 计算机

9-7毕业设计,秒杀架构

家有两宝

架构实战营

ARM64是什么意思?与x86有什么区别?

行云管家

arm64

【5分钟背八股】ZooKeeper和Reids做分布式锁的区别?

java易二三

redis zookeeper 程序员 计算机 八股文

火山引擎ByteHouse:一套方案,让OLAP引擎在精准投放场景更高效

字节跳动数据平台

大数据 云原生 Clickhouse 企业号 8 月 PK 榜

低代码实现探索(五十九)SAP底层技术研究

零道云-混合式低代码平台

IIOT WIFI5 solution-DR40X9-IPQ4019-IPQ4029 CPU-supports dual-band wireless connection-The most popular

wifi6-yiyi

wifi5

RPA+智能问答实现微信端智能客服 | 京东云技术团队

京东科技开发者

微信 RPA 智能客服 企业号 8 月 PK 榜

LED小间距屏幕的COB封装技术应用和优势

Dylan

技术 封装 PCB LED显示屏

分享实录 | 将 NGINX 打造成功能强大的 API 网关(下)

NGINX开源社区

nginx api 网关 后端服务

利用CI机制管控jar依赖树 | 京东云技术团队

京东科技开发者

ci CI/CD jar包 企业号 8 月 PK 榜

Serverless 应用托管助力企业加速创新

Serverless Devs

阿里云 Serverless 云原生 应用引擎

透彻理解 Axios Blob 的使用与优化

Apifox

性能优化 后端 HTTP API web开发

Nacos服务整合SpringBoot框架技术

java易二三

Java 程序员 Spring Boot 计算机 科技

3-6作业

家有两宝

架构实战营

电商小程序微服务架构

艾瑾行

架构训练营

如何用树莓派Pico针对IoT编程?

高端章鱼哥

树莓派 物联网 树莓派 Pico MCU

十问Huawei Cloud Toolkit:开发插件如何提升云上开发效能

华为云开发者联盟

ide 开发 华为云 华为云开发者联盟 企业号 8 月 PK 榜

小白都会的数据可视化大屏搭建,速来学习

华为云开发者联盟

开发 开发工具 华为云 华为云开发者联盟 企业号 8 月 PK 榜

前端合成海报并保存到本地

南城FE

JavaScript 小程序 前端 图片合成

ABAQUS正版授权软件怎么下载?达索中国代理商思茂信息

思茂信息

abaqus abaqus软件 有限元仿真技术 有限元分析 结构仿真

chatglm2-6b模型在9n-triton中部署并集成至langchain实践 | 京东云技术团队

京东科技开发者

人工智能 #LangChain langchain 企业号 8 月 PK 榜 ChatGLM2-6B

深入理解 Flutter 图片加载原理 | 京东云技术团队

京东科技开发者

flutter 移动开发 图片懒加载 企业号 8 月 PK 榜

开源XL-LightHouse与Flink、ClickHouse之类技术相比有什么优势

feng

大数据 flink Clickhouse 流式计算 流式统计

直播平台源码优质平台技术:并行处理与线程优化的探索与实践

山东布谷科技

软件开发 源码搭建 直播平台源码 并行处理 线程优化

HertzBeat 集群版开源,易用友好的开源实时监控系统!

TanCloud探云

Java GitHub 开源 程序员 监控产品

软件测试丨Chrome 115之后的版本,如何更新driver?

测试人

chrome 程序员 软件测试 自动化测试 chromedriver

在Spinnaker中创建微服务部署管道_服务革新_Daniel Bryant_InfoQ精选文章