基于品高基础云+容器云的DevOps双模应用探索
DevOps起源于2009年,由Patrick Debois发起的“DevOpsDays”会议中首次提出,它是一种软件开发及运维的理念和实践方法,旨在通过协同与自动化的方式,加强开发团队和运维团队之间的协作,实现业务的快速交付、频繁变更和快速修复问题,从而更高效、更平稳地运维软件,提高业务的敏捷性和稳定性。
通常情况下,软件开发和运维是两个独立的团队,开发团队负责编写代码,而运维团队负责部署、监控和维护应用程序。这种分离导致了开发和运维之间的沟通和协作困难,潜藏着一定程度的错误和延误风险。DevOps的目标是通过协同、自动化和持续交付等实践打破这种壁垒,促进开发和运维之间的紧密合作,提高软件交付的速度、质量和运维的可靠性。
提到DevOps的快速交付和频繁变更,其技术核心就在于持续集成和持续部署(CI/CD)技术。
在持续集成方面 ,基于品高云操作系统,可以在物理主机上运行多个操作系统实例从而创建独立的构建和测试环境,以隔离不同的代码版本和配置。虚拟机提供了更高的灵活性和隔离性,从而便于并行构建和测试。此外,也可以利用不同的操作系统虚机环境测试应用系统的兼容性。基于一云多芯的品高云,还可以比对同一应用程序在不同芯片上的响应时间、并发用户量、TPS等性能,通过资源利用率评测该应用在不同芯片型号的运行效能,从而选择更适合该应用的信创产品。对于应用的持续集成,可以生成不同的构建产物,如可执行文件、安装包,也可以根据需要生成品高云虚机或容器,分别存放于虚机镜像仓库或容器镜像仓库。
在持续部署方面 ,可以根据需要在品高云上直接拉起新虚机通过品高云的自动化编排工具进行部署,或将应用程序部署到已存在的不同虚机上。若构建产物为容器,可根据需要在虚机之上运行不同的容器,或通过自动编排生成容器镜像直接运行在基于物理服务器构建的品高容器云上。
那么对于企业来说,传统的虚拟化云计算与容器,到底要如何选择呢?虽然容器技术相对传统虚拟化技术可以提供更快速的部署,但是,根据品高二十年来在企业信息化方面的经验,对企业来说,并不是所有的应用都适合采用容器模式进行部署。
比如:
传统的单体应用:传统的单体应用程序在实际应用中,大概率会依赖于特定的操作系统版本和硬件环境,因此更适合在虚拟机中运行。
需要保持长期不间断运行的应用:相对容器来说,虚拟机可以提供更稳定和可靠的运行环境,适用于需要长期稳定运行的应用系统。
需要进行多租户强隔离的应用:虚拟机可以提供更强大的隔离性能,适用于需要更高级别的多租户隔离的应用程序。
具有以上这些特征或业务需求的企业应用 更适合采用传统云计算模式进行部署 。
虚拟化技术可以提供更强大的隔离性和资源管理功能,适用于需要更高级别的多租户隔离的场景。虚拟机可以为每个应用程序提供独立的操作系统和虚拟硬件资源,使得不同的应用程序可以在同一台物理服务器上并行运行,提高硬件资源利用率。
相对于传统云计算的虚拟化技术,结合近年来的微服务改造, 容器技术则更适合具有以下特征的企业应用进行部署运行:
基于微服务架构的应用:容器技术可以简化微服务架构中组件的管理和部署。每个微服务都可以打包成一个独立的容器,可以独立进行扩展和管理。
需要更加快速的部署和更新的应用:容器技术相对虚拟机来说更轻量化,可以在几秒钟内启动,因此,能够提供更快的部署和扩展速度,容器镜像可以更加快速地部署到任何支持容器技术的环境中,大大简化和加快了应用程序的发布和更新过程。
高可伸缩性和弹性要求的应用:容器技术可以根据负载变化自动扩展或收缩,提供更好的弹性和可伸缩性。
容器技术可以提供更快速和更一致的部署环境,使得应用程序可以在开发、测试、生产等不同的环境中进行快速迁移和部署;此外,容器生态的CI/CD工具更加丰富,可以更好地支持持续集成和持续部署(CI/CD)流程。
品高软件基于自主研发的内核代码,将品高云产品的传统虚拟云计算技术与容器技术相融合,从而可以同时提供虚拟机和容器资源,还可以在裸金属设备上直接构建容器,进一步提高了资源的利用率,更好地支撑不同应用的双模构建和部署交付。
在DevOps的实践落地中,品高软件通过CMP品高云管理平台综合管理多地分布的多朵云,在品高云的基础之上,有机的结合云计算和容器等技术,根据不同应用的运行需要,最大化的发挥不同部署模式的特点,探索DevOps的双模构建之路。结合二十年来的企业信息化建设经验和自主可控的核心技术,品高软件将继续深入探究和践行DevOps理念,将不同技术进行策略化、自动化的协同,使之与客户应用更加匹配,尽可能的缩小“应用”、“开发”、“运维”、“客户”之间的缝隙。