您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
艾瑞怎么样(艾瑞咨询怎么样)
过程,测试,敏捷艾瑞怎么样(艾瑞咨询怎么样)
发布时间:2020-12-06加入收藏来源:互联网点击:
而这个问题和前面一个问题很类似,就甲方来说如何加强对开发商的管控,如何确保开发商定制的系统版本和当前的研发文档,源代码资产等是时刻同步的。如何确保最终验收的研发交付文档,代码就是和当前生产环境运行的系统版本是一致的?
如果所有的事情都到了验收的时候才去处理,那么往往为时已晚,说得直白一点对应乙方提供给甲方的业务系统对甲方来说就是一个黑盒子,里面的东西甲方完全搞不懂,只有乙方能够进行后续运维和定制维护。也就是甲方不得不承认间接被乙方绑架的事实。
我们都知道最终的研发资产要能够移交,要能够可交维,但是里面的关键点究竟在哪里?
简单来说就是研发资产的可交付必须是一个在一开始就持续增量不间断进行的过程,一个是按阶段进行持续的交付,一个就是按业务系统的功能点进行持续集成交付。在整个过程中会分很多小的阶段点,在这些阶段点都需要植入相应的自动化检查和测试手段,确保最终入库的资产质量是满足的。整个持续集成过程在一开始配置完成后,研发人员就不应该过多地介入,而应该是流水线自动进行,确保中间没有人为不确定性因素的加入。
微服务架构和容器云推动DevOps大发展
注意,在企业没有实施容器云,微服务架构改造的时候,实际前面谈到的持续集成,部署等工作量并不大,因此企业也很少单纯为了提升交付效率而实施DevOps。
但是在实施微服务后,你会发现原来的一个大单体应用拆分为了20个微服务甚至更多,每个微服务都涉及到编译,构建,打包部署等动作。整个集成和部署的工作量就大大增加了。
因此你不得不考虑进一步将这些工作自动化掉。
比如我们采用Jekins来实现整个CI/CD过程,同时将Jeins和敏捷研发,自动化测试工具或脚本,容器云交付平台进行集成,实现整个过程的自动化。
在这里提出一个重要观点,即:
在信息技术发展过程中,当采用和实践一个新技术的时候,往往会引入新的问题,这个时候我们不会是退回原点,而是进一步应用新的方法工具来解决新问题。
DevOps实践流程
从DevOps的流程实践上看,总体来说其流程可以分为需求对接和应用设计、敏捷开发和持续测试以及最终测试和上线运维等三个阶段,其核心是由开发人员和测试人员主导的敏捷开发和持续测试阶段。借助Scrum或Kanban等工作流方法的和一系列持续构建、持续集成、持续测试以及持续发布工具,IT团队能够高效率地开发通过微服务架构解耦的程序模块, 并及时、持续地与用户方面进行对接,对各个模块的研发质量和成果进行实时把控。
在通过最终的集成和测试之后软件得以部署上线,此后开发人员能够借助应用容器化封装带来的统一环境之便,与运维人员一起对软件的运行质量进行监控、 为用户提供支持服务,并继续根据市场需求进行版本更迭的进一步开发工作。
在谈DevOps成熟度模型的时候我谈到过,简单来说DevOps最佳实践包括了三个方面的关键内容,即:
敏捷研发和过程管理(引入微服务开发实践)CI/CD(扩展持续交付 自动化测试)运维管理(扩展到持续闭环技术运营)只有围绕上面几个点,那么整个DevOps实践相对来说就是完整的。
敏捷研发和微服务
大家一定要注意,在实施微服务后对整个DevOps过程的一些影响。
一个传统的单体应用你要走CI/CD相当来说很容易,但是传统单体应用以及拆分为上10个甚至更多的微服务,这个时候你需要考虑。
你最终交付的是整个产品或应用,但是一个项目版本或变更过来,实际只变化了里面的3个微服务,那么如何仅仅交付和变更这三个微服务。
其次你还需要考虑,在进行持续集成的时候,不是单个微服务的编译构建,打包部署,这里面还涉及到独立的多个微服务间的横向集成,这个集成能否在DevOps过程中一并考虑到。(注:实际这块涉及到传统CMMI里面讲的PI产品集成的内容)。
为了实现这些,你可以看到产品,项目,项目版本,团队,团队成员,应用,微服务,API接口这些对象之间的关系变复杂了,需要梳理清楚这些对象之间的关系才能够构建完整的底层业务对象模型,同时需要实施类似多流水线设计等才能够满足以上业务场景。
这些内容在传统的DevOps技术工具链中不会谈到,而你在实施微服务和敏捷研发的最佳实践中一定会出现。也正是因为这个原因,我一直在强调。DevOps的核心是敏捷研发 持续集成交付的最佳实践,而非简单工具或技术的集成。
敏捷体现的一个关键点-环境迁移
实际我多次强调,DevOps在实现持续集成和持续交付过程中,有一个关键点就是环境迁移能力,即基于镜像文件和二进制包文件的快速迁移能力。
比如对于SIT测试通过的软件产品,我们可以做到一键将其迁移和部署到UAT测试环境供用户进行UAT验收测试,同时对于UAT测试通过的版本我们也可以一键迁移和交付到公有云服务平台。
这个不仅仅是敏捷交付效率,更加重要的是迁移过程不再重新编译构建,确保测试完成的内容就是最终交付的内容。
持续集成,持续部署,持续交付
这三个概念实际很多时候并没有区分太清楚,个人进一步说明为持续集成过程一定涉及到重新的编译构建,打包部署。而持续部署过程可以不涉及重新编译构建,仅仅是打包部署。持续部署可以是SIT环境到UAT,也可以是UAT到生产。而对于持续交付一般特制整个应用向生产环境和最终用户交付的过程,也就是用户最终使用到新的版本才完成交付动作。
DevOps落地实施路径
在报告中给出了一个DevOps从资源整合到自动化逐步实施DevOps的落地实施路径。
一般而言,企业实现DevOps的落地需要经历五个阶段,首先要实现企业内部的资源整合,提高资产和任务的可见性;其次是构建统一、流畅的线上和线下工作环境及流程,接着要搭建能够有效合作的团队体系,加强资源的共享;然后借助一 系列信息化的DevOps工具构建企业的自动化开发运维流水线,并生成相应的管理指标体系;自动化水平发展到一定水平 并且累计了充足的服务经验后,运维侧即能以标准化的形式为用户提供更高效便捷的服务。
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |