## Cloudbang(云帮)
###
云帮 是好雨科技研发的一款基于容器技术的应用管理平台。社区版针对个人、企业完全免费,您可以自由的下载与传播。借助它您可以实现:
*
#### 企业级的Docker管理平台
*
#### 开发、测试环境的CI/CD平台
*
#### 生产环境的运维平台
### 快速开始
您可以访问 [平台安装](http://doc.goodrain.com/cloudbang-community-install/198499) 章节阅读云帮社区版的安装手册,快速部署一套属于自己的私有云平台。
如果您想深入了解云帮平台,可以访问 [设计思想](http://doc.goodrain.com/cloudbang-community-install/208393),[架构](http://doc.goodrain.com/cloudbang-community-install/208394)和 [组件说明](http://doc.goodrain.com/cloudbang-community-install/208395) 等章节详细阅读。
### 概述
云帮可以创建符合 [12要素](https://12factor.net/zh_cn/) 的云原生应用。平台使用Docker作为基本的计算单元来封装应用,利用Kubernetes对应用进行编排和容器调度。好雨将Kubernetes 与 Docker 进行了深度整合,并针对企业级服务特性自主研发了应用引擎、运维平台、持续交付引擎、自动化运维、云应用市场等功能模块,底层的分布式存储、SDN、日志收集、实时统计则采用了扩展性极强的插件式设计,增强了平台的灵活性和扩展性。
### 12要素应用
符合12要素原则(实践方法)构建的应用可以在分布式系统中灵活的伸缩与迁移。
12要素 的贡献者参与过数以百计的应用程序的开发和部署,并通过 Heroku 平台见证了数十万应用程序的开发,运作以及扩展的过程。
云帮的设计完全兼容了12要素原则,可以实现云原生应用的高可用、弹性伸缩,灵活迁移等特性。
平台集成环境自动构建功能,不但支持Dockerfile构建应用,还提供了源代码级别的应用构建,您无需了解Docker,也不需要写Dockerfile,平台可以将您的源代码自动构建成应用并运行起来。
### 应用
云帮平台提到最多的名词就是 **应用** ,云帮中可操作的对象也是应用,这里的应用指的是可独立提供服务的单元,请不要与手机应用,APP混淆。
**应用** 可以通过下列三种形式来创建/获取:
1.
Git仓库中的源代码
2.
Git仓库中Dockerfile文件以及相关的源代码
3.
应用市场 或 [云市](http://app.goodrain.com/)中通过 "一键部署" 安装
**应用** 可以有不同的类型,不同应用有各自的属性和行为,如:Web应用的属性包含 应用名称,默认域名,开放端口,行为包含 绑定域名、扩容节点、启动、关闭等。 MySQL应用的属性和行为都是针对MySQL服务所特有的,如备份恢复,数据库管理等等。
构建、发布与运行
![image](http://static.oschina.net/uploads/img/201610/26125803_V2W9.png)
### 构建阶段
构建组件处理来自git push的请求,或者用户触发构建(一键部署)操作。
如果您提交的是[源代码](http://doc.goodrain.com/usage/181924),构建组件会进行源代码的构建操作,检查代码语言,利用语言的包管理工具安装相关环境依赖和代码库依赖。源代码构建程序还会将本次源码语言的类型、包依赖关系存入应用属性中。
如果构建模块发现您的代码中包含一个 [Dockerfile](http://doc.goodrain.com/usage/181953) 文件,会按照Docker标准的镜像构建的方式解析Dockerfile,生成Docker 镜像并推送的内部私有的镜像仓库中。
### 发布阶段
发布阶段由应用引擎来完成,它负责将本次构建的应用注册为一个新的版本,并将源码、Dockerfile在构建阶段识别出来的属性存储下来。为应用存储版本信息是为了上线后方便回滚,存储构建信息是为了下次构建时缓存状态。
### 运行阶段
运行阶段主要由 应用引擎 和 Kubernetes 来完成,首先由应用引擎初始化租户网络(如果租户网络已经存在,该步骤跳过),然后应用引擎调用Kubernetes的控制器服务部署租户应用,应用的属性信息由应用引擎设定。容器创建成功后,会将信息写入到etcd服务中,应用层负载均衡的自动发现机制感应变化后更新负载均衡节点信息。
### 后端服务
云帮将所有持久化存储服务如:数据库、缓存、存储、消息系统等均看成是应用的附加资源,这些服务与应用是分开的,我们不建议将应用和后端服务放到一个应用中,这样做违背了12要素的设计原则。
应用程序通过环境变量的形式与后端服务进行关联。这样做是为了将应用与后端服务解耦,无论是应用还是后端服务都可以实现独立的灵活伸缩。
[更新日志](http://doc.goodrain.com/cloudbang-community-install/211913)
- 授权协议:
- BSD
- 开发语言:
- Python Google Go 查看源码»
- 操作系统:
- Linux