搜狐云发展中DomeOS的开发与Docker的应用
搜狐云服务
2011年初,为解决搜狐内部各部门海量数据存储和数据在线快速读取的问题,北京研发中心利用半年的时间,汇聚国内多位存储方面的顶尖人才自主研发了一整套分布式存储系统,其中包括针对海量小文件的 BFS 存储系统,针对大文件的 Blade Store 存储系统,以及针对元数据的 Blade Cube 存储系统。2012年3月,搜狐云分布式存储系统在经历了无数次测试和优化之后,正式在搜狐内部上线。随后,搜狐内部的绝大部分数据逐渐迁移至搜狐云服务,逐渐覆盖包括搜狐网站,搜狐汽车,搜狐焦点,搜狐新闻客户端,搜狐视频,搜狐相册等产品在内的几乎所有的搜狐内部的服务,实现了北京研发中心最初的承诺“one sohu one storage”。搜狐云服务在公司内部稳定运行的两年间,伴随着公司数据量的增长,其性能和稳定性得到了长期的验证。
与此同时,国内云计算市场虽然巨头林立,小团队丛生,但始终没有令企业满意的云存储服务。对于数据规模较大的企业来说,数据存储的需求极为强烈,数据的安全性,数据的读写性能都直接关系着产品体验,但数据存储的技术门槛又相对较高,导致好多公司每年都要在数据存储上做大量的投入,但效果却不尽如人意。虽然目前市场上有很多优秀的开源存储系统,但由于企业使用环境的差异,在开源系统的重复改造上通常也会浪费掉大量的人力和物力,而且伴随着业务量的增长,开源系统的难以预测性也给企业的数据带来了巨大的隐患。
正是看到国内市场对企业级云存储的强烈需求,搜狐云服务于是开启了从对内服务向对外服务转型的大门。由于通常的开源存储系统的性能在不同的使用环境下有很大的差异,并不能为企业快速解决存储难题,消除安全隐患,所以从一开始,搜狐北京研发中心就没有止步于仅将存储技术共享,而是致力于为客户提供一站式存储解决方案,让客户可以简单便捷的将数据托管至搜狐云服务,由搜狐来为客户的数据安全买单,完全省去客户“重复修复轮子”的烦恼。搜狐云服务的存储设备,全部托管在国内五星级机房,同时在数据传输的各个环节配备有完整的监控系统,能够保证客户的数据异常在第一时间被发现,第一时间恢复,保障客户业务的稳定健康。
为了给企业解决更多的难题,搜狐云还精心打造了国内最专业的云端图像处理系统,帮助企业轻松应对多屏时代的多图烦恼。搜狐云服务的实时图像处理功能,能够帮助企业节约近50%的带宽成本,同时能够提升网页访问速度,给终端用户带去更为快速流畅的体验。此外,搜狐云服务还与国内多家优质的云分发(CDN)平台进行了深入的合作,客户可以从搜狐云服务的平台直接接入多家公司的云分发服务,为网站带去最优质的体验。
搜狐企业级业务编排运维管理系统——DomeOS
DomeOS的技术团队拥有多年的云存储经验,国内领先的图片处理技术以及CDN分发经验。团队经营的主打产品“搜狐云台”拥有业内顶尖的图片压缩技术,为搜狐内部产品和几十家外部企业级用户带来了极致的用户体验。搜狐云台除了可靠地云存储服务、顶尖的图片处理技术,还有人脸检测、黄反图识别、广告图识别等方面的研究。
搜狐云台陈伟表示“我们是帮人解决问题的,存储和图片的需求通过搜狐云台得到了很好的解决,但是我们也发现了流程中很多新的问题。”
传统运维模式的问题
陈伟在GTIC大会会场和大家分享了搜狐云台团队在多年云存储开发运维过程中遇到的问题。
1. 随着业务快速发展,服务器环境越来越复杂,各种紧急上线,技术债务,临时版本的程序,脚本等,可能长期得不到清理,最终引发问题
2. 技术平台快速发展,管理依赖是件很麻烦的事,而且影响运维和开发的沟通
3. 环境统一问题,经常导致上线失败。开发、测试、运维协作困难。
4. 监控体系不断重构,难以满足需求
5. 规模小无需自动化,而规模大后再自动化又容易引起问题。
6. 十分依赖经验丰富的运维人员
Docker的优势和问题
陈伟总结docker的优势有:
1. Docker的先进理念:“build、ship、run”。把应用的构建、分发、运行的流程标准化、规范化。
2. 私有的registry天然就是一个分发仓库,名称+tag的方式也很有利于版本管理,回滚等。
3. 单进程模型重新梳理了应用的意义。一个应用天生就应该是一个进程为单位的单元。
4. docker的资源控制和自包含性综合起来,成为了一个很有前景的功能,更加适合使用动态的资源调度的方式来部署服务。
Docker带来曙光的同时,陈伟表示,docker作为一个新的技术,仍然存在以下问题:
1. 目前还没看到十分令人满意的网络模式
2. 传统应用不一定能很好地迁移到docker中
3. 开发人员有较大的学习成本,需要较长时间适应docker
4. Docker版本迭代较快,会带来不兼容等问题,而升级docker又需要把上面的服务停掉
5. 在国内做开发都会遇到的问题,比如:墙、构建性能、分发性能等等
陈伟还对比了docker和虚拟机的特点,他着重强调了一点:虚拟机无关应用,是基础架构层面的事情,开发人员不关心这一点;而docker是应用层面的,开发运维的思路都会随之发生变化。
DomeOS设计
DomeOS的最主要的理念是“开箱即用”。陈伟表示:“我们不希望DomeOS是一个和我们自身业务结合很紧密的东西,我们把它定位为一个纯工具。”DomeOS团队希望今后的各个使用者能够轻松上手,开箱即用。
除了开箱即用,DomeOS还具有:开发自运维、全流程全视图、追求效率和利用率的特点。
DomeOS主要的功能有:集群管理、开发测试、发布回滚、运维监控和应用商店。
集群管理改造自kubernetes,使用了pods等概念。多数据中心统一管理,自动化调度不超出数据中心范围。此外,DomeOS区分生产环境和开发测试环境,并且有权限要求。
持续集成是DomeOS的一个创新点,没有使用jenkins等工具,从头设计。持续集成功能使用github、gitlab的API设置hook,获取代码。在开发过程中搜狐云台的技术团队使用了搜狐云台的scs云存储服务,提升了开发效率和服务性能。
应用商店是DomeOS另一个具备鲜明的docker理念的功能。它能够把一个复杂的分布式系统描述清楚,并能够在可视化界面上进行配置,一键部署。此外,能够实现测试环境直接搭建,生产环境依赖注入,大大提升测试和生产的效率。此外,陈伟还和与会嘉宾分享了DomeOS的网络和磁盘相关的特点以及开发过程中所遇到的问题。
DomeOS还在持续迭代和实践的过程中,搜狐云台团队希望docker的爱好者和从业者能够关注DomeOS,希望与更多的docker团队交流分享。
搜狐云服务的未来
比起单纯的提供云存储服务,搜狐云更希望能够为打造国内健康的云生态环境贡献力量。未来,搜狐云服务将与业内其他的云计算相关产品展开更为丰富和深入的合作,致力于建设完整的云计算生态合作群体,目前,搜狐云已经与国内多家ISV(独立软件开发商)和SI(服务集成商)达成共识,将携手为客户一站式解决公有云的需求。