【技术沙龙002期】数据中台:宜信敏捷数据中台建设实践|宜信技术沙龙 将于5月23日晚8点线上直播,点击报名
LAIN是宜信公司大数据创新中心开发的开源PaaS平台。在金融的场景下,LAIN 是为解放各个团队和业务线的生产力而设计的一个云平台。LAIN 为宜信大数据创新中心各个团队提供了统一的测试和生产环境,简化了服务的部署与上线流程,也降低了运维人员对系统管理的复杂度。
LAIN 规范了一个应用的开发、测试、上线工作流,提供了为应用做的容器编排、权限控制、SDN、流量管理、监控报警、备份、日志等 devops 问题的整体解决方案。
在 LAIN 上,应用是一个基本的概念,某个应用的开发者只需要定义一个 lain.yaml 即可定义应用的编译和运行方式,对应用代码侵入性很低。LAIN 基于容器技术,面向多样化的技术栈,并且天然隔离系统和应用的依赖。
当 LAIN 用户创建一个应用(服务)时,可以到 LAIN 上注册该应用,当前的用户自动成为了该应用的维护者,拥有了进一步操作该应用的权限。构建应用的环境需要 docker 和 lain 命令行工具,为了方便,我们创建了一个 vagrant box 即 lain-box. 在构建应用时,除了工程代码外,还需要一个 Docker 镜像作为基础镜像,即编译的环境。如果是二进制的工程,如 golang,则可以在运行时换掉一个底,否则会使用 build 镜像为 release 镜像。准备好镜像和编译/运行的脚本后,就可以编辑 lain.yaml 了。
具体来说,LAIN 解决了以下四个问题:
常见问题
Lain是怎么做的
常见问题
Lain是怎么做的
常见问题
Lain是怎么做的
在应用的层面上,LAIN 还有以下特征:
1、基于配置文件定义应用
2、SDN网络安全隔离
3、基于容器技术支持多样化的技术栈
4、应用在线扩容缩容
5、节点在线扩容缩容
6、服务自动维持和灾难恢复
7、内部服务依赖和发现机制
8、统一认证
9、虚ip和负载均衡器统一管理
10、web load balancer的自动配置
11、集群体系化的日志收集
12、私有docker registry以及认证机制
13、应用配置加密存储
14、本地化开发环境
15、应用部署运维API以及相应的CLI客户端
16、集群管理CLI
17、规范化的开发workflow
18、可选的集群体系化的备份和恢复(backupd + moosefs)
19、可选的集群日志查询组件(kafka + elasticsearch + kibana)
20、可选的系列预置应用
从物理层面看,每一个 lain 集群是由一个或多个网络互通的节点(Node)构成的。
每个节点可以被赋予不同的 label ,供容器调度时进行节点选择使用。
目前的实现中,需要所有节点位于同一个路由器后。
从逻辑层面看,一个 lain 集群是由多个应用组成,应用和应用之间网络相互隔离(通过SDN技术)。
每一个应用是由多个 Docker 容器组成,每个容器都可能运行在不同的节点上。
应用开发者可以在一个应用中定义多种容器(称为 proc),每个 proc 可以指定为在集群上运行多份,每份即为一个容器,被称为 proc instance 。Lain 集群会尽可能保证有指定份数的容器在运行,如果有容器 crash 或者节点 fail 的情况发生,集群会试图重启容器或者在节点间迁移容器。
目标是做成一层一层可以深入的架构图
总图
节点
GitHub地址:https://github.com/laincloud
白皮书:https://laincloud.gitbooks.io/white-paper/content/
来源宜信技术学院
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。