经典云计算包括IaaS、PaaS和SaaS三层服务,IaaS层提供以各种虚拟机为最小粒度的资源调度单位。PaaS层在IaaS的虚拟机之上提供运行时环境,数据库、开发工具等环境,但是IaaS容易出现资源利用率低,资源调度分配缓慢等问题。PaaS容易面临应用系统架构选择。应用运行的软件环境栈不统一等问题,这些业务系统的运行环境,在面临业务系统软件架构复杂,规模庞大。业务需求变更频繁,研发交付周期逐渐缩短等问题时会成为业务系统研发人员和运维人员提升工作效率的一个障碍 。
2013年Docker技术出现,Docker是以Docker容器为资源分割和调度的基本单位。可以装整个软件环境运行时,用作构建,发布和运行分布式应用的平台,容器技术打开了一扇窗,但真正运行于线上环境。需要解决与容器环境相关的网络,存储,集群,高可用等方面的问题。从容器到容器云的演进应用而生。
为什么要建设容器云?
随着虚拟化技术的发展,很多金融行业(尤其银行同业)已完成物理机虚拟化的进程(多数采用vsphere技术)。这种虚拟化技术一定程度上降低了运维复杂性,提升了资源的使用率,这种虚拟化技术和openstac。等可视作云计算中IaaS的发展,此时,银行业的业务系统研发仍面临如下问题期待解决。
1) 应用系统使用的基础软件多为复杂商业软件,功能繁多。真正经常使用的功能一般都只占少数,这些基础软件一般系统架构复杂,安装部署复杂且学习曲线陡峭;
2) 应用系统规模越来越复杂,庞大的部署架构模式使得应用的安装,部署和更新也相对比较复杂。使得业务停机时间和部署成本都有所增加,应用系统开始尝试微服务的形式解决此类问题;
3) 在面临互联网金融等多种行业的激烈市场竞争时,业务部门的需求变化越发频繁,同时也希望研发部门的软件交付周期越来越短。银行IT团队对提高IT能力驱动业务创新的愿景,是银行业IT团队拥抱趋势技术,紧随IT技术发展的宣言。
4) 以vsphere为代表的虚拟化技术,同样面临硬件使用率相对较低,资源分配调度相对缓慢等问题。
随着金融科技概念的兴起,IT部门需要解决这些问题从而更好的提升研发和运维团队的生产力。从而更加灵活,高效。快速的满足业务系统需求,更好提升业务价值。
容器云平台的主要内容
首先确定建设容器云的目标,准备覆盖应用的范围,是小范围试点。部分互联网应用,还是主要应用,目标决定了企业的各种资源投入和承担的技术风险。
其次了解所需覆盖应用是否适合部署于容器云,不是所有类型应用都适合运行于容器云。
第三就是技术选型,主流的容器技术和框架各有优劣,需要根据平台的最终建设愿景来选择。
结合银行的监管要求和企业应用特点,一般容器云建设包括但不限于如下方面。
1) 云管平台的建设,主要实现整个云平台可视化的web管理平台。包括分配资源,管理容器,管理租户,管理应用和管理服务等操作功能。
2) CI/CD与平台的对接, 能够更好的支持灰度发布,蓝绿发布等多种应用更新升级方式。智能化的自动构建和部署,从而更好的支持软件敏捷开发;
3) 应用商城(镜像管理):实现镜像的集中安全统一管理,实现企业软件资源积累和沉淀的一个工具化支持,
4) 应用日志和监控:实现对容器云平台运行的各个应用系统的日志统一管理和监控统一管理,
5) 应用编排,制定容器云平台的标准服务定义模型,从而保证应用的一键式部署。能够实现健康检查,自动伸缩,自动资源选择和调度,自动复制等功能。从而保证应用的整体服务能力!
6) 网络和存储,如何在容器中建立网络模型和存储模型。从而更好为容器提供网络通信和存储提供服务。
除此之外,还需要关注容器云上应用的高可用性。系统安全等现有架构体系下也需重点考虑的问题。
容器云如何建设
容器云平台项目建设有哪些技术路线,该如何选择。
单从技术角度看,容器云的核心主要包括容器、服务编排和网络等内容。企业级平台的建设思路一般是以这些功能为核心,进行各种企业级功能的建设和完善。
1) 容器,目前主流的有Docker,Garden和Rocket等,关注度最高的是Docker(分为社区版CE和企业版EE)。Garden是Cloud Foundry支持的容器,Rocket是CoreOS推出的容器技术,Docker和Garden都有实际的金融业应用。2015年开始,linux基金会成立OCI组织,旨在旨在围绕容器格式和运行时制定一个开放的工业化标准,runC 是Docker贡献出来的,按照该开放容器格式标准(OCF, Open Container Format)制定的一种具体实现,容器最终发展会成为一种行业标准,选择时可选择参考行业标准制定的成员单位、贡献度和话语权等。在互联网公司,阿里,腾讯,百度,网易,京东和华为的内部平台建设或者对外商用产品发布均采用了docker技术,可见docker有更加广泛的用户群体。
2) 服务编排,服务编排框架有多种实现形式,目前多数采用kubernets(k8s),成为一种市场主流选择。k8s是Google内部的大规模集群管理工具开源而来,受到Microsoft,VMWare,Red Hat,CoreOS,Mesos等各大巨头青睐。纷纷为其共享源码,设计宗旨是维护应用容器集群一直处于用户所期望的状态,并且建立一套健壮的集群自恢复机制。包括容器的自动重启,自动调度和自动备份等功能, Swarm是Docker原厂的容器编排引擎。也分为社区版和企业版,在各种调查中可以发现k8s是普及度比较高的。
容器云的建设有哪些风险需要考虑
1) 技术选型的成本,容器云需要优先选择容器和服务编排的技术路线,选定后基本可以确定产品的系统架构。在实施后再进行修改或者更换的成本相对比较大,如果选择的技术路线以后停止更新不发展了,也会面临各种技术支持等问题。
2) 开源框架快速发展:目前主流的编排技术(如K8S)均为开源软件,随着容器云技术在企业中越来越多的普及应用。开源软件自我完善和发展的速度比较快,版本更迭频繁,甚至不同版本之间架构等差异比较大,因此需要更加关注软件生命周期过程中框架的平滑升级和过渡。
3) 应用高可用的风险,从架构层面看,容器云是一个整体,容器云内部架构出现异常。可能会导致整个云异常,影响容器云上的所有应用,因此,高可用,可靠性需要反复测试演练,并形成灾难恢复应急文档。
4) 在企业内部落地的风险,容器云上运行的是银行业务系统,因此必须遵循银行系统的特点,比如满足应用系统安保等级要求等。容器云的落地,一方面是技术方面的风险,比如和行内各种现有系统的对接等。一方面是制度流程方面的风险,容器云必然会带来很多新的思维和理念。这些最终需要靠制度流程来保证实施,需要进行流程梳理和修改,避免“水土不服”。
容器云建设时需要考虑哪些难点和重点呢?
容器云建设是一个复杂的系统化工程,每家企业容器云建设的出发点。设计目标各不相同,因此建设的内容会存在差异,但主要的建设难点或者重点包括但不限于如下内容,
1)与基础设施的融合:容器云与基础设备的关系如何定位,容器云平台的管理内容包不包含底层vmware,openstack或者物理机。
2)网络建设:容器云中大量容器需要进行网络隔离或者网络连通,网络连通时使用哪种网络设施,诸如vxlan的overlay。平网络还是基础设备的underlay(IaaS的网络),不同的选择在网络性能、网络节点规模等方面各不相同。
3) 存储, 对在容器中需要使用存储的容器而言存储设施存在多种选型方案,比如采用ceph,NAS或者glusterfs等。
4)日志,运行在容器云的应用集群,如何进行日志管理。是采用ELK还是对接行内统一日志管理系统。
5) 监控,容器云上的应用如何进行监控,是单独采用云产品的自有监控体系。还是对接单位内部已有监控系统。
6) 中间件集成,容器云适合集成哪些中间件服务(比如数据库,缓存等),集成中间件之后。中间件中保存的数据如何进行处理,中间件的管理和运维如何进行呢?
容器云平台既要于底层基础设施交互,又要支持顶层应用,涉及面和覆盖面都非常广。因此建设过程中与单位内部已有设备,流程等进行结合时需要进行综合考虑。
更多产品了解
欢迎扫码加入云巴巴企业数字化交流服务群
产品交流、问题咨询、专业测评
都在这里!
2020-03-06 13:29:26
2019-09-18 11:02:35
2022-11-23 10:47:55
2024-03-27 13:45:02
2019-09-17 14:39:02
2020-03-09 17:08:28
甄选10000+数字化产品 为您免费使用
申请试用
评论列表