王作敬
作者王作敬2018-11-19 16:20
管理信息系统总监, 银河证券

容器云平台设计方案(上)

字数 3634阅读 8567评论 0赞 10

作者:汪照辉 王作敬


一、 摘要

容器技术应用虽然越来越广越来越深入,但大多数仍然只是基于开源做一些测试和验证工作。基于对容器平台的应用和研究,以及对开源技术的理解,详细探讨了容器云平台的设计和实现架构,提出“三视角、四层次、一闭环”设计方案,重点在于支撑业务应用的开发、托管和运营。(共两篇详细描述容器云平台设计,这是第一篇)

二、 关键字

容器云、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平台提供应用开发、应用托管、应用运维的能力。容器云也重点在于实现这些能力。因此实现资源管理、应用管理、持续集成标准化交付、持续部署、持续监控、持续反馈、持续改进能力是容器云平台需要考虑的需求。
证券行业业务场景复杂,需求多样,那么容器云可能适用场景有哪些?我们觉得可以从以下这些方面入手:

  1. 环境一致性。容器平台交付标准化的镜像,通过镜像仓库使分发流程规范化,容器引擎使运行环境标准化,而标准化的容器使调度管理标准化,这就提供了证券企业开发测试生产环境的一致性,对于自主研发能力和效率的提升会有极大的帮助。
  2. 弹性伸缩能力。容器平台最重要的特性和价值就是弹性。这也是采用微服务架构部署微服务到容器云平台的重要原因。如果仅仅是迁移原业务应用到容器平台而不能实现弹性伸缩,那就没有什么价值。很多人强调云原生,也是在于云的弹性能力,这是满足证券企业应用和服务容量快速变化的要求。
  3. 灰度发布能力。灰度发布多应用于移动App,移动App发布频率比较高,为了更快验证功能,需要导一部分实际的请求流量到新的版本测试确认。在确认没有异常和缺陷之后,发布替换原来的旧版本;灰度发布也可以用于特定的用户群体,不同的用户群体所使用的版本不同,提供定向或专项服务,比如为某些大客户提供某专项业务服务。这是证券个性化服务要求。
  4. 构建基础设施云计算平台。云计算提供各种云服务,云服务可以看作是一种资源。不管IaaS、PaaS、或SaaS,都是提供资源服务。利用容器构建PaaS平台提供开发、测试、部署、运维等基础设施平台服务。这是证券企业统一基础设施服务的需要。
  5. 基于基础设施平台使用微服务架构重构业务应用。有了统一的基础设施平台,就可以方便的构建业务应用。以微服务架构开发的业务应用具备天然的云原生属性,跟容器平台融合统一,相辅相成。有了基础平台、有了服务架构,为了实现数据以及业务的统一,很多遗留系统和单体应用需要逐步的重构,实现企业服务中台能力。这是证券企业可持续发展的需要。

容器云平台说到底只是工具,最终还是要服务于企业业务应用的。容器云平台是来承载业务应用的,所以应用管理才是容器云平台能力的核心,所有的能力都是围绕应用管理来建设的。不管容器云平台的资源管理,容器云平台的多租户隔离机制,以及容器云平台的安全、监控、日志等组件,都要围绕应用管理来建设的。
hrtq6zzmszxw

hrtq6zzmszxw

图1 应用管理为中心

(二) 容器云的价值

基于容器轻量、标准、弹性等特性的容器云平台提供了相应的能力。容器云平台可以构建标准化的基础设施环境、敏捷的工具链流程、快速的弹性扩展能力等。

  1. 提供统一的标准化的基础设施平台。首先容器云平台提供了统一的标准化的基础设施平台,实现了环境的一致性。所有业务应用服务打包为镜像运行于标准化的容器中。标准化为业务应用全生命周期管理带来了便利和敏捷。
  2. 提供敏捷的研发部署运维流程。容器云平台交付和交换标准化的镜像来实现持续集成和持续部署等流程的自动化和敏捷,提升了开发效率。
  3. 提供便利的弹性扩展能力、可用性。容器云平台的弹性是其核心价值之一,非常适合变化迅速、请求流量难以准确预测、业务生命周期短等场景。
  4. 利用API网关可以方便的实现服务治理能力。API网关是容器云平台重要的一个组件,其担负着业务应用的安全屏障职责,是实现访问控制、安全检查、限流限额、路由转换、过滤熔断等非业务逻辑能力的关键层次,也是在容器云平台实现微服务治理能力的核心组件。
  5. 基于容器云平台和微服务架构构建企业服务中台。容器云不只是满足于支撑互联网应用和移动应用的弹性需求,基于微服务的架构,我们可以逐步把单体应用的组件逐步的分离出来,比如日志服务、监控服务、权限服务、认证服务、配置服务、短信服务、微信服务、邮件服务、告警服务等等,这些服务分离的越多,在实现新的业务应用时就越省时省力。逐步可以建立起支撑整个公司业务应用的服务中台能力。构建服务中台才是采用容器云和微服务的核心价值所在。

(三) 容器云的不足

容器云有很多优点,但我们也要认识到容器云也有不足。一枚硬币有正反两面,一件事物有其优点也必有其缺点,需要辩证全面的看待它。
首先容器云适合无状态、轻量、弹性的业务场景,它不太适合笨重的应用服务,比如WebSphere、Oracle DB,就不适合。不要拿容器当虚拟机用,容器不是虚拟机。试想一个镜像十几 G甚至几十G大小的文件,如何去打包分发部署?一次部署的代价有多大?
其次容器是弱安全的,所以在容器云平台设计实现时,需要考虑尽可能的减少不安全接触面,尽量隔离潜在不安全操作。比如限制容器终端命令交互方式。安全有时可能会牺牲一些性能。

五、 容器云平台设计

容器云平台是为了承载企业业务应用服务的,业务应用管理是其核心能力。云计算很重要的一个特性是多租户,每个业务应用都可能是一个租户,每个租户关注的是自己的业务应用。比如建设的客户中心可以是一个租户,服务中心是一个租户。但是这些业务应用需要云计算资源,这些资源是在云平台上统一来维护的。另外还有就是要构建这些业务应用需要的DevOps工具链和标准化交付流程等。这里就涉及到多租户应用管理的租户视角,容器云平台资源管理等的平台管理员视角,以及标准化的业务应用镜像交付流程标准化交付视角三个视角。另外基于对容器云的横向层次理解,我们将容器云平台划分为4层:基础设施资源层、基础设施资源调度层、平台层和业务应用层。再者基于DevOps的持续集成、持续部署、持续发布、持续监控、持续反馈、持续改进的需求(服务和应用全生命周期管理),定义整个DevOps链路为一个闭环。基于这些探索,我们把容器云平台能力归纳为“三视角四层次一闭环”,简称“三纵四横一回路”。
t8cph10lj55l

t8cph10lj55l

图 2 容器云平台架构

开源虽然免费,但离真正的生产就绪 还有很长的路要走,这也是我们重新设计实现容器云平台架构的原因。我们将在下篇文章中详细讨论容器云平台“三视角四层次一闭环”设计思想。

下篇:容器云平台设计方案(下)(点击即可阅读)

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

10

添加新评论0 条评论

Ctrl+Enter 发表

本文隶属于专栏

最佳实践
不同的领域,都有先行者,实践者,用他们的最佳实践来加速更多企业的建设项目落地。

作者其他文章

相关文章

相关问题

相关资料

X社区推广