【AWS+DaoCloud的应用分享】BootDev如何利用docker在AWS实现超快速自动伸缩
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【AWS+DaoCloud的应用分享】BootDev如何利用docker在AWS实现超快速自动伸缩,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2196字,纯文字阅读大概需要4分钟。
内容图文
大家都说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)会产生什么神奇的化学反应?
-
BootDev可以在任何云上,提供自动伸缩服务,包括AWS、阿里云、其他
-
BootDev可以运用Docker Images达到更有效的自动伸缩
-
BootDev在Docker配置最佳参数,优化网站性能,切实为网站主达到既快又省钱的终极目的。
![技术分享](/upload/getfiles/default/2022/11/10/20221110032010287.jpg)
BootDev和DaoCloud在同一层Stack,可以互相支持对方。通过这种方式,AWS中国以及中国其他的Iaas(Infrastructure) 可以和BootDev&DaoCloud整合。利用DaoCloud的快速部署docker特性,使用BootDev的自动伸缩解决方案和丰富的网站运维经验。
如何在生产环境下运行Docker?
众所周知,Docker用于生产环境主要有两个缺点。一,比起在同一个平台运行源代码,Docker的表现会略逊一筹;二,Docker不适用于有状态的应用。针对刚才说的第一点,BootDev推荐的做法是,针对固定资源在一个虚拟机上运行一个docker。
如何优化性能?
在AWS EC2里部署docker的基本概念,如下图所示:
![技术分享](/upload/getfiles/default/2022/11/10/20221110032010505.jpg)
每个EC2只包含1个Docker,自动伸缩的过程中,EC2会自动运行“Daopull”,下载Docker Image而不用再装其他东西。
在这个案例中,DaoCloud发挥了什么作用?请看下图。DaoCloud对于核心运行时刻提供支持。
如何处理状态(State Issue)?
部署新代码时,Docker的运行机制经常会出现一个普遍问题:Docker对于持续部署过程是个非常好的工具,因为他可以确保测试环境中的代码和参数和生产环境中完全一致。但是当你需要更新部署,即便是一小行代码,你也必须新建一个Docker Image,然后重新注册,砍掉原来的docker,生成一个新的。很多应用是状态性的(Stateful),比如用户授权、或者在内存里储存一些用户数据。很多数据会储存在正在运行的docker里,因此用Docker完成部署的过程中,一些登陆用户和数据可能会暂时丢失直到新的数据生成(这个过程涉及到停止和再启动)。但是BootDev的Docker做法是,我们在Docker直接植入DevOps工具(Chef),分离资源,使新的部署不影响现在的使用。
![技术分享](/upload/getfiles/default/2022/11/10/20221110032011177.jpg)
(图片来源: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里。下面就是我们的概念图。
![技术分享](/upload/getfiles/default/2022/11/10/20221110032011363.jpg)
以上就是BootDev,联动DaoCloud在中国地区提供的,快速自动伸缩解决方案。
如果你也对此感兴趣,请联系 keithyau@bootdev.com!
原文:http://blog.csdn.net/keithyau/article/details/51315775
内容总结
以上是互联网集市为您收集整理的【AWS+DaoCloud的应用分享】BootDev如何利用docker在AWS实现超快速自动伸缩全部内容,希望文章能够帮你解决【AWS+DaoCloud的应用分享】BootDev如何利用docker在AWS实现超快速自动伸缩所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。