一种软件开发平台的制作方法

文档序号:18868874发布日期:2019-10-14 19:02阅读:211来源:国知局
一种软件开发平台的制作方法

本发明属于软件开发技术领域,尤其涉及一种软件开发平台。



背景技术:

目前,为了提升软件开发效率的通常做法是使用开发平台;为了提升软件开发质量的通常做法是使用单元测试工具;而为了直观反应当前软件的运行状态的通常做法是为用户提供动态的,持续的监控数据,比如一些内存监控工具等。

就目前而言,以上所描述的功能大部分是作为第三方库或代码而独立存在的,特别是单元测试工具和一些监控工具,基本作为外部代码或者工具存在于软件开发过程中,如gtest作为一款单元测试工具,valgrind作为一款内存泄漏检测工具就是独立存在的。同时,正是由于独立存在的缘故,使得在进行软件开发活动的时候,外部工具往往只能提供定性的数据分析支持,如用了多少内存,用了多少文件句柄,对定量数据的分析支持就比较困难,如内存详细使用情况,文件句柄的详细使用情况,因此进程中有必要提供内部的监控组件,为用户提供详细的运行信息支持,使其能够通过数据分析,及早发现并规避问题,同时基于此,实现“运行即检测”的目标,即每一次对程序的运行都是一次对软件功能的检测,通过对监控数据的分析,逐渐修改完善代码,直到满足最终用户的需求。并且,一些外部监控工具的使用增加了操作以及过程的复杂度,同时也增加了学习成本。容易使程序员产生抵触情绪,不利于软件开发各个阶段活动的开展。例如,gtest作为一款比较常用的单元测试工具,其测试的单位是单个文件/类,对于整体的、复杂业务场景的测试和跨线程的测试时,其构造测试用例或场景繁琐;使用上一般需要切换工程,造成测试过程繁琐;因此容易使程序员抵触单元测试活动,不利于持续集成活动的开展。



技术实现要素:

本发明提供一种软件开发平台,能够提升软件开发平台的用户体验,提高软件开发速度和软件质量,并为软件开发过程提供一站式服务,有利于软件的顺利持续开发和运行时的动态分析定位。

本发明提供的具体技术方案如下:

本发明提供的一种软件开发平台包括容器云模块、devops平台模块、监控平台模块、能力超市模块和开发框架模块,其中,所述容器云模块包括安全管理模块、资源管理模块、底层能力模块和支撑服务模块,所述安全管理模块用于实现基于用户、角色和组织的用户管理,所述资源管理模块用于集群资源管理,所述底层能力模块用于提供包括资源分配、应用部署、应用伸缩、监控和日志处理的底层基础能力,所述支撑服务模块用于提供系统告警管理和系统优化建议服务;所述devops平台模块用于实现软件在整个开发周期中的持续开发、持续测试、持续集成、持续部署和持续监控;所述监控平台模块基于监控告警进行智能支撑实现时刻了解系统的运行情况,所述监控平台模块包括应用监控模块、浏览器监控模块、容器监控模块、链路监控模块、日志监控模块和移动端监控模块;所述能力超市模块用于基于固定模式的配置或者文件的定义实现技术能力管理和业务能力管理;所述开发框架模块包括后端框架模块、前端框架模块和常用工具模块,所述后端框架模块采用开源生态系统建设完善的java体系作为开发语言、并基于springboot和springcloud构建微服务化应用实现集成中间件以及通用服务能力,所述后端框架模块提供可靠的行为和数据接口实现后端的业务逻辑处理,所述前端框架模块通过组织后端提供的可靠接口实现交互过程中的逻辑处理和交互界面展现。

可选的,所述容器云模块采用容器镜像的方式实现运行环境的标准化,屏蔽应用部署过程中针对不同开发要求需要的运行环境配置和安装步骤等复杂过程;所述资源管理模块包括集群状态管理子模块和机器管理子模块,所述集群状态管理子模块用于管理集群整体的健康信息、资源使用信息和所有集群组件管理,所述机器管理子模块通过将机器加入到集群中实现集群资源扩充。

可选的,所述底层能力模块包括资源分配子模块、应用部署子模块、应用伸缩子模块、配置管理子模块和日志监控子模块,其中,所述资源分配子模块根据kubernates提供的负载给应用提供资源状态、调度系统选择资源充足的机器部署应用,所述应用部署子模块用于调度系统从项目层面、根据应用间的依赖关系编排应用的启动顺序实现整个软件开发过程的部署,所述应用伸缩子模块根据应用的负载情况即时调整开发过程使用的资源或者应用的实例数量,所述配置管理子模块用于应用或服务于底层配置中心,所述日志监控子模块用于实时采集应用的运行状态和多个实例日志发送到监控数据中心供监控展示和告警使用。

可选的,所述devops平台模块是一种软件持续集成管理平台,提供一系列软件开发管理工具的组合,采用subversion和gitlab实现源码版本管理,采用maven作为软件开发项目构建工具,采用sonar作为代码质量管理体系,采用jenkins作为应用持续集成引擎,采用caas实现应用持续部署。

可选的,所述devops平台模块在持续开发阶段采用git和svn工具维护不同版本的代码,以及采用ant、maven、gradle工具来构建或打包代码到可执行文件中以便采用自动化测试系统对其进行测试;所述devops平台模块在持续测试阶段采用自动化测试工具selenium、testng、junit对开发的软件进行持续的测试。

可选的,所述应用监控模块用于提供网页应用程序在性能方面的实时监控信息以便协助分析程序性能瓶颈和应用潜在的问题;所述浏览器监控模块用于提供直接面向用户的浏览器应用性能追踪;所述容器监控模块用于统计和分析各个实例对应的分布式容器的cpu、内存、磁盘资源消耗和网络指标。

可选的,所述能力超市模块在部署过程中输入的是代码和配置文件,输出的是一个可访问应用的url,在开发过程中输入的是定义模型,输出的仍是一个可访问应用的url;所述能力超市模块以插件方式提供plugin,以api或者手工方式提供消费。

本发明的有益效果如下:

本发明实施例提供一种软件开发平台可以用于软件在整个开发生命周期中的持续开发、持续测试、持续集成、持续部署和持续监控,可以在较短的开发周期内开发高质量的软件,也即本发明实施例提供的软件开发平台是一个企业级的paas平台,可以帮助企业落地devops实践,构建业务能力超市,让企业脱离繁杂的基础架构管理,更专注于业务研发和交付,并且采用互联网分布式架构进行设计和开发,通过paas平台实现开发、运维流程的规范化、标准化、互联网技术化,提升开发效率和运维能力;基于微服务架构进行设计,以高可靠性、高扩展能力为基本属性,应对单点故障、大并发等使用场景;提供标准的扩展机制,以统一标准、易扩展为基本属性,规范复杂系统多模块独立开发、二次开发等使用场景;提供完善的监控告警机制,以全方位监控、人性化告警为基本要义,实现容量预警、问题发现、故障响应等场景;提供标准的自动化部署,以快速迭代、自动化运维为基本属性,支持快速开发、平滑升级等场景,进而能够提升软件开发平台的用户体验,提高软件开发速度和软件质量,并为软件开发过程提供一站式服务,有利于软件的顺利持续开发和运行时的动态分析定位,提高客户满意度。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的一种软件开发平台的系统架构示意图;

图2为本发明实施例的一种软件开发平台的结构框架示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

下面将结合图1~图2对本发明实施例的一种软件开发平台进行详细的说明。

参考图1、图2所示,本发明实施例提供的一种软件开发平台包括容器云模块1、devops平台模块2、监控平台模块3、能力超市模块4和开发框架模块5,其中,本发明实施例提供的软件开发平台是一个企业级的paas平台,可以帮助企业落地devops实践,构建业务能力超市,让企业脱离繁杂的基础架构管理,更专注于业务研发和交付。其中,容器云模块1的设置可以实现轻量、高效的利用软件开发资源,实现,敏捷、快速交付软件开发成果和部署软件开发业务应用;devops平台模块2的设置可以保证软件开发过程中的技术手段贯彻和实施、保证软件开发项目的管理方式顺利实施和管理理念的成功落地,进而提高企业软件开发流程的标准化;监控平台模块3负责整个软件生命周期中的平台、资源和应用的多角度监控和告警,可以实现软件生命周期中精确定位技术问题和快速解决技术问题;能力超市模块4的设置可以将核心业务能力沉淀到软件开发平台中,可以实现以服务为中心的企业业务创新和探索;开发框架模块5的设置可以确保单业务功能职责的明确和自治,便于敏捷开发和业务部署,而且可以实现多业务功能组合形成新业务功能。

参考图1和图2所示,本发明实施例的容器云模块1包括安全管理模块101、资源管理模块102、底层能力模块103和支撑服务模块104,其中,容器云模块1采用容器镜像的方式实现运行环境的标准化,屏蔽应用部署过程中针对不同开发要求需要的运行环境配置和安装步骤等复杂过程。

本发明实施例的软件开发平台为了加速devops的落地实施,采用了容器的概念及其技术特点,创造性的引入了容器云的概念,能够更好的与ci/cd技术进行融合,促进ci/cd理念的落地,从技术手段上保证项目管理方式和管理理念的真正有效落地。而且,本发明实施例的容器云模块1可运行在多种云平台环境中,物理机、虚拟机、阿里云、aws、openstack、azure等均可以,可实现对企业不同的基础资源的统一化管理,降低系统运维难度,实现有效整合现有资源服务于整个软件开发过程。

本发明实施例的容器云模块1是基于操作系统的轻量级虚拟化技术,可以共享操作系统的内核进程和内核资源,从而有效节省操作系统级资源开销,容器云模块启动速度快,占用资源少,通过容器密度的提升更好的利用资源,进而可以提升资源利用率。其次,正是由于本发明实施例的软件开发平台引入了容器云模块1,进而使用容器技术,只需要小的修改,就可以替代以往大量的更新工作,并且所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理,使软件的管理变得更加简单和高效,而且使用容器组件,组建企业级镜像仓库,最终可以更好的实现企业级能力超市功能和应用系统日志监控等。

参考图1和图2所示,paas平台是互联网应用的基础,提供devops开发和运维,辅以通用的技术和业务能力库、监控告警模块,实现快速开发、迭代发布和系统预警。其中,容器云模块1集成容器引擎(docker)和容器编排(kubernates)提供统一的容器管理,包括资源动态分配、负载均衡、服务注册、服务发现、滚动升级、自动容错和资源监控等。具体的,本发明实施例的容器云模块1包括安全管理模块101、资源管理模块102、底层能力模块103和支撑服务模块104,其中,安全管理模块101用于实现基于用户、角色和组织的用户管理,资源管理模块102用于集群资源管理,底层能力模块103用于提供包括资源分配、应用部署、应用伸缩、监控和日志处理的底层基础能力,支撑服务模块104用于提供系统告警管理和系统优化建议服务。

具体的,安全管理模块101针对不同的租户,对整个软件开发过程中的开发环境、测试环境、预上线环境和运行环境等进行资源分割,最终实现基于用户、角色和组织的用户安全管理。

参考图1和图2所示,资源管理模块102包括集群状态管理子模块和机器管理子模块,其中,集群状态管理子模块用于管理集群整体的健康信息、资源使用信息和所有集群组件管理,机器管理子模块通过将机器加入到集群中实现集群资源扩充,机器列表中展示当前集群中所有的机器,包括每一个机器的状态、资源使用情况、运行的任务数量等,进而可以了解每一个机器的运行状态。

具体的,底层能力模块103包括资源分配子模块、应用部署子模块、应用伸缩子模块、配置管理子模块和日志监控子模块,其中,资源分配子模块根据kubernates提供的负载给应用提供资源状态、调度系统选择资源充足的机器部署应用,应用部署子模块用于调度系统从项目层面、根据应用间的依赖关系编排应用的启动顺序实现整个软件开发过程的部署,应用伸缩子模块根据应用的负载情况即时调整开发过程使用的资源或者应用的实例数量,配置管理子模块用于应用或服务于底层配置中心,日志监控子模块用于实时采集应用的运行状态和多个实例日志发送到监控数据中心供监控展示和告警使用。

具体的,支撑服务模块104用于系统告警管理,可以设置告警规则、告警组,在系统发生异常时,将告警以邮件、短信等方式即时的通知到系统管理人员,并且可以根据监控指标和告警处理策略,形成分析报告,指导本发明实施例的软件开发平台所开发的软件系统优化。

参考图1、图2所示,devops平台模块2用于实现软件在整个开发周期中的持续开发、持续测试、持续集成、持续部署和持续监控,其中,devops平台模块2是一种软件持续集成管理平台,提供一系列软件开发管理工具的组合,采用subversion和gitlab实现源码版本管理,采用maven作为软件开发项目构建工具,采用sonar作为代码质量管理体系,采用jenkins作为应用持续集成引擎,采用caas实现应用持续部署。

具体的,devops平台模块在持续开发阶段采用git和svn工具维护不同版本的代码,以及采用ant、maven、gradle工具来构建或打包代码到可执行文件中以便采用自动化测试系统对其进行测试;持续开发阶段是devops生命周期中软件不断开发的阶段,其与瀑布模型不同的是,软件可交付成果被分解为短开发周期的多个任务节点,在很短的时间内开发并交付。具体的,持续开发阶段包括编码和构建阶段,并使用git和svn等工具来维护不同版本的代码,以及ant、maven、gradle等工具来构建/打包代码到可执行文件中,这些文件可以转发给自动化测试系统进行测试。

具体的,本发明实施例的devops平台模块在持续测试阶段需要对开发的软件进行持续的测试bug,采用自动化测试工具selenium、testng、junit对开发的软件进行持续的测试,可以完全并行地测试多个代码库,以确保测试后的功能中没有缺陷;并且可以配合docker容器实时模拟“测试环境”,在代码测试通过,将其不断地与现有代码集成,实现开发软件的持续集成。

具体的,持续集成阶段是支持新功能的代码与现有代码集成的阶段。由于软件在不断地开发,更新后的代码需要不断地与现有代码集成,并顺利地与系统集成,以满足最终用户的需求更改。更改后的代码,还应该确保运行时环境中没有错误,允许测试更改并检查它如何与其他更改发生反应。本发明实施例的软件开发平台在持续集成阶段使用jenkins工具,jenkins是一个非常流行的用于软件持续集成的工具。使用jenkins可以从git存储库提取最新的代码修订,并生成一个构建,最终可以部署到测试或生产服务器中以实现软件的持续集成和持续部署。

具体的,持续部署阶段是将代码部署到生产环境的阶段。在持续部署阶段需要确保在所有服务器上正确部署代码。如果添加了任何功能或引入了新功能,那么应该准备好迎接更多的网站流量。因此,系统运维人员还有责任扩展服务器以容纳更多用户。由于新代码是连续部署的,因此配置管理工具可以快速,频繁地执行任务。优选的,持续部署阶段采用puppet,chef,saltstack和ansible等工具。而且,容器化工具在部署阶段也发挥着重要作用。docker是流行的工具,有助于在开发、测试、登台和生产环境中实现一致性,有助于轻松扩展和缩小实例。

持续监控阶段是devops生命周期中非常关键的阶段,旨在通过监控软件的性能来提高软件的质量。持续监控阶段涉及运营团队的参与,他们将监视用户活动中的错误/系统的任何不正当行为,也可以通过使用专用监控工具来实现,该工具将持续监控应用程序性能并突出问题。优选的,使用的监控工具为cat、elkstack、nagios等,这些工具可帮助密切监视应用程序和服务器,以主动检查系统的运行状况。上述工具还可以提高生产率并提高系统的可靠性,从而降低it支持成本,并且在持续监控阶段发现的任何重大问题都可以向开发团队报告,以便可以在持续开发阶段进行修复。

具体的,本发明实施例的devops平台模块并不仅仅是一个软件开发用的ci服务器,而是一系列软件开发管理工具的组合,其中,采用subversion、gitlab进行源码版本管理,采用maven作为项目构建工具,采用sonar(checkstyle、pmd、findbugs)进行代码质量管理,采用jenkins作为软件的持续集成引擎,采用caas进行应用的持续部署。示例的,用户在部署软件开发服务之前,可以将开发代码存储在git仓库中,等到feature开发完成后,再将代码push到平台的feature/feature-name分支进行开发环境调试;完成调试后提交代码到test分支进行测试验收;完成测试后,发布到release分支在staging环境进行预发;最后将代码发布到master,发布production环境更新生产。其中,本发明实施例的软件开发平台基于git管理应用的代码。

本发明实施例的devops平台模块使用私有harbor进行镜像管理,打包服务在项目打包阶段,将项目的代码进行编译打包,最终制作成docker的镜像。这些镜像会在打包的最后阶段推送至平台的镜像仓库(harbor)存储起来。此后,在项目模块启动的时候,启动模块的机器上的dockerdaemon进程会去镜像仓库中拉取模块的镜像,存储到本机,然后基于该镜像启动模块,实现相关模块的快速启动。

本发明实施例的devops平台模块利用集群空闲资源,采用分布式job调度完成构建任务,支持对用户源码进行打包并一键完成部署,其中,打包过程包括下载源码依赖、进行源码编译,然后打包成容器镜像并推送到平台的镜像仓库;部署过程为打包成功后,通过集群管理平台进行服务部署。而且,本发明实施例的devops平台模块基于配置文件描述项目结构、依赖关系,编排微服务模块,其中,编排微服务是指在微服务体系结构中,将应用分解为多个较小服务,各微服务之间协作实现一个完整的业务流程,各个微服务可以由独立的团队进行开发、部署。示例的,devops平台基于配置文件xxx.yml描述项目结构、依赖关系,编排微服务模块。根据集群资源分布,动态调整微服务单元的运行资源、实例个数,实现自动缩扩容。通过项目来组织应用或者服务。一个租户内可以有多个项目。一个项目包含多个应用,包括项目总览、参数配置、操作日志查看、任务、测试等功能。在上述过程中,devops平台模块动态拉起微服务模块运行容器的日志,方便定位问题,并且可以直接登录微服务模块的运行容器,辅助研发定位问题。

参考图1和图2所示,监控平台模块3基于监控告警进行智能支撑实现时刻了解系统的运行情况,方便对项目中出现的问题进行追踪定位和优化,以及提供一些业务指标供参考分析,能够显著减少项目中的问题,提升项目健壮性,提高查错效率。其中,监控平台模块3包括应用监控模块301、浏览器监控模块302、容器监控模块303、链路监控模块304、日志监控模块305和移动端监控模块306。

具体的,应用监控模块301用于提供网页应用程序(web应用程序)在性能方面的实时监控信息以便协助分析程序性能瓶颈和应用潜在的问题;其中,web事务监控展示了web应用的事务详情、以接口维度展示调用明细、访问应用的web请求的响应时间分析、耗时前五的api性能趋势、总体吞吐量统计和慢事务追踪。web事务明细包括的平均响应时间、响应时间占比、吞吐量分别展示了每个事务接口在可选的固定时间段内的平均响应时间、每个接口占用总体调用时间的百分比、与每个接口的每分钟调用次数。响应时间用于展示可选的固定时间段内将调用时间性能趋势;吞吐量用于展示事务接口可选的固定时间段内每分钟被请求的次数与趋势;慢事务追踪用于展示可选的固定时间段内响应时间超过某个阀值的事务接口的发生次数与平均响应时间等信息。

进一步的,数据库事务可以展示数据库事物详情,以web应用中dao方法维度(mybatis)统计调用明细、耗时查询性能趋势、总体吞吐量、与慢数据库追踪等;其中,数据库事务中的响应时间展示了最近一小时内(可选)数据库查询时间性能趋势;吞吐量展示了最近一小时内(可选)每分钟被请求数据库查询趋势;慢数据库追踪中的慢事物列表展示了一小时内(可选)响应时间超过某个阀值的数据库请求次数与平均响应时间等信息。

具体的,浏览器监控模块302用于提供直接面向用户的浏览器应用性能追踪,包括响应加载时间、页面错误、异步调用和地理追踪等等。其中,浏览器监控总共分为"访问域名"、"访问页面"、"定位分析"、"ajax接口"、"脚本错误"、"浏览器性能"、"摘要"和"地理"八个维度。

具体的,访问页面的性能监控是根据页面维度来展示性能监控数据,主要包括页面加载性能趋势、响应时间趋势、吞吐量与慢加载,其中,白屏时间是指从准备加载页面到浏览器开始显示内容的时间,首屏时间是指用户看到第一屏,即整个网页顶部大小为当前窗口的区域,显示完整的时间,网页加载时间是指从接收到页面文档第一个字节到接收到最后一个字节的时间,资源加载时间是指页面内js、css、image等资源加载时间,慢加载追踪是指加载时间超过某个值的访问。

具体的,定位分析提供用户体验、整页加载完成、白屏时间、首屏时间、资源加载完成、网页加载完成、性能分析多个维度的数据对比,同时提供了操作系统、设备、浏览器、域名、页面等多维度数据统计,用于多方位的浏览器浏览性能分析。还可以从ajax维度,统计每条ajax请求的平均响应时间、时间百分比、吞吐量,并且从响应时间topx、吞吐量topx、发送数据、接收数据四个方面统计请求性能趋势。其中的脚本错误从多维度展示javascript执行过程中的错误信息。

具体的,容器监控模块303用于统计和分析各个实例对应的分布式容器的cpu、内存、磁盘资源消耗和网络指标。链路监控模块304负责链路追踪,针对现有的分布式系统开发,实现了从web或service入口到数据库类中间件调用全链路记录,支持采样统计,并记录链路中各阶段的性能指标,定时发送追踪数据到数据中心供监控分析及告警。日志监控模块305实现业务系统将日志输出到容器的标准输出,机器上的监控采集agent(filebeat)持续收集应用日志并使用项目uuid标注,然后推送日志处理组件(kafka/spark)进行日志格式调整,将来自同一个项目多个模块的日志按照模块进行汇总,最终推送至集群的elasticsearch进行存储。监控展示组件支持按模块、容器实例或关键字搜索过滤,同时支持5秒自动刷新日志。根据用户的查询请求,通过elasticsearch服务将各个组件的结果集中展示。移动端监控模块306用于监控基于原生应用数据,例如手机端,其交互逻辑与数据逻辑皆类似于浏览器监控。

而且,本发明实施例的监控平台模块3还支持设置告警规则、配置告警组。在系统发生异常的情况时将告警以邮件、短信等方式即时通知到告警组成员,可以在第一时间处理系统异常。触发告警后,平台会生成一个“告警事件”。接收到告警的项目成员,可以“认领”告警,并进行紧急处理,完成处理后,填写“处理”信息并“关闭”告警。

参考图1和图2所示,能力超市模块4用于基于固定模式的配置或者文件的定义实现技术能力管理和业务能力管理;能力超市模块在部署过程中输入的是代码和配置文件,输出的是一个可访问应用的url,在开发过程中输入的是定义模型,输出的仍是一个可访问应用的url;能力超市模块以插件方式提供plugin,以api或者手工方式提供消费。由于能力超市模块4的设置,进而在软件开发部署和开发过程中,输入的是代码和配置文件,输出的是一个可访问应用的url,进而创建用户数据库表后,客户端就可以通过restful接口直接操作对应的模型,所有的操作都可以抽象为crfd,进而实现了软件开发部署流程的简化,提高了软件开发效率和降低了软件开发成本。

本发明实施例的能力超市模块4中存储的能力可以是应用或者服务。基于固定模式的配置或者文件的定义,可以把一个系统整个打包到能力超市内,图形界面可以把它看成是paas平台的看板,每个图标代表了一种构建应用或者中间件的paas能力(比如我们apigateway网关、配置中心、nginx等)。能力以插件方式提供plugin,以api或者手工方式提供消费。利用以容器为基础的轻量级的paas平台,这种平台能力的构建可以自由把控。能力超市模块4提供的基础技术能力,项目可以引用现有服务。其中,基础技术能力包括数据存储服务能力(mysql,redis,mongodb)、搜索服务能力(elasticsearch,slor)、消息服务能力(rocketmq,rabbitmq)、分布式协作服务能力(zookeeper,consul)。

参考图1和图2所示,开发框架模块5包括后端框架模块501、前端框架模块502和常用工具模块503,后端框架模块501采用开源生态系统建设完善的java体系作为开发语言、并基于springboot和springcloud构建微服务化应用实现集成中间件以及通用服务能力,后端框架模块501提供可靠的行为和数据接口实现后端的业务逻辑处理,前端框架模块502通过组织后端提供的可靠接口实现交互过程中的逻辑处理和交互界面展现。

正是为了快速适配互联网分布式的软件开发技术架构,本发明实施例的软件开发平台采用开源生态系统建设十分完善的java体系作为开发语言,基于springboot+springcloud构建微服务化应用,并集成中间件以及通用服务能力,其中使用springboot极大的简化了应用的配置,使得开发人员只需要专注业务逻辑的开发,同时,springboot也对应用的运行情况监控提供了很好的支持。

本发明实施例的软件开发平台在软件开发过程中,可以实现前端开发业务和后端开发业务的完全分离,后端框架模块501专注于业务逻辑,提供可靠的行为与数据接口,而不用过于关心数据与页面如何适配,更应该完全不用涉及到页面的产生。而前端框架模块502则专注于交互逻辑和展现,通过组织后端提供的可靠接口来完成业务。前后端之间的交互只有接口约定,它们是两个独立的工程并且可以不受互相影响的独立运行。在传统开发方式中,前后端在最终部署与运行时其实是一个工程,前端内容很难单独被运行与测试,并且实际参与前端内容产生的都是后端技术。

本发明实施例的软件开发平台采用互联网分布式架构进行设计和开发,可以实现良好的业务扩展和性能保障,并且通过paas平台实现开发、运维流程的规范化、标准化、互联网技术化,提升软件开发效率和运维能力。该软件开发平台基于微服务架构进行设计,以高可靠性、高扩展能力为基本属性,可以从容应对单点故障、大并发等使用场景;同时提供标准的扩展机制,以统一标准、易扩展为基本属性,规范复杂系统多模块独立开发、二次开发等使用场景,配备了完善的监控告警机制,以全方位监控、人性化告警为基本要义,实现容量预警、问题发现、故障响应等场景,最终实现了标准的自动化部署,以快速迭代、自动化运维为基本属性,支持快速开发、平滑升级等场景。

本发明实施例的软件开发平台通过构建分布式、服务化的业务系统,根据业务来切分应用,通过引入微服务化的思想,实现了通过水平伸缩(scaleout)来应对越来越大的访问压力,一方面更加经济(只需增加廉价的pcserver),另一方面无限的水平伸缩能力可以从根本上解决高并发大流量的问题;并且分布式的服务化架构在大大提高了系统的可靠性以及扩展性,同时,也有利于团队成员之间分工协作,开发人员可以专注于局部业务逻辑,减少关注点,提高开发效率,以适应互联网模式的变革。

本发明实施例的软件开发平台基于devops平台可以实现需求、开发、测试、部署、运维过程的标准化、工具化、自动化管理,基于springboot、springcloud工具的使用实现应用、服务的分离和组合,基于docker、kubenetes可以实现细粒度资源的管控,基于prometheus、grafana可以实现平台精准、实时状态的监控和预警,基于efk可以实现历史行为有迹可循。

本发明实施例提供一种软件开发平台可以用于软件在整个开发生命周期中的持续开发、持续测试、持续集成、持续部署和持续监控,可以在较短的开发周期内开发高质量的软件,也即本发明实施例提供的软件开发平台是一个企业级的paas平台,可以帮助企业落地devops实践,构建业务能力超市,让企业脱离繁杂的基础架构管理,更专注于业务研发和交付,并且采用互联网分布式架构进行设计和开发,通过paas平台实现开发、运维流程的规范化、标准化、互联网技术化,提升开发效率和运维能力;基于微服务架构进行设计,以高可靠性、高扩展能力为基本属性,应对单点故障、大并发等使用场景;提供标准的扩展机制,以统一标准、易扩展为基本属性,规范复杂系统多模块独立开发、二次开发等使用场景;提供完善的监控告警机制,以全方位监控、人性化告警为基本要义,实现容量预警、问题发现、故障响应等场景;提供标准的自动化部署,以快速迭代、自动化运维为基本属性,支持快速开发、平滑升级等场景,进而能够提升软件开发平台的用户体验,提高软件开发速度和软件质量,并为软件开发过程提供一站式服务,有利于软件的顺利持续开发和运行时的动态分析定位,提高客户满意度。

显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1