IDC 预测,到 2024 年,数字经济的发展将孕育出超过 5 亿个新应用,这与过去 40 年间出现的应用数量相当。云原生让这些海量新应用在短时间内涌现成为可能,它将成为主流的现代化开发方式。云原生的基础架构编排方式也将成为新一代的云操作系统,助推云计算平台演进。
【资料图】
然而,企业在引入和运用云原生时,依然面临三大难题:
1、传统应用需要转型为云原生应用吗?该怎么做?
2、云原生应用的部署有成熟的标准或方法论吗?
3、如何利用云原生的优势来提升企业服务质量?
针对三大难题,青云科技KubeSphere 解决方案架构师申红磊在主题为《应用容器化部署,基于 KubeSphere 的务虚与务实探讨》分享中给出了答案。
以下是分享内容精华:
为什么要云原生转型?
云计算平台已经被企业所接受,但企业在上云的过程中还需要明白以下几点:
1、云计算最大的困难不是搭建云平台,而是应用迁移上云。
2、非云原生的传统应用迁移上云成本较高。
3、传统应用迁移方式如果只是采用虚拟化的重新部署,则无法发挥云平台特性。
云原生可以分成云和原生两个部分。云指的是云计算;原生就是土生土长的意思。随着云原生时代的到来,企业在开始设计应用的时候便要考虑到在云上开发、运行应用。
应用容器化部署有标准么?
在云原生的大背景下,到底要如何进行应用容器化部署?是否有一套标准理论呢?
首先,我们就不得不提“云原生十二要素”。“云原生十二要素”和《Beyond the Twelve-Factor App》作为构建 SaaS 服务的一套方法论,可以使开发者花费最少的学习成本加入到项目中去。无论是从研发、应用还是客户的角度,底层建设基本都会遵循这些原则去做。
第二,我们总结了应用容器化部署的规范标准和迁移流程。企业在应用上云实践中无需完全按照标准执行,可因地制宜总结出适合自身的应用容器化部署标准。
应用容器化部署规范标准,具体如下:
准入规范
提供健康检查接口
镜像尽可能小
镜像的软件包、安全
生产服务必须高可用
负载均衡
东西向-Service
南北向-LB
南北向-Ingress
容器用户(非 root)
不适用 root 用户启动进程,有安全隐患
分层的复用
慎用 Alpine 镜像
编译、构造兼容性
各种不可测的问题
高可用
生产配置反亲和性
PodAntiAffinity
日志输出
关键日志输出到标准输出(stdout)
日志持久化存储到 PVC
禁止生产输出 debug
避免包含敏感信息
应用容器化部署迁移流程,具体如下:
前期调研
应用规模
应用/组件类型
应用/组件的配置
应用/组件业务连续性
应用网络/IP要求
应用/组件之间的访问关系
存储服务
迁移方案设计
热迁移、冷迁移、数据迁移等方案
按应用运行级别、复杂度维度
异常情况处理流程设计
应用运行验证测试案例设计
迁移方案验证
验证迁移方案和异常回退方案
应用验证,流量切换等
应用迁移
迁移方案
迁移时间计划方案
完成系统迁移和测试工作
如何基于开源项目展开部署实践?
应用迁移上云可以分为两类:应用本身和中间件。对比传统搭建微服务的方式,多模块和中间件所需要耗费的时间会很长。而基于现代化云原生应用搭建中间件,ZipKin/Skywalking、ELK、RabbitMQ 等都可以做到开箱即用。
除此之外,企业原有的服务模块,比如网关、服务集群、分布式调度系统、认证中心等,只需要关心如何配置,依据前文所说的“云原生十二要素”和微服务设计原则方法论去拆分,再进行容器化部署,成功上容器后,迁移便更加简单便捷。
KubeSphere 之上的无限畅想
无论是平台的应用改造还是新应用上云,实现过程都可以根据一套技术路径。
从资源角度,应用上云的可从以下步骤入手:
1、平台底座构建
2、开发应用升级
3、全面转化
4、深度使用
需要强调的是,在全面转化之前,企业需提前将内部内容系统进行应用分类,试点上云。成功上云之后才可以在云上做深度使用。
从应用角度看,拥抱云原生可分为以下步骤:
1、试点应用实践
2、内部核心应用推广
3、系统批量化改造
4、业务创新
其中最核心的是要做应用创新,创造价值。
如今,企业云原生转型势在必行,但在转型过程中,容器云平台的建设、运维,以及研发人员的培训,是一个更大的挑战。因此企业可以基于青云科技推出的 KubeSphere 容器平台,来构建自身的容器云平台,理由如下:
1、企业能够全身心关注以应用角度拥抱云原生。
2、用 KubeSphere 来降低 K8s 的高学习成本。
3、用 KubeKey 来简化 K8s 的复杂的部署安装。
4、用 KubeSphere 的积木式组件,来规避功能组件选型复杂。
5、用 KubeSphere 弥补 K8s 的本土化支持。
6、用 KubeSphere 的增加企业级多租户模式,更高安全性。
参考如下对比项:
总体来讲,从头开发建设周期长、成本高、购买套装软件不满足开放可控原则、成本投入较高。KubeSphere 容器平台,能够全面消解这些难题,帮助企业构建容器云平台,全力推进应用容器化部署。