当前位置:主页 > 云主机 > 正文

域名注册_百度云会员账号共享_好用

时间:2021-05-03 17:18 来源:埃里克云 编辑:埃里克云

核心提示

亲爱的社区, 最近,我就SAP组件(如ABAP程序、SAP UI5应用程序)的部署主题进行了多次讨论,并讨论了采用Jenkins或Azure DevOps等工具提供的现代持续集成/部署流程所面临的挑战。 这里...

亲爱的社区,

最近,我就SAP组件(如ABAP程序、SAP UI5应用程序)的部署主题进行了多次讨论,并讨论了采用Jenkins或Azure DevOps等工具提供的现代持续集成/部署流程所面临的挑战。

这里有一些关于如何集成ABAP单元的博客条目,SAP Code Inspector等已经与Azure DevOps合作,因此我想借此机会展示使用Azure DevOps的UI5应用程序的灵活部署。我们将特别关注金丝雀版本,但是这种方法可以很容易地扩展到支持A/B测试?

现在零停机部署(包括安全回滚)是不够的。与一小部分最终用户群比较用户采用情况以及测试版本时,使用新特性甚至其变体是至关重要的。因此,我们不仅仅是简单的部署槽交换(通常称为蓝/绿部署)。这就是金丝雀释放和A/B测试发挥作用的地方。

图1。流行的部署风格

金丝雀版本描述了新功能只对当前使用你的应用程序的一小部分用户开放的部署。这样,您就可以降低在生产中进行测试的风险,并获得即时反馈。A/B测试使用类似的路由机制,但侧重于部署各种不同的功能,以便能够比较用户的反应/采用情况。

能够用SAP UI5应用程序做到这一点不是很好吗?今天是你的幸运日!

仔细看看实现细节

想象一下,您希望能够在SAP WebIDE中进行开发,并且仍然能够从像Azure这样的云hyperscaler的应用程序托管功能中获利。我为金丝雀的发布提供了一个完全可行的例子。您可以在这里找到GitHub和publicdevops项目的源代码。使用的概念可以应用于替代软件堆栈,并且不限于Azure云。

我选择此设置是因为它非常容易部署,但功能仍然丰富。例如,容器的azureapp服务为您提供了现成的部署槽和流量路由。现在,让我们来看看架构:

图2带有DevOps的Azure上的UI5金丝雀版本

每次Git推送到GitHub都会触发Azure DevOps中的构建过程。这是由sapwebide的开发人员发起的。(1)构建过程运行Dockerfile来创建一个映像,其中包含来自GitHub(nginxweb服务器实例)的更新SAPUI5代码,并将结果推送到容器注册表(在我的例子中是Azure容器注册表(ACR))。(2-4)完成后,发布管道将在ACR上获取最新的映像,并将其部署到Azure应用程序服务中,以便将容器放到"Dev"槽中,同时调整应用程序的路由。现在,5%的最终用户被路由到运行调整后的应用程序的"Dev"槽,而95%的用户仍然看到以前的高效应用程序。查看Azure文档以获取必要的CLI命令。(5-7)在Azure DevOps中的开发人员批准流程的最后一个阶段之前,将暂停与新版本应用程序的完全交换(请参见上图中的橙色点)。(8-9)

对于这种情况,有许多方法可以实施审批流程,例如,使用质量门来命名另一个选项。我在为这个例子寻找一种快速而简单的方法。因此,我的手动批准就足够了。

另一方面注意:由于集成是通过GIT实现的,因此它也将与SAP的下一代IDE SAP Business Application Studio配合使用。这是今年在TechEd上宣布的。尽管仍处于beta测试阶段,但可能值得一看,尽管SAP表示WebIDE完整堆栈在一段时间内仍将是生产场景的工具。

后端注意事项

我的示例集中在应用程序的UI部分。对于一个完全高效的场景,您还需要考虑后端软件组件(OData服务等)的可伸缩性和版本控制。一种方法是查询参数,就像您在API版本控制中看到的那样。但是,请记住,我的报告建议在生产中进行"测试"。

因此,就ABAP开发而言,这可能会影响您的SAP传输策略。我想提一个常见的解决方案:黑暗部署。我的意思是你的ABAP代码的一部分,只在某些情况下运行。您可以想象UI5应用程序中的配置(标志或查询参数),这些配置激活后端上的其他或可选代码部分。这种方法适用于金丝雀发行版和A/B测试。

这是关于将UI上的功能与后端匹配的方法。但规模呢?一般来说,扩展SAP后端系统是当今云提供商的一个典型用例。从我的角度来看,能够根据需求无限地扩展web应用程序是没有意义的,但要保持后端静态不变。但这是另一篇博文的主题

最后一句话

我简要介绍了流行的部署风格,并向您展示了如何为您的UI5应用程序实现一个现代的"金丝雀版本",在SAP WebIDE中开发并利用Azure云组件提供应用程序服务和Azure DevOps提供CI/CD时,

在我的CI/CD示例的基础上构建,您可能会变得非常"疯狂",并开始为云应用程序本身构建自动化解决方案,以根据需求(例如基于指标)进行放大/缩小和放大/缩小。

让您开始很快,我向我的azuredevops项目添加了一个构建管道,该管道通过脚本执行terra来启动必要的Azure组件。不过,您需要在azuredevops中完成配置。

在我的下一篇博客中,我将扩展这个示例以与Kubernetes一起工作。它在部署功能方面没有比这更灵活的了。

请在这里找到我的GitHub存储库:https://github.com/MartinPankraz/UI5OnAzure

公共Azure DevOps项目:https://dev.azure.com/mapankra/SAPUI5onAzure

随时可以离开或问很多后续问题。

最好问候

马丁

所表达的意见仅为我自己的意见,不表达我的雇主的意见或看法。

  • 微软云_美国服务器视频网站_优惠 微软云_美国服务器视频网站_优惠

    随着英国管理脱欧后贸易的能力被置于显微镜下,全球与大萧条时代的经济状况和保护主义的比较也是如此。我早就该深入研究那个时代的经济写作了。比较的要点是惊人的。 凯恩斯...

  • 微软云_亚马逊云计算平台_免费领 微软云_亚马逊云计算平台_免费领

    考虑到即使是英国财政大臣也只"认为自己知道"首相的脱欧想法,尽管议会强烈希望避免"无协议",但很可能会出现依赖世界贸易组织(wto)关税的必要性。在英国受影响最严重的行业...

  • <strong>CDN_存储服务器搭建_最新活动</strong> CDN_存储服务器搭建_最新活动

    jstat是一个简单的实用工具,它存在于JDK中,用于提供与JVM性能相关的统计信息,如垃圾收集、编译活动等。jstat的主要优势在于它能够在JVM运行时动态捕获这些指标,而无需任何必要...

  • <strong>金山云_数据库高级_安全稳定</strong> 金山云_数据库高级_安全稳定

    在这个简短的教程中,我们将构建一个SAP分析云,分析应用程序幻灯片控制器。应用程序显示在大屏幕上,人们可以通过蓝牙与之交互,通过无线设备播放幻灯片。 让我们准备我们需...

  • <strong>中间件_华为云照片在哪找到_免费领</strong> 中间件_华为云照片在哪找到_免费领

    在saps/4hanaplm中,作为简化的一部分,在高级搜索中从搜索参数中提取了许多字段。例如,在标签预先搜索或有效性区域基于标签语言进行搜索。 为了适应这些搜索,我们需要增强搜索...

  • <strong>京东云_腾讯云服务器报价_稳定性好</strong> 京东云_腾讯云服务器报价_稳定性好

    在这个博客里,我将解释在一个标准OWL屏幕中添加超链接以使用extensibility explorer导航到另一个标准业务对象的TI屏幕所需的步骤。 在本例中,我将提供添加超链接以从Sales Quote OWL屏幕...

  • <strong>数据库服务器_华为云存储怎么清理_限时</strong> 数据库服务器_华为云存储怎么清理_限时

    简介: 我得到了从应用服务器读取数据到内部表并下载到演示服务器的要求。 首先我们应该知道如何将内部表数据上传到应用服务器,从那里如何读取应用服务器数据并下载到演示服...

  • <strong>游戏服务器_虚拟主机试用30天_免费领</strong> 游戏服务器_虚拟主机试用30天_免费领

    本系列的第一部分旨在提高对设计一致性重要性的认识。在第二部分中,我提供了更多的背景知识,阐述了一致性对设计和潜在心理过程的影响。第三部分是关于视觉一致性和功能一...

  • <strong>天翼云_云主机windows_速度快</strong> 天翼云_云主机windows_速度快

    因为我第二次看到这个问题,所以我想把这个问题和解决方案一起作为一个博客发布。 一个开发人员发布了一个使用服务绑定的OData服务,并希望使用简单列表报告Fiori应用程序的预览...