首页 > 编程知识 正文

spinnaker sdk,微服务架构设计

时间:2023-05-05 11:19:05 阅读:158548 作者:336

本文详细介绍了spinnaker项目的微服务设计。 这里被称为微服务设计的,不是微服务架构,而是被称为微服务设计的,是spinnaker结合了由Netflix和谷歌的多个开源产品构建的微服务节点的微服务设计

我们了解的传统微服务体系结构包括以下几个部分。

具体细节暂且不论,可以看出微服务体系结构从大致方向上具有一定的方法论,需要一系列辅助节点和管理节点来帮助管理服务。

尽管Spinnaker没有这种治理理念,但我之所以认为它是微服务设计,是因为很多节点项目都是在2012年启动的。 那时,还没有SpringCloud,许多SpringCloud的雏形代码都从这些开源项目中获得了灵感。 对微服务的理解是,只要能很好地进行功能划分,节点角色明确,各节点之间通过ResfFul松耦合调用,节点内部也具备很高的可扩展性,就可以说是微服务设计。

让我们具体看看Spinnaker每个服务节点的能力责任

Deck—前端用户界面

该节点是由node.js开发的一组前端UI界面,为操作员提供可视化界面。 唯一对接的后端接口是gate。

Gate—服务网关

与spring cloud zuul类似,Gate节点负责后端端口的路由转发和身份验证,但此处的身份验证不是Gate本身提供的,而是调用另一个名为“Fiat”的服务节点。 Fiat和Gate相互配合完成认证,如何认证将在Fiat节点中详细介绍。

Fiat—服务认证

Spinnaker帐户的安全限制分为两个方面:身份验证和身份验证。 错别权是对账户合法性的认证,授权是赋予该账户什么样的权限。 spinnaker首先让一个叫Fiat的微服务器节点处理认证,得到登录账号后把用户名和是否合法交给gate,gate去调用Fiat的许可接口。 Spinnaker的帐户密码是无创的。 这意味着没有独立的用户仓库,而是通过LDAP、github、SAML、定制文件配置等方式直接集成到企业系统中。

前50

Spinnaker中专门从事存储的地方是AWS中的S3、Redis、minio (可以理解为本地的一个S3桶)、谷歌的Storage和微软的Storage进行对接,海外

CloudDriver

作为Spinnaker的三大核心之一,负责连接云平台API的微服务节点看起来功能单一,只是调用云平台SDK,但每次访问云时,这一切都是本机版本支持OpenStack、AWS、谷歌云、Microsoft云和K8s。 2019年6月腾云接入,成为国内首家支持spinnaker的云厂商,2019年8月,AlibabaCloud (阿里巴巴云)接入,京东云华为云已经开始制定接入计划。

Rosco

在Spinnaker上负责镜像的微服务节点理论上应该是clouddriver的一部分,但创建云平台镜像是一项独立复杂的功能,引入了packer等专业工具

Echo

-left:0cm;">这是spinnaker中负责跑堂的店小二,从字面意思看是负责通知的微服务,其实它还干了很多其它的辅助工作,例如定时任务、事件监听等,用dota的话说是标准的5号位,打信息的,没啥技术含量,专干体力活。

 

Igor

这是spinnaker中的个性的乐曲,负责对接一切CI/CD领域流行的工具,例如Jenkins、github、travis等,就像一个插排转接头,负责与外面工具进行集成。

 

Kayenta

这也是spinnaker三大核心之一,负责金丝雀分析的微服务节点。它对接了Stackdriver、Atlas、 Prometheus、Datadog这些主流的监控工具,可以让我们抛开业务层面直接拿新版本镜像与在网版本镜像进行CPU、内存、磁盘、IO、网络请求等各种维度的比对,并赋予一定权重,最终给出0-100之间的一个参考分数,辅助我们判断新版本的可用性。

 

Orca

Spinnaker三大核心之首,负责整个微服务的“编制”工作。Spinnaker将一些串行的任务指定为一个个的stage,而前台UI提供了可视化的界面将这些stage串联起来形成一个个的pipeline。Orca就是负责这些Pipeline中stage的调度的。举个例子要发布一个软件包首先要经过baker这个stage,orca会去调用rosco进行处理;然后有了镜像后经过deploy这个stage去highlander部署,orca会去调用clouddriver创建伸缩组、创建伸缩配置、创建伸缩规则、监听实例状态、缩容在网伸缩组、切换LB的流量、销毁在网伸缩组等一些列接口,一旦中间发生异常需要通知echo进行告警。

 

Halyard

有点像Spring Config+Spring Bus的组合体,是spinnaker为了操作方面开发出的命令方式管理工具,按照spinnaker的hal命令操作手策输入不同的命令和参数,halyard就会将这些配置更新到对应的微服务yml配置中去。

 

Spinnaker整个设计就像积木一样,每个节点都可以独立运转并具备独当一面的功能,而做为混合云持续部署平台,Orca、CloudDriver、Rosco、Front50、Gate、Deck这6个是必选的,如果需要安全加固就引入fiat,如果需要通知机制就引入echo,如果需要金丝雀分析就引入kayenta,如果要跟其它工具集成就引入igor。Halyard也不是必须的,因为一旦熟练后完全可以直接修改对应服务的yml配置文件。

 

所以微服务设计的产品,重在功能的拆分,而且每个节点也具备独立的服务能力和高扩展性。

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。