DevOps的践行者——华为云应用管理与运维平台
DevOps从默默无闻发展到今天的风靡全球,众多公司都在践行DevOps理论,无论是公司内部自建DevOps平台,亦或是租用公有云服务,DevOps切切实实地改变了软件的开发方式。
在今天,一方面由于云计算、人工智能等技术层出不穷,科学技术日新月异,数字化转型成为各行业的重点工作,致使技术以极快的速度在迭代和演进;另一方面,由于用户的多样化需求以及企业需要快速对市场作出判断并将产品推向市场,以抢占市场,夺得先机。企业需要思考和面向如何快速地持续交付高质量的软件,从而满足用户的多样化需求,提升企业的利润和市场占有率。DevOps正是在这种背景下诞生并发展,可以说 DevOps 是软件开发方式的一场革命。
通过维基百科上对DevOps的定义可以知道,其实DevOps就是把人、流程、产品三者进行有机整合,其最终目的是给客户提供持续交付的价值,整个流程包括:产品的规划跟踪,软件的开发、构建、测试、部署、运维、监控和优化。在实践中,通常把 DevOps 这些流程通过一个流水线的方式串联起来称为一个 DevOps 的流水线,并持续给用户交付有价值的产品。
华为云产品——应用管理与运维平台ServiceStage正是践行DevOps理念的一个产品。ServiceStage面向企业及开发者提供了一站式的DevOps平台,可以帮助企业简化应用(包括微服务应用、移动应用和Web应用)从开发、部署、监控到运维和治理等一系列的应用生命周期管理工作,进而帮助企业快速实现数字化转型。其产品功能图如下:
图片来自华为云官网
基于ServiceStage完整的微服务DevOps流程如下:
1、产品的规划跟踪
前期产品经理根据市场进行需求调研,确定产品方向,并规划需求,列出需求清单。
2、软件开发
软件架构师按照产品需求清单设计产品架构,选定技术栈,ServiceStage支持的语言种类比较齐全,诸如JAVA、GO、Nodejs、PHP等,而且还可接入和管理微服务框架ServiceComb和SpringCloud等;软件开发人员根据需求列表及架构设计图进行代码的开发,加载模板;ServiceStage支持多种源码仓库,开发人员可以将源码推送到CodeHub、GitHub、Gitee、GitLab或者Bitbucket。
3、软件构建
软件开发完成并推送到源码仓库后,开发人员使用ServiceStage的软件包/代码仓库构建功能将软件打包归档/推送代码,然后发布到环境中,或者直接使用ServiceStage的流水线功能完成一键打包发布,提高构建效率。
4、软件部署
ServiceStage支持创建多个环境,如开发环境、测试环境和生产环境,分别对应软件的不同阶段。软件流程中各人员根据需要将软件部署到对应环境完成相应工作,如开发人员使软件部署到开发环境,进行软件的单元测试。
5、软件测试
软件经过开发人员自验后(一般是单元测试),再构建部署到测试环境,由专门的测试团队对软件的功能、性能和可靠性等方面进行全面的集成测试,包括端到端场景测试,挖掘软件的缺陷,促进开发人员修复缺陷,保证软件质量。
6、软件上线
软件经过多层测试后,如达到软件发布标准,便可将该软件产品上线,提供给用户使用。
7、软件运维
产品上线后,需要运维人员持续关注和看护该软件的运行状况和产品的质量。ServiceStage提供了应用运维的一系列功能,应用发布上线后,运维人员通过该平台实时查看应用运行时产生的事件、日志和告警,并采取相应的运维操作保障应用的稳定运行,还可以根据应用的使用情况及时地对应用进行伸缩和调度操作,如业务高峰期,对应用进行扩容,降低业务时延。
使用微服务框架开发的应用,还可以通过ServiceStage的微服务引擎功能进行管理和运维,通过设置不同的微服务治理策略满足不同业务场景的业务访问需求,例如在业务高峰期时设置微服务降级策略,通过暂停使用/延迟使用业务访问量低的微服务,保证高优先级的微服务能正常访问。
8、软件监控
软件在生产环境持续运行,会产生业务数据和消耗其所依赖的基础资源和软件本身运行的内存等。ServiceStage提供了应用监控的功能,如设置阈值告警,当软件运行过程中某个指标超过了所设定的阈值,平台会监控到该指标情况并触发告警,运维人员能及时知道软件的监控状态并进行处理。
9、软件升级
由于软件缺陷修复等原因需要变更软件时,可以通过ServiceStage轻松完成应用组件的一键升级。
另外,当软件在现网运行过程中,通过用户使用反馈或市场调研收集到的软件优化建议而增加新需求时,可以通过ServiceStage的灰度发布功能平稳上线新功能,促进软件的不断迭代优化。
对于一个复杂的业务系统,从项目的创建、编译、构建、部署、自验、集成验证、类生产验证到上线的各个阶段都需要耗费大量的人力成本和时间成本,且很容易受到人为因素的影响出现错误。基于ServiceStage DevOps流水线,项目的交付流程由人工执行变成了自动化执行,实现了集成环境统一和交付流程标准化,大大降低了错误出现的概率,提高了项目交付的整体效率和质量。这个开发、自验、集成验证与上线的全自动化流程,不正是DevOps理念的最佳实践吗?
- 点赞
- 收藏
- 关注作者
评论(0)