介绍
What is Sail
Sail 是一款企业级的配置中心,在基本的配置文件管理的基础上,提供了很多功能,与市面上其它的配置中心相比,它的优势就是简单,这里的简单并不是简陋,而是围绕着配置文件进行一系列优化设计,方便使用,方便管理。我希望它能覆盖到一个配置中心应有的方方面面,却又保持简单。目前,Sail 支持以下能力:
- 基于项目的配置管理
- 公共配置的管理
- 命名空间管理
- 配置历史和回滚
- 多种配置格式支持
- 细粒度的权限管控
- 配置加密和解密
- 发布管理
正如水手通过船帆控制船的方向一样,我们程序员也善于通过配置文件来改变程序的行为,配置文件在我们的手里,就好像船帆,因为在改变行为这一点上,二者是共通的。 另外,为什么叫 Sail?
Docker、Kubernetes、Helm等优秀的项目,已经和航海有着紧密的联系,起名船帆也是希望 Sail 能深入对接Kubernetes,做云原生时代的配置中心。
要了解Sail到底做了什么,我们进入配置文件的视角,看看配置数据如何在系统中流转的:

- 管理员把配置文件按照项目维度输入到 SAIL 中。
- SAIL把一部分源数据(如:项目、项目组等)写入 MYSQL,并把配置内容塞到 ETCD 的某个 key 中。
MYSQL 并不存储配置内容,只是存储一些元数据。
- sail-client 从 etcd 中获取配置,这一步需要一些元配置信息(如:etcd 地址、获取哪个项目的配置)。放心,这些元配置可以从 SAIL 中自动生成的。
- sail-client 建立长连接,etcd 的配置会实时推送过来。sail-client 还会在本地保存配置副本文件。
- 服务进程既可以直接从 sail-client 获取配置,也可以通过读取 Backup 文件间接获取配置。
相信读者已经看出来了,ETCD 是这个系统的核心,Sail 主要是面向开发者提供了操作配置文件的接口。这样设计的初衷是把存储、分布式、横向拓展的能力交给 ETCD 去做,Sail 不存储配置,则只需要单点即可满足所有操作。那么 Sail 则专注于提供好用的界面给开发者即可。
当然,如何更快的接入到项目也是很重要的,sail 设计了 go 语言编写的 sail-client 去 etcd 获取配置,同时提供了 go 中使用的最广泛的配置框架 Viper 的支持,如果你原本就是使用 Viper,那接入是很简单的。
接下来
Demo
说了这么多,不如实际看看👇👇👇,操作并不复杂,即使没看文档,把玩两下也能大概明白。
- 登录名: demo
- 密码:Demo123
安装指南
将 Sail 安装到本机(二进制或 Docker 镜像) GO →
将 Sail 安装到 Kubernetes GO →
快速上手
快速学习如何使用 Sail GO →
参考
略微熟练后,记得回来看看参考文档,了解一些细节,防止出错~ 😉 Go →
帮助
到此页面获取帮助 Help →
学习云原生知识,可以购买一个云服务器自己操作一下。👆👆👆
