没有合适的资源?快使用搜索试试~ 我知道了~
Flynn是一个开源的PaaS平台,可自动构建部署任何应用到Docker容器集群上运行,其功能特性与组件设计大量参考了传统的PaaS平台Heroku。本文旨在从使用动机、基本对象、层次架构、功能组件、基本工作流这几个方面对Flynn做总体的介绍。为了便于理解Flynn的作用与功能,让我们先来看看应用程序从开发到构建再到部署再到运行分别需要经历的几个实体状态: 更具体一点,以一个Java程序为例来描述: 源代码:包括*.java、log4j.properties、pom.xml等文
资源推荐
资源详情
资源评论
Flynn初探:基于初探:基于Docker的的PaaS平台平台
Flynn是一个开源的PaaS平台,可自动构建部署任何应用到Docker容器集群上运行,其功能特性与组件设计大量参考了传统
的PaaS平台Heroku。本文旨在从使用动机、基本对象、层次架构、功能组件、基本工作流这几个方面对Flynn做总体的介
绍。
为什么需要Flynn
为了便于理解Flynn的作用与功能,让我们先来看看应用程序从开发到构建再到部署再到运行分别需要经历的几个实体状态:
更具体一点,以一个Java程序为例来描述:
源代码:包括*.java、log4j.properties、pom.xml等文件。
发布包:源代码被编译打包后生成一个JAR包,这个就是发布包。
部署配置:比如每个进程的启动命令、环境变量、系统属性等。通常,这些配置会写在一个启动脚本里面。
进程:运行Java程序的实体。一个Java程序可以起多个进程,每个进程启动不同的主类(实现了main()方法的类,一个JAR包
可以包含多个主类)。
引入docker后,发布包变成封装了JAR包与JDK环境的镜像,进程变成在相互隔离的容器里运行。但是,从源代码到镜像、从
镜像到运行容器这两步转换过程需要用户人工的操作。尤其是后者的转换,涉及到集群资源调度、自动部署、配置管理、容器
管控等一系列的复杂流程。更进一步,在运行阶段还涉及扩缩容、日志查看、错误处理、运行监控等运维需求,如果全部人工
操作将耗费巨大的工作量。
这时候类似Flynn这样的PaaS出场了,基于Docker之上进一步封装了整个构建、部署、运行工作流,使得用户只需简单地提
交代码即可完成开发到运行的快速转换:
开发到构建:用户通过Git提交源代码,由Flynn自动构建镜像,并提供版本的管理——用户可以创建新版本(提交新代码或修改
部署配置)、回滚老版本等。
部署到运行:Flynn自动选择运行机器,为每个进程副本部署启动单独的容器,并提供进程的管理——用户可以做扩缩容、查
看日志、监控状态等。
Flynn的基本对象
下面我们来看看发布包、部署配置、进程这三个实体在Flynn中是如何抽象的。如下图所示是其基本对象的关系描述:
App:表示一个应用,所有其他对象都是围绕App而展开。
Artifact:表示应用的发布包,实际上对应一个Docker镜像。
资源评论
weixin_38564598
- 粉丝: 2
- 资源: 907
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功