企业咨询服务
自2013年3月开源到现在docker已经经历了3年的发展,在这期间Docker无疑是云计算领域最火的一个方向,几乎所有的云计算厂商都在拥抱Docker这个生态圈。Docker并不是一个新的技术,容器化也不是新事物了,早在2006年就陆续出现了LXC, OpenVZ,Jail等容器虚拟化技术,但是为什么Docker却能异军突起呢?Docker的核心是基于 Linux的CGroup、Namespace和LayeredFS技术,通过资源的控制、隔离和对镜像的分层处理,使Docker容器能够将应用程序和运行环境打包到一起,这样就可以Build, Ship and Run anywhere。与其说是Docker火,不如说是其天生的轻量级属性,正好迎合了云计算大行其道的今天。我们通常所说的Docker只是Docker-engine,仅仅是一个单机的管理程序。在整个Docker生态圈中,有很多个相关的项目。作为开源软件,用户在使用过程中或多或少都会遇到问题。
使用Docker可能遇到的问题
1. 编译
Docker虽然说是一个开源的项目,但是如果你要在国内成功编译它是一件非常困难的事情。Docker是用Go来开发的,Go被誉为互联网时代的C语言,由google主导开发,它的开发者包括了 Chrome V8引擎和Unix的开发者,因此它天生就是易用且简洁的。它具有良好的包管理、简洁的语法和非常好的灵活性。但是,在国内很多package,你是不一定能够取下来的,这样就导致编译过程很难进行。
2. 安装
如果你在国外,没有GFW的限制,拥有非常好的网速,你使用Docker就像是在开一辆跑车。但如果你在国内,就好比是开了一辆没油的跑车。我曾经很多次遇到了安装失败的问题,而且安装速度非常缓慢。同时,如果你要在全封闭的内网安装Docker就更麻烦,你需要将所有的安装包完整迁移到内网,这个工作量是非常大的。下面就是一个官方安装失败的例子:
root@ghostcloud:~# curl -fsSL https://get.docker.com/ | sh
apparmor is enabled in the kernel and apparmor utils were already installed
+ sh -c apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --homedir /tmp/tmp.cr8hxY45Ve --no-auto-check-trustdb --trust-model always --keyring /etc/apt/trusted.gpg --primary-keyring /etc/apt/trusted.gpg --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
gpg: requesting key 2C52609D from hkp server p80.pool.sks-keyservers.net
?: p80.pool.sks-keyservers.net: Host not found
gpgkeys: HTTP fetch error 7: couldn't connect: Success
gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
3. 镜像pull非常慢
Docker为什么火,有一个重要的原因就是它开创性的分层镜像机制,你的环境和应用程序都会被打包到镜像中。但是,一个比较大的问题是,Docker所有的镜像都依赖于基础镜像,而这些基础镜像都在国外的docker hub上,当你兴致勃勃准备用docker大干一场时,pull的漫长等待一定会让你很抓狂,而最后的超时失败,更会让你有说脏话的冲动。
4. 镜像存储
Docker hub在国外这个问题还好,但是默认的dockerhub所有镜像都是公开的,就是说你的镜像别人都能够下载。这个策略跟github是一样的,如果你要用免费的,那么你就得开源。否则,给钱买私有仓库吧。Docker的私有仓库价格是非常贵的,而且速度还很慢。你不可能需要共享镜像时,都push到国外,再pull回来吧。当然有的人可能要说,我可以搭建私有仓库。不过私有仓库仅限企业内部私有网络使用,而且没有基础镜像,如果你有跨区域的使用,是非常难处理的。
5. 云端的部署问题
至少到目前为止,不是每一家公有云厂商的基础镜像都能顺利的安装docker,docker是轻量级的虚拟化技术不假,但它仍然不能在短期内替代VM。如果你要在VM上使用docker,就需要对网络、存储等做一些特殊的处理。
6. 容器和主机的管理
Docker是轻量级的不假,但是随着轻量以后,势必会出现大量的容器和主机。本身使用docker的出发点是降低运维成本,提升效率,但是管理上的成本相反却会上升。主机的监控、容器的监控、容器和容器之间的联系等等,都需要专业的公司来处理。很多人可能会想,我可以使用kubernetes,mesos等开源框架,不过我想给你敲一个警钟,如果你没有10人以上的运维团队,最好不要去碰这类框架。这类框架设计之初就是管理成千上万台的主机,如果你没有这么大的量,一定会让你日后的维护非常的酸爽。
7. 容器的性能
容器有性能损失吗?如果你要将系统搬迁到docker上,你是否会有担忧?CPU、内存、磁盘IO的性能到底如何?如何进行优化?这些都是需要大量测试和优化的。
8. 容器的安全
容器到底安全吗?容器是操作系统级的虚拟化技术,多个容器实际是共享了操作系统内核。容器的安全一直在不断的向前发展,但是你必须要了解容器可能受攻击的面有多大,如何来进行避免。
9. 网络问题
容器本身支持多达5种网络模式,默认的方式只是非常基础的简单应用,对于您的实际环境,则需要专门的特殊处理,才能使网络性能达到最优化。
10. 容器型运维人员短缺
目前国内对linux比较熟悉的运维都是供不应求,而容器是建立在linux之上的,可想而知,容器方面的运维人员十分稀缺。诚然容器可以提升开发、测试和运维的效率,但是这是建立在你有懂docker的运维人员的基础之上。据我们了解,目前国内对docker很熟悉的运维人员非常少,docker的一手资料基本都是英文的,对英文非常熟悉的运维人员并不多。
我们提供的服务
针对上述问题,Ghostcloud根据国内企业的需求以及容器技术在国内的发展现状,为用户提供了定制化的技术咨询服务。我们的服务涵盖了以下几个方面:
基于容器的集群建设咨询服务
容器可以作为轻量级的集群结点,和管理平台配合使用能够快速的搭建Hadoop集群、Spark集群、MongoDB集群、RabbitMQ集群、Ceph集群、MySQL集群等等,同时能够非常方便的管理。
Hyper-V迁移到Docker咨询服务
很多企业目前都还在使用第一代虚拟化技术,如OpenStack等,Ghostcloud提供从Hyper-V到Docker的迁移咨询服务,使用户平滑过渡到下一代虚拟化环境。
微服务架构咨询服务
随着移动互联网的高速发展,敏捷思想的普及、云计算和容器技术的出现,企业的服务架构逐渐从Monolithic(单体架构)向Microservice(微服务架构)转变,Ghostcloud可以为企业提供专业的微服务架构咨询服务。
企业培训服务
Ghostcloud是国内第一批从事容器云研发的团队,在期间积累了丰富的经验,可以为企业提供Docker入门、Docker实践、Docker管理以及微服务相关的培训服务。