【AWS+DaoCloud的应用分享】BootDev如何利用docker在AWS实现超快速自动伸缩

大家都说Docker好用。的确,作为一个用户,说句公道话,使用docker为持续部署带来了意想不到的福音和便捷。

BootDev在设计了一款自动伸缩解决方案,在完善产品的过程中,使用docker,将我们完成Scale Out的进程时间缩短了50%!具体地说,应对无法预测突发流量,只需要5分钟就可以完成扩缩,是正常时间的三分之一~四分之一!妥妥地,毫无压力。

BootDev联动DaoCloud,全面支持AWS中国!

大家都知道,在中国使用Docker Hub受到很多限制,但是好在,中国还有DaoCloud。DaoCloud提供一站式docker管理解决方案,无论你使用的是哪个供应商服务,AWS、阿里云甚至裸机,可以直接通过DaoCloud安装Docker Imagine,DaoCloud提供的UI界面还可以管理自定义images。“Daopull”是DaoCloud为中国特定的互联网环境下顺势推出的docker镜像服务,相当好用。

在DaoCloud的UI界面下,可以直接管理你自己的Docker Image,包括代码部署和确认container的状态等等。

当然也可以在上面直接运行docker image

说了这么多,BootDev设计的自动伸缩解决方案联动DaoCloud(Docker)会产生什么神奇的化学反应?

  1. BootDev可以在任何云上,提供自动伸缩服务,包括AWS、阿里云、其他
  2. BootDev可以运用Docker Images达到更有效的自动伸缩
  3. BootDev在Docker配置最佳参数,优化网站性能,切实为网站主达到既快又省钱的终极目的。

BootDev和DaoCloud在同一层Stack,可以互相支持对方。通过这种方式,AWS中国以及中国其他的Iaas(Infrastructure) 可以和BootDev&DaoCloud整合。利用DaoCloud的快速部署docker特性,使用BootDev的自动伸缩解决方案和丰富的网站运维经验。

如何在生产环境下运行Docker?

众所周知,Docker用于生产环境主要有两个缺点。一,比起在同一个平台运行源代码,Docker的表现会略逊一筹;二,Docker不适用于有状态的应用。针对刚才说的第一点,BootDev推荐的做法是,针对固定资源在一个虚拟机上运行一个docker。

如何优化性能?

在AWS EC2里部署docker的基本概念,如下图所示:

每个EC2只包含1个Docker,自动伸缩的过程中,EC2会自动运行“Daopull”,下载Docker Image而不用再装其他东西。

在这个案例中,DaoCloud发挥了什么作用?请看下图。DaoCloud对于核心运行时刻提供支持。

如何处理状态(State Issue)?

部署新代码时,Docker的运行机制经常会出现一个普遍问题:Docker对于持续部署过程是个非常好的工具,因为他可以确保测试环境中的代码和参数和生产环境中完全一致。但是当你需要更新部署,即便是一小行代码,你也必须新建一个Docker Image,然后重新注册,砍掉原来的docker,生成一个新的。很多应用是状态性的(Stateful),比如用户授权、或者在内存里储存一些用户数据。很多数据会储存在正在运行的docker里,因此用Docker完成部署的过程中,一些登陆用户和数据可能会暂时丢失直到新的数据生成(这个过程涉及到停止和再启动)。但是BootDev的Docker做法是,我们在Docker直接植入DevOps工具(Chef),分离资源,使新的部署不影响现在的使用。

(图片来源:https://clusterhq.com/2014/08/13/data-focused-docker-clustering/)

这里用了个小窍门,就是把一些像本地储存的数据、缓存等有状态的资源迁移到外部服务设施上。这样,我们就可以利用AWS提供的大把不同架构资源,而且非常容易上手。

除去正常运行的资源,处理代码对于自动伸缩也相当重要。我们要避免的是,类似几行代码变动,却要更新重建整个docker的事。所以,如何用Docker处理储存IO(Input/Output)?BootDev 的Docker+DevOps应用,我们把运行代码分成了三种:(1)静态代码 (2)配置文件(3)数据文件。

静态代码由Git管理,利用DevOps工具,代码更新、恢复rollback的操作都可以在所有分布式节点同时执行。配置文件由docker里面的DevOps工具来管理,因此无论有什么变动,我们只要在文件层面做改动就可以了。最后,数据文件则是由文件分享系统提供服务,BootDev推荐使用GlusterFS。在Docker进程中,挂载点(mount point) 也按量被安装到docker里。下面就是我们的概念图。

以上就是BootDev,联动DaoCloud在中国地区提供的,快速自动伸缩解决方案。

如果你也对此感兴趣,请联系 [email protected]!

时间: 05-04

【AWS+DaoCloud的应用分享】BootDev如何利用docker在AWS实现超快速自动伸缩的相关文章

【仿乐享微信源码】利用第三方微信营销托管平台快速增加粉丝,形成良好互动,打造精美微信APP

99%的人不知道的微信秘密!微信里的商机.仿乐享微信源码分享,把你的生意做到微信里. WeiKuCMS  (微酷CMS)功能特点:人工客服新功能正式上线!粉丝行为分析.渠道二维码生成.二维码折扣,微菜单,微统计,会员卡签到,微会员,刮刮卡,大转盘,优惠券,积分兑换,微官网,砸金蛋,微调研,微投票,微相册,微商城,微团购,微留言,微喜帖,商家入驻,微门店,微餐饮,微酒店,微教育,微物业,微医疗,微信墙,微花店,微美容,微生活. 微信公共账号轻松接入,无限自定义图文回复.欢迎您的加入! 微酷WeiK

分享在Linux下使用OSGi.NET插件框架快速实现一个分布式服务集群的方法

在这篇文章我分享了如何使用分层与模块化的方法来设计一个分布式服务集群.这个分布式服务集群是基于DynamicProxy.WCF和OSGi.NET插件框架实现的.我将从设计思路.目标和实现三方面来描述. 1 设计思路 首先,我来说明一下设计思路.我们先来看看目前OSGi.NET插件框架的服务.在这里,服务不是远程服务,它是轻量级的服务,由接口和实现类组成,如下图所示.服务契约插件定义了服务接口,服务实现插件向服务总线注册服务,服务调用插件利用服务契约(接口)从服务总线获取实现的服务并调用,服务实现

DCOS实践分享(2):基于Docker Compose和Swarm的Docker化之路

2016 年1 月 23 日,北京史上气温最低的一天. 在下午 1 点半的时候,由 DaoCloud 赞助的 2016 年度首次 Docker Meetup 准时开始. 在这次Meetup中,我分享了<基于Docker Compose和Swarm的Docker化之路> 下载链接 http://download.csdn.net/detail/popsuper1982/9544929

利用docker compose启动gitlab及runner

添加docker compose配置文件 新建文件docker-compose.yml,输入如下内容: gitlab: image: 'gitlab/gitlab-ce:latest' container_name: 'gitlab' restart: always hostname: 'gitlab.cjx.com' environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab.cjx.com' # Add any othe

利用docker 部署 spark项目的端口问题

利用Docker  安装项目: local模式要设置sparklocal.spark.driver.host yarn模式中只设置sparklocal.spark.driver.host和可以启动,但是无法执行任何语句,需要再设置 sparkyarn.spark.driver.bindAddress 和 blockmanager 即可,在spark启动时指定对应host和bindaddress,docker指定访问设定的host和bindAddress 和 blockmanager即可 注意:s

利用docker 最新漏洞渗透--提取root 权限

一.事出 近期乌云漏洞平台等科技新闻,爆出Docker虚拟化 端口漏洞,本着热爱开源,实践动手的精神,我也去尝试了下,漏洞严重性确实很高,可以拿到root 登陆账户. 二.还原 2.1 通过扫描,我们找到了一些主机,下面是其中一台运行了docker 主机的服务器,并且开了ssh 端口 知道了22端口后,我们后面会利用此端口来使用root免密码登陆该主机. 2.2 我们可以利用2375 端口做什么? 看到上面的信息后,我们就知道,可以管理该主机上的docker 容器了,启动.停止.创建.下载镜像.

ubuntu 16.04利用docker搭建java+tomcat+nginx反向代理/动静分离

ubuntu 16.04利用docker搭建java+tomcat+nginx反向代理 新建两个docker容器 docker run -it --name Tomcat-mysql -v /mnt:/mnt -p 8866:80 -p 33006:3306 ubuntu /bin/bash docker run -itd --name webserver -p 8888:80 -v /mnt/:/mnt/ ubuntu /bin/bash [email protected]:~# docker

利用Docker构建开发环境

最近接触PAAS相关的知识,在研发过程中开始使用Docker搭建了自己完整的开发环境,感觉生活在PAAS时代的程序员真是幸福,本文会简要介绍下Docker是什么,如何利用Docker来搭建自己的开发环境(本文主要是面向Mac OS X),以及期间所遇到的一些坑和解决方案.(本文会要求你对PAAS.LXC.CGroup.AUFS有一定的了解基础,请自行Google ) 大背景–虚拟化技术历史 计算机虚拟化技术由来已久,从硬件仿真到全虚拟化,再到准虚拟化和操作系统虚拟化,各种技术粉墨登场,种类繁多,

ubuntu14.04环境下利用docker搭建solrCloud集群

主要内容: 技术关键点:docker17.06.3安装,docker自制镜像及相关容器操作,docker分配固定IP及添加端口映射,solrCloud集群部署等 主要思路:在Ubuntu14.04操作系统的宿主机中,安装docker17.06.3,将宿主机的操作系统制作成docker基础镜像,之后使用自制的基础镜像在docker中启动3个容器,分配固定IP,再在3个容器中配置solrCloud集群. 注:solrCloud采用的solr内置jetty,需要单独配置zookeeper 容器IP及名

分享:Android中利用机器码注册机制防止破解(转)

转自:http://blog.csdn.net/huzgd/article/details/6684094 最近做一个Android应用时遇到这个问题,客户要求功能必须注册才能使用,而程序本身又不是联网在线使用的,这就要在程序中加入机器码注册码机制了. 众所皆知Android应用是基于Java开发,如不做处理的话,直接反编译APK就能看到源码算法,要破解就没什么难度了. 关于Android防破解,网上有价值的内容较少.我收集了一些零碎的资料,总结起来大概有以下几种防破解的思路方式: 1.代码混淆