作者:汪照辉 王作敬
容器技术应用虽然越来越广越来越深入,但大多数仍然只是基于开源做一些测试和验证工作。基于对容器平台的应用和研究,以及对开源技术的理解,详细探讨了容器云平台的设计和实现架构,提出“三视角、四层次、一闭环”设计方案,重点在于支撑业务应用的开发、托管和运营。(共两篇详细描述容器云平台设计,这是第一篇)
容器云、DevOps、微服务、三视角、四层次、一闭环
互联网金融的出现和迅速发展,给予传统金融企业极大的压力,被迫考虑转型和调整。互联网金融,关键点在于互联网:互联网思维、互联网技术、互联网架构、互联网业务、互联网客户……。先进的思想引领先进的技术,先进的技术支撑先进的架构,先进的架构提升先进的业务,先进的业务更好的服务客户、更多的赢得客户!
对于我们传统的金融企业,还存在传统的思维、落后的技术。一项新业务从提出需求到立项、招标、实施、上线,一年半载已经过去了。最最关键的是,开发出来的系统功能可能已经不是最初需求的样子了,似是而非,一线员工不满意,IT人员觉得委屈,客户失望而流失。这种传统的IT研发方式已经无法适应当前变化的金融业务新局面发展的要求,亟待采用新思想新技术来支撑新的形势。
我司在采用了Vmware技术完成IaaS(Infrastructure as a Service)虚拟化建设之后;考虑到IaaS虚拟化层仅提供了对存储、网络、计算资源的管理,无法提供对公司软件、工具、中间件等的管理。按照云计算的三种类型 ,建设PaaS(Platform as a Service)平台将有助于我们实现这些目标,同时提升敏捷开发能力,自动化运维能力。但PaaS平台技术一直不成熟,存在诸多技术难点。随着以Docker为代表的容器技术的出现和发展并逐步成熟,使我们看到构建基于容器技术的轻量化PaaS平台——容器云平台的可行性。
伸缩性或弹性是云计算的价值所在。IaaS解决了基础设施资源层的弹性,PaaS层需要解决支撑业务应用的平台的弹性,而SaaS(Software as a Service)服务则解决业务应用的弹性。对于证券企业,每家企业都可能推出自己特色的业务,这些业务无法通过SaaS服务来获取支持,需要证券企业自己去开发业务应用系统来支撑这些特色的业务。而应用开发、应用托管、应用运维能力是PaaS平台的核心功能,构建PaaS来快速支撑企业特色的金融业务是企业业务发展和企业IT发展的要求。基于此,在充分的调研和测试基础上,选择构建以容器技术、分布式技术、容器编排调度技术为基础的轻量化PaaS平台实现应用开发、托管和运维能力。
容器云,是轻量化PaaS平台的一种容器化实现方式。是基于容器技术、容器调度编排技术和支撑容器运行操作系统技术、分布式技术上构建的一种云计算平台。
PaaS平台提供应用开发、应用托管、应用运维的能力。容器云也重点在于实现这些能力。因此实现资源管理、应用管理、持续集成标准化交付、持续部署、持续监控、持续反馈、持续改进能力是容器云平台需要考虑的需求。
证券行业业务场景复杂,需求多样,那么容器云可能适用场景有哪些?我们觉得可以从以下这些方面入手:
容器云平台说到底只是工具,最终还是要服务于企业业务应用的。容器云平台是来承载业务应用的,所以应用管理才是容器云平台能力的核心,所有的能力都是围绕应用管理来建设的。不管容器云平台的资源管理,容器云平台的多租户隔离机制,以及容器云平台的安全、监控、日志等组件,都要围绕应用管理来建设的。
基于容器轻量、标准、弹性等特性的容器云平台提供了相应的能力。容器云平台可以构建标准化的基础设施环境、敏捷的工具链流程、快速的弹性扩展能力等。
容器云有很多优点,但我们也要认识到容器云也有不足。一枚硬币有正反两面,一件事物有其优点也必有其缺点,需要辩证全面的看待它。
首先容器云适合无状态、轻量、弹性的业务场景,它不太适合笨重的应用服务,比如WebSphere、Oracle DB,就不适合。不要拿容器当虚拟机用,容器不是虚拟机。试想一个镜像十几 G甚至几十G大小的文件,如何去打包分发部署?一次部署的代价有多大?
其次容器是弱安全的,所以在容器云平台设计实现时,需要考虑尽可能的减少不安全接触面,尽量隔离潜在不安全操作。比如限制容器终端命令交互方式。安全有时可能会牺牲一些性能。
容器云平台是为了承载企业业务应用服务的,业务应用管理是其核心能力。云计算很重要的一个特性是多租户,每个业务应用都可能是一个租户,每个租户关注的是自己的业务应用。比如建设的客户中心可以是一个租户,服务中心是一个租户。但是这些业务应用需要云计算资源,这些资源是在云平台上统一来维护的。另外还有就是要构建这些业务应用需要的DevOps工具链和标准化交付流程等。这里就涉及到多租户应用管理的租户视角,容器云平台资源管理等的平台管理员视角,以及标准化的业务应用镜像交付流程标准化交付视角三个视角。另外基于对容器云的横向层次理解,我们将容器云平台划分为4层:基础设施资源层、基础设施资源调度层、平台层和业务应用层。再者基于DevOps的持续集成、持续部署、持续发布、持续监控、持续反馈、持续改进的需求(服务和应用全生命周期管理),定义整个DevOps链路为一个闭环。基于这些探索,我们把容器云平台能力归纳为“三视角四层次一闭环”,简称“三纵四横一回路”。
开源虽然免费,但离真正的生产就绪 还有很长的路要走,这也是我们重新设计实现容器云平台架构的原因。我们将在下篇文章中详细讨论容器云平台“三视角四层次一闭环”设计思想。
下篇:容器云平台设计方案(下)(点击即可阅读)
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞10
添加新评论0 条评论