立即咨询

电话咨询

微信咨询

立即试用
商务合作

业务容器化改造实践(一)

2019-09-18

最近将一个电商业务系统进行了容器化改造,并在Kubernetes平台中成功运行。在此记录改造过程以及改造思路,希望能够给大家的业务容器化改造带来帮助和启发。

后续将有一系列的文章来详细介绍如何进行容器化改造,需要改造哪些地方,具体是如何实施的。本篇是该系列文章的第一篇,主要介绍改造的思路和方案。

传统业务模式所面临的问题

世界著名大思想家斯宾塞·约翰逊曾经说过“唯一不变的是变化本身”,因此对于任何事物,我们都需要用动态的眼光去看待。在IT领域也是如此,对于一个业务系统来说,是否需要作出改变,主要取决于两个方面:一个业务的需求变化,这里的需求包含业务功能的需求、支撑更多用户访问量的需求、应用部署运维和升级的需求、业务开发管理的需求等;一个是技术的发展变化,即是否有新的技术出现能够解决之前不能解决的问题,或者能够让业务以更高效的状态运行。

随着IT技术的发展,从最初的物理机发展出虚拟化技术,企业开始将自己的业务系统迁移到虚拟化平台中,后来出现了公有云、容器等最新的技术。毋庸置疑,这些新技术可以提升当前业务系统的运行效率,那么此时我们需要考虑的问题就变为如何应用这些新技术来解决业务的需求问题。

从技术方面来讲,我们通常说的虚拟化技术,指的是主机层面的虚拟化技术,用于管理硬件层间的计算资源(CPU、内存)、存储资源(硬盘、存储)、网络资源等。使用虚拟化技术在一定程度上降低了运维的复杂性,提升了资源的使用率,这种虚拟化技术可视作云计算中IaaS层。传统的业务一般是放在物理机或者虚拟机上运行的,每个业务系统运行在一个或几个物理/虚拟机上,这样少量的物理机就能支撑所有的业务运行,在最初是可以满足业务运行需求的,但是随着技术发展,特别是受到互联网冲击的业务,将会面临如下的问题:

系统基础组件和功能变多

由于互联网的冲击,用户的需求增多,且很快就发生变化,另外访问的流量也扩大了N倍。应用系统需要更多的功能来满足用户日益增长的需求,同时需要增加各种基础组件(如缓存、消息中间件等)来提升用户的访问体验,以及保证业务系统的业务连续性。因此不仅应用的功能增加了,而且系统架构也发生了很大的改变。

应用敏捷开发管理困难

尤其是在互联网应用系统中,用户需求的变化是非常迅速的,原先一周一次更新,现在可能要一天一次,甚至一天多次更新,因此需要研发部门缩短软件的交付周期,给其带来了非常大的挑战。

系统部署运维与升级复杂

应用系统规模越来越庞大,架构越来越复杂,使得应用的安装、部署和更新也相对比较复杂;运维人员需要处理大量的安装、部署和更新工作,工作量大大提高。因此运维所需投入的人力、物力、财力等成本都成倍增加。

硬件资源分配调度缓慢

在硬件资源层面,物理机资源调度极其缓慢;即使是使用虚拟机,也需要手工部署应用,不仅耗时长,而且也无法保证开发、测试、生产环境的一致性,难以满足应用快速上线、弹性伸缩等需求。

那么这些问题该如何解决呢?可以引入容器技术,使用容器云可以从本质上解决传统业务面临的问题,将业务进行容器化改造,从而更加灵活、高效、快速的满足业务系统需求。

业务容器化改造的思路

为什么说容器技术可以从本质上解决传统业务面临的问题?

我们在详细分析传统业务面临的问题之后,可以发现是由于业务的快速变化和访问量的增加,导致传统的架构无法满足需求。为了保证每个业务功能都能够长期稳定的提供服务,至少要做到两点:一点是当业务功能模块发生变化时,不会对其他业务模块造成影响,另外一点时业务本身能够应对访问量的高峰。也就是说,要对业务功能进行拆分,使其微服务化,这样各个功能模块相对独立,且不会因其他模块更新或故障而受到影响;另外就是业务模块自身要具备快速的伸缩能力,在访问高峰时使用更多的副本节点一同来提供服务,高峰过去之后,收缩副本节点数以节省资源。

业务微服务化拆分之后,原先单独的业务系统变成了大量的微服务模块,每个模块可能又有大量的更新需求,使用传统人工的方式,必定带来大量的工作量,同时也难以控制升级发布是按照既定的规范进行的,管理者难以管理和监控发布情况。因此从管理的角度来看,需要采用自动化的发布方式来解决这个问题,同时将DevOps思想融入项目管理中。

另外一点是,业务微服务化拆分以后,拥有大量的微服务模块,再加上大量的副本,运行微服务模块需要更多的资源,同时各个模块需要运行在什么主机上,各自之间的亲和、互斥关系该怎么处理,这些问题依靠人工是无法解决的。那么该如何运行微服务呢?如果选择物理机来运行,需要事先投入大量的资源。如果选择虚拟机来运行,每个微服务使用一个虚拟机,将会有大量的虚拟机需要管理,运维人员的工作量将非常的巨大。

因此我们需要一个具备完善资源调度、编排、故障隔离、高弹性的平台来运行微服务,而容器平台恰恰都具备这些特性。经实践证明,容器化是运行微服务的最佳载体。

总结起来,业务容器化改造的思路主要是三个方面:一是业务的微服务化拆分,二是业务发布流程的自动化,三是构建容器管理平台。

业务容器化改造的方案

业务容器化改造的方案与思路也是一一对应,即:进行业务微服务拆分、构建自动的CI/CD发布流水线、搭建容器管理平台。这里可以明确看出,改造后的系统需要以下的各种组件,在这里针对各种组件的功能以及对应的开源软件进行简单介绍:

容器管理平台

目前最流行的容器技术是Docker,基于Docker并具备完善编排调度、故障隔离、弹性伸缩、滚动升级的容器管理平台是Kubernetes(简称K8S)。原生K8S的管理控制主要依赖于命令行,图形化的管理方式并不友好,可以选用商业化的开源产品来管理K8S集群。

Rancher是一款开源的企业级的容器管理平台。通过Rancher,企业再也不用自己使用一系列的开源软件去从头搭建容器服务平台,可以直接在Rancher中去创建K8S集群或者管理已有的K8S集群。目前支持创建自定义的集群,或者以阿里云、亚马逊云、VMware虚拟机等资源作为计算节点的集群,或者是Google容器云、AWS容器云、Azure容器云等。

镜像仓库

业务以容器方式运行时,每个容器对应的都有自己的Docker镜像,因此需要一个专门的镜像仓库来存储和管理Docker镜像。在互联网上国外的有DockerHub,国内的各大公有云厂商也提供免费的镜像仓库服务。在企业内部,可以使用一些可以进行私有部署的软件,比如开源的Harbor。

Harbor是用于存储和分发Docker镜像的企业级Registry服务器,通过添加一些企业必需的功能特性,例如安全、标识和管理等,扩展了开源Docker Distribution。作为一个企业级私有Registry服务器,Harbor提供了更好的性能和安全,提升用户使用Registry构建和运行环境传输镜像的效率。Harbor支持安装在多个Registry节点的镜像资源复制,镜像全部保存在私有Registry中, 确保数据和知识产权在公司内部网络中管控。另外,Harbor也提供了高级的安全特性,诸如用户管理,访问控制和活动审计等。

代码仓库

持续集成(CI)是一个开发的实践,开发人员需要定期集成代码到共享的存储库,这个存储库就是代码仓库。代码仓库可以实现项目代码的版本管理,同时在构建CI/CD流水线的时候代码仓库也是必须用到的一个组件。常用的代码管理工具有SVN和Git,SVN对应的服务器端是SVN Server,Git对应的服务器端有Gitlab、Github等。在企业内部,可以使用开源的Gitlab作为私有的代码仓库。

CI/CD工具集

常见的CI/CD工具有Jenkins、Gitlab等,二者都是开源的,使用最为广泛的是Jenkins,其中拥有丰富的插件,支持各种语言的项目在其上进行持续集成和持续交付。并且支持与Gitlab、SVN等代码仓库进行自动触发的配置,支持Docker、K8S插件,使用Jenkins的流水线,可编译源程序代码、将代码与依赖环境打包成镜像,并在k8s集群中进行部署。

总结起来,在本次的业务容器化改造的方案中,所用到的软件工具如下,供参考:

序号

组件

工具

1

容器管理平台

Rancher

2

镜像仓库

Harbor

3

代码仓库

Gitlab / SVN

4

CI/CD工具

Jenkins


提供统一标准的交付环境业务容器化的价值

由于容器采用镜像的方式实现运行环境的标准化,只需要将应用程序及其运行所依赖的环境统一打包到镜像中,即可实现一次封装、到处运行的效果。因此可以屏蔽不同环境下的环境配置和安装部署等复杂过程。

提升开发交付效率

容器的标准交付理念,支持更好的与CI/CD文化融合,开发提交代码后,编译、打包、发布、部署等过程都自动完成,提升开发交付的效率,可从技术手段上保证项目管理方式和管理理念的有效落地。

资源整合提升利用率

容器可以运行在多种平台中,物理机、虚拟机、公有云等资源都可以运行容器,使用容器可以帮助企业实现对不同资源的统一管理。容器技术本质上是一种操作系统虚拟化技术,容器间共享操作系统的内核进程和内核资源,通常一个容器中只运行一个或一组进程,从而有效节省操作系统级资源开销,容器的启动速度快,占用资源少,通过容器密度的提升可以更好的利用资源。

管理更加简单

使用容器技术,只需简单配置,就可以替代以往大量的部署、更新工作,而且所有的更新都是动态滚动更新的,也支持回滚操作,因此可以实现高效的自动化管理。

生态系统完善

使用容器技术,配套的有专业的资源调度编排平台、企业级的镜像仓库、企业级的应用商店等功能,而且日志收集分析、应用监控等功能也都应有尽有。

总结

在本篇文章中,主要给大家介绍了传统业务模式面临的问题及对应的容器化改造思路和解决方案,并简单介绍了解决方案中涉及的各个组件的作用。那么,如何对业务代码进行微服务拆分?利用Rancher如何搭建容器管理平台?如何部署镜像仓库、代码仓库、CI/CD工具集?如何构建自动化的发布流水线?

更多产品了解

欢迎扫码加入云巴巴企业数字化交流服务群

产品交流、问题咨询、专业测评

都在这里!

 

热门数字化产品

腾讯云慧眼人脸核身腾讯云人脸核身是一组对用户身份信息真实性进行验证审核的服务套件,包含证件OCR识别、活体检测、人脸1:1对比等能力,以解决行业内大量对用户身份信息核实的需求。
青椒云AIGC云桌面平台青椒云AIGC云桌面平台是一种基于云计算技术的虚拟桌面服务。通过在云端提供可扩展的桌面环境,允许用户通过网络从任意地点访问专属桌面界面。青椒云AIGC平台支持高性能计算和图形处理,适合设计、视频编辑等专业应用场景。此外,它还具备数据安全、远程协作、灵活定制等特点,能够满足不同行业和企业的个性化需求。通过青椒云AIGC,企业可以实现IT资源的集中管理和成本优化,同时提升员工的工作效率和协作灵活性。
吉客云吉链分销平台吉客云吉链分销平台为吉客云的业务链接子系统,连接吉客云企业与企业之间的业务关系。多种关系(货主委外发货、生产委外加工、代理销售、物流代发)的业务往来和协同,以及业务伙伴的发现。
2号人事部人力资源数字化平台2号人事部是由百万HR共创的一体化人力资源数字化平台,助力企业实现人力资源数字化转型。主要包括组织人事、薪酬社保、考勤休假、招聘协同、培训学习、绩效考核六大模块,并通过行政审批、员工服务、弹性福利来实现提升组织效能和员工满意度。
埃文科技IP风险画像埃文科技IP风险画像基于多维度数据信息、持续性IP风险验证机制和多级IP风险判定算法,实时关联IP的位置信息、应用场景、端口服务和设备风险信息等进行IP风险精准判定,并实行IP风险赋分、风险分级机制,简化业务应用门槛。IP风险画像产品可覆盖识别7种类型的风险IP,分别是VPN、代理、秒拨、数据中心、Tor节点、端口扫描、暴力破解。
为你推荐
2025腾讯产业合作伙伴大会|云巴巴荣获双项大奖,载誉而归

1月16日,2025腾讯产业合作伙伴大会在三亚召开。云巴巴,荣膺“2024腾讯云卓越合作伙伴奖—星云奖”和“2024腾讯云AI产品突出贡献奖”双项大奖

2025-01-17
跨国业务卡顿?企业出海专线该怎么选?网宿科技海外专线轻松解决延迟、安全难题

在全球化竞争中,为何众多企业出海后会因网络问题陷入发展困境?这背后究竟存在哪些亟待解决的网络难题?企业又应如何应对?

2025-04-22
货物堆叠如山隐患多?蓝巨人AGV技术五大场景破解仓储“空间焦虑”

如何在不扩建高位库的情况下,实现仓库容量翻倍?在内部物流自动化和智能化的背景下,智能物流技术给出了答案。AGV无人叉车与智能堆叠系统,正在重塑仓储空间的极限。

2025-04-22
支付数据能否撬动千亿蓝海?解码海纳数科智能风控的破局逻辑

海纳数科通过整合支付数据资源,构建了强大的用户风险画像和信用评估体系,为金融机构提供了全面的消费金融业务解决方案,助力精准识别风险、保障决策。

2025-04-22
消费金融如何应对数字化转型期?海纳数科“智能风控与支付数据整合”驱动行业新突破

海纳数科凭借其在支付数据资源整合与智能风控领域的深厚积累,助力消费金融行业突破发展瓶颈、实现高质量发展。

2025-04-22
查看更多