什么是bosh

BOSH统一了云计算软件的工程发布,部署,生命周期管理。BOSH可以在上千台服务器(VMs)上部署软件。同样提供监控,灾难恢复和软件0downtime更新。

BOSH为了部署Cloud Foundry而开发。也可以用来部署几乎所有的其它软件如hadoop。非常适合大的分布式系统。支持多种基础设施(vCloud openstack AWS等)。Cloud Provider Interface(CPI)可以让用户将BOSH扩展到其它的基础设施上去,如阿里云。

bosh解决了什么问题

bosh允许个人开发者和团队更简单的可再现的方式进行版本管理软件打包和部署。

所有的软件,不管是一个简单的静态网站还是一个复杂的多组件的服务都需要更新和重新打包。这些更新的软件可能需要部署到集群上,也可能打包给终端用户自己部署。

很多情况下,开发者开发的软件通常会部署到自己的生产环境中。会弄一个开发环境与生产环境保持一致。通常为了维护这些环境之间的关系非常痛苦。

四个原则:

  1. Identifiability 有能力鉴别所有的源码,工具,环境和其他组建,组成一个特殊的release.有一个软件release的概念,它包含所有的源码,二进制文件,配置文件等。允许用户快速简单的跟踪release的内容。
  2. Reproducibility 有能力让源码,第三方模块,数据一体化,保障操作稳健。BOSH工具链提供集中式的软件管理,系统镜像,持久化数据和操作系统配置。
  3. Consistency The mission to provide a stable framework for development, deployment, audit, and accountability for software components.
  4. Agility The ongoing research into what are the repercussions of modern software engineering practices on the productivity in the software cycle, i.e. continuous integration. BOSH工具链提供一个简单的自动化的方式创建一个releases,一键式更新一个复杂的部署的系统。

Stemcell

A stemcell is a versioned operating system image wrapped with IaaS specific packaging.
一个典型的stemcell包含一个裸的最好的OS骨架和一些能用的预安装软件,一个BOSH代理一些配置文件安全的配置操作系统。比如 vsphere的官方stemcell合适的500MB VMDK文件。  AWS官方的stemcells通过AMIs发布就可以使用你的AWS账号。
stemcells不包含软件的特定信息,也不包含一些导致不能与其他BOSH用户分享的敏感信息。这种明确的操作系统隔离和其他软件的隔离让stemcells成为一个强大的概念。
为了保证能通用性,stemcells的一个os针对所有的基础设施都是相同的。这个特点让BOSH用户快速可靠的在不同的基础设施之间切换,不用担心异构的操作系统镜像。
BOSH团队维护了一个stemcell的集合。

Release

是一个版本集合,包含属性配置,启动脚本,源码,二进制文件,还有其他需要部署软件的依赖包。 比如redis release 包含redis-server start-up和shutdown脚本,通过官网获取的redis的源代码,和一些配置允许集群操作者修改这些配置。 how does one make sure that the compiled version of the software is reliably available throughout the deploy”, or “how to version and roll out updated software to the whole cluster, VM-by-VM, that other orchestration software is not able to solve。

  • Capturing all needed configuration options and scripts for deployment of the software
  • Recording and keeping track of all dependencies for the software Versioning and keeping track of software releases
  • Creating releases that can be IaaS agnostic
  • Creating releases that are self-contained and do not require internet access for deployment

    deployment

    deployment是一个装了stemcell镜像的VMs集合。被BOSH Director管理(一个集中式的管理服务器) deployment进程首先决定使用哪种操作系统,决定部署什么软件,如何自动部署镜像到IaaS上面,

results matching ""

    No results matching ""