介绍

What is Sail

Sail 是一款企业级的配置中心,在基本的配置文件管理的基础上,提供了很多功能,与市面上其它的配置中心相比,它的优势就是简单,这里的简单并不是简陋,而是围绕着配置文件进行一系列优化设计,方便使用,方便管理。我希望它能覆盖到一个配置中心应有的方方面面,却又保持简单。目前,Sail 支持以下能力:

  • 基于项目的配置管理
  • 公共配置的管理
  • 命名空间管理
  • 配置历史和回滚
  • 多种配置格式支持
  • 细粒度的权限管控
  • 配置加密和解密
  • 发布管理

为什么叫 Sail?

正如水手通过船帆控制船的方向一样,我们程序员也善于通过配置文件来改变程序的行为,配置文件在我们的手里,就好像船帆,因为在改变行为这一点上,二者是共通的。

另外,DockerKubernetesHelm等优秀的项目,已经和航海有着紧密的联系,起名船帆也是希望 Sail 能深入对接Kubernetes,做云原生时代的配置中心。


要了解Sail到底做了什么,我们进入配置文件的视角,看看配置数据如何在系统中流转的:

数据流向图

  1. 管理员把配置文件按照项目维度输入到 SAIL 中。
  2. SAIL把一部分源数据(如:项目、项目组等)写入 MYSQL,并把配置内容塞到 ETCD 的某个 key 中。
  3. sail-client 从 etcd 中获取配置,这一步需要一些元配置信息(如:etcd 地址、获取哪个项目的配置)。放心,这些元配置可以从 SAIL 中自动生成的。
  4. sail-client 建立长连接,etcd 的配置会实时推送过来。sail-client 还会在本地保存配置副本文件。
  5. 服务进程既可以直接从 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 →



学习云原生知识,可以购买一个云服务器自己操作一下。👆👆👆