阅读 557

闲聊云服务计算技术--OpenStack

这个话题是我一直想写的内容,毕竟里面包含了我一部分青春在里面,还是要简单纪念一下的。由于云服务的技术发展实在是太快,所以要写完所有自己接触过的相关内容单靠1,2篇文章,会显得篇幅过长了,所以准备依靠一个系列来完成所有内容。


与云服务结缘


在2012年开始,我开始和团队搭建ECG自己的Selenium Grid的集群(这里面也可以写蛮多内容的,我自己用Perl做的第一个实际项目,未来有机会介绍给大家),最先我们是采用的VMware workstation来生成和管理我们的VM,当时机房在欧洲的Amsterdam, 坦白的说,用起来还是不错的。不过呢,随着我们有更多的美洲项目,在欧洲机房来跑服务,速度上有一些力不从心了。所以开始准备找新的解决方案。

13年的时候 ,云计算其实已经非常火了,正在不断地改变传统IDC的结构,逐步取代以昂贵硬件为中心的数据中心,重新定义了计算、存储以及网络。我也开始试用一些AWS的公有云服务(尽管在国内用得并不方便),将自己的一些应用服务放在上面,甚至我们也在利用AWS提供的服务来做持续集成发布。不得不说,云服务尤其是IaaS层,AWS是最领先的,基本已经成为了行业的标准,所以国内的很多云产商都是从“模仿”AWS开始的。但AWS毕竟是公有云,即便AWS技术先进,但并不开源,只能用它的服务,不能构建自己的私有云。所以对于一些大公司而言,考虑安全性,他们更愿意建设自己的私有云,把东西放在自己的硬件上,使用自己的私有网络。


进入OpenStack


之前不是说,AWS不开源吗?这可好,Open Stack就是模仿AWS做出的一套开源架构,正如当年Google的三驾马车 GFS, MapReduce, Bigtable, 对应开源社区做出了hdfs, Hadoop和HBase的感觉。

Open Stack通过将异构的物理资源抽象成统一的虚拟资源池,然后根据用户的需求再进行灵活的虚拟资源分配,为用户提供虚拟资源服务,即提供IaaS服务,其目的是为了提高资源利用率。其底层的核心技术有:虚拟化技术,实现资源抽象;资源动态调度技术,高效分配虚拟资源;高速网络通信技术,实现用户与云平台的顺畅交互;安全技术。

Openstack的出现,终于让我们看到了曙光,有一个开源的云基础资源管理平台项目,各家企业能够利用Openstack快速构建自己的私有云, 那时候,各大私有云厂商都会考虑Openstack,比如国内的华为,为OpenStack还是贡献了很多很多代码的,正是越来越多的企业客户对私有云的需求,推进了Open Stack社区的发展。

作为互联网的元老企业,eBay在这一块还是肯投入的,所以基本从13年开始,内部已经在推Open Stack了,也逐步推出了自身的基于Open Stack的私有云服务。也利用这个机会,结识了一些eBay当时做OpenStack的牛人们。 记得内部推出私有云后,我们也将Selenium Grid集群搬到上面来,虽然过程中也有很多坑,但是解决了我前面提到的地域访问问题,毕竟机器在美国,还是比从欧洲走快不少的。


Open Stack目前的问题


虽然我前面花了几大段吹了吹Open Stack,但是实际上如果要将Open Stack搬进来自己玩,放在生产环境上用,还是有很多技术挑战要解决的,比如高可用CAP方案,系统监控,故障隔离,快速部署等等,这些都没有现成的方案,需要自己二次开发使用。


下集预告


Open Stack解决了基于虚拟机的虚拟化,但在实际使用场景中,我们使用虚拟化技术其实是为了按需分配资源来完成服务的部署和使用,同时对服务所依赖的环境进行隔离,不被其它服务感知或干扰。为什么不考虑让多个虚拟机公用一个操作系统内核,只隔离开服务运行环境同时控制服务使用的系统资源呢?基于容器的虚拟化就是这样一种技术,所以在下一篇,我会来和大家聊聊这块技术实现的代表- Docker。


扫描二维码或手动搜索微信公众号【架构栈】: ForestNotes

欢迎转载,带上以下二维码即可



关注下面的标签,发现更多相似文章
评论