基于云原生技术的物联网应用变革研究
2023-04-06施雪亮
文|施雪亮
一、云原生应用技术特点和优势分析
云原生技术是一种应用架构设计的理念,基于这样的设计理念,应用的全生命周期都是“生在云上,长在云上”,充分利用云计算的弹性扩展、敏捷化、高效交付能力,将应用的全生命周期根植于云计算环境技术体系。
云原生应用具有极致的弹性拓展、服务自治、故障自愈、大规模可复制、异构资源标准化、迭代速度快等特点。不同于普通虚拟机分钟级的弹性服务响应能力,以容器技术为基础的云原生技术架构可以实现自动化的弹性伸/缩,可以达到秒级甚至毫秒级的弹性响应。基于云原生技术栈构建的平台具有高度自动化的调度分发能力,可实现故障的自动摘除与重构,具有较强的故障自愈能力和应急处置能力。云原生应用无需关注底层资源,具有跨区域、跨平台、跨服务商的规模性部署能力。云原生应用在供应层完成了异构资源的标准化,利用容器技术解决了异构环境的部署一致性问题。云原生应用基于微服务的敏捷开发能力,大幅提升了交付速度,降低业务试错成本,高效响应客户需求。
云原生技术的架构理念,让云原生应用具有专注业务本身、高效率软件交付、高业务稳定性、应用全域一致性、成本优化的优势。云原生应用依赖于云的分布式资源、分布式调度安排、数据库服务构建的IT架构,让应用的开发更加专注于业务本身。云原生技术革新了应用开发模式,提升了软件交付效率,通过DevOps、低代码、CICD、智能化运维实现敏捷开发和快速交付,缩短新服务上线周期。云原生应用采用微服务、服务网格、容器等技术,通过负载均衡、流量加密、熔断限流、故障注入、灰度发布等能力提高了业务稳定性。分布式的云资源管理模式下,可以获得一致性的云基础设施能力,云原生应用不必关注底层资源。云原生的理念下,计算资源实现自动伸缩,一站式完成资源与集群弹性扩缩配置,实施展示全链路资源追踪,智能运维,实现了应用成本的优化。
二、基于云原生技术的物联网应用变革研究
物联网应用是汇聚物联网网络采集的数据、提供面向客户服务、设备管理、数据管理、业务管理的应用能力,向上支持多个行业业务的应用。
物联网应用具有业务模块化、业务迭代快、弹性伸缩、能力开放的特点。根据物联网业务的特点,结合物联网服务各个行业以及多个行业应用融合的情况,物联网应用全生命周期中,碎片化应用开发管理和应用交付效率的需求,要求其具有统一的集约资源管理、标准接入、快速迭代、业务广覆盖的能力。物联网应用的开发逐渐朝着工具革新、资源管理革新、开发效率提升方向发展,这些变化要求快速开发交付、快速迭代、统一资源管理,突破数据中心束缚,突破应用部署地域的限制。基于云原生技术的应用开发从形式、内容及管理上非常贴合物联网应用新发展的要求。
基于云原生技术中微服务应用架构,传统物联网单体分层的应用架构将变革为多个微服务并行联合工作的微服务架构。微服务架构将物联网应用的每个功能分为一个微服务,每个服务都具有自己的逻辑,具有自己的数据库,传统物联网应用的关系型数据库也将分为多个微服务的独立数据库,多个微服务之间通过API方式交互并联合工作。
基于云原生技术中的物联网应用承载资源由传统的云资源切换为容器,不同于虚拟机通过Hypervisor虚拟出需要的硬件(CPU、内存、IO设备等)并在这些硬件设备上安装操作系统,容器通过container Daemon共享宿主机内核,使用namespace做资源隔离,cgroup做资源限制,容器进程的限制都是基于宿主机操作系统本身能力进行的,不受云底层资源的限制,因此容器可以解决物联网应用部署环境不一致的问题,实现一次打包应用随处便携部署。基于kubernetes(K8S)“事实标准”容器提供了的一系列工具,如容器调度、存储编排、自动部署和回滚修复、自动装箱计算、密钥与配置管理,实现负载均衡、存储自动挂载、自定义容器资源管理、服务管理。基于K8S容器服务,物联网应用将实现快速构建集群、自动负载均衡、跨集群的调度、自动的弹性扩缩。
基于云原生技术的服务网格(service mesh)将解决物联网应用的服务治理问题。服务网格逻辑上分为数据平面和控制平面,数据平面由一组和业务成对出现的Sidercar代理(Envoy)构成,接管应用服务的进出流量,并控制服务和控制面组件的所有网络通讯;控制平面由组件(polit、Citadel、Gally) 整合构成一个单进程,极大降低了部署的难度。K8S的微服务治理,提供安全的、快速的、可靠的组件间通讯,提供轻量级高性能的网络代理。使用service mesh可以有效治理K8S中运行的应用服务,实现服务的限流、熔断、灰度发布、故障注入等治理内容。物联网应用使用云原生服务网格技术及功能组件,可以高效、快速的完成应用服务的发布、部署、业务限流、业务熔断,实现服务的统一治理。
面向物联网应用的DevOps场景,云原生的技术理念在应用开发实际中高效整合云基础计算、存储、网络、安全、备份、监控及PaaS层的产品服务能力,提供新的应用研发工具,充分利用云的弹性和资源服务化的优势,构建高效、稳定可靠、资源集约的物联网应用。DevOps模式驱动物联网应用开发和运维相向而行,将开发、测试、部署整合到开发流程中各个工作环节,任何工作环节的代码的提交都将触发自动测试,每个环节的测试优化后产品质量和可靠性得以提升。物联网应用采用DevOps模式后,各工作环节自动执行测试、部署、分发、编排、维护任务,打破开发和运维之间的隔离,自动执行应用软件的交付和基础架构更改流程,缩短研发周期,增加部署频率,具备自动维护能力,使研发和运维一体化。
云原生技术中的声明式API将使物联网应用更加健壮。K8S中所有的API都是采用声明式的API,所有的应用部署都是基于YAML文件的,通过代码来管理基础设施和部署环境,系统可以检测到运行环境和声明描述的差异,不断修正,让物联网应用具备了自动容错修正的能力。
三、结语
基于云原生技术的物联网应用革新,是一站式的容器化交付标准流程,覆盖应用的规划、需求、设计、开发、测试、交付、运维完整生命周期,全容器化的架构设计,使得物联网应用调度更加灵活,执行效率更高。基于云原生技术的物联网应用的发展将更加集约化,实现根据业务流量的业务自动扩/缩容,避免业务冲击带来的应用不稳定的问题,降低因资源闲置而导致的成本开销。随着云原始技术的演进和云上微服务的不断成熟,物联网应用将会更加集约化,以更高稳定性服务客户,为应用开发企业缩短降低成本、提高应用服务能力,推动企业的数字化、智能化转型,为物联网业务拓展带来更大的便利。