一、Spinnaker介绍
- 持续交付平台(快速且持续的部署到多种云平台上)
- 特征:配置一次、随时运行;随地部署,集中化管理;快源
- 实现目标:1)通过灵活和可配置的管道实现可重复的自动部署2)提供一个所有环境的全局试图,一个应用程序可以看见自己在所属管道中的状态3)通过一致且可靠的API,提供可编程配置4)易于配置、维护和扩展
二、主要功能
- 集群管理:1)机器组:Spinnaker管理资源的单位,标识了机器实例,并关联了一个负载均衡器和安全组(每个机器组都有独立的配置信息)2)安全组:安全组定义了网络访问权限(类似于防火墙规则)3)负载均衡器:将网咯流量重新定向到机器组中的机器实例,同时可以指定一系列规则,用于对机器组中的机器实例做健康检查4)集群:用户自定义的机器组的逻辑分组
- 部署管理功能1)创建一个持续交付流程2)较强的pipeline能力3)触发的方式:定时、人工、jenkinsjob、docker images4)通知方式:email、SMS或HipChat5)将所有的操作融合到pipeline中:回滚、金丝雀分析、关联CI等
三、组件间关系
- Deck:面向用户UI界面组件,提供只管简洁的操作界面,可视化操作发布部署流程
- API:面向API调用,可以直接使用API操作,执行后台任务
- Gate:是API的网关组件(可理解为内部总代理,所有请求由其转发)
- Rosco:构建beta镜像的组件,需要配置Packer组件使用
- Orca:核心流程引擎组件,用于管理流程
- Igor:用来集成其他CI组件(jenkins等)
- Echo:通知组件,发送邮件等信息
- Front50:存储管理组件,需要配置Redis、Cassandra等组件使用
- Cloud driver:用于适配不同云平台的组件(Kubernetes、Google、AWS等)
- Fiat:鉴权组件,配置权限管理