用于执行云迁移的预期容器化基础设施的制作方法
未命名
08-23
阅读:98
评论:0
用于执行云迁移的预期容器化基础设施
背景技术:
1.本发明总体涉及计算机软件和/或数据的迁移领域,更具体地涉及云类型网络中软件和/或数据的迁移。
2.虚拟化计算环境(vce)是已知的。vce可以作为“图像”存储。可以从该图像实例化vce的新的活动实例。两种vce是虚拟机和容器。容器是使用操作系统级虚拟化的vce。这指的是操作系统特征,其中内核允许存在多个隔离的用户空间实例,称为容器。从在其中运行的程序的角度来看,这种隔离的用户空间实例可能看起来像真实计算机。在普通操作系统上运行的计算机程序可以看到该计算机的所有资源(连接的设备、文件和文件夹、网络共享、cpu能力、可量化的硬件能力)。然而,在容器内运行的程序只能访问或“看到”容器的内容和分配给该容器的设备。
3.如本文所使用的术语,“云计算系统”由此被限定为分布在(多个)通信网络的地理范围上的计算机系统,其中服务器侧的计算工作和/或计算资源主要(或完全)由vce实现(参见前一段中vce的限定)。云计算系统通常包括云协调模块、层和/或程序,其关于实例化、配置、物理主机设备之间的移动、先前活动的vce的终止等来管理和控制服务器侧的vce。
4.针对“数据迁移”(如2020年10月30日)的维基百科条目部分地陈述如下:“数据迁移是选择、准备、提取和转换数据并将其从一个计算机存储系统永久地转移到另一计算机存储系统的过程。附加地,为了完整性而验证已迁移数据以及停用遗留数据存储被认为是整个数据迁移过程的一部分。数据迁移是任何系统实现、升级或合并的关键考虑,并且通常以尽可能自动化的方式执行,从而从繁琐的任务中释放人力资源。数据迁移的发生是由于各种原因,包括服务器或存储设备替换、维护或升级、应用迁移、网站整合、灾难恢复和数据中心重定位。”(省略脚注)
技术实现要素:
5.根据本发明的一个方面,存在一种方法、计算机程序产品和/或系统,其执行以下操作(不一定按照以下顺序):(i)接收针对计算机数据和/或计算机软件的迁移计划,迁移计划包括:针对多个应用的多个云服务,(b)用于实现存在于多个应用中的应用之间的依赖性的计算机处理操作,以及(c)用于实现需要运行多个应用中的应用的中间件的计算机处理操作;(ii)根据迁移计划生成(多个)容器化迁移文件;(iii)将(多个)容器化迁移文件复制到(多个)容器的集合中,使得迁移计划能够使用来自容器的集合的容器来实现;以及(iv)使用来自容器的集合的容器在源计算机子系统和目标计算机子系统之间迁移计算机数据和/或计算机软件以实现迁移计划。
附图说明
6.图1是根据本发明的系统的第一实施例的框图;
7.图2是示出至少部分地由第一实施例系统执行的第一实施例方法的流程图;
8.图3是示出第一实施例系统的机器逻辑(例如,软件)部分的框图;
9.图4是由第一实施例系统生成的屏幕截图视图;以及
10.图5是示出至少部分地由第一实施例系统执行的第一实施例方法的流程图;
具体实施方式
11.本发明的一些实施例针对用于使计算机系统执行以下操作的技术:接收针对计算机数据和/或计算机软件的迁移计划,根据迁移计划生成(多个)容器化迁移文件;将(多个)容器化迁移文件复制到(多个)容器的集合中,使得迁移计划能够使用来自容器的集合的容器来实现;以及使用来自容器的集合的容器在源计算机子系统和目标计算机子系统之间迁移计算机数据和/或计算机软件以实现迁移计划。
12.本具体实施方式部分被分成以下子部分:(i)硬件和软件环境;(ii)示例实施例;(iii)进一步的评论和/或实施例;和(iv)限定。
13.i.硬件和软件环境
14.本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
15.计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
[0016]“存储设备”在此被限定为以使得计算机代码可以被计算机处理器访问的方式被制造或适于存储计算机代码的任何东西。存储设备通常包括存储介质,其是在其中或其上存储计算机代码数据的材料。单个“存储设备”可以具有:(i)间隔开或分布的多个离散部分(例如,分别位于共同存储单个计算机程序的六个膝上型计算机中的一组六个固态存储装置);和/或(ii)可以使用多个存储介质(例如,部分地作为磁畴存储在计算机的非易失性存储器中并且部分地存储在计算机的易失性存储器中的一组半导体开关中的一组计算机代码)。术语“存储介质”应当被解释为覆盖使用多种不同类型的存储介质的情况。
[0017]
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如互联网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络
接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
[0018]
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言(例如smalltalk、c++等)以及常规的过程式编程语言(例如“c”编程语言或类似的编程语言)。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,使用互联网服务提供商通过互联网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
[0019]
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
[0020]
这些计算机可读程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
[0021]
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
[0022]
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所提及的功能可不按图中所提及的次序发生。例如,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
[0023]
如图1所示,联网计算机系统100是用于本发明的各种实施例的硬件和软件环境的实施例。联网计算机系统100包括:服务器子系统102(有时在此更简单地称为子系统102);源子系统104、目标子系统106;以及通信网络114。服务器子系统102包括:服务器计算机200;通信单元202;处理器集合204;输入/输出(i/o)接口集合206;存储器208;持续存储器
210;显示器212;外部设备214;随机存取存储器(ram)230;高速缓存232;以及程序300。
[0024]
子系统102可以是膝上型计算机、平板计算机、上网本计算机、个人计算机(pc)、台式计算机、个人数字助理(pda)、智能电话或任何其他类型的计算机(参见下文限定部分中“计算机”的限定)。程序300是用于创建、管理和控制某些软件功能的机器可读指令和/或数据的集合,这些软件功能将在以下该详细描述部分的示例性实施例小节中详细讨论。
[0025]
子系统102能够经由通信网络114与其他计算机子系统通信。网络114可以是例如局域网(lan)、诸如互联网的广域网(wan)、或两者的组合,并且可包括有线、无线、或光纤连接。通常,网络114可以是支持服务器和客户机子系统之间的通信的连接和协议的任意组合。
[0026]
子系统102被示为具有许多双箭头的框图。这些双箭头(没有单独的附图标记)表示通信结构,其提供子系统102的各种组件之间的通信。该通信结构可以用被设计用于在处理器(诸如微处理器、通信和网络处理器等)、系统存储器、外围设备和计算机系统内的任何其他硬件组件之间传递数据和/或控制信息的任何体系结构来实现。例如,通信结构可以至少部分地用一个或多个总线来实现。
[0027]
存储器208和持续存储210是计算机可读存储介质。通常,存储器208可以包括任何合适的易失性或非易失性计算机可读存储介质。还应注意,现在和/或不久的将来:(i)(多个)外部设备214能够为子系统102提供一些或全部存储器;和/或(ii)子系统102外部的设备能够为子系统102提供存储器。存储器208和持续存储210两者:(i)以比传输中的信号更小的暂态的方式存储数据;以及(ii)将数据存储在有形介质(诸如磁畴或光域)上。在该实施例中,存储器208是易失性存储,而持续存储210提供非易失性存储。持续存储210所使用的介质也可以是可移除的。例如,可移动硬盘驱动器可以用于持续存储210。其他示例包括光盘和磁盘、拇指驱动器和智能卡,它们被插入到驱动器中以便传送到也是持续存储210的一部分的另一计算机可读存储介质上。
[0028]
通信单元202提供与子系统102外部的其他数据处理系统或设备的通信。在这些示例中,通信单元202包括一个或多个网络接口卡。通信单元202可以通过使用物理和无线通信链路中的一种或两种来提供通信。本文讨论的任何软件模块可以通过通信单元(诸如通信单元202)下载到持续存储设备(诸如持续存储210)。
[0029]
i/o接口集合206允许与可以与服务器计算机200进行数据通信的方式本地连接的其他设备输入和输出数据。例如,i/o接口组206提供到外部设备集合214的连接。外部设备集合214通常包括诸如键盘、小键盘、触摸屏和/或一些其他合适的输入设备之类的设备。外部设备集合214还可以包括便携式计算机可读存储介质,诸如,例如,拇指驱动器、便携式光盘或磁盘、以及存储卡。用于实施本发明的实施例的软件和数据(例如程序300)可以存储在这种便携式计算机可读存储介质上。i/o接口集合206还以数据通信与显示器212连接。显示器212是提供向用户显示数据的机制的显示设备,并且可以是例如计算机监视器或智能电话显示屏。
[0030]
在该实施例中,程序300被存储在持续存储210中,以便由处理器集合204的一个或多个计算机处理器通常通过存储器208的一个或多个存储器访问和/或执行。本领域技术人员将理解,程序300可以在其运行时期间和/或当其未运行时以更高度分布方式存储。程序300可包括机器可读且可执行的指令和/或实质数据(即,存储在数据库中的数据的类型)。
在该特定实施例中,持续存储210包括磁硬盘驱动器。举一些可能的变化例,持续存储210可以包括固态硬盘驱动器、半导体存储设备、只读存储器(rom)、可擦除可编程只读存储器(eprom)、闪存或能够存储程序指令或数字信息的任何其他计算机可读存储介质。
[0031]
这里描述的程序是基于在本发明的特定实施例中实现它们的应用来标识的。然而,应当理解,这里的任何特定程序术语仅是为了方便而使用,因此本发明不应当限于仅在由这样的术语标识和/或暗示的任何特定应用中使用。
[0032]
已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。
[0033]
ii.示例实施例
[0034]
如图1所示,联网计算机系统100是其中可以执行根据本发明的示例方法的环境。如图2所示,流程图250示出了根据本发明的示例方法。如图3所示,程序300执行或控制流程图250的至少一些方法操作的执行。现在将在以下段落的过程中,广泛参考图1、2和3的框来讨论该方法和相关联的软件。
[0035]
处理开始于操作s255,其中迁移计划模块(“mod”)302生成迁移计划。迁移计划:(i)包括针对多个应用的云服务;(ii)实现存在于多个应用中的应用之间的依赖性的计算机处理操作;以及(iii)实现需要运行多个应用中的应用的中间件的计算机处理操作。
[0036]
处理进行到操作s260,其中,容器化迁移文件模块304根据迁移计划来生成容器化迁移文件,并且包括在先前段落中列出的迁移计划的各种组件。
[0037]
处理进行到操作s265,其中容器创建模块306将容器化迁移文件复制到容器集合中,使得迁移计划被包括作为一个或多个容器的一部分。在该示例中,存在单个容器400,如图4所示。
[0038]
处理进行到操作s270,其中迁移执行模块308执行源子系统104和目标子系统106之间的迁移。
[0039]
iii.进一步评论和/或实施例
[0040]
根据本发明的实施例的用于容器化基础设施到云的迁移的方法包括以下操作(不一定按以下顺序):(i)响应于接收到表示基础设施服务器和应用的信息,分析该信息以标识与已知容器应用的关联;(ii)响应于确定迁移该应用,使用针对所标识的关联的信息来生成用于迁移的应用目标列表;(iii)为不同的应用和相关联的安装步骤生成包括云服务的迁移计划,以实现针对不同的应用的依赖性和中间件;(iv)根据迁移计划生成被复制到容器中的、包括云服务的容器化迁移文件;(v)测试在针对容器化迁移文件的服务器中工作的服务和端口;以及(vi)响应于正测试,生成最终服务并暴露该端口。
[0041]
本发明的一些实施例可以包括以下操作、特征、特性和/或优点中的一个或多个:(i)提供了新的方式来分析现有裸机或虚拟化的非容器化环境,以使向所建议的云提供商的迁移容易;(ii)使迁移代码适应于期望的和可行的云提供商;(iii)分析(多个)非迁移到云环境用于迁移到容器的解决方案;(iv)从用户的角度来看,建议最佳云提供商,该最佳云提供商被用于通过找到这样做的容易方式来货币化针对云提供商的新特征;(v)分析尚未
迁移的基础设施,以建议针对容器化应用的步骤;(vi)包括一种使迁移容易的机制;和/或(vii)基于裸机或虚拟化的系统配置来标识最佳云提供商。
[0042]
本发明的一些实施例认识到以下事实、潜在问题和/或潜在领域,以便相对于现有技术状态进行改进:云中的容器化环境已经变得越来越普遍(例如,基于传统基础设施采用旧的应用,改变我们看到的传统架构的方式,并且使基于层的容器利用云基础设施的所有益处,诸如效率/成本降低、数据安全性、可扩展性、移动性和灾难恢复等;(ii)每年有数以千计的应用被迁移到云环境;(iii)迁移到云环境的路径有时充满曲线和空洞,将容易的任务变成困难且痛苦的责任;(iv)企业了解云环境的益处;(v)企业看到他们如何通过硬件使用的成本降低来影响收入;(vi)确定什么是针对用户的应用和os(操作系统)的最方便的云基础设施配置;(vii)使用基于云的解决方案,企业可以防止诸如畸形容器的许多问题和结束比以前更多的硬件浪费的资源的过度使用;和/或(viii)通过使用该方法,你将能够具有智能的容器,该智能的容器以增加性能和降低成本的方式运行你的应用。
[0043]
本发明的一些实施例可以包括以下操作、特征、特性和/或优点中的一个或多个:(i)涉及一种预测方法,能够将当前基础设施(例如,进程、配置文件、参数、运行应用、依赖性、资源等)封装到期望的迁移文件,换言之,自动生成的基础设施映像被容器化以被管理和完全操作;(ii)选择在一个特定时间段可用的最佳云配置;(iii)包括使用来自所有提供商的最佳云环境;(iv)驻留在容器化环境(例如,商业上可获得的容器软件)中,该容器化环境使用指令集合的创建来基于来自端点的中间件、包和数据创建容器解决方案;(v)以快速和容易的方式将传统架构迁移到基于容器层的基础设施;(vi)获得市场上排名最高的云解决方案;(vii)帮助自动创建基于容器的(多个)文件;(viii)通过智能减少用于最优和轻量容器或容器组的服务,预期更快和更有效的应用;和/或(ix)根据建议的解决方案,使用最准确的云配置来获得迁移文件(一旦被接受)。
[0044]
本发明的一些实施例可以包括以下操作、特征、特性和/或优点中的一个或多个:(i)帮助公司为未来获取下一代解决方案;(ii)帮助开发需求扩大云计算上的服务,特别是计算环境中新兴的容器化生态系统;(iii)基础设施中的应用可以利用向云计算迁移更可行的优势;和/或(iv)利用旨在分析基础设施环境的方法来:(a)自动生成文件的容器化和适应性修改以用于云迁移,以及(b)根据可用云生成最佳服务和云解决方案配置。
[0045]
本发明的一些实施例可以包括以下操作、特征、特性和/或优点中的一个或多个:(i)分析若干基础设施系统上的所有信息,以获得取决于最近的解决方案的最准确的迁移解决方案;和/或(ii)提供在不同类型的商业可用云提供商之间进行选择的选项,从而考虑到客户端应用基础设施和软件需求。
[0046]
本发明的一些实施例认识到以下事实、潜在问题和/或潜在领域,以便相对于现有技术状态进行改进:(i)在传统的基础设施中,存在用于管理应用的系统和方法,其降低了构建应用或完整的应用集合的复杂性;(ii)对于维护特定的基础设施软件组件存在多个基础设施问题;和/或(iii)当迁移结束不需要基础设施软件组件时,这可能造成灾难。
[0047]
本发明的一些实施例可以包括以下操作、特征、特性和/或优点中的一个或多个:(i)分析基础结构的最准确特性,收集那些特性,并提出用于将应用容器化的文档;和/或(ii)检测应用是否可以被容器化,这取决于但不限于以下因素:(a)(多个)应用的使用,以及(b)诸如存储器、空间等的系统资源。
[0048]
如图5所示,流程图500包括:开始(框s502);获得基础设施服务器和应用(框s504);分析应用并将其与已知容器应用相关联框s506;系统和应用组合存储(s508);迁移选项决定(框s510);选择要被分析的其他服务器/服务(框s512);获得用于迁移的应用目标列表(框s514);创建最准确的迁移计划和云服务(框s516);创建容器化迁移文件建议(框s518);市场可用性服务存储(s520);以及结束(框s522)。
[0049]
在本发明的一些实施例中,以下附加信息应用于图5的流程图500中描述的操作,其中:(i)框s504内的基础结构服务器通常指物理和虚拟服务器(例如,power s390、ppc64le、x86、vm(虚拟机)件和任何其他虚拟或物理服务器);(ii)框s504内的应用通常是指在服务器中运行的后端应用、数据库服务、web应用、移动应用后端服务和/或前端应用服务;(iii)框s506内的容器应用通常是已知的,因为云目录服务退出并且被分配给每个应用(例如,如果应用正在诸如node.js的技术中运行,则该机制将该应用与云提供商的目录供应相关联);(iv)应用组合存储s508内的模块通常包括可从商业可用的云服务或云提供商获得的应用和服务的目录,其中应用将与当前基础设施相关联并且将当前基础设施与适合的最佳云提供商的服务相匹配;(v)在框s512内选择要被分析的其他服务器/服务通常意味着验证目标基础设施系统上的现有运行服务以便确定来自不同提供商的云供应中的哪些服务可用以提出最佳迁移策略的迭代过程;(vi)在框s516内创建最准确的迁移计划和云服务通常意味着特定模块分析云供应以比较不同的特性(如中间件、成本、迁移时间、副本、使用等),以选择用于迁移的最佳选项并提出最准确的迁移计划(例如,需要什么文件来确保将存在平滑的迁移,这取决于供应,因此最准确的迁移计划使用最少量的努力来提供基础设施服务与供应的最佳配合)。另外,如果服务基础设施在db2数据库上运行,则迁移将很可能指向商业上可用的云服务,其中云服务提供不同的db2标准工具,因此该特定软件组件的迁移将是平滑的。通常包括的信息将是迁移文件(例如,docker文件、kubernetes文件、config文件等),其在云提供商上运行以使迁移容易。通常,可以选择不同的云提供商来运行不同的应用和服务,并且在这些情况下,混合云可以是在不同云中分配服务的最佳选项。市场可用性服务存储s520通常是市场上可购买的云服务或云提供商。
[0050]
如以下段落中所述,本发明的一些实施例包括由系统自动分析以创建容器化环境。在这种情况下,这是该方法将如何分析信息的示例,该信息包括其中存在运行的商业上可用的软件应用的系统的特定特性。
[0051]
1.该方法检测ubuntu 14.04的debian(os(操作系统))环境(但其是旧版本)。该方法将检查是否可以进行升级或迁移以及应用是否仍然工作。如果是,则应用将继续。如果不是,但需要其他包,则这些包将由应用安装。如果应用不支持某些包,则将保持相同(旧)的版本。
[0052]
来自ubuntu:18.04
[0053]
2.下一步骤检测不同应用所涉及的所有服务,并获得特定步骤以安装所有依赖性和中间件,诸如商业上可用的软件,这由本发明的一些实施例检测。
[0054]
run apt-get update\
[0055]
&&apt-get install-y git\
[0056]
·
&&docker-php-ext-install\
[0057]
·
&&pdo\
·
&&pdo_mysql\
[0058]
·
&&mysqli\
·
&&php-r
[0059]
"copy('https://getcomposer.org/installer','composer-setup.php');"\
[0060]
·
&&php composer-setup.php
‑‑
install-dir=.
‑‑
filename=composer\
[0061]
·
&&mv composer/usr/local/bin/\
[0062]
·
&&a2enmod rewrite
[0063]
3.下一步是获取配置文件和应用文件夹,其中本发明的一些实施例将在容器内创建文件的副本。
[0064]
copy/var/www/html/var/www/html/
[0065]
copy/etc./free and open-source cross-platform web
[0066]
server software/free and open-source cross-platform web
[0067]
server software.conf/etc/free and open-source cross-platform web server software copy/etc/free and open-source cross-platform webserver software/sites-enabled/*/etc/free and open-source cross-platform web server software/sites-enabled/
[0068]
4.最后一个步骤是检查在服务器内部工作的服务和端口以生成服务并暴露需要暴露的端口。
[0069]
expose 443 50000 636
[0070]
在执行分析过程之后,本发明的一些实施例最终为应用创建最佳且有效的映像容器化建议,从而制作更有效的模块,并清理未使用的模块和资源。
[0071]
from open-source software environment run apt-get update\
[0072]
&&apt-get install-y git\
[0073]
·
&&docker-php-ext-install\
[0074]
·
&&pdo\
·
&&pdo_mysql\
[0075]
·
&&mysqli\
[0076]
·
&&php-r
[0077]
"copy('https://getcomposer.org/installer','composer-setup.php
′
);
″
\
[0078]
·
&&php composer-setup.php
‑‑
install-dir=.
‑‑
filename=composer\
[0079]
·
&&mv composer/usr/local/bin/\
[0080]
·
&&a2enmod rewritecopy/var/www/html/var/www/html/
[0081]
copy/etc/free and open-source cross-platform web
[0082]
server software/free and open-source cross-platform web
[0083]
server software.conf/etc/free and open-source cross-platform web server software copy/etc/free and open-source cross-platform webserver software/sites-enabled/*/etc/free and open-source cross-platform web server software/sites-enabled/
[0084]
expose 443 50000 636
[0085]
5.基于中间件和其他不同选项,本发明的一些实施例检测所需的不同服务,并且基于此,将给出用户可以从其选择的云服务的若干选项。系统为这些云服务创建演示实例并将其建议给用户。
[0086]
示例输出:
[0087]
》云环境和实例,你可以使用(例如):
[0088]
(商业上可获得的云计算服务)
[0089]
选择你想要的选项》
[0090]
基于该决定,创建容器化迁移文件将在特定云环境中被自动执行。此外,本发明的一些实施例将在文件创建是必要的情况下预期用于云构造和编排的文件创建。
[0091]
apiversion:apps/v1
[0092]
kind:deployment
[0093]
metadata:
[0094]
name:app-deployment
[0095]
spec:
[0096]
selector:
[0097]
matchlabels:
[0098]
app:free and open-source cross-platform web server software replicas:2
[0099]
template:
[0100]
metadata:
[0101]
labels:
[0102]
app:free and open-source cross-platform web server software spec:
[0103]
containers:
[0104]-name:free and open-source cross-platform web
[0105]
server software
[0106]
image:localimagegenerated:latest
[0107]
ports:
[0108]-containerport:443
[0109]
一旦该操作完成,用户将得到用于迁移的所有特定文件和符合基础设施评估的计划。
[0110]
本发明的一些实施例可包括与运行旧的商业上可用应用的服务器有关的以下操作、特征、特性和/或优点中的一个或多个,该旧的商业上可用应用需要php 5.2、apache 2.2、php的db2客户端、用于自动部署的ucd(以用户为中心的设计)和新的留存:(i)提供了具有诸如db2驱动器和pdo db2的所有应用要求的基本对接器;(ii)添加对ucd代理令牌和配置文件的要求;(iii)复制新留存的许可文件并将其放置在正确的文件中;(iv)由应用的.env指定的端口将被暴露,以及针对apache服务和数据库服务的端口也将被暴露;(v)基于对应用和软件需求的分析,将向用户提供选择正确的云提供商所需的信息;(vi)由于这是db2驱动器,因此该方法将仅选择支持这种中间件的那些db2驱动器,从而给出商业上可获得的云提供商的结果;(vii)如果用户选择了在商业上可用的云提供商的列表上的特定云,则该方法将为编排器生成yaml(yaml不是标记语言)文件;(viii)对于编排器,将利用必须打开的端口的服务来生成yaml,并且将生成部署;和/或(ix)最终结果将是基于容器的文件和用于解决方案容器的特定的基于yaml云的文件(基于所选择的云提供商的云提供),因
此使得迁移更容易。
[0111]
本发明的一些实施例可以包括以下特征、特性和/或优点中的一个或多个:(i)通过提供智能和最优的方式来构建容器,提供基于指令文本的容器(以构建其中的任何东西);(ii)基于系统创建容器;(iii)是基于应用架构的智能容器创建器;(iv)提供了一种从代码角度制造最佳容器的方法;(v)提供对层如何可以是用户应用的可选架构的预测;(vi)包括基础设施的具体分析;和/或(vii)在应用程序以最佳和简单的方式工作所必需的和必不可少的之间建立联系。
[0112]
本发明的一些实施例可以包括以下特征、特性和/或优点中的一个或多个:(i)虽然存在几种可商业获得的基于软件的工具,其可以收集关于系统本身的信息,但是本发明的一些实施例可以关联最佳云提供商或迁移机制;和/或(ii)在成本、性能、迁移时间等方面为基础设施本身选择最佳的,包括但不限于软件和新兴技术、隐私和顺应性、高可用性、安全性、可扩展性和可移植性等。
[0113]
本发明的一些实施例可以包括以下特征、特性和/或优点中的一个或多个:(i)为了获得或标识用于迁移的目标列表,根据本发明的一些方法将容纳化建议以生成要在云生态系统的不同选项中实例化的有效映像;(ii)提供了一种智能迁移机制;(iii)提供了一种用于通过机器逻辑生成关于如何减少包括在客户配置中的基础设施的某些方面(例如,被配置成被分配用于特定目的服务器的数量)的洞察的机制;(iv)提供了一种用于通过机器逻辑向软件架构师、产品所有者、技术领导者或其他人生成关于对混合基础设施的改变的建议的洞察的机制,其中混合基础设施通常是指其中系统不一定是相同类型的硬件或虚拟化技术的基础设施;(v)提供了用于优化迁移的洞察力,并且不仅提出了整个迁移,而且提出了考虑不同因素进行优化的其智能部分;和/或(vi)最小化成本迁移时间,和/或最大化性能,并且通常包括数据传输速率、触发器、网络性能、弹性等。
[0114]
本发明的一些实施例可以包括以下特征、特性和/或优点中的一个或多个:(i)在当前使用机器逻辑来规划数据迁移的常规技术中,大多数想法、解决方案或产品假设整个基础设施迁移将被迁移并且基于此生成针对它的规划,但是本发明的各种实施例有时将替代地提供关于基础设施的什么特定组件可以被迁移以优化它的智能选择性洞察,尤其是当基础设施是混合基础设施时;(ii)提供计划,其中在所述计划中使用和/或至少考虑使用多个可能的云提供商;(iii)考虑与所述基础设施计划对齐的多个云服务;(iv)机器逻辑通过对基础设施的持续分析来确定组件的选择性迁移,以建议云提供商及其含义以便优化它;(v)有时,基础设施不应被完全迁移,而是迁移其特定部分;(vi)是有利的,因为本发明的各种实施例控制基础设施的选择性迁移;(vii)基础设施的选择性迁移,如在此使用的短语,通常不迁移所有事物,而是仅迁移基础设施的一部分;(viii)提供关于特定软件片段的最佳适合云提供商在哪里的洞察;(ix)提出了混合环境洞察,以便逐渐减少基础设施中的系统数量,并为迁移提供具体的云提供商和文档或文件;(x)多个基础设施(其中多个基础设施通常是指客户机可以处理多于一个基础设施(可能最准确的术语可以是多个基础设施)和多个服务提供商的思想,以及它们的组合将构成最佳混合解决方案;和/或(xi)提供特定文件、实现在此列表上的一个或多个前述项目中提及的目的所需的组件。
[0115]
iv.限定
[0116]
本发明:不应被认为是绝对的指示,即术语“本发明”所描述的主题被提交的权利
要求所覆盖,或者被在专利申请之后可能最终发布的权利要求所覆盖;虽然术语“本发明”用于帮助读者获得一般感觉,对于该感觉,本文的公开被认为是潜在地新的,但是如通过使用术语“本发明”所指示的,该理解是试验性的和临时的,并且随着相关信息的发展和权利要求被潜在地修改,该理解在专利审查的过程中会发生改变。
[0117]
实施例:参见上述“本发明”的限定-类似的提醒适用于术语“实施例”。
[0118]
和/或:包括或;例如,a、b“和/或”c表示a或b或c中的至少一个是真和可应用的。
[0119]
包括:除非另有明确说明,否则表示“包括但不一定限于”。
[0120]
模块/子模块:操作性地工作以执行某种功能的任何硬件、固件和/或软件集合,而不考虑模块是否:(i)在单个局部邻近度中;(ii)分布在广阔的区域上;(iii)在较大的软件代码片段内的单个邻近度中;(iv)位于单个软件代码片段内;(v)位于单个存储设备、存储器或介质中;(vi)机械连接;(vii)电连接;和/或(viii)以数据通信方式连接。
[0121]
计算机:具有重要数据处理和/或机器可读指令读取能力的任何设备,包括但不限于:台式计算机、大型计算机、膝上型计算机、基于现场可编程门阵列(fpga)的设备、智能电话、个人数字助理(pda)、体装式或嵌入式计算机、嵌入式设备类型的计算机、基于专用集成电路(asic)的设备。
[0122]
事物的集合:不包括空集合;“事物的集合”表示存在至少一个事物,并且可能存在更多事物;例如,计算机的集合意味着至少一个计算机,并且可能意味着更多。
技术特征:
1.一种计算机实现的方法(cim),包括:接收用于计算机数据和/或计算机软件的迁移的迁移计划,所述迁移计划包括:(i)针对多个应用的多个云服务,(ii)用于实现存在于所述多个应用中的应用之间的依赖性的计算机处理操作,以及(iii)用于实现需要运行所述多个应用中的所述应用的中间件的计算机处理操作;根据所述迁移计划来生成一个或多个容器化迁移文件;将所述一个或多个容器化迁移文件复制到容器集合中,使得所述迁移计划可以使用来自所述容器集合的容器而被实现;以及使用来自所述容器集合的容器来在源计算机子系统和目标计算机子系统之间迁移计算机数据和/或计算机软件,以实现所述迁移计划。2.根据权利要求1所述的cim,还包括:生成所述迁移计划,其中所述迁移计划的所述生成包括:标识在所述迁移中要被涉及的多个基础设施服务器,标识所述多个应用,以及分析所述多个应用以标识与分别对应的云服务的关联。3.根据权利要求1所述的cim,其中所述一个或多个容器化迁移文件包括多个云服务。4.根据权利要求3所述的cim,其中将所述一个或多个容器化迁移文件复制到容器集合中包括:复制所述多个云服务。5.根据权利要求1所述的cim,还包括:测试工作在针对所述一个或多个容器化迁移文件的服务器中的服务和端口,以获取正测试结果。6.根据权利要求5所述的cim,还包括:响应于所述正测试结果:生成最终服务,以及暴露所述端口。7.一种计算机程序产品(cpp),包括:存储设备集合;以及计算机代码,所述计算机代码共同地被存储在所述存储设备集合中,其中所述计算机代码包括数据和使处理器集合至少执行以下操作的指令:接收用于计算机数据和/或计算机软件的迁移的迁移计划,所述迁移计划包括:(i)针对多个应用的多个云服务,(ii)用于实现存在于所述多个应用中的应用之间的依赖性的计算机处理操作,以及(iii)用于实现需要运行所述多个应用中的所述应用的中间件的计算机处理操作,根据所述迁移计划来生成一个或多个容器化迁移文件,将所述一个或多个容器化迁移文件复制到容器集合中,使得所述迁移计划可以使用来自所述容器集合的容器而被实现,以及使用来自所述容器集合的容器来在源计算机子系统和目标计算机子系统之间迁移计算机数据和/或计算机软件,以实现所述迁移计划。8.根据权利要求7所述的cpp,其中所述计算机代码还包括用于使所述处理器集合执行
以下一个或多个操作的指令:生成所述迁移计划,其中所述迁移计划的所述生成包括:标识在所述迁移中要被涉及的多个基础设施服务器,标识所述多个应用,以及分析所述多个应用以标识与分别对应的云服务的关联。9.根据权利要求7所述的cpp,其中所述一个或多个容器化迁移文件包括多个云服务。10.根据权利要求9所述的cpp,其中将所述一个或多个容器化迁移文件复制到容器集合中包括:复制所述多个云服务。11.根据权利要求7所述的cpp,其中所述计算机代码还包括用于使所述处理器集合执行以下一个或多个操作的指令:测试工作在针对所述一个或多个容器化迁移文件的服务器中的服务和端口,以获取正测试结果。12.根据权利要求11所述的cpp,其中所述计算机代码还包括用于使所述处理器集合执行以下一个或多个操作的指令:响应于所述正测试结果:生成最终服务,以及暴露所述端口。13.一种计算机系统(cs),包括:处理器集合;存储设备集合;以及计算机代码,所述计算机代码共同地被存储在所述存储设备集合中,其中所述计算机代码包括数据和使所述处理器集合至少执行以下操作的指令:接收用于计算机数据和/或计算机软件的迁移的迁移计划,所述迁移计划包括:(i)针对多个应用的多个云服务,(ii)用于实现存在于所述多个应用中的应用之间的依赖性的计算机处理操作,以及(iii)用于实现需要运行所述多个应用中的所述应用的中间件的计算机处理操作,根据所述迁移计划来生成一个或多个容器化迁移文件,将所述一个或多个容器化迁移文件复制到容器集合中,使得所述迁移计划可以使用来自所述容器集合的容器而被实现,以及使用来自所述容器集合的容器来在源计算机子系统和目标计算机子系统之间迁移计算机数据和/或计算机软件,以实现所述迁移计划。14.根据权利要求13所述的cs,其中所述计算机代码还包括用于使所述处理器集合执行以下一个或多个操作的指令:生成所述迁移计划,其中所述迁移计划的所述生成包括:标识在所述迁移中要被涉及的多个基础设施服务器,标识所述多个应用,以及分析所述多个应用以标识与分别对应的云服务的关联。15.根据权利要求13所述的cs,其中所述一个或多个容器化迁移文件包括多个云服务。16.根据权利要求15所述的cs,其中将所述一个或多个容器化迁移文件复制到所述容
器集合中包括:复制所述多个云服务。17.根据权利要求13所述的cs,其中所述计算机代码还包括用于使所述处理器集合执行以下一个或多个操作的指令:测试工作在针对所述一个或多个容器化迁移文件的服务器中的服务和端口,以获取正测试结果。18.根据权利要求17所述的cs,其中所述计算机代码还包括用于使所述处理器集合执行以下一个或多个操作的指令:响应于所述正测试结果:生成最终服务,以及暴露所述端口。
技术总结
一种用于使计算机系统执行以下操作的技术:接收用于计算机数据和/或计算机软件的迁移计划,根据所述迁移计划生成(多个)容器化迁移文件;将(多个)容器化迁移文件复制到(多个)容器的集合中,使得迁移计划能够使用来自容器的集合的容器来实现;以及使用来自容器集合的容器在源计算机子系统和目标计算机子系统之间迁移计算机数据和/或计算机软件以实现迁移计划。计划。计划。
技术研发人员:P
受保护的技术使用者:国际商业机器公司
技术研发日:2021.11.08
技术公布日:2023/8/21
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:天线构造体的制作方法 下一篇:头戴式显示单元及用于其的头部支撑件的制作方法
