docker based cloud thinking

关注Docker有段时间了, 最近在搞去存储的事情, 会有一堆的小数据库脱离存储, 使用流复制来做HA.

对于小型数据库来说, 可以考虑放到云环境去, 但是以前考虑到虚拟化带来的性能损耗有点大, 所以一直未考虑过在虚拟化中使用数据库.

docker刚好解决了性能损耗这块的问题, 利用了Linux的cgroup和chroot特性来实现namespace的隔离, 将性能损耗降到几乎为0.

在云环境中, 数据库和其他应用的显著差别是数据存储这块.

数据库要求数据存储的可靠性, 持久化, 原子性, 一致性. 所以对存储的要求比较高.

另一方面, 数据库对CPU的要求也比较高, 在处理高并发的请求或者复杂的查询时, 耗费的CPU是比较多的.

网络方面, 当数据库有大量的数据进出时, 要求也比较高.

最后是数据的安全, 虚拟机和虚拟机之间的资源隔离也是很重要的.

下面假设我们要以docker 为基础部署云环境, 大概需要考虑哪些因素, 大致的框架如何, 谈一点个人想法, 如图 : 


现在大多数的IaaS云产品可能和这个类似, 例如openstack, Eucalyptus, opennebula, cloudstack, kubernetes.

对于openstack产品来说docker 和KVM这类虚拟化也差不多, 只是docker只能运行Linux, kvm可以允许windows, freebsd, linux等.

几大模块的功能 : 

镜像存储

    存储docker images.

宿主机

    使用选择的image运行container.

注册服务

    存储container的运行参数, name, 卷, 环境变量, 心跳文件, fence信息, 网络信息等. 可以存储在数据库中.

    注意数据库运行在云环境中的一个注意事项, 为了防止文件被重写(如多个container写一份数据), 在启动container时, 应该fence掉前一个运行该数据的container, 所以我们需要注册fence信息.

管理机

    管理container的运行, 停止; 监控container的状态, 事件触发.

云存储

    数据文件所在, 因为当宿主机DOWN掉时, 可能要从其他宿主机起container, 所以数据需要通过云存储来共享 .

网络

    需要将container的网络, 云存储网络, 镜像存储网络隔离开来, 以免相互造成干涉而降低性能. container则可能需要使用到网桥的功能. 可以通过brctl或者openvswitch来管理.

一个假想的上线流程.

1. 搭建网络

2. 搭建云存储

3. 搭建镜像存储

    制作镜像.

4. 搭建宿主机

5. 搭建注册服务数据库

6. 搭建管理机

7. 注册服务元数据初始化, 新增宿主机信息, 镜像存储信息, 镜像信息(通过哪个镜像来启动container), 云存储信息, 挂载点信息, 网络信息等.

8. 添加container, 如包括镜像, 网络, 启动参数, 心跳文件, fence文件等信息.

9. 启动container

启动docker时, 我们可以通过entry文件来处理一些逻辑.

例如,

    判断volume是否已初始化

    通过run传递的env, 设置数据库的初始化参数, 启动参数等

    如果已初始化, 查看心跳文件, fence文件等, 

    fence 前一个container

    启动数据库.

为了确保数据库的可靠性, 我们可以大家两套云环境, 使用不同的云存储, 使用流复制一主一备. 主和备的数据文件分布在不同的云存储(或不同的云环境的不同云存储下面).

[参考]

1. http://www.docker.com/

2. man docker

3. man docker-run

时间: 2024-12-22 07:03:07

docker based cloud thinking的相关文章

Docker成熟了?

平时,我们可能都看惯了IDC.Gartner或其他第三方市场分析公司给出的各种类型的预测和统计报告,这些报告中透露出的关于技术发展.企业的市场地位等信息经常成为IT人的谈资.一家专门从事高端客户软件外包开发的企业Thoughtworks搞了一份很"另类"的技术调查报告--技术雷达,通过Thoughtworks的专家与第一线开发者的直接接触,归纳出许多时髦技术在企业中落地的情况. 2016年4月公布的最新一期技术雷达报告显示,在平台类产品中,Docker位于"采用"象

国外一些有价值的docker相关的文章

国外一些有价值的docker相关的文章   docker 每周都有周报进行更新,有一个网站列出了从开始2015年1月30日的一些有价值的链接:   关于Weave: 在Azure上一个CoreOS集群上安装Weave Docker虚拟网络https://github.com/chanezon/azure-linux/blob/master/coreos/weave/README.md Crate with Docker & Weavehttps://crate.io/blog/crate-wit

用Docker作为PaaS的替代方案是否完美无缺_docker

随着数字技术的普及,越来越多的企业面临着海量数据.虽然企业都希望用大数据掘金,然而数字化能力的缺失也使企业极易淹没在这片无边无际的数据海洋里.互联网使得数据的流动和共享成为了可能,云计算技术的发展使数据分析向更加全面的方向迈进. 作为云计算的三种服务形式之一,PaaS似乎一直不温不火,裹足不前.Docker的出现似乎又带来了一种新的选择,而且对于开发者来说更加灵活.便捷.易用.既然用户可以直接在Docker上运行,PaaS是否还有应用场景?面对企业繁杂的应用环境,用Docker作为PaaS的替代

安尚云信CEO鲁为民:只有Docker还不够,融合是PaaS的发展趋势

在近一两年的媒体报道中仔细观察可以发现,做IaaS的厂商多,做SaaS的更多,但独立提供PaaS的厂商却不多见.近日,ZD至顶网记者就采访到了一家曾被市场调研机构Forrester评为中国企业级云平台市场强劲表现者的本土专业PaaS提供商安尚云信,听他们谈做PaaS为什么一定要强调融合,他们眼中的融合又意味着什么. 中国PaaS市场进入快速发展期但有点浮躁 在回答这个问题之前,有必要回顾下时下中国PaaS市场情况.PaaS(平台即服务)实际上是将应用软件研发.部署和运维的平台作为服务提供给开发者

从容器规范看Docker和Rocket

[编者按]在"选择Docker还是Rocket做容器?为何不选择两个?"一文中,曾提到CoreOS的创始人Polvi和Docker的创始人Sonomon都认为,Rocket和Docker没有竞争性.Docker平台是一个产品,Rocket是一个组件.企业可以选择Docker替代Cloud Foundry,也可以使用Rocket构建Cloud Foundry.CoreOS在发布Rocket时就指出,Rocket的出现是因为有些人需要一个更"纯净"的容器.换句话说,Ro

VMworld 2016大会热点集锦出炉(上)

ZD至顶网服务器频道 08月31日 新闻消息:Axcient宣布推出Fusion 1.5版本,在云产品中整合二级存储,带有新的云调度和工作流自动化能力.Axcient表示,它提供了来自云的.完整的IT弹性和敏捷性. 1.5版本具有一键式的文件和文件夹恢复功能,简化的保护和恢复工作流带来更好的用户体验,数分钟恢复点目标(RPO)带来更快速的复制性能.现在这些都已经提供给客户了. Hazelcast:凭借自己的开源内存数据网格技术,宣布v3.6.3版本现在已经作为微软Azure Marketplac

Hadoop学习资源集合

Hadoop是一个由Apache基金会所开发的开源分布式系统基础架构.用户可以在不了解分布式底层细节的情况下,开发分布式程序,充分利用集群的威力进行高速运算和存储.Hadoop得以在大数据处理应用中广泛应用得益于其自身在数据提取.变形和加载(ETL)方面上的天然优势.Hadoop的分布式架构,将大数据处理引擎尽可能的靠近存储. 目录: Awesome Hadoop Hadoop YARN NoSQL Hadoop上的SQL 数据管理 工作流.生命周期及管理 数据提取与整合 DSL 库和工具 实时

VMware CTO:未来VMware NSX与思科ACI将有更多整合

VMware副总裁兼首席技术官Chris Wolf本周二向大约150名IT领导者表示,未来他们将会看到VMware NSX平台与思科之间会有更多的集成. "我们和思科进行了充分的会谈,我希望在不远的将来我们可以就这些会谈向大家公开分享一些信息."当被问及IT高管们未来在VMware NSX与思科整合方面将会看到怎样进展时,Wolf这样表示."思科是一家出色的硬件厂商.他们也是长期以来VMware一个很重要的合作伙伴--我们将会与思科做一些很好的整合,正如我们与其他很多合作伙伴

OpenStack依旧大行其道,但能否等来属于自己的时代

OpenStack是由互联网数据中心服务商Rackspace和美国宇航局(NASA)在2010年联合推出的一个云计算项目.在2011年越来越多的公司参与到该项目中,短时间内甚至达到一百多家,于是2012年成立了OpenStack基金会负责该项目. OpenStack在5年的时间里,超过CloudStack和桉树,成为仅次于Linux的第二大活跃开源社区.OpenStack拥有来自超过170个国家的三万名成员,得到了五百多家公司的支持.当前项目主要由Mirantis.HP.IBM.Redhat.R