CN114270779A - 自动部署的信息技术(it)系统和具有增强的安全性的方法 - Google Patents

自动部署的信息技术(it)系统和具有增强的安全性的方法 Download PDF

Info

Publication number
CN114270779A
CN114270779A CN202080056751.9A CN202080056751A CN114270779A CN 114270779 A CN114270779 A CN 114270779A CN 202080056751 A CN202080056751 A CN 202080056751A CN 114270779 A CN114270779 A CN 114270779A
Authority
CN
China
Prior art keywords
service
controller
resource
resources
storage
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080056751.9A
Other languages
English (en)
Inventor
P·J·施密特
S·M·理查德森
N·B·塞梅尔
C·T·斯普莱
A·奥萨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thunder Net Co ltd
Original Assignee
Thunder Net Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thunder Net Co ltd filed Critical Thunder Net Co ltd
Publication of CN114270779A publication Critical patent/CN114270779A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45541Bare-metal, i.e. hypervisor runs directly on hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0806Configuration setting for initial configuration or provisioning, e.g. plug-and-play
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • H04L41/0856Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information by backing up or archiving configuration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0895Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • H04L41/0897Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/28Restricting access to network management systems or functions, e.g. using authorisation function to access network configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/34Signalling channels for network management communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了用于部署IT计算机系统的系统和方法。根据了示例性实施方案,系统可包括控制器,该控制器在系统内提供并管理相关服务。作为一个示例,可创建并保持清除规则以管理在删除与其他服务具有相互依赖关系的服务的情况下如何解除修改。根据额外的示例性实施方案,系统可包括控制器,该控制器将存储器提供给计算资源和/或提供资源并将其连接至云实例。本发明还公开了用于备份系统部件的创新技术。

Description

自动部署的信息技术(IT)系统和具有增强的安全性的方法
相关专利申请的交叉引用和优先权要求
本专利申请要求2019年6月11日提交且名称为“Automatically DeployedInformation Technology(IT)System and Method with Enhanced Security”的美国临时专利申请62/860,148的优先权,所述专利申请的全部公开内容以引用的方式并入本文。
背景技术
在近几十年来,对计算的需求、使用和需要已飞速增长。随之而来的对更大存储、速度、计算能力、应用、可访问性的需求已导致了迅速变化的计算领域,从而为各种类型和大小的企业提供工具。因此,公共虚拟计算和云计算系统的已被开发来为大量用户和多种类型的用户提供更好的计算资源。这种指数式的发展可能会一直继续下去。同时,更大的故障和安全风险已使基础结构设置、管理、改变管理、更新变得更为复杂和昂贵。可扩展性、或随着时间的流逝而发展系统也已成为信息技术领域中的主要挑战。
可能很难诊断和解决大多数IT系统中的问题,其中许多问题涉及性能和安全。对被允许用来设置、配置和部署系统的时间和资源的约束可能会引起错误并且导致将来的IT问题。随着时间的推移,许多不同的管理员可能会参与改变、修补或更新包括用户、应用、服务、安全、软件和硬件的IT系统。通常,配置和改变的文件记录和历史可能是不足的或者会丢失,从而使得在稍后的时间很难理解特定系统已经被如何配置并且如何工作。这可能会使将来的改变或故障诊断变得困难。当出现问题或故障时,可能很难复原和重现IT配置和设定。此外,系统管理员可能很容易就会犯错,例如出现不正确的命令或其他错误,这进而可能会使计算机以及web数据库和服务瘫痪。另外,虽然增加的安全漏洞风险已经司空见惯,但是为避免安全漏洞而进行的改变、更新、补丁修补可能会引起不期望的停机时间。
一旦关键基础结构到位、工作并进行活动,成本或风险看起来往往可能就会超过改变系统的益处。对活动IT系统或环境进行改变的过程中涉及的问题可能会给依赖于这些系统的用户或实体带来大量以及有时灾难性的问题。起码,花费一定量时间来进行故障诊断并修复在改变管理期间出现的故障或问题可能需要大量时间、人员和金钱资源。在对活动环境进行改变时潜在地产生的技术问题可能会具有级联效应,并且仅通过撤销所进行的改变可能无法解决所述技术问题。如果在改变管理期间存在故障,则这些问题中的许多问题都会导致无法迅速地重新构建系统。
另外,在IT系统内的裸机云节点或资源可能容易受到安全问题的影响,受到损害或被流氓用户访问。黑客、攻击者或流氓用户可能会从该节点或资源转移、访问或入侵IT系统的任何其他部分或与该节点相关联的网络IT系统的裸机云节点或控制器还可能会因为连接到应用网络的资源而受到攻击,这可能会使系统暴露于安全威胁或以其他方式损害系统。根据本文公开的各种示例性实施方案,IT系统可被配置为提高与互联网或应用网络对接的安全性,而不管是否连接到外部网络的裸机云节点或资源。
发明内容
根据示例性实施方案,IT系统包括裸机云节点或物理资源。当开启、设置、管理或使用裸机云节点或物理资源时,如果它们可能会连接到节点可能正由其他人或顾客使用的网络,则可省略带内管理,能够从控制器切换所述带内管理,能够将所述带内管理与所述控制器断开或者将所述带内管理从所述控制器滤除。另外,系统内的应用或应用网络可经由应用网络耦合到控制器的一个或多个资源从控制器断开、可断开、可切换或过滤。
包括虚拟机或超级管理系统的物理资源也可能会受到安全问题的影响,受到损害或被流氓用户访问,其中超级管理系统可用于转移到作为共享资源的另一个超级管理系统。攻击者可能会摆脱虚拟机并且可能会通过控制器对管理和/或管理(administration)系统进行网络访问。根据本文公开的各种示例性实施方案,IT系统可被配置为提高安全性,其中在云平台上包括虚拟资源的一个或多个物理资源通过带内管理连接与控制器断开,能够与所述控制器断开,从所述控制器滤除,能够从所述控制器滤除或不连接到所述控制器。
根据示例性实施方案,IT系统的物理资源可包括一个或多个虚拟机或超级管理系统,其中可省略在控制器与物理资源之间的带内管理连接,将所述带内管理连接与资源断开,能够将所述带内管理连接与所述资源断开,或将所述带内管理连接从所述资源滤除/能够将所述带内管理连接从所述资源滤除。
根据了示例性实施方案,系统可包括控制器,该控制器使用本文所述的技术在系统内提供并管理相关服务。作为一个示例,可创建并保持清除规则以管理在删除与其他服务具有相互依赖关系的服务的情况下如何解除修改。
根据示例性实施方案,系统可包括控制器,该控制器使用本文所述的技术给为计算资源提供存储和/或提供资源并将其连接至云实例。
此外,根据示例性实施方案,系统可以使用本文所述的架构来支持有效的备份操作,其包括涉及多个相互依赖的服务的备份。
附图说明
图1是根据一个示例性实施方案的系统的示意图。
图2A是用于图1的系统的示例控制器的示意图。
图2B图示一组示例存储扩展规则的操作的示例流程。
图2C和图2D图示用于执行图2B中的步骤210.1和210.2的替代示例。
图2E示出了示例模板。
图2F示出了控制器逻辑关于处理模板的示例过程流。
图2G和图2H示出了用于图2F的步骤205.11、205.12和205.13的示例过程流。
图2I示出了另一个示例模板。
图2J图示控制器逻辑关于处理模板的另一个示例过程流。
图2K示出了用于管理服务依赖关系的示例过程流。
图2L是根据一个示例性实施方案的来源于模板的示例镜像的示意图。
图2M示出了一组示例系统规则。
图2N图示由控制器逻辑处理图2M的系统规则的示例过程流。
图2O图示从文件系统blob或其他文件组配置存储资源的示例过程流。
图3A是图2A的添加有计算资源的控制器的示意图。
图3B是根据一个示例性实施方案的来源于模板的示例镜像的示意图。
图3C图示用于将诸如计算资源、存储资源和/或联网资源的资源添加到系统的示例过程流。
图4A是图2A的添加有存储资源的控制器的示意图。
图4B是根据一个示例性实施方案的来源于模板的示例镜像的示意图。
图5A是图2A的添加有JBOD和存储资源的控制器的示意图。
图5B图示用于将存储资源和用于存储资源的直接附连存储添加到系统的示例过程流。
图6A是图2A的添加有联网资源的控制器的示意图。
图6B是根据一个示例性实施方案的来源于模板的示例镜像的示意图。
图7A是根据一个示例性实施方案的呈示例物理部署的系统的示意图。
图7B图示用于将资源添加到IT系统的示例过程。
图7C和图7D示出了用于在多个计算资源、多个服务器、多个虚拟机上和/或在多个站点中部署应用的示例过程流。
图8A是根据一个示例性实施方案的呈示例部署的系统的示意图。
图8B示出了用于从单节点系统扩展到多节点系统的示例过程流。
图8C图示用于将存储资源迁移到新的物理存储资源的示例过程流。
图8D示出了用于将多租户系统的单个节点上的虚拟机、容器和/或进程迁移到可能具有用于计算和存储的单独的硬件的多节点系统的示例过程流。
图8E示出了用于在系统中从单个节点扩展到多个节点的另一个示例过程流。
图9A是根据一个示例性实施方案的呈示例物理部署的系统的示意图。
图9B是根据一个示例性实施方案的来源于模板的示例镜像的示意图。
图9C示出了从NT包安装应用的实例。
图9D是根据一个示例性实施方案的呈示例部署的系统的示意图。
图9E示出了用于将虚拟计算资源主机添加到IT系统的示例过程流。
图9F图示具有到包括云上的实例310a的资源的额外连接的示例性系统。
图9G-1到9G-4图示关于图9F的系统的过程流。
图9H图示图9F中所示的具有在云上的额外实例的示例性系统,其中,额外实例连接到云API并且通过带内管理连接而通过VPN连接到控制器。
图9I图示关于图9H的系统的示例性过程流。
图9J图示图9F中所示的另一个示例性系统,其还包括云上的额外实例,其中该实例连接到云API并且通过带内管理连接而通过VPN连接到控制器。
图9K图示关于图9J的系统的示例性过程流。
图9L图示用于从系统扩展到本地主机的示例性过程流。
图10是根据一个示例性实施方案的呈示例部署的系统的示意图。
图11A图示一个示例性实施方案的系统和方法。
图11B图示一个示例性实施方案的系统和方法。
图12图示一个示例性实施方案的系统和方法。
图13A是根据一个示例性实施方案的系统的示意图。
图13B是根据一个示例性实施方案的系统的另一个示意图。
图13C至图13E图示用于根据一个示例性实施方案的系统的示例过程流。
图14A示出了主控制器已将控制器部署在不同系统上的示例系统。
图14B和图14C示出了展示利用主控制器供给控制器的可能的步骤的示例流程。
图15A示出了主控制器产生环境的示例系统。
图15B图示控制器设置一个环境的示例过程流。
图15C图示控制器设置多个环境的示例过程流。
图16A图示控制器作为主控制器操作来设置一个或多个控制器的示例性实施方案。
图16B至图16D示出了环境可被配置为对另一个环境进行写入的示例系统。
图16E示出了用户可购买由控制器产生的新环境的示例系统。
图16F图示用户界面被提供用于对接到由控制器产生的环境中的示例系统。
图17A至图18B图示关于新环境的改变管理任务的示例。
图19A-G图示系统的示例以及这些系统关于在系统内提供并管理相关服务的过程流。
图20A-D图示示例性系统以及相关过程流,其中一个或多个计算资源托管利用一个或多个存储资源中的存储器的一个或多个服务。
图21A-L图示系统以及关于在系统内备份系统、服务或其他组件的相关过程流的示例。
图22A-22C图示系统以及关于在系统内更新系统、服务或其他组件的相关过程流的示例。
具体实施方式
为了针对本领域如上所述的需求提供技术解决方案,诸位发明人公开了与用于信息技术的系统和方法相关的各种创造性实施方案,所述系统和方法提供自动化IT系统设置、配置、维护、测试、改变管理和/或升级。例如,诸位发明人公开了一种控制器,所述控制器被配置为基于多个系统规则、计算机系统的系统状态和多个模板而自动地管理计算机系统。作为另一个实例,诸位发明人公开了一种控制器,所述控制器被配置为基于多个系统规则、计算机系统的系统状态和多个模板而自动地管理计算机系统的物理基础结构。可由控制器执行的自动化管理的示例可包括:远程或本地地访问并改变可能运行应用或服务的计算机上的设定或其他信息;构建IT系统;改变IT系统;在IT系统中构建单独的栈;创建服务或应用;加载服务或应用;配置服务或应用;迁移服务或应用;改变服务或应用;移除服务或应用;将栈克隆到在不同网络上的另一个栈上;创建、添加、移除、设置、配置、重新配置和/或改变资源或系统部件;自动地添加、移除和/或恢复资源、服务、应用、IT系统和/或IT栈;配置应用、服务、栈和/或其他IT系统之间的交互;和/或监视IT系统部件的健康。在示例性实施方案中,控制器可实施为可以是远程或本地的物理或虚拟计算资源。可采用的控制器的额外示例包括但不限于以下各项中的一者或任何组合:由其他控制器和/或服务部署的进程、虚拟机、容器、远程计算资源、应用。控制器可跨多个节点和/或资源分布,并且可在其他位置或网络中。
IT基础结构最常由离散的硬件和软件部件构成。所使用的硬件部件通常包括服务器、机架、电源设备、互连装置、显示监视器和其他通信设备。先选择并然后互连这些离散的部件的方法和技术是高度复杂的,因为极大量的任选配置会随着不同程度的效率、成本效益、性能和安全而变化。善于连接这些基础结构部件的单独的技术人员/工程师的雇佣和训练费用很昂贵。此外,硬件和软件的极大量的可能的迭代在维护和更新硬件和软件中会产生复杂性。当最初安装IT基础结构的个人和/或工程公司不方便执行更新时,这会提出额外的挑战。诸如操作系统的软件部件一般会被设计成对广泛范围的硬件起作用,或者完全专用于特定部件。在大多数情况下会制定并执行复杂的计划或蓝图。改变、发展、扩展和其他挑战都需要更新复杂的计划。
虽然一些IT用户从产业不断发展的提供商购买云计算服务,但是这并不能解决设置基础结构的问题和挑战,而是将所述问题和挑战从IT用户转移到了云提供商。另外,大型云供应商已经以可能牺牲灵活性、用户化、可扩展性以及对新的硬件和软件技术的快速适用的方式解决了设置基础结构的挑战和问题。此外,云计算服务并未提供开箱即用的裸机设置、配置、部署和更新,或允许向、从裸机和虚拟IT基础结构部件转变,或者在所述裸机与所述虚拟IT基础结构部件之间转变。云计算服务的这些和其他限制可能会导致大量计算、存储和联网低效问题。例如,可能由云或者在利用云的应用或服务中呈现了计算和联网中的速度或延迟低效问题。
一个示例性实施方案的系统和方法提供了一种新颖而独特的IT基础结构部署、使用和管理。根据一个示例性实施方案,资源选择、安装、互连、管理和更新的复杂性根植于核心控制器系统以及其参数文件、模板、规则和IT系统状态。所述系统包括一组自组装规则和操作规则,所述自组装规则和操作规则被配置为使得部件进行自组装而不是需要技术人员来组装、连接和管理。另外,一个示例性实施方案的系统和方法允许使用自组装规则来实现更大的用户化、可扩展性和灵活性,而不需要当前的典型的外部规划文档。所述系统和方法还允许有效的资源使用和再利用。
提供了改善无论整体或部分是物理还是虚拟的当前IT系统中的许多问题和问题的系统和方法。一个示例性实施方案的系统和方法允许实现灵活性,减少可变性和人为失误,并且提供有可能提高系统安全性的结构。
虽然对于当前IT系统中的一个或多个问题,可能单独存在一些解决方案,但是此类解决方案并不像本文描述的示例性实施方案所解决的那样综合解决大量问题。另外,此类现有的解决方案可能会解决特定问题,同时会加重其他问题。
所解决的当前挑战中一些包括但不限于与以下各项相关的问题:设置、配置、基础结构部署、资产跟踪、安全、应用部署、服务部署、关于维护和合规性的文档记录、维护、扩展、资源分配、资源管理、负载均衡、软件故障、更新/修补软件和安全、测试、复原IT系统、改变管理以及硬件更新。
如本文所使用的IT系统可包括但不限于:服务器、虚拟和物理主机、数据库和数据库应用,所述数据库应用包括但不限于:IT服务、商业计算服务、计算机应用、面向顾客的应用、web应用、移动应用、后端、案号管理、顾客跟踪、票务、商业工具、桌面管理工具、计费、电子邮件、文档记录、合规性、数据存储、备份和/或网络管理。
用户在设置IT系统之前可能面临的一个问题是预测基础结构需求。用户可能不知道最初或在发展或改变期间随着时间的推移将需要多少存储、计算能力或其他需求。根据一个示例性实施方案,IT系统和基础结构允许的灵活性在于:如果系统需要改变,则一个示例性实施方案的自部署基础结构(物理和/或虚拟)可用于在稍后的时间自动地进行添加、移除、或从基础结构内部重新分配。因此,在设置系统时提出的预测将来需求的挑战通过以下方式来解决:提供使用系统的全局规则、模板和系统状态对所述系统进行添加的能力,并且跟踪此类规则、模板和系统状态的改变。
其他挑战还可能与以下各项相关:正确的配置、配置的一致性、互操作性和/或相互依赖性,这可包括例如因随着时间的推移对已配置的系统元件或其配置的改变所导致的将来的不兼容性。例如,当最初设置IT系统时,可能会存在缺失的元件或配置一些元件可能会发生故障。另外,例如,当设置元件或基础结构部件的迭代时,在迭代之间可能会缺乏一致性。当对系统进行改变时,可能需要改进配置。在将来基础结构改变的情况下,在最优配置与灵活性之间呈现了艰难的选择。根据一个示例性实施方案,当首次部署系统时,使用全局系统规则将配置从模板自部署到基础结构部件,因此配置是一致的、可重复的或可预测的,从而允许最优配置。这种初始系统部署可在物理部件上完成,同时可添加或修改后续部件,并且所述后续部件可为或不为物理的。另外,这种初始系统部署可在物理部件上完成,同时可从物理结构克隆后续环境,并且所述后续环境可为或不为物理的。这允许系统配置是最优的,同时准许最小破坏性的将来改变。
在部署阶段中,通常存在裸机和/或软件定义基础结构的互操作性的挑战。还可能会存在软件与其他应用、工具或基础结构的互操作性的挑战。这些挑战可包括但不限于因所部署产品来源于不同的供应商所致的挑战。诸位发明人公开了一种不管是裸机、虚拟结构还是其任何组合都可提供基础结构的互操作性的IT系统。因此,互操作性(部件一起工作的能力)可被构建到所公开的基础结构部署中,其中基础结构被自动地配置和部署。例如,不同的应用可彼此依赖,并且它们可存在于单独的主机上。为了允许此类应用彼此交互,如本文所述的控制器逻辑、模板、系统状态和系统规则包含用于配置应用的相互依赖性并跟踪相互依赖性的信息和配置指令。因此,本文论述的基础结构特征提供了对每个应用或服务如何彼此交流进行管理的方式。作为示例,确保电子邮件服务与认证服务正确地通信;和/或确保群件服务与电子邮件服务正确地通信。更进一步地,这种管理可深入到基础结构层面以准许跟踪例如计算资源如何与存储资源通信。否则,IT系统的复杂性会以O(nn)方式上升。
根据所公开的,由于控制器能够基于全局系统规则、模板和IT系统状态/系统自我认知而进行部署,因此资源的自动部署不需要预先配置操作系统软件。根据一个示例性实施方案,用户或IT专业人员可能不需要知道资源的添加、分配或重新分配是否会一起工作来确保互操作性。根据一个示例性实施方案的附加资源可自动地添加到网络。
使用应用需要许多不同的资源,通常包括计算、存储和联网资源。它还需要资源和系统部件的互操作性,包括关于什么已到位并运行,以及与其他应用的互操作性的知识。应用可能需要连接到其他服务并获取配置文件,并且确保每个部件能正确地一起工作。应用配置因此可能是时间和资源密集的。如果与其他应用存在互操作性的问题,则应用配置可能会给基础结构的其余部分带来级联效应。这可能会导致运行中断或漏洞。诸位发明人公开了用于解决这些问题的自动化应用部署。因此,如诸位发明人所公开,应用可使用对系统上正在进行什么的了解和智能配置通过从IT系统状态、全局系统规则和模板进行读取而进行自部署。另外,根据一个示例性实施方案,可使用如本文所述的改变管理特征执行对配置的预部署测试。
由示例性实施方案解决的另一个难题涉及可能出现的与中间配置相关的问题,其中期望切换到不同的供应商或其他工具。根据一个示例性实施方案的一个方面,在控制器的规则和模板与来自特定供应商的应用模板之间提供模板转换。这允许所述系统自动地改变软件或其他工具的供应商。
许多安全问题都是由错误配置、修补失败以及在部署之前无法测试修补引起的。往往会在设置的配置阶段产生安全问题。例如,错误配置可能会使敏感的应用暴露于互联网或允许来自电子服务器的伪造的电子邮件。诸位发明人公开了一种系统设置,所述系统设置自动地进行配置,从而防止攻击者,避免不必要地暴露于攻击者,并向安全工程师和应用安全架构师提供系统的更多知识。自动化减少了因人为失误或错误配置所致的安全缺陷。此外,所公开的基础结构提供了服务之间的自省,并且可允许基于规则的访问并且将服务之间的通信仅限制于实际上需要的那些通信。诸位发明人公开了一种例如,如关于改变管理所论述在部署之前有能力安全地测试补丁的系统和方法。
文档记录往往是IT管理的有问题的领域。在设置和配置期间,主要目标通常可能是让部件一起工作。通常,这涉及故障诊断和试错过程,其中有时,很难知道究竟是什么让系统工作。虽然如所执行的确切命令通常有记录,但是可能已实现工作系统的故障诊断或试错过程往往没有很好的记录或甚至完全没有记录。文档记录的问题或不足可能会产生审计跟踪和审计方面的问题。出现的文档记录问题可能会在显示合规性方面产生问题。通常,当构建系统或其部件时,合规性问题可能不是众多周知的。只有在设置和配置IT系统之后才可能会知道适用的合规性判定。因此,文档记录对于审计和合规性来说是至关重要的。诸位发明人公开了一种系统,所述系统包括全局系统规则数据库、模板和IT系统状态数据库,这提供了自动记录的设置和配置。发生的任何配置都被记录在数据库中。根据一个示例性实施方案,自动记录的配置提供审计跟踪并且可用于显示合规性。库存管理可使用自动记录和跟踪的信息。
由IT系统设置、配置和操作引起的另一个挑战涉及硬件和软件的库存管理。例如,通常重要的是要知道存在多少服务器,所述服务器是否启动并仍在运行,所述服务器的能力是什么,每个服务器在哪个机架中,哪些电源连接到哪些服务器,每个服务器正在使用什么网卡和什么网络端口,部件在哪个IT系统中操作以及许多其他重要的注意事项。除了库存信息之外,还应有效地管理用于库存管理的密码和其他敏感信息。尤其是在较大的IT系统、数据中心或者设备频繁地改变的数据中心中,这种信息的收集和保留是一项耗时的任务,它通常被手动地或使用各种软件工具来管理。对安全密码的合规性保护是一个很大的风险因素,它在确保安全的计算环境中可能是个重大难题。诸位发明人公开了一种IT系统,其中对所有服务器和其他部件的库存和操作状况的收集和维护被自动地更新、存储和保护作为控制器的IT系统状态、全局系统规则、模板和控制器逻辑的一部分。
除了IT系统的设置和配置的问题之外,诸位发明人还公开了一种还可解决IT系统的维护中出现的问题和问题的IT系统。在数据中心在存在硬件故障,例如电源故障、存储器故障、网络故障、网卡故障和/或CPU故障以及其他故障的情况下连续运行时会出现许多问题。当在硬件故障期间迁移主机时会出现其他故障。因此,诸位发明人公开了动态资源迁移,例如当主机宕机时将资源从一个资源提供商迁移到另一个资源提供商。在这种情形下,根据一个示例性实施方案,IT系统可迁移到其他服务器、节点或资源、或者其他IT系统。控制器可报告系统的状况。数据的副本是在具有已知和自动设置的配置的另一个主机上。如果检测到硬件故障,则可在自动地检测到故障之后自动地迁移可能一直在提供所述硬件的任何资源。
许多IT系统的一个重大问题是可扩展性。不断发展的企业或其他组织在其发展并且其需求变化时通常会对它们的IT系统进行添加或重新配置。当现有的IT系统需要更多资源,例如添加硬盘驱动器空间、存储空间、CPU处理、更多网络基础结构;更多端点、更多客户端和/或更多安全措施时会出现问题。当需要不同的服务和应用或者对基础结构的改变时,在配置、设置和部署中也会出现问题。根据一个示例性实施方案,可自动地扩展数据中心。节点或资源可动态地且自动地添加到资源池或从所述资源池移除。资源池中添加和移除的资源可自动地进行分配或重新分配。服务可被迅速地提供给和移动到新主机。控制器可动态地检测并将更多资源添加到资源池,并且知道在何处分配/重新分配资源。根据一个示例性实施方案的系统可从单节点IT系统扩展到跨多个数据中心或IT系统的需要众多物理和/或虚拟节点或资源的扩展的系统。
诸位发明人公开了一种实现灵活的资源分配和管理的系统。所述系统包括可能在资源池中并可自动地分配的计算资源、存储资源和联网资源。控制器可识别出网络上的新节点或主机,然后对所述新节点或主机进行配置,使得它们可成为资源池的一部分。例如,无论何时插入新服务器,控制器都会将所述新服务器配置为资源池的一部分,并且可将所述新服务器添加到资源并可以开始自动地使用所述新服务器。节点或资源可由控制器检测并且添加到不同的池。可例如通过API请求向控制器发出资源请求。控制器之后可根据规则从池部署或分配所需的资源。这允许控制器和/或应用通过控制器基于所述请求的需求而均衡负载并且动态地分发资源。
负载均衡的示例包括但不限于:当发生硬件或软件故障时部署新资源;响应于增加的用户负载而部署同一个应用的一个或多个实例;以及响应于存储、计算或联网需求的失衡而部署同一个应用的一个或多个实例。
对活动IT系统或环境进行改变的过程中涉及的问题可能会给依赖于这些系统来持续地运作的用户或实体带来大量以及有时灾难性的问题。这些运行中断不仅表示系统使用的潜在损失,而且表示数据损失、因修复所述问题所需的大量时间、人员和资金资源所致的经济损失。所述问题可能会因为在配置的文档记录存在错误或缺乏对系统的了解的情况下难以重新构建系统而加剧。由于这个问题,许多IT系统用户不愿意修补IT资源以消除已知的安全风险。所述资源因此更容易受到安全漏洞的攻击。
IT系统的维护中出现的许多问题都与因其中可能需要配置的改变管理或控制所致的软件故障相关。可能会发生此类故障的情形包括但不限于:升级到新的软件版本;迁移到一件不同的软件;密码或认证管理改变;在服务之间或在服务的不同提供之间的切换。
手动配置和维护的基础结构通常很难重新创建。重新创建基础结构出于若干原因可能是重要的,所述若干原因包括但不限于:撤销有问题的改变、断电或其他灾难复原。手动配置的系统中的问题很难诊断。手动配置和维护的基础结构很难重新制作。此外,系统管理员可能很容易就会犯错,例如出现不正确的命令,进而已经知道的是这些会使计算机系统瘫痪。
对活动IT系统或环境进行改变可能会给依赖于这些系统来持续地运作的用户或实体带来大量以及有时灾难性的问题。这些运行中断不仅表示系统使用的潜在损失,而且此类运行中断还可能会引起数据损失,以及因修复所述问题所需的大量时间、人员和资金资源所致的经济损失。所述问题可能会因为在配置的文档记录存在错误或缺乏对系统的了解的情况下难以重新构建系统而加剧。另外,在许多情况下,在发生重大或主要改变之后,很难将系统恢复到先前的状态。
此外,当对活动环境进行改变时潜在产生的技术问题可能会具有级联效应。这些级联效应可能会使退回改变前状态变得具有挑战性并且有时变得不可能。因此,即使由于已实现的改变出现问题而需要往回恢复改变时,系统的状态也已经被改变。最近已有人指出,撤销基础结构和系统管理错误以及对生产环境的错误改变是一个尚未解决的问题。另外,已经知道在部署到活动环境之前测试对系统的改变是有问题的。
因此,诸位发明人公开了被配置为将对活动系统的改变恢复回到改变前状态的系统和方法的多个示例性实施方案。另外,诸位发明人公开(提供)了一种系统和方法,所述系统和方法被配置为实现对经受实时改变的系统或环境的状态的实质性恢复,这可防止或改善上文描述的一个或多个问题。
根据一个示例性实施方案的一个变型,IT系统具有对全局系统规则、模板和IT系统状态的完整的系统知识。基础结构可使用完整的系统知识来克隆。系统或系统环境可被克隆为软件定义基础结构或环境。包括在使用中的易失性数据库的系统环境(被称为生产环境)可被写入到非易失性只读数据库中以用作开发和测试过程中的开发环境。可在开发环境中进行所需的改变并且对所述所需的改变进行测试。用户或控制器逻辑可对全局规则进行改变来创建新版本。可跟踪规则的版本。根据一个示例性实施方案的另一个方面,之后可自动地实现新开发的环境。也可维护先前的生产环境或使所述先前的生产环境处于全功能状态,因此对早先状态的生产环境的修正是可能的,而不会丢失数据。之后可利用新的规范、规则和模板启动开发环境,并且将数据库或系统与生产数据库同步,并可将所述数据库或系统切换到可写入数据库。然后可将原始生产数据库切换为只读数据库,如果需要复原,则所述系统可恢复到所述只读数据库。
关于升级或修补软件,如果检测到服务需要升级或修补,则可部署新主机。在由于升级或修补而存在故障的情况下,可在如上所述可能进行改变恢复时部署新服务。
硬件升级在许多情形下,尤其是在最新硬件必不可少的情况下都是很重要的。这种类型情形的实例发生于高频率交易行业中,其中具有毫秒速度优势的IT系统可使得用户能够实现出众的交易成果和利润。特别地,在确保与当前基础结构的互操作性的过程中会出现问题,因此新硬件将知道如何与协议通信并且与现有的基础结构一起工作。除了确保部件的互操作性之外,所述部件还将需要与现有的设置进行集成。
参考图1,示出了一个示例性实施方案的IT系统100。系统100可以是一种或多种类型的IT系统,包括但不限于本文描述的那些系统。
用户界面(UI)110被示出为通过可能驻留或不驻留在独立的物理或虚拟服务器上的应用编程接口(API)应用120耦合到控制器200。控制器200可部署在一个或多个处理器和一个或多个存储器上以实现本文论述的控制操作中的任一者。用于供一个或多个处理器执行来实施此类控制操作的指令可驻留在诸如处理器存储器的非暂态计算机可读存储介质上。API 120可包括可能是冗余的和/或并行操作的一个或多个API应用。API应用120接收请求来配置系统资源,解析请求并且将所述请求传递到控制器200。API应用120从控制器接收一个或多个响应,解析一个或多个响应并且将所述一个或多个响应传递到UI(或应用)110。可选地或另外地,应用或服务可与API应用120通信。控制器200耦合到一个或多个计算资源300、一个或多个存储资源400和一个或多个联网资源500。资源300、400、500可驻留或不驻留在单个节点上。资源300、400、500中的一者或多者可以是虚拟的。资源300、400、500可驻留或不驻留在多个节点上或以各种组合驻留在多个节点上。物理装置可包括资源类型中的一者或多者或者每一者,所述资源类型包括但不限于计算资源300、存储资源400和联网资源500。资源300、400、500还可包括无论是否处于不同物理位置,以及无论是否是虚拟的资源池。裸机计算资源也可用于实现虚拟或容器计算资源的使用。
除了节点的已知定义之外,如本文所使用的节点可以是连接到一个或多个网络的任何系统、装置或资源或者在独立装置或网络连接装置上执行功能的其他功能单元。节点还可包括但不限于:例如服务器、在物理或虚拟主机上的服务/应用/多种服务、虚拟服务器和/或在多租户服务器上或在容器内部运行的多种或单一服务。
控制器200可包括也可能是冗余的和/或并行操作的一个或多个物理或虚拟控制器服务器。控制器可在用作计算主机的物理或虚拟主机上运行。作为一个实例,控制器可包括在某一主机上运行的控制器,所述主机例如由于其有权访问敏感资源而另外用于其他目的。控制器从API应用120接收请求,解析请求并且对其他资源作出适当的任务分配并对所述其他资源进行指示;监视资源并且从所述资源接收信息;维护系统的状态和改变历史;并且可与IT系统中的其他控制器通信。控制器也可包含API应用120。
如本文所定义的计算资源可包括真实或虚拟的单个计算节点或者具有一个或多个计算节点的资源池。计算资源或计算节点可包括可托管一种或多种服务或者运行一个或多个应用的一个或多个物理或虚拟机或者容器主机。计算资源还可以是在被设计用于多个目的的硬件上,所述多个目的包括但不限于:计算、存储、高速缓存、联网、专业化计算,所述专业化计算包括但不限于:GPU、ASIC、协处理器、CPU、FPGA和其他专业化计算方法。可向此类装置添加PCI快速开关或类似装置,并且可以此方式对所述装置进行动态添加。计算资源或计算节点可包括或可运行包含运行服务或应用的多个不同的虚拟机或者可以是虚拟计算资源的一个或多个超级管理系统或容器主机。虽然计算资源的重点可能是在提供计算功能上面,但是它还可包括数据存储和/或联网能力。
如本文所定义的存储资源可包括存储节点或存储资源池。存储资源可包括任何数据存储介质,例如快速、慢速、混合、高速缓存存储介质和/或RAM。存储资源可包括可直接附连或不直接附连到其他存储资源的一种或多种类型的网络、机器、装置、节点或其任何组合。根据一个示例性实施方案的多个方面,存储资源可以是可以是裸机或虚拟资源,或者其组合。虽然存储资源的重点可能是在提供存储功能上面,但是它还可包括计算和/或联网能力。
一个或多个联网资源500可包括单个联网资源、多个联网资源或联网资源池。一个或多个联网资源可包括一个或多个物理或虚拟装置、一个或多个工具、交换机、路由器或者在系统资源之间的其他互连器,或用于管理联网的应用。此类系统资源可以是物理或虚拟的,并且可包括计算资源、存储资源或其他联网资源。联网资源可提供在外部网络与应用网络之间的连接并且可托管核心网络服务,包括但不限于:域名系统(DNS or dns)、动态主机配置协议(DHCP)、子网管理、第三层路由、网络地址转换(NAT)和其他服务。这些服务中的一些服务可部署在物理或虚拟机上的计算资源、存储资源或联网资源上。联网资源可利用一个或多个构架或者协议,包括但不限于:无限带宽、以太网、在汇聚式以太网络(RoCE)上的远程直接内存访问(DMA)、光纤通道和/或Omnipath,可包含在多个构架之间的互连器。联网资源可具有或不具有软件定义网络(SDN)能力。控制器200可能能够使用SDN的虚拟局域网(VLAN)等来直接更改联网资源300,以配置IT系统的拓扑结构。虽然联网资源的重点可能是在提供联网功能上面,但是它还可包括计算和/或存储能力。
如本文所使用的应用网络表示用于连接或耦合应用、资源、服务和/或其他网络,或者用于将用户和/或客户端耦合到应用、资源和/或服务的联网资源,或其任何组合。应用网络可包括供服务器使用来与其他应用服务器(物理或虚拟)通信并且与客户端通信的网络。应用网络可与系统100外部的机器或网络通信。例如,应用网络可将web前端连接到数据库。用户可通过互联网或可由或不由控制器管理的另一个网络连接到web应用。
根据一个示例性实施方案,计算资源300、存储资源400和联网资源500各自可由控制器200进行自动添加、移除、设置、分配、重新分配、配置、重新配置和/或部署。根据一个示例性实施方案,附加资源可被添加到资源池。
虽然示出了用户界面110,诸如Web UI或者用户105可利用来进行访问并且与所述系统交互的其他用户界面,但是可选地或此外,应用也可通过一个或多个API应用120或以其他方式与控制器200通信或交互。例如,用户105或应用可发送请求,包括但不限于:构建IT系统;在IT系统中构建单独的栈;创建服务或应用;迁移服务或应用;改变服务或应用;移除服务或应用;将栈克隆到在不同网络上的另一个栈上;创建、添加、移除、设置或配置、重新配置资源或系统部件。
图1的系统100可包括具有接到可能是物理或虚拟的、或其任何组合的各种元件、部件或资源的连接件或其他通信接口的服务器。根据一个变型,图1所示的系统100可包括具有连接件的裸机服务器。
如本文更详细所描述,控制器200可被配置为上电资源或部件,自动地设置、配置和/或控制资源的上电,添加资源,分配资源,管理资源并且更新可用资源。驱动过程可开始于驱动控制器,使得启动装置的顺序可以是一致的,而不是取决于用户驱动装置。所述过程可能还涉及对已驱动的资源的检测。
参考图2A至图10,示出了控制器200、控制器逻辑205、全局系统规则数据库210、IT系统状态220和模板230。
系统100包括全局系统规则210。全局系统规则210尤其可声明设置、配置、启动、分配和管理可包括计算、存储和联网的资源的规则。全局系统规则210包括对系统100处于正确或所需的状态的最低要求。所述要求可包括预期要完成的IT任务,以及可预测地构建所需的系统所需的可更新的预期硬件列表。可更新的预期硬件列表可允许控制器验证所需的资源(从起动规则或使用模板开始,例如在起动规则或使用模板之前)是可用的。全局规则可包括各种任务所需的操作列表以及与操作和任务的排序相关的对应指令。例如,所述规则可指定以下各项的顺序:驱动部件;启动资源、应用和服务;依赖关系;在起动不同任务,例如加载、配置、起动、重新加载应用或更新硬件时的顺序。规则210还可包括以下各项中的一者或多者:例如应用和服务所需的资源分配列表;可使用的模板列表;待加载的应用以及如何配置的列表;待加载的服务以及如何配置的列表;应用网络以及哪个应用利用哪个网络运行的列表;特定于不同应用的配置变量和用户特定应用变量的列表;预期状态,所述预期状态允许控制器查看系统状态以验证所述状态与预期一样并且每个指令的结果与预期一样;和/或版本列表,所述版本列表包括可允许跟踪对规则的改变并且在不同情况下有能力测试或恢复为不同规则的规则改变列表(例如,快照)。控制器200可被配置为将全局系统规则210应用于在物理资源上的IT系统100。控制器200可被配置为将全局系统规则210应用于在虚拟资源上的IT系统100。控制器200可被配置为将全局系统规则210应用于在物理资源和虚拟资源的组合资源上的IT系统100。
图2M示出了可采用全局系统规则的形式的一组示例系统规则210。由图2M所示的一组示例性系统规则210可加载到控制器200中或通过查询系统状态来获得(参见210.1)。在图2M的实例中,系统规则210包含可采用配置例程210.2的形式的一组指令,并且还包含用于创建和/或重新创建IT系统或环境的数据210.3。系统规则210内的配置规则可能会阐明如何经由所需的模板列表210.7定位模板230(其中模板230可驻留在文件系统、盘、存储资源中或者可位于系统规则内部)。控制器逻辑205也可在处理模板230之前定位所述模板并且确保所述模板在启用系统规则210之前就已存在。系统规则210可包含系统规则子集210.15,并且这些子集210.15可作为配置例程210.2的一部分执行。
此外,子系统规则210.15可被用作例如一种工具来构建具有集成IT应用的系统(然后利用系统规则执行例程210.16进行处理,并且之后更新反映出210.15的添加的系统状态和当前配置规则)。子系统规则210.15也可位于其他位置并且通过用户交互加载到系统状态220中。例如,你还可将子系统规则210.15当作剧本,并且可能能够获得并运行(然后使全局系统规则210更新,因此你可以在你想要克隆系统的情况下回放所述剧本)。
配置例程210.2可以是用于构建系统的一组指令。配置例程210.2还可包括子系统规则210.15或系统状态指针210.8,如果从业人员需要的话。当运行配置例程210.2时,控制器逻辑205可以特定顺序(210.9)处理一系列模板,任选地允许并行部署,但是维护适当的依赖项处理(210.12)。配置例程210.2可任选地调用API调用210.10,所述API调用210.10可设定应用上的可通过根据210.9处理模板来配置的配置参数210.5。另外,所需的服务210.11是在所述系统将进行API调用210.10的情况下需要启动并运行的服务。
例程210.2还可包含用于关于易失性数据210.6进行数据加载(210.13)的过程、程序或方法,所述过程、程序或方法包括但不限于:拷贝数据,将数据库传送到计算资源,将计算资源与存储资源进行配对和/或利用易失性数据210.6的位置更新系统状态220。易失性数据指针(参见210.4)可利用数据210.3维护以定位可能存储在其他位置的易失性数据。如果配置参数210.5位于非标准数据存储处(例如,包含于某一数据库中),则数据加载例程210.13也可用于加载所述配置参数。
系统规则210还可包含资源列表210.18,所述资源列表210.18可指出哪些部件被分配给哪些资源并且将允许控制器逻辑205确定适当的资源和/或硬件是否可用。系统规则210还可包含用于替代部署(例如,用于开发环境,其中软件工程师可能想要执行实时测试,但是不想要分配整个数据中心)的替代硬件和/或资源列表210.19。系统规则还可包括数据备份和/或备用例程210.17,该数据备份/待机例程210.17提供对如何备份系统并使用备用部分来实现冗余的指示。实现备份规则的数据备份系统和/或备份例程的示例包括但不限于这里参考图21A-J所述的那些。
在采取每个动作之后,可更新系统状态220,并且将查询(其可包括写入)保存为系统状态查询210.14。
图2N图示由控制器逻辑205处理图2M的系统规则210(或子系统规则210.15)的示例性过程流。在步骤210.20处,控制器逻辑205检查来确保适当的资源是可用的(参见图2M中的210.18)。否则,可在步骤210.21处检查替代配置。第三选项可包括提示用户选择可能受到图2M的列表210.7中引用的模板230支持的替代配置。
在步骤210.22处,控制器逻辑则可确保计算资源(或任何适当的资源)获得对易失性数据的访问。这可能涉及连接到存储资源或将存储资源添加到系统状态220。在步骤210.23处,则处理配置例程,并且在处理每个例程时,更新系统状态220(步骤210.24)。还可查询系统状态220以查看在继续进行之前是否完成某些步骤(步骤210.25)。
如图210.23所示的配置例程处理步骤可包括210.26的任何程序(或其组合)。所述配置例程处理步骤还可包括其他程序。例如,在210.26处的处理可包括模板处理(210.27)、加载配置数据(210.28)、加载静态数据(210.29)、加载动态易失性数据(210.30)和/或耦合服务、应用程序、子系统和/或环境(210.31)。210.26内的此类程序可以循环重复,或者并行运行,因为一些系统部件可能是独立的,而其他系统部件可能是相互依赖的。控制器逻辑、服务依赖关系和/或系统规则可指出哪些服务可能彼此依赖关系,并且可耦合所述服务来进一步从系统规则构建出IT系统。
全局系统规则210还可包括存储扩展规则。存储扩展规则提供将存储资源自动地添加到例如所述系统内的现有的存储资源的一组规则。此外,存储扩展规则可提供在一个或多个计算资源上运行的应用将知道何时请求存储扩展(或者控制器200可能知道何时扩展计算资源或应用的存储)的触发点。控制器200可分配并管理新的存储资源,并且可将所述存储资源与现有的存储资源进行合并或集成以用于特定运行资源。这种特定运行资源可以为但不限于:所述系统内的计算资源、在所述系统内运行计算机资源的应用、虚拟机、容器、或者物理或虚拟计算主机或其组合。运行资源可例如通过存储空间查询用信号通知控制器200所述运行资源将耗尽存储空间。带内管理连接270、SAN连接280、或者对控制器200的任何联网或耦合都可用于这种查询中。也可使用带外管理连接260。这些存储扩展规则(或这些存储扩展规则的子集)还可用于不在运行的资源。
存储扩展规则指出如何在所述系统内定位、连接、设置新的存储资源。控制器将新的存储资源登记在系统状态220中,并且告知运行资源存储资源在何处以及如何连接到所述存储资源。运行资源使用此类注册信息来连接到存储资源。控制器200可将新的存储资源与现有的存储资源进行合并,或者所述控制器可将新的存储资源添加到卷组。
图2B图示一组示例存储扩展规则的操作的示例流程。在步骤210.41处,运行资源基于触发点或其他方面而确定其存储较低。在步骤210.42处,运行资源通过带内管理连接270、SAN连接280、或对操作系统可见的另一种类型连接来连接到控制器200。通过这种连接,运行资源可通知控制器200其存储较低。在步骤210.43处,控制器配置存储资源以为运行资源扩展存储容量。在步骤210.44处,控制器向运行资源提供有关新配置的存储资源位于何处的信息。在步骤210.45处,运行资源连接到新配置的存储资源。在步骤210.46处,控制器将新的存储资源位置的映射添加到系统状态220。然后,控制器可将新的存储资源添加到分配给运行资源的卷组(步骤210.47),或者控制器可将新的存储资源到运行资源的分配添加到系统状态220(步骤210.48)。
图2C图示用于执行图2B中的步骤210.41和210.42的替代示例。在步骤210.50处,控制器通过带外管理连接260发送关键命令以在监视器或控制台上查看关于运行资源的存储状况更新。例如,监视器可以是可通过带外连接260利用来查阅屏幕的ipmi控制台。作为一个实例,带外连接260可插入到USB中作为键盘/鼠标并且插入到VGA监视端口中。在步骤210.51处,运行资源在屏幕上显示信息。在步骤210.52处,控制器之后经由带外管理连接260和屏幕抓取或类似操作而读取呈现在监视器或控制台上的信息;其中此读取信息可基于触发点而指示低存储状况。过程流之后可继续图2B的步骤210.43。
图2D图示用于执行图2B的步骤210.41和210.42的另一个替代示例。在步骤210.55处,运行资源在监视器或控制台上自动地显示信息以供控制器读取。在步骤210.56处,控制器自动地、定期地或不断地对监视器或控制台进行读取以对运行资源进行查看。响应于此读取,控制器了解到运行资源的存储较低(步骤210.57)。过程流之后可继续图2B的步骤210.43。
控制器200还包括可包括裸机和/或服务模板的模板230的库。这些模板可包括但不限于:电子邮件、文件存储、IP电话、软件计费、软件XMPP、wiki、版本控制、账户认证管理和可能能够由用户界面配置的第三方应用。模板230可与资源、应用或服务有关联;并且所述模板可用作定义如何将这种资源、应用或服务集成到所述系统中的配方。
同样,模板可包括用于创建、配置和/或部署资源、或加载在资源上的应用或服务的建立的一组信息。这种信息可包括但不限于:内核、initrd文件、文件系统或文件系统镜像、文件、配置文件、配置文件模板、用于确定不同的硬件和/或计算后端的适当的设置的信息、和/或其他可用于配置资源以驱动应用以及允许和/或有助于创建、启动或运行应用的操作系统镜像的选项。
模板可包含可用于在多种受支持的硬件类型和/或计算后端上部署应用的信息,所述多种受支持的硬件类型和/或计算后端包括但不限于:多种物理服务器类型或部件、在多种硬件类型硬件上运行的多个超级管理系统、可被托管在多种硬件类型硬件上的容器主机。
模板可获得在计算资源上运行的应用或服务的启动镜像。模板和来源于模板的镜像可用于创建应用,部署应用或服务和/或将资源布置用于各种系统功能,这允许和/或有助于创建应用。模板在文件、文件系统和/或操作系统镜像中可具有可变参数,所述可变参数可被来自默认设定或由控制器给出的设定的配置选项覆盖。模板可具有用于配置应用或其他资源的配置脚本,并且所述模板可利用配置变量、配置规则和/或默认规则或变量;这些脚本、变量和/或规则可包含针对特定硬件的特定规则、脚本或变量,或者其他资源特定参数,例如超级管理系统(在虚拟的情况下)、可用存储器的特定参数。模板可具有呈以下形式的文件:二进制资源、带来二进制资源或者硬件或其他资源特定参数的可编译的源代码、多组特定的二进制资源或者具有针对特定硬件或其他资源特定参数,例如超级管理系统(在虚拟的情况下)、可用存储器的特定参数的编译指令的源代码。模板可包括与某一资源上正在运行什么无关的一组信息。
模板可包括基础镜像。基础镜像可包括基础操作系统文件系统。基础操作系统可以是只读的。基础镜像还可包括操作系统的与正在运行什么无关的基础工具。基础镜像可包括基础目录和操作系统工具。模板可包括内核。所述内核或多个内核可包括initrd,或者多个内核被配置用于不同的硬件类型和资源类型。镜像可来源于加载到一个或多个资源或者部署的模板ad。加载的镜像还可包括启动文件,诸如对应模板的内核或initrd。
镜像可包括可基于模板而加载到资源的模板文件系统信息。模板文件系统可配置应用或服务。模板文件系统可包括为所有资源、或类似资源共用,例如以节省存储文件系统的存储空间或者方便只读文件的使用的共享文件系统。模板文件系统或镜像可包括为所部署的服务共用的一组文件。可将模板文件系统预加载到控制器上或进行下载。可更新模板文件系统。模板文件系统可允许相对更快的部署,因为它不需要重新构建。与其他资源或应用共享文件系统可允许减少存储,因为文件不会被不必要地复制。这还可能允许更容易地从故障中复原,因为只需要复原不同于模板文件系统的文件。
模板启动文件可包括内核和/或initrd或者用于辅助启动过程的类似的文件系统。启动文件可启动操作系统并且设置模板文件系统。initrd可包括说明如何设置模板,使得所述模板能够启动的小的临时文件系统。
模板还可包括模板BIOS设定。模板BIOS设定可用于设定在物理主机上运行应用的任选设定。如果使用的话,则如本文关于图1至图12所描述的带外管理260可用于启动资源或应用。物理主机可使用带外管理网络260或CDROM来启动资源或应用。控制器200可设定这种模板中定义的应用特定bios设定。控制器200可使用带外管理系统来通过特定于具体资源的API而进行直接bios改变。所述设定可通过控制台和镜像识别来验证。因此,控制器200可使用控制台特征并且利用虚拟键盘和鼠标进行bios改变。控制器还可使用UEFI壳并且可直接输入到控制台中,并且可使用镜像识别来验证成功结果,正确地输入命令并且确保成功的设定改变。如果存在可启动的操作系统可供用于BIOS改变或更新到特定BIOS版本,则控制器200可远程地加载盘镜像或ISO,以启动更新BIOS并允许以可靠的方式进行配置改变的运行操作系统的应用。
模板还可包括模板特定支持资源列表,或者运行特定应用或服务所需的资源列表。
模板镜像或者镜像或模板的一部分可存储在控制器200上,或者控制器200可将它们移动或拷贝到存储资源410。
图2E示出了示例模板230。模板包含创建应用或服务所需的所有信息。模板230还可包含用于提供相似或相同功能的不同的硬件类型的信息、替代数据、文件、二进制。例如,可能存在用于/usr/bin和/或bin的文件系统blob 232与针对不同架构编译的二进制234。模板230还可包含守护进程233或脚本231。守护进程233是可能在主机被驱动并准备就绪的启动时间运行的二进制或脚本;并且在一些情况下,守护进程233可驱动API,所述API可能能够由控制器访问并且可能允许控制器改变主机的设定(并且控制器随后可更新活动系统规则)。守护进程还可被关闭并且通过上文和下文论述的带外管理260或带内管理270来重新起动。这些守护进程也可驱动通用API以为新服务提供依赖服务(例如,与控制nginx或apache的api通信的通用web服务器api)。脚本231可以是可在启动镜像时或之后,或者在起动守护进程或启用服务之后运行的安装脚本。
模板230还可包含内核235和预启动文件系统236。模板230也可包含用于不同硬件和不同配置的多个内核235和一个或多个预启动文件系统(诸如用于Linux的initrd或initramfs,或者用于bsd的只读内存盘)。Initrd还可用于挂载作为覆盖层呈现的文件系统blob 232,并且通过启动进入initramfs 236来将根文件系统挂载在远程存储上,所述initramfs 236可如下所述任选地通过SAN连接280连接到存储资源。
文件系统blob 232是可分为单独的blob的文件系统镜像。blob可能能够基于配置选项、硬件类型和其他设置差异而互换。从模板230启动的主机可从包含多个blob的联合文件系统(诸如overlayfs),或者从一个或多个文件系统blob中创建的镜像启动。
模板230还可包括附加信息237,诸如易失性数据238和/或配置参数239,或者与所述附加信息相链接。例如,易失性数据238可包含于模板230中,或者所述易失性数据可包含于外部。所述易失性数据可以是呈文件系统blob 232或其他数据存储的形式,所述其他数据存储包括但不限于:数据库、平面文件、存储在目录中的文件、文件压缩包、git或其他版本控制库。此外,配置参数239可包含于模板230外部或内部,并且任选地包含于系统规则中并应用于模板230。
系统100还包括跟踪、维护、改变和更新包括但不限于资源的系统100的状况的IT系统状态220。系统状态220可跟踪可用资源,这将告知控制器逻辑资源是否可用于实现规则和模板,以及什么资源可用于实现规则和模板。系统状态可跟踪已使用的资源,这允许控制器逻辑205检查效率,利用效率,出于升级或其他原因,诸如为了提高效率或实现优先级检查是否需要切换资源。系统状态可跟踪正在运行什么应用。控制器逻辑205可根据系统状态将预期应用运行与实际应用运行进行比较,并且是否需要修正。系统状态220还可跟踪应用正运行到何处。控制器逻辑205可将此信息用于评估效率、改变管理、更新、故障诊断或审计追踪的目的。系统状态可跟踪联网信息,例如什么网络在运转或当前在运行,或者跟踪配置值和历史。系统状态220可跟踪改变历史。系统状态220还可跟踪基于全局系统规则而将哪些模板用于哪种部署中,所述全局系统规则规定了使用哪些模板。历史可用于审计、报警、改变管理、构建报告、跟踪与硬件和应用相关的版本以及配置或配置变量。系统状态220可出于审计、合规性测试或故障诊断的目的而维护配置历史。
控制器具有用于管理包含于系统状态、模板和全局系统规则中的所有信息的逻辑205。控制器逻辑205、全局系统规则数据库210、IT系统状态220和模板230由控制器200管理,并且可驻留或不驻留在控制器200上。控制器逻辑或应用205、全局系统规则数据库210、IT系统状态220和模板230可以是物理或虚拟的,并且可为或不为分布式服务、分布式数据库和/或文件。API应用120可包括在控制器逻辑/控制器应用205中。
控制器200可运行独立机器和/或可包括一个或多个控制器。控制器200可包括控制器服务或应用,并且可在另一个机器内部运行。控制器机器首先可起动控制器服务以确保整个栈或整组栈的有序和/或一致启动。
控制器200可控制一个或多个栈的计算资源、存储资源和联网资源。每个栈可由或不由全局系统规则210内的规则的不同子集控制。例如,可能存在预生产栈、生产栈、开发栈、测试栈、并行栈、备份栈和/或在系统内具有不同功能的其他栈。
控制器逻辑205可被配置为读取并解译全局系统规则以实现所需的IT系统状态。控制器逻辑205可被配置为根据全局规则使用模板来构建系统部件,诸如应用或服务,并且分配、添加或移除资源以实现所需的IT系统状态。控制器逻辑205可读取全局系统规则,产生达到正确状态的任务列表并且基于可用操作而发出用于履行规则的指令。控制器逻辑205可包含用于以下各项的逻辑:执行操作,例如起动系统,添加、移除、重新配置资源;辨别出能够做什么。控制器逻辑可在起动时间处以及在规律的时间间隔处查看系统状态以查看硬件是否可用,并且如果可用,所述硬件可执行任务。如果必要的硬件不可用,则控制器逻辑205使用全局系统规则210、模板220和根据系统状态230可用的硬件来呈现替代选项,并且相应地修改全局规则和/或系统状态220。
控制器逻辑205可能知道需要什么变量,用户需要输入什么才能继续或在系统中用户需要什么才能运行。控制器逻辑可使用来自全局系统规则的模板列表,并且将所述模板列表与系统状态中所需的模板进行比较以确保所需的模板是可用的。控制器逻辑205可从系统状态数据库中辨别模板特定支持的资源列表上的资源是否可用。控制器逻辑可分配资源,更新状态并且进入下一组任务以实现全局规则。控制器逻辑205可如全局规则中所指定的那样起动/运行所分配的资源上的应用。所述规则可指定如何从模板构建应用。控制器逻辑205可抓取一个或多个模板并且根据变量配置应用。模板可告知控制器逻辑205需要哪个内核、哪些启动文件、哪些文件系统和哪些支持的硬件资源。然后,控制器逻辑205可将有关应用部署的信息添加到系统状态数据库。在每个指令之后,控制器逻辑205可对比全局规则的预期状态查看系统状态数据库,以验证预期操作是否正确完成。
控制器逻辑205可根据版本规则来使用版本。系统状态220可具有与哪些规则版本已被用于不同部署中相关的数据库。
控制器逻辑205可包括用于规则优化和有效排序的有效逻辑。控制器逻辑205可被配置为优化资源。系统状态、规则和模板中与正在运行或预期会运行的应用相关的信息可由控制器逻辑使用来关于资源实现效率或优先级。控制器逻辑205可使用系统状态220中的“已使用的资源”中的信息来确定效率,或者出于升级、再利用或其他原因而确定对切换资源的需求。
控制器可根据系统状态220查看应用运行,并且将所述应用运行与全局规则的预期应用运行进行比较。如果应用不在运行,则所述控制器可起动所述应用。如果应用不应运行,则所述控制器可停止所述应用并且在适当时重新分配资源。控制器逻辑205可包括资源(计算、存储、联网资源)规范的数据库。控制器逻辑可包括用于识别可用于所述系统的能够被使用的资源类型的逻辑。这可使用带外管理网络260来执行。控制器逻辑205可被配置为使用带外管理260来识别新硬件。控制器逻辑205还可从系统状态220取得关于改变历史、所使用的规则和版本的信息,以用于审计、构建报告和改变管理的目的。
图2F示出了控制器逻辑205关于处理模板230并获得镜像来上电、上电和/或启用资源的示例性过程流,所述资源出于这个实例的目的可被称为主机。此过程还可包括配置存储资源,并且耦合存储和计算主机和/或资源。控制器逻辑205知道系统100中可用的硬件资源,并且系统规则210可指示能够利用哪些硬件资源。控制器逻辑205在步骤205.1处解析模板230,所述模板230可包括指令文件,所述指令文件可被执行来使控制器逻辑收集在由图2E所示的模板230外部的文件。指令文件可以是呈json格式。在步骤205.2处,控制器逻辑收集需要的文件桶列表。另外,在步骤205.3处,控制器逻辑205将所需的硬件特定文件收集到桶中,所述硬件特定文件供硬件以及任选地超级管理系统(或容器主机系统,多租户类型系统)引用。如果硬件要在虚拟机上运行,则可能需要超级管理系统(或容器主机系统或多租户类型系统)引用。
如果存在硬件特定文件,则控制器逻辑将在步骤205.4处收集硬件特定文件。在一些情况下,文件系统镜像可包含内核和initramfs以及包含内核模块的目录(或内核模块最终被放置到目录中)。控制器逻辑205之后在步骤205.5处挑选兼容的适当的基础镜像。基础镜像包含可能不特定于应用或来源于模板230的镜像的操作系统文件。兼容性在此上下文中表示基础镜像包含将模板转变为工作应用所需的文件。可在模板外部将基础镜像作为用于节省空间的机构进行管理(而且通常,对于若干应用或服务来说,基础镜像可能是相同的)。此外,在步骤205.6处,控制器逻辑205挑选具有可执行文件、源代码和硬件特定配置文件的一个或多个桶。模板230可引用其他文件,包括但不限于:配置文件、配置文件模板(所述配置文件模板是包含占位符或变量的配置文件,所述配置文件充满系统规则210中的在模板230中可能变得已知的变量,使得控制器200可将配置模板转变为配置文件并且可任选地通过API端点来改变配置文件)、二进制和源代码(所述源代码可在启动镜像时进行编译)。在步骤205.7处,可加载对应于在步骤205.4.、205.5和205.6处挑选的元件的硬件特定指令作为被启动的镜像的一部分。控制器逻辑205从选择的部件获得镜像。例如,对比虚拟机,对于物理主机来说可能存在不同的预安装脚本,或者对比x86,对于powerpc来说可能存在差异。
在步骤205.8处,控制器逻辑205挂载overlayfs并且将主体文件重新打包成单个文件系统blob。当使用多个文件系统blob时,可通过多个blob,对压缩包解压缩和/或获取git来创建镜像。如果未执行步骤205.8,则文件系统blob可保持独立,并且将镜像创建为一组文件系统blob并利用能够将多个较小的文件系统挂载在一起的文件系统(诸如overlayfs)进行挂载。控制器逻辑205之后可在步骤205.9处定位兼容的内核(或系统规则210中指定的内核)并且在步骤205.10处定位适用的initrd。兼容的内核可以是满足模板或用于实现模板的资源的依赖关系的内核。兼容的initrd可以是将模板加载到所需的计算资源上的initrd。通常,initird可用于物理资源,使得其在完全启动之前能够挂载存储资源(因为根文件系统可能是远程的)。内核和initrd可被打包成文件系统blob,用于直接内核启动,或用于使用kexec的物理主机上以在启动初步操作系统之后改变活动系统上的内核。
控制器之后配置一个或多个存储资源以允许一个或多个计算资源使用由205.11、205.12和/或205.13所示的技术中的任一者来驱动一个或多个应用和/或一个或多个镜像。在205.11下,可将overlayfs文件提供为存储资源。在205.12下,呈现文件系统。例如,存储资源可呈现组合式文件系统,或计算资源可同时使用类似于overlayfs的文件系统来挂载的多个文件系统blob。在205.13下,在呈现文件系统之前向存储资源发送blob。
图2G和图2H示出了用于图2F的步骤205.11和205.12的示例过程流。更进一步地,所述系统可采用用于将计算机资源连接到存储资源的过程和规则,这可被称为存储连接过程。随附的附录A中提供了这种存储连接过程的除了由图2G和图2H所示的实例之外的实例。图2G示出了用于连接存储资源的示例过程流。一些存储资源可以是只读的,并且其他存储资源可以是可写入的。存储资源可管理其自身的写入锁定,使得不存在会引起竞态条件的同时写入,或者系统状态220可跟踪(参见,例如步骤205.20)哪些连接可对存储资源进行写入和/或防止多个读-写连接接至资源(步骤205.21)。控制器逻辑或资源本身可查询存储资源的位置和传输类型(例如,互联网小型计算机系统接口(ISCSI、iSCSI或iscsi)、用于远程直接存储访问(RDMA或rdma)的ISCSI(ISER、iSER或iser)、基于光纤的非易失性内存主机控制器接口规范(NVMEOF或nvmeof)、光纤通道(FC或fc)、基于以太网的光线通道(FCOE、FCoE或fcoe)、网络文件系统(NFS或nfs)、基于rdma的nfs、分布式文件系统(AFS或afs)、通用网际文件系统(CIFS或cifs)、窗口共享)的控制器系统状态220(步骤205.22)。如果计算资源是虚拟的,则超级管理系统(例如,经由超级管理系统守护进程实现)可处理接至存储资源的连接(步骤205.23)。这可具有所需的安全优势,因为虚拟机可能不了解SAN 280。
参考步骤205.24,可在系统规则210中指出用于连接计算资源和存储资源的过程。控制器逻辑之后查询系统状态220以确保所述资源是可用的和可写入的(如果必要的话)(步骤205.22)。可经由诸如SQL查询(或其他类型的数据库查询)、JSON解析等的多种技术中的任一者来查询系统状态220。所述查询将返回计算资源连接到存储资源所需的信息。控制器200、系统状态220或系统规则210可为计算资源连接到系统状态提供认证凭证(步骤205.25)。计算资源之后将直接或经由控制器更新系统状态220(步骤205.26)。
图2H图示物理、虚拟或其他类型的计算资源、应用、服务或主机驱动存储资源并连接到所述存储资源的示例启动过程。存储资源可任选地利用融合文件系统和/或可扩展卷。在控制器或其他系统启用物理主机的情形下,物理主机可预加载有用于配置所述系统的操作系统。因此,在步骤205.31处,控制器可预加载具有initramfs的启动盘。另外,控制器200可使用带外管理连接260来网络启动初步操作系统(步骤205.30),然后任选地对主机预加载初步操作系统(步骤205.31)。之后在步骤205.32处加载initramfs,并且在步骤205.33处使用图2G所示的方法来连接存储资源。然后,如果存在可扩展卷,则在步骤205.34处任选地将耦合在一起的子卷或装置组装成卷组,如果逻辑卷管理(LVM)在使用的话。或者,可在步骤205.34处使用其他组合盘的方法来耦合所述卷。
如果融合文件系统在使用,则可在步骤205.36处组合文件,然后继续启动过程(步骤205.46)。如果在linux中使用overlayfs来解决一些已知的问题,则可运行以下子进程。可在可能是易失性的每个挂载的文件系统blob中形成/data目录(步骤205.37)。然后,可在步骤205.38处创建new_root目录,并且在步骤205.39处将overlayfs挂载到目录中。然后,initramfs在/new_root上运行exec_root(步骤205.40)。
如果主机是虚拟机(VM),诸如直接内核启动的附加工具可能是可用的。在这种情形下,超级管理系统可在启动VM之前连接到存储资源(步骤205.41),或所述超级管理系统可在启动时如此操作。之后可连同加载initramfs一起对VM进行直接内核启动(步骤205.42)。然后在步骤205.43处加载initramfs,并且超级管理系统可在此时连接到可能是远程的存储资源(步骤205.44)。为了完成这一点,超级管理系统主机可能需要传入接口(例如,如果无限带宽需要连接到iSER目标,则它可能会使用pci-passhtru传入基于SR-IOV的虚拟功能,或者在一些情形下可使用半虚拟化的网络接口)。这些连接可供initramfs使用。如果虚拟机尚未准备就绪,则所述虚拟机之后可在步骤205.45处连接到存储资源。所述虚拟机还可能通过超级管理系统(任选地通过半虚拟化的存储)接收其存储资源。所述过程对于任选地挂载融合文件系统和LVM类型盘的虚拟机来说可能是相似的。
图2O图示用于像在205.13处那样从文件系统blob或其他文件组配置存储资源的示例过程流。。在步骤205.75处收集blob;并且可在205.73处将所述blob直接拷贝到存储资源主机上(如果存储资源主机不同于保存文件系统blob 232的装置的话)。一旦存储资源已到位,则就在205.74处利用存储资源的位置和可用的传输(例如iSER、nvmeof、iSCSI、FcoE、光纤通道、nfs、nfs over rdma)更新系统状态。这些blob中的一些可能是只读的,则在此情况下,系统状态保持不变并且新的计算资源或主机可连接到所述只读存储资源(例如,当连接到基础镜像时)。在一些情况下,如由205.70所示可能期望将文件放置到单个文件系统镜像中以避免任何融合文件系统开销。这可通过以下方式来完成:将blob作为融合文件系统进行挂载(步骤205.71),然后将所述blob拷贝到新的文件系统中或将它们重新打包成单个文件系统(步骤205.72),并且之后任选地将新的文件系统镜像拷贝到新的文件系统镜像将呈现为存储资源的适当的位置。一些融合文件系统可能允许完成合并,而不用首先在步骤205.71处对所述融合文件系统进行挂载并且在单个步骤中将它们进行合并。
图2I图示如图2E所示的另一个示例模板230。在这个实例中,控制器可被配置为使用如图2I所示的具有中介配置工具的模板230。根据一个示例性实施方案,中介配置工具可包括用于将新的应用或服务与依赖项应用或服务耦合的通用API。因此,模板230可另外包括设置模板的服务可能需要的依赖关系列表
244。模板230还可包含连接规则245,所述连接规则245可包含对依赖项的通
用API的调用。模板230也可包括一个或多个共用API 243以及共用API和版
本列表242。共用API 243可具有可能能够(或不能够)从应用或控制器调用的方法、函数、脚本或指令,所述方法、函数、脚本或指令允许控制器配置依赖项应用或服务,使得依赖项应用或服务之后可耦合到通过模板230构建的新应用。控制器可与通用API 243通信和/或进行API调用以配置新的服务或应用与依赖性服务或应用的耦合。可选地,指令可允许应用或服务直接与依赖性应用或服务上的通用API 243通信和/或向该通用API发送调用。模板230连接规则245,所述连接规则245是可包含关于连接新的服务或应用与依赖性服务或应用的API调用的一组规则和/或指令。
系统状态220还可包括运行服务列表246。运行服务列表246可供控制器逻辑205查询来设法满足来自模板230的依赖关系244。控制器还可包括可用于特定服务/应用或某一类型的服务/应用的不同的通用API的列表247,并且也可包括包含通用API的模板。列表可驻留在控制器逻辑205、系统规则210、系统状态220中或驻留在控制器可访问的模板存储中。控制器还维护从所有现有或加载的模板编译的共用API索引248。
图2J图示控制器逻辑205关于如图2F所示处理模板230但是存在由控制器管理服务依赖关系的步骤255的示例过程流。图2K示出了用于图2J的步骤255的示例过程流。在步骤255.1处,控制器从模板收集依赖关系列表244。控制器还从模板收集共用API列表243。(A)。在步骤255.2处,控制器通过将来自模板的共用API列表243与共用API索引248进行比较,并且基于设法满足依赖项的应用或服务的类型而缩窄可能的依赖项应用或服务的列表。在步骤255.3处,控制器确定系统规则210是否指定满足依赖关系的方式。
如果在步骤255.3处确定为是,则则控制器通过查询运行模板列表来确定依赖性服务或应用是否在运行(步骤255.4)。如果在步骤255.4处确定为否,则运行(和/或先配置,后运行)服务应用,这可包括由控制器逻辑处理依赖性服务/应用的模板(步骤255.5)。如果在步骤255.4处发现依赖性服务或应用在运行,则过程流进行到步骤255.6。在步骤255.6处,控制器使用模板来将正被构建的新的服务或应用耦合到依赖性服务或应用。在耦合新的服务或应用与依赖项应用/服务的过程中,控制器将完成其正在处理的模板并且将运行连接规则245。控制器就如何满足依赖关系244和/或耦合应用/服务方面基于连接规则245而向通用API 243发送命令。通用API 243翻译来自控制器的指令以连接新的服务或应用与依赖项应用或服务,这可包括但不限于:调用服务的API函数、改变配置、运行脚本、调用其他程序。在步骤255.6之后,过程流进行到图2J的步骤205.2。
如果步骤255.3确定系统规则210未指定满足依赖项的方式,则控制器将在步骤255.7处查询系统状态220以查看是否有适当的依赖项应用或服务在运行。在步骤255.8处,控制器基于所述查询而作出其关于是否有适当的依赖项应用或服务在运行的确定。如果在步骤255.8处确定为否,则控制器可通知管理员或用户采取动作(步骤255.9)。如果在步骤255.8处确定为是,则过程流进行到可如上所述般操作的步骤255.6。关于新应用是否应连接到运行的依赖项应用,可任选地询问用户,在此情况下,控制器可在步骤255.6处按如下方式将新的应用或服务耦合到依赖项应用或服务:控制器将完成其正在处理的模板230并且将运行连接规则245。控制器之后就如何满足依赖关系244方面基于连接规则245而向通用API 243发送命令。通用API 243翻译来自控制器的指令以连接新的服务或应用与依赖项应用或服务。
用户通过外部用户界面或Web UI、或应用通过API应用120与控制器200通信,所述API应用120也可并入到控制器应用或逻辑205中。
控制器200通过多个网络、互连器、或控制器可利用来指示计算资源、存储资源和联网资源操作的其他连接中的一者或多者而与栈或资源通信。此类连接可包括:带外管理连接260;带内管理连接270;SAN连接280;以及任选的联网带内管理连接290。
带外管理可由控制器200使用来通过控制器200检测、配置和管理系统100的部件。带外管理连接260可使得控制器200能够检测已插入且可用,但是没有开启的资源。资源在插入时可添加到IT系统状态220。带外管理可被配置为加载启动镜像,配置并监视从属于系统100的资源。带外管理还可启动用于诊断操作系统的临时镜像。带外管理可用于改变BIOS设定,并且还可使用控制台工具来在运行的操作系统上运行命令。所述设定也可由控制器使用控制台、键盘以及对来自硬件资源上的物理或虚拟监视端口,诸如VGA、DVI或HDMI端口的视频信号的镜像识别,和/或使用由带外管理提供的API,例如Redfish来改变。
如本文所使用的带外管理可包括但不限于:能够连接到独立于操作系统和主母板的资源或节点的管理系统。带外管理连接260可包括网络,或者多种类型的直接或间接连接件或互连器。带外管理连接类型的实例包括但不限于:IPMI、Redfish、SSH、telnet、其他管理工具、键盘、显示屏和鼠标(KVM)或KVM over IP、串行控制台或USB。带外管理是如下工具:可通过网络使用,可上电和切断节点或资源,监视温度和其他系统数据;进行BIOS改变以及可能在操作系统的控制之外的其他低级别改变;连接到控制台并发送命令;控制包括但不限于键盘、鼠标、监视器的输入端。带外管理可耦合到物理资源中的带外管理电路。带外管理可连接盘镜像作为可用于启动安装介质的盘。
管理网络或带内管理连接270可允许控制器收集关于计算资源、存储资源、联网资源或其他资源的信息,从而直接传达给资源正在运行的操作系统。存储资源、计算资源或联网资源可包括与连接260和/或270对接的管理接口,由此所述资源可与控制器200通信并且告知控制器什么正在运行以及什么可用于资源,并且从控制器接收命令。如本文所使用的带内管理网络包括能够与资源通信,直接通向所述资源的操作系统的管理网络。带内管理连接的实例可包括但不限于:SSH、telnet、其他管理工具、串行控制台或USB。
虽然带外管理在本文被描述为与带内管理网络物理或虚拟地分离的网络,但是它们可进行组合或者可如本文更详细所描述出于效率目的而彼此相结合地工作。另外相应地,带外管理和带内管理或它们的各方面可通过控制器的同一个端口通信,或者利用组合式互连器耦合。任选地,连接260、270、280、290中的一者或多者可以是单独的或与此类网络中的其他网络组合,并且可包括或不包括相同的构架。
此外,计算资源、存储资源和控制器可以或不以控制器200能够使用存储网络(SAN)280来启动每个资源的方式耦合到所述存储网络。控制器200可向单独的存储资源或其他资源或其他资源发送启动镜像或其他模板,使得其他资源可从存储资源或其他资源启动。控制器可指示在这种情形下从何处启动。控制器可上电资源,指示所述资源从何处上电以及如何配置其自身。控制器200指示资源如何启动,使用什么镜像,以及如果所述镜像在另一个资源上则所述镜像位于何处。可预先配置BIOS的资源。控制器还可以或可选地通过带外管理配置BIOS,使得它们将从存储区域网络启动。控制器200也可被配置为从ISO启动操作系统并且使得资源能够将数据拷贝到本地盘。本地盘随后可用于启动。控制器可以一种方式配置包括其他控制器的其他资源,使得所述资源能够启动。一些资源可包括提供计算、存储或联网功能的应用。此外,有可能由控制器启动存储资源,然后使所述存储资源负责供应后续资源或服务的启动镜像。存储也可通过用于另一个目的的不同网络来管理。
任选地,资源中的一者或多者可耦合到联网带内管理连接290。连接290可包括如关于带内管理连接270所描述的一种或多种类型的带内管理。连接290可将控制器连接到应用网络以利用网络,或者通过带内管理网络来管理所述网络。
图2L图示镜像250,所述镜像250可直接或间接(通过另一个资源或数据库)从模板230加载到资源以启动资源,或者加载在所述资源上的应用或服务。镜像250可包括用于资源类型和硬件的启动文件240。启动文件240可包括对应于待部署的资源、应用或服务的内核241。启动文件240还可包括initrd或用于辅助启动过程的类似的文件系统。启动系统240可包括被配置用于不同的硬件类型和资源类型的多个内核或initrd。此外,镜像250可包括文件系统251。文件系统251可包括基础镜像252和对应的文件系统,以及服务镜像253和对应的文件系统,以及易失性镜像254和对应的文件系统。所加载的文件系统和数据可根据资源类型和待运行的应用或服务而变化。基础镜像252可包括基础操作系统文件系统。基础操作系统可以是只读的。基础镜像252还可包括操作系统的与正在运行什么无关的基础工具。基础镜像252可包括基础目录和操作系统工具。服务文件系统253可包括用于资源、应用或服务的配置文件和规范。易失性文件系统254可包含特定于那一种部署的信息或数据,诸如二进制应用、特定地址和其他信息,所述信息或数据可配置或不配置为变量,所述变量包括但不限于:密码、会话密钥和私有密钥。文件系统可使用诸如overlayFS的技术作为一个单独的文件系统进行挂载,以允许一些只读文件系统和一些读-写文件系统,从而减少用于应用的复制数据的量。
如上所述,控制器200可用于将诸如计算资源、存储资源和/或联网资源的资源添加到所述系统。图11A图示用于将诸如裸机节点的物理资源添加到系统100的示例方法。通过网络连接将资源,即计算资源、存储资源或联网资源插入到控制器中1110。网络连接可包括带外管理连接。控制器识别出所述资源通过带外管理连接插入1111。控制器识别与所述资源相关的信息,这可包括但不限于:资源的类型、能力和/或属性1112。控制器将所述资源和/或与所述资源相关的信息添加到其系统状态1113。将来源于模板的镜像加载到系统的物理部件,所述物理部件可包括但不限于诸如存储资源的另一个资源上,或控制器上的资源1114。镜像包括可包括配置文件的一个或多个文件系统。此类配置可包括BIOS和启动参数。控制器指示物理资源使用镜像的文件系统来启动1115。可使用模板的镜像或其至少一部分以此方式添加附加资源或者多种不同类型的裸机或物理资源。
图11B图示一个示例性实施方案的使用全局系统规则和模板自动地分配资源的示例方法。对需要资源分配的系统发出请求以满足所述请求1120。控制器基于其系统状态数据库而了解其资源池1121。控制器使用模板来确定所需的资源1122。控制器分派所述资源并且将信息存储在系统状态中1123。控制器使用所述模板来部署所述资源1124。
参考图12,使用本文描述的系统100说明了用于自动地部署应用或服务的示例方法。用户或应用发出对服务的请求1210。将所述请求翻译到API应用1220。API应用将所述请求输送到控制器1230。控制器解译所述请求1240。控制器将所述系统及其资源的状态考虑在内1250。控制器使用其规则和模板来进行服务部署1260。控制器1270向资源发送请求1270,并且部署来源于模板的镜像1280并更新IT系统状态。
下文将更详细地论述诸如添加资源、分配资源和部署应用或服务的操作的其他更详细的示例。
将计算资源添加到系统
参考图3A,示出了计算资源310到系统100的添加。当添加计算资源310时,所述计算资源耦合到控制器200并且可切断所述计算资源。应注意,如果计算资源310预加载有镜像,则可遵循替代步骤,其中可使用任何网络连接来与资源通信,启动资源并且将信息添加到系统状态。如果计算资源和控制器在同一个节点上,则关闭运行计算资源的服务。
如图3A所示,计算资源310通过以下网络耦合到控制器:带外管理连接260、带内管理连接270以及任选地SAN 280。计算资源310还耦合到一个或多个应用网络390,在所述应用网络处,服务、应用用户和/或客户端可彼此通信。带外管理连接260可耦合到当计算资源310插入时开启的独立的带外管理装置315或计算资源310的电路。装置315可允许特征,包括但不限于:上电/切断装置、附连到控制台并输入命令、监视温度和其他计算机健康相关元素以及设定BIOS设定和在操作系统范围之外的其他特征。控制器200可通过带外管理网络260查看计算资源310。所述控制器还可辨别计算资源的类型并且使用带内管理或带外管理来辨别所述计算资源的配置。控制器逻辑205被配置为在带外管理260或带内管理270中仔细检查添加的硬件。如果检测到计算资源310,则控制器逻辑205可使用全局系统规则220来确定所述资源是将自动地配置还是通过与用户交互来配置。如果所述资源是自动地添加,则设置将遵循控制器200内的全局系统规则210。如果所述资源是由用户添加,则控制器200内的全局系统规则210可能会要求用户确认资源的添加以及用户想要如何处理计算资源。控制器200可查询API应用或以其他方式请求用户或控制栈的任何程序来确认新资源已被授权。授权过程也可使用密码术来自动地且安全地完成以确认新资源的合法性。控制器逻辑205将计算资源310添加到IT系统状态220,这包括计算资源310插入其中的交换机或网络。
如果计算资源是物理的,则控制器200可通过带外管理网络260上电计算资源,并且计算资源310可使用全局系统规则210和控制器逻辑205例如通过SAN 280从加载自模板230的镜像350上电。所述镜像可通过其他网络连接或者间接地通过另一个资源来加载。一旦被启动,通过带内管理连接270接收的与计算资源310相关的信息就也可被收集和添加到IT系统状态220。计算资源310之后可被添加到存储资源池,并且所述计算资源将变为由控制器200管理并在IT系统状态220中加以跟踪的资源。
如果计算资源是虚拟的,则控制器200可通过带内管理网络270或通过带外管理260上电计算资源。计算资源310可使用全局系统规则210和控制器逻辑205例如通过SAN280从加载自模板230的镜像350启动。所述镜像可通过其他网络连接或者间接地通过另一个资源来加载。一旦被启动,通过带内管理连接270接收的与计算资源310相关的信息就也可被收集和添加到IT系统状态220。计算资源310之后可被添加到存储资源池,并且所述计算资源将变为由控制器200管理并在IT系统状态220中加以跟踪的资源。
控制器200可能能够根据全局系统规则自动地开启和关闭资源,并且出于由IT系统用户确定的原因,诸如为了节省电力而关闭资源,或者为了提高应用性能而开启资源或者IT系统用户可能有的任何其他原因而更新IT系统状态。
图3B是直接或间接地(通过另一个资源或数据库)从模板230加载到计算资源310以启动计算资源和/或加载应用的镜像350。镜像350可包括用于资源类型和硬件的启动文件340。启动文件340可包括对应于待部署的资源、应用或服务的内核341。启动文件340还可包括initrd或用于辅助启动过程的类似的文件系统。启动系统340可包括被配置用于不同的硬件类型和资源类型的多个内核或initrd。此外,镜像350可包括文件系统351。文件系统351可包括基础镜像352和对应的文件系统,以及服务镜像353和对应的文件系统,以及易失性镜像354和对应的文件系统。所加载的文件系统和数据可根据资源类型和待运行的应用或服务而变化。基础镜像352可包括基础操作系统文件系统。基础操作系统可以是只读的。基础镜像352还可包括操作系统的与正在运行什么无关的基础工具。基础镜像352可包括基础目录和操作系统工具。服务文件系统353可包括用于资源、应用或服务的配置文件和规范。易失性文件系统354可包含特定于那一种部署的信息或数据,诸如二进制应用、特定地址和其他信息,所述信息或数据可配置或不配置为变量,所述变量包括但不限于:密码、会话密钥和私有密钥。文件系统可使用诸如overlayFS的技术作为一个单独的文件系统进行挂载,以允许一些只读文件系统和一些读-写文件系统,从而减少用于应用的复制数据的量。
图3C图示用于将诸如计算资源310的资源添加到系统100的示例过程流。虽然在这个实例中,主体资源将被描述为计算资源310,但是应理解,图3C过程流的主体资源也可以是存储资源410和/或联网资源510。在图3C的实例中,添加的资源310与控制器200不在同一个节点上。在步骤300.1处,资源310以切断状态耦合到控制器200。在图3C的实例中,使用带外管理连接260来连接资源310。然而,应理解,如果从业人员需要的话,则可使用其他网络连接。在步骤300.2和步骤300.3处,控制器逻辑205仔细检查系统的带外管理连接,并且使用带外管理连接260来识别和辨别正被添加的资源310的类型以及其配置。例如,控制器逻辑可查看所述资源的BIOS或其他信息(诸如序列号信息)作为获取类型和配置信息的参考。
在步骤300.4处,控制器使用全局系统规则来确定是否应自动地添加特定资源310。如果为否,则控制器将保持等待,直到其使用被授权为止(步骤300.5)。例如,在步骤300.4处,用户可对查询作出以下响应:所述用户不想要使用特定资源310,或者可自动地搁置所述特定资源,直到所述特定资源将被使用为止。如果步骤300.4确定应自动地添加资源310,则控制器将使用其规则来进行自动设置(步骤300.6)并且进行到步骤300.7。
在步骤300.7处,控制器选择并使用与所述资源相关联的模板230来将所述资源添加到系统状态220。在一些情况下,模板230可特定于特定资源。然而,一些模板230可覆盖多种资源类型。例如,一些模板230可以是跨硬件的。在步骤300.8处,控制器根据全局系统规则210通过其带外管理连接260来驱动资源310。在步骤300.9处,使用全局系统规则210,控制器从一个或多个选择的模板查找并加载所述资源的启动镜像。之后从来源于主体模板230的镜像启动资源310(步骤300.10)。然后,在启动资源310之后,可通过带内管理连接270从资源310接收有关资源310的附加信息(步骤300.11)。这种信息可包括例如固件版本、网卡、所述资源可能连接的任何其他装置。可在步骤300.12处将新信息添加到系统状态220。资源310之后可被视为已添加到资源池并且准备好用于分配(步骤300.13)。
关于图3C,如果资源和控制器在同一个节点上,则应理解,运行所述资源的服务可能远离所述节点。在这种情况下,控制器可对所述资源使用进程间通信技术,例如像unix套接字、回送适配器或其他进程间通信技术来与资源通信。根据系统规则,控制器可安装虚拟主机、或超级管理系统或容器主机,以使用从控制器已知的模板来运行应用。然后可将资源应用信息添加到系统状态220,并且所述资源将准备好用于分配。
将存储资源添加到系统:
图4A图示存储资源410到系统100的添加。在一个示例性实施方案中,可遵循图3C的示例过程流来将存储资源410添加到系统100,其中所添加的存储资源410与控制器200不在同一个节点上。另外,应注意,如果存储资源410预加载有镜像,则可遵循替代步骤,其中可使用任何网络连接来与存储资源410通信,启动存储资源410并且将信息添加到系统状态220。
当添加存储资源410时,所述存储资源耦合到控制器200并且可切断所述存储资源。存储资源410通过以下网络耦合到控制器:带外管理网络260、带内管理连接270、SAN280以及任选地连接290。存储资源410还可耦合或不耦合到一个或多个应用网络390,在所述应用网络处,服务、应用用户和/或客户端可彼此通信。应用或客户端可通过应用实现对资源的存储的直接或间接访问,由此所述资源的存储不通过SAN来访问。应用网络可具有内置存储,或者可在IT系统状态中作为存储资源进行访问和辨别。带外管理连接260可耦合到当存储资源410插入时开启的独立的带外管理装置415或存储资源410的电路。装置415可允许特征,包括但不限于:上电/切断装置、附连到控制台并输入命令、监视温度和其他计算机健康相关元素以及设定BIOS设定和在操作系统范围之外的其他特征。控制器200可通过带外管理网络260查看存储资源410。所述控制器还可辨别存储资源的类型并且使用带内管理或带外管理来辨别所述存储资源的配置。控制器逻辑205被配置为在带外管理260或带内管理270中仔细检查添加的硬件。如果检测到存储资源410,则控制器逻辑205可使用全局系统规则220来确定资源410是将自动地配置还是通过与用户交互来配置。如果所述资源是自动地添加,则设置将遵循控制器200内的全局系统规则210。如果所述资源是由用户添加,则控制器200内的全局系统规则210可能会要求用户确认资源的添加以及用户想要如何处理存储资源。控制器200可查询一个或多个API应用或以其他方式请求用户或控制栈的任何程序来确认新资源已被授权。授权过程也可使用密码术来自动地且安全地完成以确认新资源的合法性。控制器逻辑205将存储资源410添加到IT系统状态220,这包括存储资源410插入其中的交换机或网络。
控制器200可通过带外管理网络260上电存储资源410,并且存储资源410可使用全局系统规则210和控制器逻辑205例如通过SAN 280从加载自模板230的镜像450上电。所述镜像也可通过其他网络连接或者间接地通过另一个资源来加载。一旦被启动,通过带内管理连接270接收的与存储资源410相关的信息就也可被收集和添加到IT系统状态220。计算资源410现在被添加到存储资源池,并且所述存储资源将变为由控制器200管理并在IT系统状态220中加以跟踪的资源。
存储资源可包括一个存储资源池,或者IT系统可独立或同时使用或访问的多个存储资源池。当存储资源被添加时,所述存储资源可能会将一个存储池、多个存储池、一个存储池的一部分和/或多个存储池的多个部分提供到IT系统状态。控制器和/或存储资源可管理池的各种存储资源,或者所述池内的此类资源的分组。存储池可包含在多个存储资源上运行的多个存储池。例如,闪存盘或阵列、高速缓存盘片式盘或阵列、或专用计算节点上的与专用存储节点上的池耦合的存储池用于同时优化带宽和延迟。
图4B图示直接或间接地(通过另一个资源或数据库)从模板230加载到存储资源410以启动存储资源和/或加载应用的镜像450。镜像450可包括用于资源类型和硬件的启动文件440。启动文件440可包括对应于待部署的资源、应用或服务的内核441。启动文件440还可包括initrd或用于辅助启动过程的类似的文件系统。启动系统440可包括被配置用于不同的硬件类型和资源类型的多个内核或initrd。此外,镜像450可包括文件系统451。文件系统451可包括基础镜像452和对应的文件系统,以及服务镜像453和对应的文件系统,以及易失性镜像454和对应的文件系统。所加载的文件系统和数据可根据资源类型和待运行的应用或服务而变化。基础镜像452可包括基础操作系统文件系统。基础操作系统可以是只读的。基础镜像452还可包括操作系统的与正在运行什么无关的基础工具。基础镜像452可包括基础目录和操作系统工具。服务文件系统453可包括用于资源、应用或服务的配置文件和规范。易失性文件系统454可包含特定于那一种部署的信息或数据,诸如二进制应用、特定地址和其他信息,所述信息或数据可配置或不配置为变量,所述变量包括但不限于:密码、会话密钥和私有密钥。文件系统可使用诸如overlayFS的技术作为一个单独的文件系统进行挂载,以允许一些只读文件系统和一些读-写文件系统,从而减少用于应用的复制数据的量。
图5A图示一个实例,其中另一个存储资源,即直接附连存储510(其可采用具有JBOD的节点或其他类型的直接附连存储的形式)作为所述系统的附加存储资源耦合到存储资源410。JBOD是通常连接到提供存储资源的节点的外部盘阵列,并且JBOD将用作图5A中的直接附连存储510的示例形式,但是应理解,其他类型的直接附连存储也可被采用作为510。
例如,如关于图5A所描述,控制器200可将存储资源410和JBOD 510添加到其系统。JBOD 510通过带外管理连接260耦合到控制器200。存储资源410耦合到以下网络:带外管理连接260、带内管理连接270、SAN 280以及任选地连接290。存储节点410通过SAS或其他盘驱动构架520来与JBOD 510的存储通信。JBOD 510还可包括通过带外管理连接260与控制器通信的带外管理装置515。通过带外管理260,控制器200可检测JBOD 510和存储资源410。控制器200还可检测例如,如本文关于各种带外管理电路所描述的不受操作系统控制的其他参数。控制器200的全局系统规则210提供了用于启动或起动尚未被添加的JBOD和存储节点的配置起动规则。开启存储资源的顺序可由控制器逻辑205使用全局规则220来控制。根据一组全局系统规则220,控制器可首先上电JBOD 510,并且控制器200之后可使用加载的镜像450以与关于图4所描述类似的方式上电存储资源410。在另一组全局系统规则中,控制器200可首先开启存储资源410,然后开启JBOD 510。在其他全局系统规则中,可指定在驱动各种装置之间的定时或延迟。通过控制器逻辑205、全局系统规则210和/或模板230,可确定对各种资源的准备或操作状态的检测和/或由控制器200将所述检测用于装置分配管理中。IT系统状态220可通过与存储资源410通信来更新。存储节点410通过通过盘构架520访问JBOD来了解JBOD 510的存储参数和配置。存储资源410向控制器200提供信息,所述控制器之后利用有关可用的存储量和其他属性的信息更新IT系统状态220。当存储资源410被启动并且存储资源410被识别为系统100的存储资源400池的一部分时,控制器更新IT系统状态220。存储节点使用由控制器200设定的配置来处理用于控制JBOD存储资源的逻辑。例如,控制器可指示存储节点来配置JBOD以从RAID 10或其他配置创建池。
图5B图示用于将存储资源410和用于存储资源410的直接附连存储510添加到系统100的示例过程流。在步骤500.1处,通过带外管理连接260以切断状态将直接附连存储510耦合到控制器200。在步骤500.2处,通过带外管理连接260和带内管理连接270以切断状态将存储资源410耦合到控制器200,同时例如通过SAS 520,诸如盘驱动构架将存储资源410耦合到直接附连存储510。
控制器逻辑205之后可仔细检查带外管理连接260以检测存储资源410和直接附连存储510(步骤500.3)。虽然可使用任何网络连接,但是在这个实例中,带外管理可供控制器逻辑使用来识别和辨别正被添加的资源的类型(在这种情况下为存储资源410和直接附连存储510)以及其配置(步骤500.4)。
在步骤500.5处,控制器200针对每种类型的存储装置的特定存储类型选择并使用模板230,以将资源410和510添加到系统状态220。在步骤500.6处,控制器根据全局系统规则210(其可指定上电顺序,上电顺序,通过带外管理连接260以此顺序上电直接存储和存储节点(500.6)。使用全局系统规则210,控制器从针对所述存储资源410选择的模板230查找并加载存储资源410的启动镜像,然后从所述镜像启动存储资源(步骤500.7)。存储资源410通过通过盘构架520访问直接附连存储510来了解直接附连存储510的存储参数和配置。之后可通过接至存储资源的带内管理连接270将有关存储资源410和/或直接附连存储510的附加信息提供到控制器(步骤500.8)。在步骤500.9处,控制器利用在步骤500.8处获得的信息更新系统状态220。在步骤500.10处,控制器为存储资源410处理直接附连存储510以及如何配置直接附连存储设定配置。在步骤500.11处,之后可将包含存储资源410与直接附连存储510的组合的新资源添加到资源池并且使所述新资源准备好在所述系统内分配。
根据一个示例性实施方案的另一个方面,控制器可使用带外管理来识别栈中可能未参与计算或服务的其他装置。例如,此类装置可包括但不限于:冷却塔/空调、灯具、温度装置、声音装置、报警装置、电力系统、或与所述系统相关联的任何其他装置。
将联网资源添加到系统:
图6A图示联网资源610到系统100的添加。在一个示例性实施方案中,可遵循图3C的示例过程流来将联网资源610添加到系统100,其中所添加的联网资源610与控制器200不在同一个节点上。另外,应注意,如果联网资源610预加载有镜像,则可遵循替代步骤,其中可使用任何网络连接来与网络资源610通信,启动网络资源610并且将信息添加到系统状态220。
当添加联网资源610时,所述联网资源耦合到控制器200并且可切断所述联网资源。联网资源610可通过以下连接耦合到控制器200:带外管理连接260和/或带内管理连接270。所述联网资源任选地被插入到SAN 280和/或连接290中。联网资源610还可耦合或不耦合到一个或多个应用网络390,在所述应用网络处,服务、应用用户和/或客户端可彼此通信。带外管理连接260可耦合到当联网资源610插入时开启的独立的带外管理装置615或联网资源610的电路。装置615可允许特征,包括但不限于:上电/切断装置、附连到控制台并输入命令、监视温度和其他计算机健康相关元素以及设定BIOS设定和在操作系统范围之外的其他特征。控制器200可通过带外管理连接260查看联网资源610。所述控制器还可辨别联网资源的类型和/或网络构架并且使用带内管理或带外管理来辨别配置。控制器逻辑205被配置为在带外管理260或带内管理270中仔细检查添加的硬件。如果检测到联网资源610,则控制器逻辑205可使用全局系统规则220来确定联网资源610是将自动地配置还是通过与用户交互来配置。如果所述资源是自动地添加,则设置将遵循控制器200内的全局系统规则210。如果由用户添加,则控制器200内的全局系统规则210可能会要求用户确认资源的添加以及用户想要如何处理资源。控制器200可查询一个或多个API应用或以其他方式请求用户或控制栈的任何程序来确认新资源已被授权。授权过程也可使用密码术来自动地且安全地完成以确认新资源的合法性。控制器逻辑205之后可将联网资源610添加到IT系统状态220。对于无法对控制器表明自己身份的交换机,用户可手动地将所述交换机添加到系统状态。
如果联网资源是物理的,则控制器200可通过带外管理连接260上电联网资源610,并且联网资源610可使用全局系统规则210和控制器逻辑205例如通过SAN 280从加载自模板230的镜像605上电。所述镜像也可通过其他网络连接或者间接地通过其他资源来加载。一旦被启动,通过带内管理连接270接收的与联网资源610相关的信息就也可被收集和添加到IT系统状态220。联网资源610之后可被添加到存储资源池,并且所述联网资源将变为由控制器200管理并在IT系统状态220中加以跟踪的资源。任选地,一些联网资源交换机可通过连接到带外管理260的控制台端口来控制并且可在驱动时进行配置,或者可具有通过启动加载器,例如通过ONIE安装的交换机操作系统。
如果联网资源是虚拟的,则控制器200可通过带内管理网络270或通过带外管理260上电联网资源。联网资源610可使用全局系统规则210和控制器逻辑205通过SAN 280从加载自模板230的镜像650启动。一旦被启动,通过带内管理连接270接收的与联网资源610相关的信息就也可被收集和添加到IT系统状态220。联网资源610之后可被添加到存储资源池,并且所述联网资源将变为由控制器200管理并在IT系统状态220中加以跟踪的资源。
控制器200可指示联网资源(无论是物理的还是虚拟的)分派、重新分派或移动端口来连接到不同的物理或虚拟资源,即如本文所定义的连接、存储或计算资源。这可使用包括但不限于SDN、无限带宽分区、VLAN、vXLAN的技术来完成。控制器200可指示虚拟交换机对与某一虚拟交换机或托管虚拟交换机的资源进行通信的网络或互连器移动或分派虚拟接口。一些物理或虚拟交换机可由耦合到控制器的API控制。
控制器200还可指示计算资源、存储资源或联网资源改变构架类型(如果这种改变可行的话)。端口可被配置为切换到不同的构架,例如切换为混合无限带宽/以太网接口的构架。
控制器200可向可包括交换机的联网资源或切换多个应用网络的其他联网资源给出指令。交换机或网络装置可包括不同的构架,或者例如,它们可插入到无限带宽交换机、ROCE交换机和/或优选地具有SDN能力和多个构架的其他交换机中。
图6B图示直接或间接地(例如通过另一个资源或数据库)从模板230加载到联网资源610以启动联网资源和/或加载应用的镜像650。镜像650可包括用于资源类型和硬件的启动文件640。启动文件640可包括对应于待部署的资源、应用或服务的内核641。启动文件640还可包括initrd或用于辅助启动过程的类似的文件系统。启动系统640可包括被配置用于不同的硬件类型和资源类型的多个内核或initrd。此外,镜像650可包括文件系统651。文件系统651可包括基础镜像652和对应的文件系统,以及服务镜像653和对应的文件系统,以及易失性镜像654和对应的文件系统。所加载的文件系统和数据可根据资源类型和待运行的应用或服务而变化。基础镜像652可包括基础操作系统文件系统。基础操作系统可以是只读的。基础镜像652还可包括操作系统的与正在运行什么无关的基础工具。基础镜像652可包括基础目录和操作系统工具。服务文件系统653可包括用于资源、应用或服务的配置文件和规范。易失性文件系统654可包含特定于那一种部署的信息或数据,诸如二进制应用、特定地址和其他信息,所述信息或数据可配置或不配置为变量,所述变量包括但不限于:密码、会话密钥和私有密钥。文件系统可使用诸如overlayFS的技术作为一个单独的文件系统进行挂载,以允许一些只读文件系统和一些读-写文件系统,从而减少用于应用的复制数据的量。
在资源上部署应用或服务:
图7A图示系统100,所述系统100包括:控制器200;物理和虚拟计算资源,所述物理和虚拟计算资源包括第一计算节点311、第二计算节点312和第三计算节点313;存储资源410;以及网络资源610。所述资源被示出为以如本文关于图1至图6B所描述的方式设置并添加到IT系统状态220。
虽然在此图中示出了多个计算节点,但是根据一个示例性实施方案也可使用单个计算节点。计算节点可托管物理或虚拟计算资源,并且可在物理或虚拟计算节点上运行应用。类似地,虽然示出了单个网络提供商节点和存储节点,但是可预期的是,这些类型的多个资源节点可用于或不用于一个示例性实施方案的系统中。
服务或应用可部署在根据一个示例性实施方案的任何系统中。在计算节点上部署服务的实例可关于图7A进行描述,但是可类似地与系统100的不同布置一起使用。例如,图7A中的控制器200可根据全局系统规则210自动地配置呈计算节点311、312、313的形式的计算资源310。所述计算资源之后还可添加到IT系统状态220。控制器200因此可识别计算资源311、312、313(它们可能会被切断或不会被切断)以及在计算资源或节点上运行的可能任何物理或虚拟应用。控制器200还可根据全局系统规则210和模板230自动地配置一个或多个存储资源410和一个或多个联网资源610,并且将它们添加到IT系统状态220。控制器200可识别可能开始处于或不处于切断状态的存储资源410和联网资源610。
图7B图示用于将资源添加到IT系统100的示例过程。在步骤700.1处,将新的物理资源耦合到所述系统。在步骤700.2处,控制器逐渐了解新资源。可将所述资源连接到远程存储(步骤700.4)。在步骤700.3处,控制器配置启动新资源的方法。可将对所述资源进行的所有连接都记录到系统状态220(步骤700.5)。上文论述的图3C提供了关于诸如由图7B所示的过程流的示例性实施方案的更多细节。
图7C和图7D示出了用于在多个计算资源、多个服务器、多个虚拟机上和/或在多个站点中部署应用的示例过程流。这个实例的过程区别于标准模板部署的事实在于:IT系统100将需要部件来耦合冗余和相关的应用和/或服务。控制器逻辑可在步骤700.11处处理元模板,其中元模板可包含多个模板230、文件系统blob 232和配置多宿主服务所需的其他部件(它们可以是呈其他模板230的形式)。
在步骤700.12处,控制器逻辑205在系统状态220中检查可用资源;然而,如果不存在足够的资源,则控制器逻辑可削减可能部署的冗余服务的数量(参见700.16,其中辨别冗余服务的数量)。在步骤700.13处,控制器逻辑205配置将服务连接在一起所需的联网资源和互连器。如果跨多个站点部署服务或应用,则元模板可包括(或控制器逻辑205可配置)任选地从允许跨站点实现数据同步和互操作性的模板配置的服务(参见700.15)。
在步骤700.16处,控制器逻辑205可从系统规则确定元模板数据、资源可用性和冗余服务的数量(如果在多个主机上都将存在冗余服务的话)。在700.17处,存在与其他冗余服务的耦合和与母板的耦合。如果存在多个冗余主机,则控制器逻辑205或模板内的逻辑(可包含引导操作系统中的设定的配置文件的二进制234、守护进程232或文件系统blob)可防止网络地址与主机名冲突。任选地,控制器逻辑将提供网络地址(参见700.18),并且将每个冗余服务登记在DNS(700.19)和系统状态220(700.18)中。系统状态220将跟踪冗余服务,并且如果控制器逻辑205注意到诸如主机名(例如软件定义访问(SDA)名称)、dns名称、网络地址等参数冲突的用于服务已经在系统状态220中,则该控制器逻辑将不会允许重复注册。
由图7D所示的配置例程将处理元模板中的一个或多个模板。所述配置例程将处理所有冗余服务,将多主机或群集服务部署到多个主机,将服务部署成耦合所述主机。可从系统规则部署IT系统的任何进程都可运行配置例程。在多主机服务的情况下,示例例程可能像在700.32处一样处理服务模板,像在700.33处一样供给存储资源,像在700.35处一样驱动主机,像在700.36处一样将主机/计算资源与存储资源耦合(并且登记在系统状态220中)(然后针对所述数量的冗余服务进行重复(700.38);每一次都登记在系统状态220中(参见700.20)并且使用控制器逻辑来记录跟踪单独的服务并防止冲突的信息(参见700.31)。
服务模板中的一些服务模板可包含可耦合多主机服务的服务和工具。这些服务中的一些服务可被视为依赖关系(700.39),然后在700.40处的耦合例程可使用来耦合服务并且将所述耦合登记在系统状态220中。此外,服务模板之一可以是主模板,然后在700.39处的依赖服务模板将为从或副服务;并且在700.40处的耦合例程将连接所述服务。所述例程可在元模板中进行定义;例如,对于冗余dns配置,700.40处的耦合例程可包括从dns到主dns的连接以及对区域传送连同dnssec的配置。一些服务可使用物理存储(参见700.34)来提高性能,并且所述物理存储可能会加载有图5B中所公开的初步OS。用于耦合服务的工具可包含于模板自身中,并且在服务之间的配置可利用由控制器和/或多节点应用/服务中的其他主机可访问的api来完成。
控制器200可允许用户或控制器确定用于应用的适当的计算后端。控制器200可允许用户或控制器通过确定资源使用来将应用最优地放置在适当的物理或虚拟计算资源上。当将超级管理系统或其他计算后端部署到计算节点时,所述超级管理系统或其他计算后端可通过带内管理连接270往回向控制器报告资源利用统计。当控制器根据其自身的逻辑和全局系统规则,或根据用户输入决定在虚拟计算资源上创建应用时,所述控制器可自动地选择在最优主机上的超级管理系统并且上电所述主机上的虚拟计算资源。
例如,控制器200使用一个或多个模板230将应用或服务部署到一个或多个计算资源上。这种应用或服务例如可以是运行应用或服务的虚拟机。在一个实例中,图7A图示多个虚拟机(VM)在多个计算节点上的部署,如所示的控制器200可识别出在其计算资源池中存在呈计算节点311、312、313的形式的多个计算资源310。计算节点可例如利用超级管理系统或可选地在裸机上部署,在裸机中,由于速度原因,虚拟机的使用可能是不期望的。在这个实例中,计算资源310加载有超级管理系统应用,并且具有被配置和部署在计算节点311上的VM(1)321和VM(2)322。如果例如计算节点311不具有用于附加VM的资源,或者如果对于特定服务来说优选其他资源,则控制器200可基于栈状态220而识别出在计算节点311上不存在可用资源,或者优选在不同的资源中设置新的VM。还可能识别出超级管理系统加载在例如计算资源312上,而不是在资源313上,所述资源313可能是用于其他目的的裸机计算节点。因此,根据正安装的服务或应用模板的需求,以及系统状态220的状况,控制器在这个实例中可将计算节点313选择用于部署下一个需要的资源VM(3)323。
系统的计算资源可被配置为共享存储节点的存储资源上的存储。
用户可通过用户界面110或应用来请求为系统100设置服务。所述服务可包括但不限于:电子邮件服务;web服务;用户管理服务;网络提供商;LDAP;Dev工具;VOIP;认证工具;计费。
API应用120翻译用户或应用请求并且向控制器200发送消息。控制器200的服务模板或镜像230用于辨别所述服务需要哪些资源。待使用的资源之后基于根据IT系统状态220的可用性而辨别。控制器200为所需的计算服务对计算节点311、312或313中的一者或多者发出请求,为所需的存储资源对存储资源410发出请求,并且为所需的联网资源对网络资源610发出请求。之后更新IT系统状态220,从而辨别待分配的资源。然后根据所述服务或应用的模板230使用全局系统规则210来将所述服务安装到所分配的资源。
根据一个示例性实施方案,无论是同一个服务还是不同的服务都可使用多个计算节点,同时例如,可在计算节点之间共享存储服务和/或网络提供商池。
参考图8A,示出了系统100,其中控制器200,以及计算资源300、存储资源400和联网资源600在同一个或共享物理硬件,诸如单个节点上。图1至图10中所述和所示的各种特征可被并入到单个节点中。当节点驱动时,将控制器镜像加载在节点上。计算资源300、存储资源400和联网资源600利用模板230并使用全局系统规则210来配置。控制器200可被配置为将计算后端318、319加载为计算资源,所述计算后端可能被添加或不被添加到所述节点上或者一个或多个不同的节点上。此类后端318、319可包括但不限于:用于创建虚拟计算资源、联网资源和存储资源的虚拟化技术、容器和多租户进程。
应用或服务725,例如web、电子邮件、核心网络服务(DHCP、DNS等)、协作工具可安装在节点/装置上与控制器200共享的虚拟资源上。这些应用或服务可独立于控制器200移动到物理资源或虚拟资源。应用可在单个节点上的虚拟机上运行。
图8B示出了用于从单节点系统扩展到多节点系统(诸如具有如图8A所示的节点318和/或319)的示例过程流。因此,参考图8A和图8B,我们考虑了在单个服务器上运行的具有控制器200的IT系统;其中期望将所述IT系统向外扩展为多节点IT系统。由此,在扩展之前,IT系统处于单节点状态。如图8A所示,控制器200在多租户单节点系统上运行以驱动各种IT系统管理应用和/或资源,所述管理应用和/或资源可包括但不限于:存储资源、计算资源、超级管理系统和/或容器主机。
在步骤800.2处,通过通过带外管理连接260、带内管理连接270、SAN 280和/或网络290连接新的物理资源来将新的物理资源耦合到单节点系统。出于这个实例的目的,这个新的物理资源也可被称为硬件或主机。控制器200可在管理网络上检测新资源,然后查询装置。可选地,新的装置可将宣告其自身的消息广播到控制器200。例如,可通过MAC地址、带外管理和/或启动进入初步OS,并使用带内管理来辨别新的装置,从而辨别硬件类型。在任一事件下,在步骤800.3处,新的装置都将有关其节点类型以及其当前可用的硬件资源和软件资源的信息提供到控制器。控制器200之后了解新的装置以及其能力。
在步骤800.4处,可将分派到运行控制器200的系统的任务分配到新主机。例如,如果所述主机预加载有操作系统(诸如存储主机操作系统或超级管理系统),则控制器200分配新的硬件资源和/或能力。控制器之后可提供镜像并供给新硬件,或者新硬件可从控制器请求镜像并且使用上文和下文公开的方法来配置其自身。如果新主机无法托管存储资源或虚拟计算资源,则可使新资源可用于控制器200。控制器200之后可将现有的应用移动和/或分派到新资源,或者将新资源用于新创建的应用或后来创建的应用。
在步骤800.5处,IT系统可保持其当前的应用在控制器上运行或者将所述当前的应用迁移到新硬件。如果迁移虚拟计算资源,则可使用VM迁移技术(诸如qemu+kvm的迁移工具)并且更新系统状态以及新的系统规则。下文论述的改变管理技术可用于可靠而安全地进行这些改变。由于更多应用可能会被添加到所述系统,因此控制器可使用各种技术中的任一种技术来确定如何分配系统的资源,所述各种技术包括但不限于:轮询技术、加权轮询技术、最少利用技术、加权最少利用技术、基于利用情况而进行辅助训练的预测技术、调度技术、期望容量技术以及容量上限技术。
图8C图示用于将存储资源迁移到新的物理存储资源的示例过程流。存储资源之后可能会形成镜像,被迁移,或实现其组合(例如,存储可能会形成镜像,然后原始存储资源被断开)。在步骤820处,通过使新的存储资源联系控制器或者让控制器发现所述新的存储资源来将存储资源耦合到所述系统。这可利用带外管理连接260、带内管理连接270、SAN网络280或用应用网络可能正使用的平面网络或者其组合来完成。在带内管理下,可预启动操作系统,并且可将新资源连接到控制器。
在步骤822处,在新的存储资源上创建新的存储目标;并且在步骤824处可将此记录在数据库中。在一个实例中,可通过拷贝文件来创建存储目标。在另一个实例中,可通过创建块装置并拷贝数据(所述数据可以是呈一个或多个文件系统blob的形式)来创建存储目标。在另一个实例中,可通过以下方式来创建存储目标:在块装置之间对2或更多个存储资源形成镜像(例如,创建raid)并且任选地通过一种或多种远程存储传输来连接,所述远程存储传输包括但不限于:iscsi、iser、nvmeof、nfs、nfs over rdma、fc、fcoe、srp等。在步骤824处的数据库输入可包含计算资源(或其他类型的资源和/或主机)远程或本地(如果存储资源与其他资源或主机在同一个装置上的话)连接到新的存储资源的的信息。
在步骤826处,同步存储资源。例如,可对所述存储形成镜像。作为另一个实例,可使所述存储离线并且同步所述存储。在步骤826处可采用诸如raid 1(或其他类型的raid-但是通常是raid 1或raid 0,如果需要则也可以是raid 110(镜像raid 10)(mdadm、zfs、btrfs、硬件raid))的技术。
然后,在步骤828处的数据库记录之后,任选地连接来自旧存储资源的数据(如果之后发生了所述操作,则数据库可包含与拷贝所述数据的状况相关的信息,如果此类数据必须记录的话)。如果存储目标正被迁移离开原先的主机(例如,如先前根据图8A和图8B所说明从单节点系统移动到多节点系统和/或分布式IT系统),则新的存储资源可在步骤830处由控制器、系统状态、计算资源或其组合指定为主要存储资源。这可作为移除旧存储资源的步骤来完成。在一些情况下,然后会需要更新连接到资源的物理或虚拟主机,并且在一些情况下可在步骤832处在过渡期间切断所述物理或虚拟主机(之后会重新启动)(这可本文公开的技术来驱动物理或虚拟主机)。
图8D示出了用于将多租户系统的单个节点上的虚拟机、容器和/或进程迁移到可能具有用于计算和存储的单独的硬件的多节点系统的示例过程流。在步骤850处,控制器200创建可能在新节点(例如,参见图8A中的节点318和319)上的新的存储资源。在步骤852处,之后可切断旧应用主机。然后,在步骤854处,拷贝或同步数据。通过先在步骤852处关闭所述主机,之后在步骤854处进行拷贝/同步,所述迁移在其涉及将VM从单个节点迁移出来的情况下将更为安全。对于从VM转向物理资源,切断也将是有益的。步骤854也可在关闭之前经由数据预先同步步骤862来完成,这可以帮助最小化相关联的停机时间。此外,可能不会像在步骤852处一样关闭主机,在此情况下,旧主机保持在线,直到新主机准备就绪(或新的存储资源准备就绪)为止。下文将更详细地论述用于避免切断步骤852的技术。在步骤854处,除非使用热备用对存储资源形成镜像或同步所述存储资源,否则可任选地同步数据。
新的存储资源现在是可操作的,并且可在步骤856处记录在数据库中,使得控制器200能够在步骤858处将新主机连接到新的存储资源。当从具有多个虚拟主机的单个节点迁移时,可能需要针对多个主机重复这个过程(步骤860)。启动顺序可由控制器逻辑使用应用(如果所述应用被跟踪的话)的依赖关系来确定。
图8E示出了用于在系统中从单个节点扩展到多个节点的另一个示例过程流。在步骤870处,将新资源耦合到单节点系统。控制器可具有用于所述系统的一组系统规则和/或扩展规则(或者所述控制器可基于服务运行、所述服务的模板以及服务对彼此的依赖关系而获得扩展规则)。在步骤872处,控制器检查此类供使用的规则以有助于扩展。
如果新的物理资源包含存储资源,则可在步骤874处将存储资源从单节点或其他形式的更简单的IT系统移走(或可对存储资源形成镜像)。如果移动存储资源,则可在移动存储资源之后在步骤876处重新加载或重新启动计算资源或运行资源。在另一个实例中,可在步骤876处将计算资源连接到镜像存储资源并且使所述计算资源保持运行,同时可断开或禁用单节点系统上的旧存储资源或者先前的系统的硬件资源。例如,运行服务可耦合到2个镜像块装置-一个镜像块装置在单节点服务器上(例如,使用mdadm raid 1),并且另一个镜像块装置在存储资源上;并且一旦数据被同步,则就可断开单节点服务器上的驱动器。先前的硬件仍可包含IT系统的多个部分并且可与控制器在同一个节点上以混合模式运行所述系统(步骤878)。所述系统可继续通过这个迁移过程迭代,直到原始节点仅驱动控制器为止,由此所述系统被分布(步骤880)。另外,在图8E过程流的每个步骤处,控制器可更新系统状态220并且将所述系统的任何改变记录在数据库中(步骤882)。
参考图9A,应用910安装在资源900上。资源900可以是如本文关于图1至图10所描述的计算资源310、存储资源410或联网资源610。资源900可以是物理资源。物理资源可包括物理机或物理IT系统部件。资源900可以例如是物理计算资源、存储资源或联网资源。资源900可与如本文关于图2A至图10所描述的其他计算资源、联网资源或存储资源一起耦合到系统100中的控制器200。
资源900在开始时可以是关闭的。资源900可通过以下网络耦合到控制器:带外管理连接260、带内管理连接270、SAN 280和/或网络290。资源900还可耦合到一个或多个应用网络390,在所述应用网络处,服务、应用用户和/或客户端可彼此通信。带外管理连接260可耦合到当资源900插入时开启的独立的带外管理装置915或资源900的电路。所述装置可允许特征,包括但不限于:上电/切断装置、附连到控制台并输入命令、监视温度和其他计算机健康相关元素以及设定BIOS设定195和在操作系统范围之外的其他特征。
控制器200可通过带外管理网络260检测资源900。所述控制器还可辨别资源的类型并且使用带内管理或带外管理来辨别所述资源的配置。控制器逻辑205可被配置为在带外管理260或带内管理270中仔细检查附加硬件。如果检测到资源900,则控制器逻辑205可使用全局系统规则220来确定资源900是将自动地配置还是通过与用户交互来配置。如果所述资源是自动地添加,则设置将遵循控制器200内的全局系统规则210。如果所述资源是由用户添加,则控制器200内的全局系统规则210可能会要求用户确认资源的添加以及用户想要如何处理计算资源。控制器200可查询API应用或以其他方式请求用户或控制栈的任何程序来确认新资源已被授权。授权过程也可使用密码术来自动地且安全地完成以确认新资源的合法性。资源900之后被添加到IT系统状态220,这包括资源900插入其中的交换机或网络。
控制器200可通过带外管理网络260上电所述资源。控制器200可使用带外管理连接260来上电物理资源并且配置BIOS 195。控制器200可自动地使用控制台190并且选择所需的BIOS选项,这可由控制器200利用镜像识别读取控制台镜像并通过带外管理控制控制台190来完成。启动状态可通过镜像识别通过资源900的控制台,或由带外管理利用虚拟键盘查询所述资源上正监听的服务,或者查询应用910的服务来确定。一些应用可具有允许控制器200监视应用910中的设定,或者在一些情况下使用带内管理270改变所述设定的进程。
在物理资源900上(或如本文关于图1至图10所描述的资源300、310、311、312、313、400、410、411、412、600、610)的应用910可通过SAN 280或另一个网络使用BIOS启动选项或配置远程启动,诸如启用PXE启动或Flex启动的其他方法来启动。另外地或可选地,控制器200可使用带外管理260和/或带内管理连接270来指示物理资源900以启动镜像950中的应用镜像。控制器可配置关于所述资源的启动选项,或者可使用现有的启用的远程启动方法,诸如PXE启动或Flex启动。控制器200可任选地或可选地使用带外管理260来从ISO镜像启动,配置本地盘,然后指示所述资源从一个或多个本地盘920启动。一个或多个本地盘可加载启动文件。这可通过使用带外管理260、镜像识别和虚拟键盘来完成。所述资源还可能安装有启动文件和/或启动加载器。资源900和应用可使用全局系统规则210和控制器逻辑205例如通过SAN 280从加载自模板230的镜像950启动。全局系统规则220可指定启动顺序。例如,全局系统规则220可能会要求首先启动资源900,然后启动应用910。一旦使用镜像950启动资源900,通过带内管理连接270接收的与资源900相关的信息就也可被收集和添加到IT系统状态220。资源900可被添加到存储资源池,并且所述资源将变为由控制器200管理并在IT系统状态220中加以跟踪的资源。应用910也可使用镜像950或加载在资源900上的应用镜像956以全局系统规则220指定的顺序启动。
控制器200可利用带外管理连接260或另一种连接配置联网资源610以将应用910连接到应用网络390。物理资源900可连接到远程存储,诸如块存储资源,诸如包括但不限于:ISER(ISCSI over RDMA)、NVMEOF FCOE、FC或ISCSI、或者另一种存储后端,诸如SWIFT、GFUSTER或CEPHFS。IT系统状态220可在服务或应用启动并运行时使用带外管理连接260和/或带内管理连接270来更新。控制器200可使用带外管理连接260或带内管理连接270来确定物理资源900的电力状态,即确定为是接通还是切断。控制器200可使用带外管理连接260或带内管理连接270来确定服务或应用是处于运行状态还是处于启动状态。控制器可基于其所接收的信息以及全局系统规则210而采取其他动作。
图9B示出了直接或间接地(例如通过另一个资源或数据库)从模板230加载到计算节点以启动应用程序910的镜像950。镜像950可包括用于应用910的自定义内核941。
镜像950可包括用于资源类型和硬件的启动文件940。启动文件940可包括对应于待部署的资源、应用或服务的内核941。启动文件940还可包括initrd或用于辅助启动过程的类似的文件系统。启动系统940可包括被配置用于不同的硬件类型和资源类型的多个内核或initrd。此外,镜像450可包括文件系统951。文件系统951可包括基础镜像952和对应的文件系统,以及服务镜像953和对应的文件系统,以及易失性镜像954和对应的文件系统。所加载的文件系统和数据可根据资源类型和待运行的应用或服务而变化。基础镜像952可包括基础操作系统文件系统。基础操作系统可以是只读的。基础镜像952还可包括操作系统的与正在运行什么无关的基础工具。基础镜像952可包括基础目录和操作系统工具。服务文件系统953可包括用于资源、应用或服务的配置文件和规范。易失性文件系统594可包含特定于那一种部署的信息或数据,诸如二进制应用、特定地址和其他信息,所述信息或数据可配置或不配置为变量,所述变量包括但不限于:密码、会话密钥和私有密钥。文件系统可使用诸如overlayFS的技术作为一个单独的文件系统进行挂载,以允许一些只读文件系统和一些读-写文件系统,从而减少用于应用的复制数据的量。
图9C示出了从NT包安装应用的实例,所述NT包可以是一种类型的模板230。在步骤900.1处,控制器确定需要安装包blob。在步骤900.2处,控制器针对blob类型(块、文件、文件系统)在默认的数据存储上创建存储资源。在步骤900.3处,控制器经由可用于存储资源类型的存储传输连接到存储资源。在步骤900.4处,控制器将包blob复制到所连接的存储资源。控制器之后从存储资源断开(步骤900.5)并且将存储资源设定为只读(步骤900.6)。然后成功地安装包blob(步骤900.7)。
在另一个实例中,随附的附录B描述了有关所述系统如何将计算资源连接到overlayfs的示例细节。此类技术可使用来方便以下操作:根据图9A在资源上安装应用,或者根据来自图2F的步骤205.11从存储资源激活计算资源。
图9D图示部署在资源900上的应用910。资源900可包括计算节点,所述计算节点可包括虚拟计算资源,例如,所述虚拟计算资源可包括超级管理系统920、一个或多个虚拟机921、922和/或容器。资源900可以与本文关于图1至图10所描述类似的方式使用加载在资源900上的镜像950来配置。在这个实例中,资源920被示出为由超级管理系统管理虚拟机921、922。控制器200可使用带内管理270来与托管超级管理系统920的资源900通信,以创建资源并配置所述资源并且分配适当的硬件资源,所述硬件资源包括但不限于:CPU RAM、GPU、远程GPU(其可使用RDMA来远程地连接到另一个主机)、网络连接、网络构架连接和/或接至分区和/或分段网络的虚拟和物理连接。控制器200可使用虚拟控制台190(例如,包括但不限于SPICE或VNC)和镜像识别来控制资源900和超级管理系统920。另外地或可选地,或控制器200可使用带外管理260或带内管理连接270来指示超级管理系统920使用全局系统规则210从模板230启动应用镜像950。镜像950可存储在控制器200上,或者控制器200可将所述镜像移动或拷贝到存储资源410。用于VM 921、922的启动镜像可在本地作为文件例如存储在镜像950、或块装置上或存储在远程主机上,并且使用镜像类型,诸如qcow2或原始镜像通过文件共享,例如像NFS over RDMA/NFS来共享,或者所述启动镜像可使用ISCSI、ISER、NVMEOF、FC、FCOE来使用远程块装置。镜像950的部分可存储在存储资源410或计算节点310上。控制器200可使用全局规则和/或模板经由带外管理连接260或另一种连接来适当地配置联网资源610以支持所述应用。资源900上的应用910可通过以下方式来启动:使用经由SAN 280或另一个网络加载的镜像950,使用BIOS启动选项或允许资源900上的超级管理系统920连接到块存储资源,诸如包括但不限于:ISER(ISCSI over RDMA)、NVMEOF FCOE、FC或ISCSI、或者另一种存储后端,诸如SWIFT、GFUSTER或CEPHFS。存储资源可从关于某一存储资源的模板目标进行拷贝。IT系统状态220可通过向超级管理系统920查询信息来更新。带内管理连接270可与超级管理系统920通信并且可使用来确定资源的电力状态,即确定为是接通还是切断或者确定启动状态。超级管理系统920还可使用接至虚拟化应用910的虚拟带内连接923并且使用超级管理系统920来实现与带外管理类似的功能。根据服务或应用是否被驱动或启动,此信息可指示所述服务或应用是否启动和运行。
启动状态可通过镜像识别通过资源900的控制台190,或由带外管理260利用虚拟键盘查询所述资源上正监听的服务,或者查询应用910自身的服务来确定。一些应用可具有允许控制器200监视应用910中的设定,或者在一些情况下使用带内管理270改变所述设定的进程。一些应用可以是在虚拟资源上,并且控制器200可通过使用带内管理270(或带外管理260)与超级管理系统920通信来进行监视。应用910可能不具有这种用于监视的进程(或这种进程可被关闭来节省资源)和/或添加输入的进程;在这种情况下,控制器200可使用带外管理连接260并且使用镜像处理和/或虚拟键盘来登录到所述系统以进行改变和/或打开管理进程。与虚拟计算资源类似,可使用虚拟机控制台190。
图9E示出了用于将虚拟计算资源主机添加到IT系统100的示例过程流。在步骤900.11处,将能够作为虚拟计算资源的主机添加到所述系统。控制器可根据图15B的过程流配置裸机服务器(步骤900.12);或者可预加载操作系统和/或可预先配置主机(步骤900.13)。之后将所述资源添加到系统状态220作为虚拟计算资源池(步骤900.14),并且所述资源变得可由控制器200通过API来访问(步骤900.15)。API通常通过带内管理连接270来访问;然而,带内管理连接270可利用虚拟键盘选择性地启用和/或禁用;并且控制器可使用带外管理连接260以及虚拟键盘和监视器来通过带外连接260通信(步骤900.16)。在步骤900.17处,控制器现可利用新资源作为虚拟计算资源。
示例多控制器系统:
参考图10,示出了系统100,所述系统100具有:如本文关于图1至图10所描述的计算资源300、310,所述计算资源300、310包括多个物理计算节点311、312、313;如本文所述的存储资源400、410,所述存储资源400、410是呈多个存储节点411、412和JBOD 413的形式;多个控制器200a、200b,所述多个控制器200a、200b包括部件205、210、220、230(图1至图9C)并且像本文描述的控制器200那样配置;如本文所述的联网资源600、610,所述联网资源600、610包含多个构架611、612、613;以及应用网络390。
图10图示一个示例性实施方案的系统100的部件的可能布置,同时不对系统100的部件的可能布置进行限制。
用户界面或应用110与API应用120通信,所述API应用120与控制器200a或200b中的任一者或两者通信。控制器200a、200b可耦合到带外管理连接260、带内管理连接270、SAN280或联网带内管理连接290。如本文参考图1至图9C所描述,控制器200a、200b通过连接260、270、280以及任选地290耦合到计算节点311、312、313,存储411、412(包括JBOD 413)和联网资源610。应用网络390耦合到计算节点311、312、313,存储资源411、412、413和联网资源610。
控制器200a、200b可并行地操作。控制器200a或200b中的任一者最初可如本文关于图1至图9C所描述作为主控制器200进行操作。控制器200a、200b可被布置为从切断状态配置整个系统100。控制器200a、200b中的一者还可通过通过带外连接260和带内连接270探测其他控制器而从现有配置填充系统状态220。控制器200a、200b中的任一者可通过一个或多个连接260、270从资源或其他控制器访问或接收资源状况和相关信息。控制器或其他资源可更新其他控制器。因此,当附加控制器被添加到所述系统时,所述附加控制器可被配置为将系统100复原回到系统状态220。在所述控制器中的一者或主控制器发生故障的情况下,其他控制器可被指定为主控制器。IT系统状态220还可能能够从所述资源上可用或存储的状况信息进行重建。例如,应用可部署在计算资源上,其中所述应用被配置为创建虚拟计算资源,在所述虚拟计算资源处存储或复制系统状态。全局系统规则210、系统状态220和模板230还可被保存或拷贝在某一资源或资源组合上。因此,如果所有控制器被迫离线并且添加了新的控制器,则所述系统可被配置为允许新的控制器复原系统状态220。
联网资源610可包括多个网络构架。例如,如图10所示,多个网络构架可包括以下各项中的一者或多者:SDN以太网交换机611、ROCE交换机612、无限带宽交换机613、或者其他交换机或构架614。在计算节点上包括虚拟机的超级管理系统可利用所述构架中的所需的一者或多者连接到物理交换机或虚拟交换机。联网布置可准许例如出于安全或其他资源优化目的而例如通过分段联网来限制物理网络。。
系统100可通过如本文在图1至图10中所描述的控制器200自动地设置服务或应用用户可通过用户界面110或应用来请求为系统100设置服务。所述服务可包括但不限于:电子邮件服务;web服务;用户管理服务;网络提供商;LDAP;Dev工具;VOIP;认证工具;计费软件。API应用120翻译用户或应用请求并且向控制器200发送消息。控制器200的服务模板或镜像230用于辨别所述服务需要哪些资源。所需的资源基于根据系统状态220的可用性而辨别。控制器200为所需的计算服务对计算资源310或者计算节点311、312或313发出请求,为所需的存储资源对存储资源410发出请求,并且为所需的联网资源对网络资源610发出请求。之后更新系统状态220,从而辨别待分配的资源。然后根据服务模板使用全局系统规则210来将所述服务安装到所分配的资源。
增强的系统安全性:
参考图13A,示出了IT系统100,其中系统100包括资源1310,其中资源1310可以是裸机或物理资源。虽然图13A仅示出了连接到系统100的单个资源1310,但是应理解,系统100可包括多个资源1310。一个或多个资源1310可以是或可包括裸机云节点。裸机云节点可包括但不限于连接到外部网络1380的允许远程访问物理主机或虚拟机,允许创建虚拟机,允许外部用户在一个或多个资源上执行代码的资源。一个或多个资源1310可直接或间接地连接到外部网络1380或应用网络390。外部网络1380可以是互联网或不由控制器200或IT系统100的多个控制器管理的一个或多个其他资源。外部网络1380可包括但不限于:互联网、一种或多种互联网连接、不由控制器管理的一个或多个资源、其他广域网(例如,Stratcom、对等网状网络、或者可或不可公开访问的其他外部网络)或其他网络。
当物理资源1310被添加到IT系统100a时,所述物理资源耦合到控制器200并且可切断所述物理资源。资源1310通过以下一个或多个网络耦合到控制器200a:带外管理(OOBM)连接260、任选地带内管理(IBM)连接270以及任选地SAN连接280。如本文所使用的SAN 280可包括或不包括配置SAN。配置SAN可包括用于驱动或配置物理资源的SAN。配置SAN可以是SAN 280的一部分或者可与SAN 280分离。带内管理也可包括可为或不可为如本文所说明的SAN 280的配置SAN。在使用资源时,配置SAN还可能是禁用、断开或不可用的。虽然OOBM连接260对于系统100的OS来说是不可见的,但是IBM连接270和/或配置SAN对于系统100的OS来说可能是可见的。图13A的控制器200可以与本文参考图1至图12B描述的控制器200类似的方式进行配置。资源1310可包括内部存储。在一些配置中,控制器200可填充存储并且可暂时地将所述资源配置为连接到SAN以获取数据和/或信息。带外管理连接260可耦合到当资源1310插入时开启的独立的带外管理装置315或资源1310的电路。装置315可允许特征,包括但不限于:上电/切断装置、附连到控制台并输入命令、监视温度和其他计算机健康相关元素以及设定BIOS设定和在操作系统范围之外的其他特征。控制器200可通过带外管理网络260查看资源1310。所述控制器还可辨别资源的类型并且使用带内管理或带外管理来辨别所述资源的配置。下文论述的图13C至图13E图示用于将物理资源1310添加到IT系统100a和/或以增强系统安全性的方式起动或管理系统100的各种过程流。
如本文参考网络、联网资源、网络装置和/或联网接口所使用的术语“禁用”指代此类网络、联网资源、网络装置和/或联网接口实现以下操作所利用的动作:切断(手动地或自动地),物理地断开和/或虚拟地或以某一其他方式(例如,滤除)与网络,即虚拟网络(包括但不限于:VLAN、VXLAN、无限带宽分区)断开。术语“禁用”还涵盖对可操作性的单向或单方面限制,诸如防止资源向目的地发送或写入数据(同时仍然有能力从资源接收或读取数据),防止资源从某个源接收或读取数据(同时仍然有能力向目的地发送或写入数据)。此类网络、联网资源、网络装置和/或联网接口可与附加网络、虚拟网络断开或从资源的耦合中断开,并且保持连接到先前连接的网络、虚拟网络或资源的耦合。此外,此类联网资源或装置可从一个网络、虚拟网络或资源的耦合切换到另一者。
如本文参考网络、联网资源、网络装置和/或联网接口所使用的术语“启用”指代此类网络、联网资源、网络装置和/或联网接口实现以下操作所利用的动作:驱动(手动地或自动地),物理地连接和/或虚拟地或以某一其他方式连接到网络,即虚拟网络(包括但不限于:VLAN、VXLAN、无限带宽分区)。此类网络、联网资源、网络装置和/或联网接口可在已连接到另一个系统部件的情况下连接到附加网络、虚拟网络或资源的耦合。此外,此类联网资源或装置可从一个网络、虚拟网络或资源的耦合切换到另一者。术语“启用”还涵盖对可操作性的单向或单方面允许,诸如允许资源向目的地发送、写入数据或从所述目的地接收数据(同时仍然有能力限制来自某个源的数据),允许资源向某个源发送数据,从所述源接收或读取数据(同时仍然有能力限制来自目的地的数据)。
控制器逻辑205被配置为在带外管理连接260或带内管理连接270和/或配置SAN280中仔细检查添加的硬件。如果检测到资源1310,则控制器逻辑205可使用全局系统规则220来确定资源是将自动地配置还是通过与用户交互来配置。如果所述资源是自动地添加,则设置将遵循控制器200内的全局系统规则210。如果所述资源是由用户添加,则控制器200内的全局系统规则210可能会要求用户确认资源的添加以及用户想要如何处理资源1310。控制器200可查询API应用或以其他方式请求用户或控制栈的任何程序来确认新资源已被授权。授权过程也可使用密码术来自动地且安全地完成以确认新资源的合法性。控制器逻辑205之后将资源1310添加到IT系统状态220,这包括资源1310插入其中的交换机或网络。
在资源是物理的情况下,则控制器200可通过带外管理网络260上电资源,并且资源1310可使用全局系统规则210和控制器逻辑205例如通过SAN 280从加载自模板230的镜像350上电。所述镜像可通过其他网络连接或者间接地通过另一个资源来加载。一旦被启动,与资源1310相关的信息就也可被收集和添加到IT系统状态220。这可通过带内管理和/或配置SAN或带外管理连接来完成。资源1310可使用全局系统规则210和控制器逻辑205例如通过SAN 280从加载自模板230的镜像350启动。所述镜像可通过其他网络连接或者间接地通过另一个资源来加载。一旦被启动,通过带内管理连接270接收的与计算资源310相关的信息就也可被收集和添加到IT系统状态220。资源1310之后可被添加到存储资源池,并且所述资源将变为由控制器200管理并在IT系统状态220中加以跟踪的资源。
带内管理和/或配置SAN可由控制器200使用来设置、管理、使用资源1310或与所述资源通信并且运行任何命令或任务。然而,任选地,带内管理连接270可由控制器200配置为在任何时间或在设置、管理、使用或操作系统100或控制器200期间关闭或禁用。带内管理也可被配置为在任何时间或在设置、管理、使用或操作系统100或控制器200期间开启或启用。任选地,控制器200可以可控制地或可切换地使资源1310与接至一个或多个控制器200的带内管理连接270断开。这种断开或可断开性可以是物理的,例如使用自动化物理开关或某种开关来切断资源到网络的带内管理连接和/或配置SAN。断开例如可通过由网络交换机关断连接到资源1310的带内管理270和/或配置SAN 280的端口的电力来完成)。这种断开或部分断开还可使用软件定义的联网来完成,或者可使用软件定义的联网关于控制器物理地滤除。这种断开可通过控制器通过带内管理或带外管理来完成。根据示例性实施方案,在资源1310被添加到IT系统之前、期间或之后的任何时间点处,资源1310都可响应于来自控制器200的选择性控制指令而与带内管理连接270断开。
使用软件定义的联网,带内管理连接270和/或配置SAN 280可保留或不保留某种功能。带内管理270和/或配置SAN 280可用作有限的连接,以进行前往或始于控制器200或前往其他资源的通信。可对连接270进行限制以防止攻击者转移到控制器200、其他网络或其他资源。所述系统可被配置为防止诸如控制器200和资源1310的装置公开地通信以避免损害资源1310。例如,带内管理270和/或配置SAN 280通过软件定义的联网或硬件改变方法(诸如电子限制)可能仅允许带内管理和/或配置SAN输送数据但是不接收任何内容。带内管理和/或配置SAN可物理地或使用仅允许从控制器到资源的写入的软件定义的联网来配置为从控制器200到资源1310的单向写入部件或单向写入连接。连接的单向写入性质还可根据对安全的期望和系统操作的不同阶段或时间来控制或者开启或关闭。所述系统还可被配置为使得所述资源到控制器的写入或通信限于例如传达日志或报警。接口同样可通过以下技术移动到其他网络或在网络中进行添加和移除,所述技术包括但不限于:软件定义的联网、VLANS、VXLANS和/或无限带宽分区。例如,接口可连接到设置网络,从所述网络移除并且移动到用于运行时间的网络。可切断或限制从控制器到所述资源的通信,使得控制器在物理上可能无法对从资源1310发送的任何数据作出响应。根据一个实例,一旦资源1310被添加和启动,带内管理270就可被关闭,或者物理地或使用软件定义的联网滤除。带内管理可被配置为使得其能够向专用于日志管理的另一个资源发送数据。
带内管理可使用带外管理或软件定义的联网来开启和关闭。在带内管理断开的情况下,可能不需要守护进程运行,并且可使用键盘功能来重新启用带内管理。
另外,任选地,资源1310可能不具有带内管理连接,并且所述资源可通过带外管理来管理。
可选地或此外,带外管理可使用来通过以下方式操纵所述系统的各个方面,所述方式包括但不限于:例如键盘、虚拟键盘、盘安装控制台、附连虚拟盘、改变bios设定、改变启动参数和所述系统的其他方面、运行可能存在于可启动镜像上或安装CD的现有脚本、或者带外管理的允许控制器200和资源1310在暴露或没有暴露资源1310上运行的操作系统的情况下通信的其他特征。例如,控制器200可通过带外管理260使用此类工具来发送命令。控制器200还可使用镜像识别来协助控制资源1310。因此,使用带外管理连接,所述系统可防止或避免对通过带外管理连接连接到所述系统的所述资源的不期望的操纵。带外管理连接也可在操作所述系统期间或在操作所述系统期间的选定时间处配置为单向通信系统。
另外,如果从业人员需要的话,则带外管理连接260还可由控制器200以与带内管理连接相同的方式选择性地控制。
控制器200可能能够根据全局系统规则自动地开启和关闭资源,并且出于由IT系统用户确定的原因,诸如为了节省电力而关闭资源,或者为了提高应用性能而开启资源或者IT系统用户可能有的任何其他原因而更新IT系统状态。控制器还可能能够开启和关闭配置SAN、带内管理连接和带外管理连接,或者在系统操作的任何时间期间并出于各种安全目的而将此类连接指定为单向写入连接(例如,在资源1310连接到外部网络1380或内部网络390时禁用带内管理连接270或配置SAN 280)。也可使用单向带内管理来例如监视系统的健康,监视对于操作系统来说可能可见的日志和信息。
资源1310还可耦合到一个或多个内部网络390,诸如应用网络,在所述内部网络处,服务、应用用户和/或客户端可彼此通信。此类应用网络390也可能连接到外部网络1380或能够连接到所述外部网络。根据本文的包括但不限于图2A至图12B的示例性实施方案,带内管理可被断开,能够与资源或应用网络390断开,或者可从控制器提供单向写入,在所述资源或应用网络连接到外部网络的情况下,或者在所述资源连接到没有连接到外部网络的应用网络的情况下提供额外的安全性。
图13A的IT系统100可被配置为类似于如图3B所示的IT系统100;镜像350可直接或间接地(通过另一个资源或数据库)从模板230加载到资源1310以启动计算资源和/或加载应用。镜像350可包括用于资源类型和硬件的启动文件340。启动文件340可包括对应于待部署的资源、应用或服务的内核341。启动文件340还可包括initrd或用于辅助启动过程的类似的文件系统。启动系统340可包括被配置用于不同的硬件类型和资源类型的多个内核或initrd。此外,镜像350可包括文件系统351。文件系统351可包括基础镜像352和对应的文件系统,以及服务镜像353和对应的文件系统,以及易失性镜像354和对应的文件系统。所加载的文件系统和数据可根据资源类型和待运行的应用或服务而变化。基础镜像352可包括基础操作系统文件系统。基础操作系统可以是只读的。基础镜像352还可包括操作系统的与正在运行什么无关的基础工具。基础镜像352可包括基础目录和操作系统工具。服务文件系统353可包括用于资源、应用或服务的配置文件和规范。易失性文件系统354可包含特定于那一种部署的信息或数据,诸如二进制应用、特定地址和其他信息,所述信息或数据可配置或不配置为变量,所述变量包括但不限于:密码、会话密钥和私有密钥。文件系统可使用诸如overlayFS的技术作为一个单独的文件系统进行挂载,以允许一些只读文件系统和一些读-写文件系统,从而减少用于应用的复制数据的量。
图13B图示多个资源1310,所述多个资源1310各自包括托管或包括一个或多个虚拟机的一个或多个超级管理系统1311。控制器200a耦合到各自包括裸机资源的资源1310。如参考图13B所示和所描述,资源1310各自耦合到控制器200a。根据本文的示例性实施方案,带内管理连接270、配置SAN 280和/或带外管理连接260可以像关于图13A所描述那样配置。虚拟机或超级管理系统中的一个或多个可能会受到损害或被损害。在常规的系统中,在其他超级管理系统上的其他虚拟机则可能会被损害。例如,这可能会在虚拟机内部的超级管理系统漏洞运行中出现。例如,可能会发生从受损的超级管理系统到控制器200a,以及从受损的控制器200a到耦合到控制器200a的其他超级管理系统的转移。例如,可能会在受损的超级管理系统与目标超级管理系统之间使用连接到两者的网络进行所述转移。图13B所示的控制器200a和资源1310的带内管理270、配置SAN 280或带外管理260的布置(其中所述控制器和资源中的任一者或两者都可被选择性地控制来禁用在控制器200a与资源1310之间的给定链路中的带内连接(或配置SAN)和/或带外连接)可防止正被使用的受损的虚拟机摆脱一个超级管理系统并且转移到其他资源。
上文关于图1至图12描述的带内管理连接270和带外管理连接260也可以与关于图13A和图13B所描述类似的方式进行配置。
图13C图示用于将诸如裸机节点的物理资源添加到系统100,或者管理所述物理资源的示例过程流。可通过带外管理连接260和带内管理连接270和/或SAN将本文的如图13A和图13B所示或如关于图1至图12所示的资源1310连接到系统100的控制器。
在连接所述资源的实例之后,在步骤1370处禁用外部网络和/或应用网络。如上所述,各种技术中的任一种技术都可用于这种禁用。例如,在使用带内管理连接或配置SAN设置所述系统,添加所述资源,测试所述系统,更新所述系统或者执行其他任务或命令之前,如关于图13A和图13B所描述,禁用系统100的部件(或只有易受攻击的那些部件),将所述部件与任何外部网络或应用网络断开,或者将所述部件从任何外部网络或应用网络滤除。
在步骤1370之后,在步骤1371处则启用带内管理连接和/或配置SAN。步骤1370和1371的组合因此使所述资源与外部网络和/或应用网络隔离,同时带内管理和/或SAN连接是活动的。然后,可在控制器200的控制下经由带内管理连接在所述资源上运行命令(参见步骤1372)。例如,之后可在步骤1372处使用带内管理和/或配置SAN来执行设置和配置步骤(诸如包括但不限于本文关于图1至图13B描述的那些)。可选地或此外,可在步骤1372处使用带内管理和/或配置SAN来执行其他任务,包括但不限于:操作、更新或管理所述系统(这可包括但不限于任何改变管理或系统更新),测试、更新、传送数据,收集关于性能和健康的信息(包括但不限于:错误、cpu使用、网络使用、文件系统信息和存储使用)以及收集日志和可用于如本文在图1至图13B中所描述管理系统100的其他命令。
在添加所述资源,设置所述系统和/或执行此类任务或命令之后,可在步骤1373处如本文关于图13A和图13B所描述在一个或多个方向上禁用所述资源与控制器或所述系统的其他部件之间的带内管理连接270和/或配置SAN 280。这种禁用可采用如上所述的断开、滤除等等。在步骤1373之后,在步骤1374处则可恢复接至外部网络和/或应用网络的连接。例如,控制器可告知联网资源允许资源1310连接到应用网络或互联网。在测试或更新所述系统的情况下可遵循相同的步骤,即在启用带内管理连接或将所述带内管理连接连接(单向或双向)到所述资源之前,可断开或滤除带内管理连接,或外部网络和/或应用网络。因此,步骤1373和1374一起操作来使所述资源在所述资源连接到外部网络和/或应用网络时无法通过带内管理连接和/或配置SAN连接到控制器。
带外管理可用于管理系统或资源,设置系统或资源,配置、启动或者添加系统或资源。带外管理在用于本文的任何实施方案中的情况下可在启动之前使用虚拟键盘向机器发送命令以改变设定,并且还可通过对虚拟键盘进行输入来向操作系统发送命令;如果所述机器没有登入,则带外管理可使用虚拟键盘来输入用户名和密码并可使用镜像识别来验证登录,并且验证其所输入的命令并查看来查看所述命令是否被执行。如果物理资源仅具有图形控制台,则还可使用虚拟鼠标并且镜像识别将允许带外管理进行改变。
图13D为用于将诸如裸机节点的物理资源添加到系统100,或者管理所述物理资源的另一个示例过程流。在步骤1380处,可通过带外管理260将本文的如图13A和图13B所示或如图1至图12所示的资源连接到某一系统或资源。可借助于控制器通过通过带外管理提供对盘镜像(例如,ISO镜像)的访问来虚拟地连接盘(参见步骤1381)。之后可从盘镜像启动所述资源或所述系统(步骤1382),然后将文件从盘镜像拷贝到可启动盘(参见步骤1383)。这也可用于启动其中资源使用带外管理以此方式进行设置的系统。这还可用于配置和/或启动可能耦合在一起(包括但不限于利用联网资源耦合)的多个资源,而不管所述多个资源是否也包括控制器或构成系统。因此,虚拟盘可使用来允许控制器将盘镜像连接到所述资源,就好像将虚拟盘附连到所述资源一样。带外管理还可用于向所述资源发送文件。可在步骤1383处将_Data从虚拟盘拷贝到本地盘。盘镜像可包含所述资源在其操作中可拷贝和使用的文件。文件可通过调度的程序或来自带外管理的指令来拷贝或使用。控制器可通过带外管理使用虚拟键盘来登录到所述资源上,并且输入命令以将文件从虚拟盘拷贝到其自身的盘或所述资源可访问的其他存储。在步骤1384处,配置所述系统或资源以通过设定bios、efi或启动顺序设定来启动,因此将从可启动盘启动所述系统或资源。启动配置可在操作系统中使用EFI管理器,诸如efibootmgr,所述EFI管理器可通过带外管理或通过将其包括在安装程序脚本中来直接运行(例如,当所述资源启动时,所述资源会自动地运行使用efibootmgr的脚本)。此外,启动选项和任何其他bios改变可通过诸如Supermicro启动管理器的带外管理工具使用启动顺序命令或上传bios配置(诸如受Supermicro更新管理器支持的XML BIOS配置)来设定。bios也可使用键盘和镜像识别从控制台进行配置以设定包括启动顺序的适当的bios设定。安装程序可在加载的预先配置的镜像上运行。可通过观看屏幕并使用镜像识别来测试配置。在配置之后,则可启用所述资源(例如,驱动、启动、连接到应用网络,或其组合)(步骤1385)。图13E图示用于在这种情况下使用PXE、Flex启动或类似的网络启动将诸如裸机节点的物理资源添加到系统100,或者管理所述物理资源的另一个示例过程流。在步骤1390处,可通过(1)带内管理连接270和/或SAN以及(2)带外管理连接260将本文的如图13A和图13B所示或如关于图1至图12所示的资源1310连接到系统100的控制器。然后可在步骤1391处禁用外部网络和/或应用网络连接(例如,整体或部分物理地,利用SDN或虚拟地滤除或断开)(类似于上文针对步骤1370所论述的内容)。例如,在使用带内管理连接或SAN设置所述系统,添加所述资源,测试所述系统,更新所述系统或者执行其他任务或命令之前,如关于图13A和图13B所描述,禁用系统100的部件(或只有易受攻击的那些部件),将所述部件与任何外部网络或应用网络断开,或者将所述部件从任何外部网络或应用网络滤除。
在步骤1392处,确定资源的类型。例如,可使用带外管理工具,或者通过将盘镜像(例如,ISO镜像)连接到所述资源,就好像将所述盘附连到所述资源一样来从mac地址收集有关所述资源的信息,以暂时地启动操作系统,所述操作系统具有可用于辨别资源信息的工具。然后,在步骤1393处,将所述资源配置、或辨别为已针对PXE或flex启动等等进行预先配置。之后,在步骤1394处,驱动所述资源来进行PXE、Flex启动或类似的启动(或处于暂时地启动,再次驱动所述资源的情况)。然后,在步骤1395处,将所述资源从带内管理连接或SAN启动,或者从所述带内管理连接或SAN启动所述资源。在步骤1396处,以与参考图13D的步骤1383所描述类似的方式将数据拷贝到所述资源可访问的盘。然后,在步骤1397处,以与上文关于图13D的步骤1384所描述类似的方式配置所述资源以从一个或多个盘启动。在将所述资源辨别为已针对PXE、flex启动等等进行预先配置的情况下,可在从1393至1396的任何步骤处拷贝文件。如果启用了带内管理,则可在步骤1398处禁用所述带内管理,并且可在步骤1399处重新连接或启用应用网络或外部网络。
更进一步地,应理解,除OOBM之外的技术也可用于远程地启用(诸如上电)资源,并且验证所述资源已被上电。例如,所述系统可提示用户按压电源按钮,并且手动地告知控制器所述系统已被启动(或使用接至控制器的键盘/控制台连接)。另外,一旦所述系统已被启动,所述系统就可通过IBM查验控制器,并且控制器登录并告知所述系统重新启动(例如,通过诸如ssh、telnet或另一种在网络上实现的方法的方法)。例如,控制器可通过ssh引入并发送重新启动命令。如果正在使用PXE并且不存在OOBM,则在任何情况下,所述系统都应有办法远程地指示所述资源上电,或者告知用户手动地驱动所述资源。
部署控制器和/或环境:
在示例性实施方案中,控制器可从始发控制器200部署在系统内(其中这种始发控制器200可被称为“主控制器”)。因此,主控制器可设置可能是隔离或可隔离的IT系统或环境的系统或环境。
如本文所述的环境指代计算机系统内的能够彼此进行互操作的资源的集合。计算机系统在其内可包括多个环境;但是并不需要是这种情况。环境的一个或多个资源可包括在所述环境上运行的一个或多个实例、应用或子应用。更进一步地,环境可包括一个或多个环境或者子环境。环境可包括或不包括控制器,并且环境可操作一个或多个应用。环境的此类资源可包括例如用于运行特定环境,包括所述环境中的应用的联网资源、计算资源、存储资源和/或应用网络。因此,应理解,环境可提供一个或多个应用的功能。在一些示例中,本文描述的环境可或能够与其他环境物理地或虚拟地分离。另外,在其他示例中,环境可具有接至其他环境的网络连接,其中此类连接可根据需要来禁用或启用。
此外,主控制器可在各种环境中或在单独的系统中设置、部署和/或管理一个或多个附加控制器。此类附加控制器可或变得独立于主控制器。即使独立或准独立于主控制器,此类附加控制器也可在操作期间的各个时间处从主控制器(或者单独的监视器或利用监视应用的环境)获取指令或向所述主控制器发送信息。所述环境可被配置用于安全目的(例如,通过使得环境能够彼此隔离和/或与主控制器隔离)和/或用于各种管理目的。某一环境可连接到外部网络,而另一个相关环境可连接或不连接,或者被连接或不被连接到外部网络。
主控制器可管理环境或应用,而不管所述环境或应用是否是单独的系统,而且不管所述环境或应用是否包括控制器或子控制器。主控制器还可管理全局配置文件或其他数据的共享存储。主控制器还可根据不同控制器的功能将全局系统规则(例如,系统规则210)或其子集解析到所述不同控制器。每个新的控制器(所述新的控制器可被称为“子控制器”)可接收可能为主控制器的配置规则的子集的新的配置规则。部署到控制器的全局配置规则的子集可取决于或对应于正设置的IT系统的类型。主控制器可设置或部署新的控制器或单独的IT系统,所述新的控制器或单独的IT系统之后例如出于装运或分销或其他原因而与主控制器永久地分离。全局配置规则(或其子集)可定义用于在各种环境中设置应用或子应用的框架,以及所述应用或子应用可如何彼此交互。此类应用或环境可在包括由主控制器部署的全局配置规则的子集的子控制器上运行。在一些示例中,此类应用或环境可由主控制器管理。然而,在其他示例下,此类应用或环境不由主控制器管理。如果正在从主控制器产生新的控制器来管理应用或环境,则可跨多个应用对应用进行依赖查看以有助于新的控制器进行控制。
因此,在一个示例性实施方案中,系统可包括主控制器,所述主控制器被配置为部署另一个控制器,或包括这种其他控制器的IT系统。这种已实现的系统可被配置为与主控制器完全断开。一旦独立,这种系统就可被配置成作为独立的系统进行操作;或者所述系统可在操作期间的各个离散或连续的时间处由诸如主控制器的另一个控制器(或具有应用的环境)控制或监视。
图14A示出了示例系统,其中主控制器1401已将控制器1401a和1401b分别部署在不同的系统1400a和1400b上(其中1400a和1400b可被称为子系统;但是应理解,子系统1400a和1400b也可用作环境)。主控制器1401可以与上文论述的控制器200类似的方式进行配置。因此,所述主控制器可包括控制器逻辑205、全局系统规则210、系统状态220和模板230。
系统1400a和1400b分别包括相应地耦合到资源1420a、1420b的控制器1401a、1401b。主控制器1401可耦合到一个或多个其他控制器,诸如子系统1400a的控制器1401a和子系统1400b的控制器1401b。主控制器1400的全局规则210可包括可管理和控制其他控制器的规则。主控制器1401可连同控制器逻辑205、系统状态220和模板230一起使用此类全局规则210来通过控制器1401a、1401b以与本文参考图1至图13E所描述类似的方式设置、供给和部署子系统1400a、1400b。
例如,主控制器1401可将全局规则210(或其子集)作为规则1410a、1410b以如下方式分别加载到子系统1400a、1400b上:全局规则210(或其子集)指出控制器1401a、1401b以及其子系统1400a、1400b的操作。每个控制器1401a、1401b可具有可能为全局规则210的相同或不同子集的规则1410a、1410b。例如,全局规则210的哪个子集被供给到给定子系统可取决于正被部署的子系统的类型。控制器1401还可将待加载的数据加载或引导到系统资源1420a、1420b或控制器1401a、1401b。
主控制器1401可通过一个或多个带内管理连接270和/或一个或多个带外管理连接260或者SAN连接280来连接到其他控制器1401a、1401b,这些连接可在部署或管理的各个阶段以如本文所述的方式,例如参考图13A至图13E中描述的资源部署和管理进行启用或禁用。使用对带内管理连接270或带外管理连接260的选择性启用和禁用,可以子系统1400a、1400b在各个时间处可能对主系统100或控制器1401或关于彼此不了解(或具有有限、受控或受限的了解)的方式部署子系统1400a、1400b。
在一个示例性实施方案中,主控制器1401可操作集中式IT系统,所述集中式IT系统具有由主控制器1401部署和配置的本地控制器1401a、1401b,使得主控制器1401可部署和/或运行多个IT系统。此类IT系统可独立或不独立于彼此。主控制器1401可将监视设置为与其已创建的IT系统隔离或隔绝的单独的应用。用于监视的单独的控制台可被提供为连接在主控制器与一个或多个本地控制器之间和/或连接在可选择性地启用或禁用的环境之间。控制器1401可出于各种用途而部署例如隔离系统,所述隔离系统包括但不限于:商业系统、具有数据存储的制造系统、数据中心以及其他不同的功能节点,所述隔离系统各自具有不同的控制器以防运行中断或发生损害。这种隔离可以是彻底的或永久的,或者可以是准隔离的,例如,临时的、时间或任务相关的、通信方向相关的或其他参数相关的。例如,主控制器1401可被配置为向可能受限于或不限于某些预定义情形的所述系统提供指令,而子系统可能具有有限的能力或没有能力与主控制器通信。因此,这种子系统可能无法损害主控制器1401。主控制器1401和子控制器1401a、1401b可例如,如本文所述(其中下文论述了特定示例)通过禁用带内管理270,通过单向写入和/或通过限制对带外管理260的通信而彼此分离。例如,如果出现漏洞,则一个或多个控制器可关于一个或多个其他控制器禁用带内管理连接270以防止漏洞或访问的扩散。可关闭系统部段或使所述系统部段隔离。
子系统1400a、1400b还可通过带内管理270或带外管理260与另一个环境或系统共享资源或者连接到所述另一个环境或系统。
图14B和图14C是示出用于由主控制器供给子控制器的可能的步骤的示例流程。
在图14B中,在步骤1460处,主控制器供给或设置资源,诸如资源1420a或1420b。在步骤1461处,主控制器供给或设置子控制器。主控制器可使用上文针对在系统内设置资源论述的技术来执行步骤1460和1461。另外,虽然图14B示出了在步骤1461之前执行步骤1460,但是应理解,并不需要是这种情况。使用其系统规则210,主控制器1401可确定需要哪些资源,并且将资源定位到系统或网络上。主控制器可在步骤1461处通过将系统规则210加载到系统上来设置子控制器(或通过向子控制器提供关于如何设置并获取其自身的系统规则的指令)而设置或部署子控制器。这些指令可包括但不限于:配置资源、配置应用、用于创建由子控制器运行的IT系统的全局系统规则、用于重新连接到主控制器以收集新的或改变的规则的指令、用于与应用网络断开以为新的生产环境腾出空间的指令。在部署所述资源之后,在步骤1463处,主控制器则可经由系统规则210和/或系统状态220的更新而将所述资源分派到子控制器。
图14C示出了用于部署的替代过程流。在图14C的实例中,主控制器在步骤1470处部署子控制器(这可以像关于步骤1461所描述那样进行)。然后,在步骤1475处,子控制器使用诸如由图3C和图7B所示的那些的技术来部署所述资源。
图15A示出了用于系统100的主控制器1501产生环境1502、1503和1504的示例系统。环境1502包括资源1522,环境1503包括资源1523,并且环境1504包括资源1524。另外,环境1502、1503、1504可共享对共享资源池1525的访问。此类共享资源可包括但不限于:例如共享数据集、API、或需要彼此通信的应用运行。
在图15A的实例中,每个环境1502、1503、1504共享主控制器1501。主控制器1501的全局系统规则210可包括部署和管理环境的规则。资源1522、1523和/或1524可能被其各自的环境1501、1502、1503需要来管理一个或多个应用。用于此类应用的配置规则可由主控制器实现(或由环境中的本地控制器实现,如果存在的话),以便定义每个这种环境如何操作并且如何与其他应用和环境交互。主控制器1401可连同控制器逻辑205、系统状态220和模板230一起使用全局规则210来以与本文参考图1至图14C所描述的资源和系统部署类似的方式设置、供给和部署环境。如果环境包括本地控制器,则主控制器1501可以全局规则(或其子集)定义所述环境的操作的方式将全局规则210(或其子集)加载到本地控制器或相关联的存储上。
控制器1501可使用配置规则与系统规则210相应地部署和配置环境1502、1503、1504的资源1522、1523、1524和/或共享资源1525。控制器1501还可监视环境,或者配置资源1522、1523、1524(或共享资源1525)以允许监视相应的环境1502、1503、1504。这种监视可利用接至可被启用或禁用的单独的监视控制台的连接来进行,或者可通过主控制器来进行。主控制器1501可通过一个或多个带内管理连接270和/或一个或多个带外管理连接260或者SAN连接280来连接到环境1502、1503、1504中的一者或多者,这些连接可在部署或管理的各个阶段以如本文参考图13A至图13E和图14A中的资源部署和管理所描述的方式进行启用或禁用。使用对带内管理连接270或带外管理连接260或者SAN连接280的启用和禁用,可以在各个时间处关于彼此或对主系统100或控制器1501可能不了解或具有有限或受控的了解,或者不具有连接或具有有限或受控连接的方式部署环境1502、1503、1504。
所述环境可包括与其他资源耦合或交互,或耦合到连接到外部、外界环境的外部网络1580的一个资源或多个资源。所述环境可以是物理或非物理的。非物理在此上下文中表示环境共享一个或多个相同的物理主机,但是彼此虚拟地分离。所述环境和系统可部署在相同、相似但不同、或不同的硬件上。在一些示例中,环境1502、1503、1504可以是彼此的有效副本;但是在其他示例中,环境1502、1503、1504可提供不同于彼此的功能。作为一个实例,环境的资源可以是服务器。
根据本文描述的技术将系统和资源置于单独的环境或子系统中可允许出于安全和/或出于性能原因而隔离应用。分离的环境还可减轻受损资源的影响。例如,一个环境可能包含敏感数据并且可被配置为较少互联网暴露,而另一个环境可托管面向互联网的应用。
图15B图示如图15A所示的控制器设置一个环境的示例过程流。在这种实例中,可向所述系统分配创建和设置新环境的任务。这可由用户请求,或者在参与特定任务或特定的一系列任务时执行的系统规则触发。下文论述的图17A至图18B图示在所述系统创建新环境的情况下的特定的改变管理任务或特定的一系列任务的示例。然而,可能存在控制器可创建和设置新环境的多种情形。
因此,参考图15B,在设置新环境的过程中,控制器选择环境规则(步骤1500.1)。根据环境规则,使用全局系统规则210和模板230,控制器为所述环境查找资源(步骤1500.2)。规则可具有优选资源选择层级,所述优选资源选择层级保持仔细检查直到查找到所述环境所需的资源为止。在步骤1500.3处,控制器例如使用图3C或图7B中描述的技术将在步骤1500.2处查找到的资源分配到所述环境。控制器之后关于新环境配置所述系统的联网资源,以确保新环境与其他系统部件之间的兼容且有效的连接(步骤1500.4)。在步骤1500.5处将系统状态更新为每个资源都被启用并且每个模板都受到处理。控制器之后设置并实现所述环境的所述资源的集成和互操作性,并且驱动任何应用来部署新环境(步骤1500.6)。在步骤1500.7处再次将系统状态更新为所述环境已变得可用。
图15C图示如图15A所示的控制器设置多个环境的示例过程流。当设置多个环境时,可针对每个环境使用图15B中描述的技术来并行地设置所述环境。然而,应理解,可如图15C所描述以有序顺序或连续地设置所述环境。参考图15C,在步骤1500.10处,控制器设置并部署第一新环境(这可以像关于图15B的步骤1500.1所描述的那样执行)。对于不同类型的环境以及对于不同的环境如何相互操作,可能存在不用的环境规则。在步骤1500.11处,控制器为新环境选择环境规则。在步骤1500.12处,控制器根据可由系统规则210定义的偏好顺序来查找资源。在步骤1500.13处,控制器将在步骤1500.12处查找到的资源分配到下一个环境。所述环境可共享或不共享资源。在步骤1500.14处,控制器使用系统规则210关于下一个环境并在具有依赖关系的环境之间配置所述系统的联网资源。在步骤1500.15处将系统状态更新为每个资源都被启用,每个模板都受到处理并且联网资源都已被配置,包括环境的依赖关系。控制器之后设置并实现下一个环境和各环境之间的资源的集成和互操作性,并且驱动任何应用来部署新环境(步骤1500.16)。在步骤1500.17处将系统状态更新为下一个环境已变得可用。
用于支持监视的单向通信:
图16A图示第一控制器1601作为主控制器操作来设置一个或多个控制器,诸如1601a、1601b和/或1601b的示例性实施方案。主控制器1601可用于使用上文关于控制器,诸如控制器200/1401/1501论述的技术来产生多个云、主机、系统和/或应用作为在其操作中可能彼此依赖或不依赖的环境1602、1603、1604。如图16A所示,IT系统、环境、云和/或其任一个或多个组合可作为环境1602、1603、1604产生。环境1602包括第二控制器1601a,环境1603包括第三控制器1601b,并且环境1604包括第四控制器1601c。环境1602、1603、1604各自还可分别包括一个或多个资源1642、1643、1644。资源可包括在其之上运行的一个或多个应用1642、1643、1644。这些应用可连接到无论是共享还是不共享的所分配的资源。这些或其他应用可在互联网或者池1660中的一个或多个共享资源上运行,所述池1660还可包括共享应用或应用网络。应用可为用户或者环境或云中的一个或多个提供服务。环境1602、1603、1604可共享资源或数据库,和/或可包括或使用池1660中专门分配到特定环境的资源。所述系统的包括主控制器1601和/或一个或多个环境的各种部件还可能能够连接到应用网络或诸如互联网的外部网络1615。
在任何资源、环境或控制器与另一个资源、环境、控制器或外部连接之间,可能存在可被配置为以如本文关于图13A至图13E所描述的方式选择性地启用和/或禁用的连接。例如,任何资源、控制器、环境或外部连接可通过带内管理连接270、带外管理连接270或SAN连接280,或者通过物理断开来禁用,或者与控制器1601、环境1602、环境1603和/或环境1604、资源或应用断开。作为一个实例,为了保护控制器1601,可禁用在控制器1601与环境1602、1603、1604中的任一者之间的带内管理连接270。作为另一个实例,可在环境1602、1603、1604的运转期间选择性地禁用或启用这样的一个或多个带内管理连接270。除了本文关于图13A至图13E论述的安全目的,禁用环境1602、1603、1604或将主控制器1601与所述环境断开可允许主控制器1601将环境1602、1603、1604转变为云,所述云之后可与主控制器1601或者其他云或环境分离。在这种意义上,控制器1601被配置为产生多个云、主机或系统。
使用本文描述的元件的禁用或断开,可允许用户出于特定用途而通过主控制器1601有限地访问环境。例如,可对开发者提供对开发环境的访问。作为另一个实例,应用的管理员可能会受限于特定应用或应用网络。作为另一个实例,可由主控制器1601查阅日志来收集数据,而不用使所述主控制器自身受到其所产生的环境或控制器的损害。
在主控制器1601设置环境1602之后,则可将环境1602与主控制器1601断开,由此环境1602可独立于主控制器1601运转和/或可由主控制器1601或者与环境1602相关联或由所述环境运行的其他应用选择性地进行监视和维护。
诸如环境1602的环境可耦合到允许购买者或用户访问环境1602的用户界面或控制台1640。环境1602可将用户控制台作为应用进行托管。环境1602可由用户远程地访问。每个环境1602、1603、1604可由共用或单独的用户界面或控制台访问。
图16B示出了示例系统,其中环境1602、1603、1604可被配置为例如使用控制台(所述控制台可以是可直接或间接地与环境1641连接的任何控制台)对可查看日志的另一个环境1641进行写入。以此方式,环境1641可用作日志服务器,环境1602、1603、1604中的一者或多者将事件写入到所述日志服务器。主控制器1601之后可访问日志服务器1641来监视环境1602、1603、1604上的事件,而不用如下所述维持与此类环境1602、1603、1604的直接连接。环境1641还可与主控制器1601选择性地断开,并且可被配置为只能从其他环境1602、1603、1604读取。
主控制器1601可被配置为即使主控制器1601如图16C所示与其环境1602、1603、1604中的任一者断开也能监视其环境1602、1603、1604中的一些或全部。图16C示出了在主控制器1601与环境1602、1603、1604之间的带内管理连接270已被断开,这可在环境1602、1603、1604受损的情况下帮助保护主控制器1601。如图16C所示,即使主控制器1601与环境1602之间的带内连接270已被断开,仍然可保持主控制器1601与诸如1602的环境之间的带外连接260。另外,环境1641可具有接至主控制器1601的可选择性地启用或禁用的连接。主控制器1601可将监视设置为在环境1641内的与环境1602、1603、1604隔离或隔绝的单独的应用。主控制器1601可使用单向通信来进行监视。例如,可通过单向通信将日志从环境1602、1603、1604提供到环境1641。通过这种单向写入并经由环境1641与主控制器1601之间的连接,尽管在主控制器1601与环境1602、1603、1604之间不存在带内连接270,主控制器1601也可通过环境1641收集数据并且监视环境1602、1603、1604,从而减轻环境1602、1603、1604损害主控制器1601的风险。可滤除或控制所述访问和/或访问可独立于互联网。例如,如图16D所示,如果主控制器1601与环境1602之间的带内连接270被连接,则主控制器1601可控制网络交换机1650来将环境1602与诸如互联网的外部网络1615断开。当环境1602通过带内连接270与主控制器1601连接时,环境1602与外部网络1615的断开可为主控制器1601提供增强的安全性。
于是,应理解,图16B至图16D的示例性实施方案示出了主控制器如何能够在最小化在所述环境1602、1603、1604中的暴露的同时安全地监视环境1602、1603、1604。因此,主控制器1601可使自身(或至少使自身与带内链路断开)与环境1602、1603、1604断开,同时仍然维护经由环境1641的日志服务器监视所述环境的机制,环境1602、1603、1604对于所述环境1641可具有单向写入特权。相应地,如果在查阅环境1641的日志的过程中,主控制器1601发现环境1602可能受到恶意软件的损害,则主控制器1601可使用SDN工具来隔离所述环境1602,使得仅存在带外连接260(例如,参见图16C)。另外,控制器1601可向环境1602的管理员发送关于可能的问题的通知。控制器也可通过选择性地禁用在受损的环境与其他环境1603、1604中的任一者之间的任何连接(例如,带内管理连接270)来隔离受损的环境1602。在另一个实例中,主控制器1601可能会通过日志发现环境1603内的资源运行过热。这可使主控制器干预环境1603的应用或服务,并且将所述应用或服务迁移到不同的环境(无论所述不同的环境是预先存在的环境还是新产生的环境)。
控制器1601还可根据购买者或用户请求来设置一个或多个类似的系统。如图16E所示,例如可在控制台或其他位置提供购买应用1650,所述购买应用1650允许购买者购买云、主机、系统环境或应用或请求为所述购买者设置所述云、主机、系统环境或应用。购买应用1650可指示控制器1601设置环境1602。环境1602可包括控制器1601a,所述控制器1601a将例如通过向环境1602分配或分派资源来部署或构建IT系统。
图16F图示在环境1602、1603、1604各自作为云进行操作并且可包括或不包括控制器的情况下可使用的用户界面1632、1633、1634。用户界面1632、1633、1634(所述用户界面分别对应于环境1602、1603、1604)各自可通过主控制器1601连接,所述主控制器1601管理用户界面与所述环境的连接。可选地或此外,接口1640a(所述接口可采用控制台的形式)可直接耦合到环境1602,接口1640b(所述接口可采用控制台的形式)可直接耦合到环境1603,并且接口1640c(所述接口可采用控制台的形式)可直接耦合到环境1604。无论与主控制器1601的连接是否分离、断开或禁用,用户都可使用接口中的一者或多者来使用环境或云。
对系统进行克隆和备份以实现改变管理支持:
环境1602、1603、1604中的一些可以是开发者使用的典型设置软件的克隆。所述环境也可以是作为一种衡量手段的当前工作环境的克隆;例如,在不同位置中的另一个数据中心中克隆环境以减少因位置所致的延迟。
因此,应理解,主控制器以单独的环境或子系统设置系统和资源可允许克隆或备份IT系统的部分。这可用于如本文所述的测试和改变管理中。此类改变可包括但不限于:对代码、配置规则、安全补丁、模板的改变和/或其他改变。全局规则可包括子集,该子集包括可以如本文在不同示例中所述的改变管理中使用的备份规则。因此,应当理解,备份规则(本文其他地方所述的示例)可以用于改变管理中。参考图21A-J更详细描述实现备份规则的系统的示例。
根据示例性实施方案,如本文所述的IT系统或控制器可被配置为克隆一个或多个环境。新的或克隆的环境可包括或不包括与原始环境相同的资源。例如,可能期望或需要在新的或新克隆的环境中使用物理和/或虚拟资源的完全不同的组合。可能期望将环境克隆到可管理使用状况的优化的不同的位置或时区。可能期望将环境克隆到虚拟环境。在克隆环境的过程中,控制器或主控制器的全局系统规则210和全局模板230可包括关于如何配置和/或运行各种类型的硬件的信息。系统规则210内的配置规则可指出资源的布置和使用,使得考虑到特定的可用资源,资源和应用是更优的。
主控制器结构提供了其以单独的环境或子系统设置系统和资源的能力,提供用于克隆环境的结构,提供用于创建开发环境的结构,和/或提供用于部署一组标准化的应用和/或资源的结构。此类应用或资源可包括例如,包括但不限于可用于以下各项的那些:开发和/或运行应用,或者备份IT系统的部分或从所述IT系统的备份恢复和其他灾难复原应用(例如,LAMP(apache、mysql、php)栈、包含运行web前端和react/redux的服务器和运行node.js的资源的系统以及mongo数据库和其他标准化的“栈”)。有时,主控制器可部署作为另一个环境的克隆的环境,并且所述主控制器可从用于创建原始环境的配置规则的子集获得配置规则。
根据示例性实施方案,系统或系统子集的改变管理可通过克隆一个或多个环境或此类环境的配置规则或配置规则的子集来完成。可能需要改变来例如进行以下改变:代码、配置规则、安全补丁、模板、硬件改变、添加/移除部件和依赖应用以及其他改变。
根据示例性实施方案,系统的此类改变可被自动化来避免直接手动输入改变出错。在对活动系统自动地实现改变之前,可由用户在开发环境中测试改变。根据示例性实施方案,活动的生产环境可通过使用控制器来自动地上电、供给和/或配置使用与生产环境相同的配置规则配置的环境而进行克隆。可运行和运转克隆环境(而备份环境可优选地留作应急之用以防需要撤销改变)。这可使用控制器如上文参考图1至图16F所描述使用系统规则210、模板230和/或系统状态220创建、配置和/或供给新的系统或环境来完成。新环境可用作开发环境以测试稍后将在生产环境中实现的改变。控制器可将这种环境的基础结构从软件定义结构产生到开发环境中。
如本文所定义的生产环境表示用于操作系统的环境,而不是仅用于开发和测试的环境,即开发环境。
当克隆生产环境时,基础结构或克隆的开发环境由控制器根据全局系统规则210配置并且产生为生产环境。开发环境的改变可能是对代码、模板230(改变现有的模板或与新模板的创建相关的改变)、安全和/或应用或基础结构配置进行的。当开发环境中实现的新的改变根据需要通过开发和/或测试准备就绪时,所述系统对开发环境自动地进行改变,之后将运行或部署为生产环境。然后将新的系统规则210上传到环境的控制器和/或主控制器,这些控制器将对特定环境应用系统规则改变。在控制器中更新系统状态220,并且可实现附加或修正的模板230。因此,可由开发环境和/或主控制器维护基础结构的完整的系统知识,而且有能力重新创建所述基础结构的完整的系统知识。如本文所使用的完整的系统知识可包括但不限于对资源状态、资源可用性和系统配置的系统知识。完整的系统知识可由控制器从系统规则210、系统状态220收集,和/或使用一个或多个带内管理连接270、一个或多个带外管理连接260和/或一个或多个SAN连接280查询资源来收集。尤其可查询资源来确定资源、网络或应用利用情况、配置状态或可用性。
克隆的基础结构或环境可经由系统规则210进行软件定义;但是并不需要是这种情况。克隆的基础结构或环境通常可包括或不包括前端或用户界面,以及一个或多个所分配的资源,所述一个或多个所分配的资源可包括或不包括计算资源、联网资源、存储资源和/或应用联网资源。环境可布置或不布置为前端、中间件和数据库。服务或开发环境可利用生产环境的系统规则210启动。尤其出于克隆的目的,被分配来供控制器使用的基础结构或环境可以是软件定义的。因此,环境可能能够通过系统规则210部署并且能够通过类似的手段来克隆。在需要改变之前或需要改变时,克隆或开发环境可由本地控制器或主控制器使用系统规则210自动地设置。
在开发环境与生产环境隔离之前,生产环境的数据可写入到只读数据存储中,由此所述数据将由开发环境用于开发和测试过程中。
在生产环境在线时,用户或客户端可对开发环境进行改变并且测试所述改变。当在开发环境中测试开发和改变时,可改变数据存储中的数据。对于易失性或可写入系统,在设置或部署开发环境之后,还可使用所述数据与生产环境的数据的热同步。可在开发环境中进行对系统、应用和/或环境的所需的改变并且测试所述所需的改变。之后对系统规则210的脚本进行所需的改变以为环境或为整个系统和主控制器创建新版本。
根据另一个示例性实施方案,新开发的环境之后可被自动地实现为新的生产环境,同时维护先前的生产环境或使所述先前的生产环境处于全功能状态,因此对早先状态的生产环境的恢复是可能的,而不会丢失大量数据。然后利用系统规则210内的新的配置规则启动开发环境,并且使数据库与生产数据库同步并切换为可写入数据库。原始生产数据库则可切换为只读数据库。先前的生产环境在所需的一段时间内完好无损地保存为先前的生产环境的拷贝,以防需要恢复回到先前的生产环境。
环境可被配置为可包括或包含物理和/或虚拟主机、网络和其他资源的单个服务器或实例。在另一个示例性实施方案中,环境可以是包含物理和/或虚拟主机、网络和其他资源的多个服务器。例如,可能存在形成负载均衡的面向互联网的应用的多个服务器;并且所述服务器可连接到多个API/中间件应用(所述API/中间件应用可被托管在一个或多个服务器上)。环境的数据库可包括一个或多个数据库,API在所述环境中向所述一个或多个数据库传达查询。所述环境可以静态或易失性的形式从系统规则210构建。环境或实例可以是虚拟或物理的,或者每一者的组合。
应用的配置规则或系统规则210内的系统的配置规则可指定各种计算后端(例如,裸机、AMD epyc服务器、在qemu/kvm上的Intel Haswell),并且可包括关于在新的计算后端上如何运行应用或服务的规则。因此,如果例如存在用于测试的资源的可用性降低的情形,则可将应用虚拟化。
使用并根据本文描述的示例,测试环境可部署在原始环境使用物理资源的虚拟资源上。使用如本文参考图1至图18B所描述的控制器,且如本文进一步所描述,系统或环境可从物理环境克隆到可整体或部分包括或不包括虚拟资源的环境。
图17A图示系统100包括控制器1701和一个或多个环境,例如1702、1703、1704的示例性实施方案。系统100可以是静态系统,即活动用户数据不会不断地改变所述系统的状态或者频繁地操纵数据的系统,例如仅托管静态web页面的系统。所述系统可耦合到用户(或应用)界面110。
控制器1701可以与本文描述的控制器200/1401/1501/1601类似的方式进行配置,并且可类似地包括全局系统规则210、控制器逻辑205、模板230和系统状态元素220。控制器1701可以如本文参考图14A至图16F所描述的方式耦合到一个或多个其他控制器或环境。控制器1701的全局规则210可包括可管理和控制其他控制器和/或环境的规则。此类全局规则210、控制器逻辑205、系统状态220和模板230可使用来通过控制器1701以与本文参考图1至图16F所描述类似的方式设置、供给和部署系统或环境。每个环境可使用全局系统规则210的定义环境的操作(包括关于其他环境定义环境的操作)的子集来配置。
全局系统规则210还可包括改变管理规则1711。改变管理规则1711包括在可能需要对系统100、全局系统规则210和/或控制器逻辑205的改变时可使用的一组规则和/或指令。改变管理规则1711可被配置为允许用户或开发者开发改变,在测试环境中测试改变,然后通过将所述改变自动转换为系统规则210内的一组新的配置规则来实现改变。改变管理规则1711可以是全局系统规则210的子集(如图17A所示),或者所述改变管理规则可与全局系统规则210分离。改变管理规则可使用全局系统规则210的子集。例如,全局系统规则210可包括被配置为创建新环境的环境创建规则的子集。改变管理规则1711可被配置为设置并使用由控制器1701配置和设置的系统或环境来拷贝并克隆系统100的一些或所有方面。改变管理规则1711可被配置为在通过使用系统的克隆来进行测试和实现而实现之前准许测试对所述系统提出的新的改变。改变管理规则1711可以包括或可以使用下文所述的备份规则。
如图17A所示的克隆1705可包括系统100的特定环境或一部分的规则、逻辑、应用和/或资源。克隆1705可包括与系统100相似或不同的硬件,并且可使用或不使用虚拟资源。克隆1705可被设置为应用。克隆1705可使用系统100或控制器1701的系统规则210内的配置规则来设置和配置。克隆1705可包括或不包括控制器。克隆1705可包括如上文更详细地描述的所分配的联网资源、计算资源、应用网络和/或数据存储资源。此类资源可使用改变管理规则1711在控制器1701的控制下进行分配。克隆1705可耦合到允许用户对克隆1705进行改变的用户界面。用户界面可与系统100的用户界面110相同或不同。克隆1705可用于整个系统100,或者系统100的一部分,诸如一个或多个环境和/或控制器。克隆1705可为或不为系统100的完整拷贝。克隆1705可通过带内管理连接270、带外管理连接260和/或SAN连接280耦合到系统100,这些连接可被选择性地启用和/或完全禁用,和/或被转换为单方向读取和/或写入连接。因此,可改变通向克隆环境1705中的数据的连接,以在克隆环境1705在测试期间与生产环境隔离时,或者在克隆环境1705准备好作为新的生产环境运行之前都使克隆数据为只读的。例如,如果克隆1705具有接至环境1702的数据连接,则出于隔离目的而使此数据连接为只读的。
任选的备份1706可用于或不用于整个系统,或者系统的一部分,诸如一个或多个环境和/或控制器。当执行改变管理功能时,也可以备份各个服务。例如,参考图21A-J,可以如下所述使用备份规则执行服务的备份。备份1706可包括如上文更详细地描述的联网资源、计算资源、应用网络和/或数据存储资源。备份1706可包括或不包括控制器。备份1706可以是系统100的完整拷贝。备份1706可作为应用或者使用与系统100相似或不同的硬件来设置。备份1706可通过带内管理连接270、带外管理连接260和/或SAN连接280耦合到系统100,这些连接可被选择性地启用和/或完全禁用,和/或被转换为单方向读取和/或写入连接。
图17B图示用于使用图17A的克隆和备份系统进行系统改变管理的示例过程流。在步骤1785处,用户或管理应用发起对系统的改变。此类改变可包括但不限于对以下各项的改变:代码、配置规则、安全补丁、模板、硬件改变、添加/移除部件和/或依赖应用以及其他改变。在步骤1786处,控制器1701以关于图14A至图16F描述的方式设置环境,以成为克隆环境1705(其中克隆环境可具有其自身的新的控制器,或者所述克隆环境可使用与原始环境相同的控制器)。
在步骤1787处,控制器1701可使用包括改变管理规则1711的全局规则210来将所述系统的一个或多个环境(例如,“生产环境”)的全部或一部分克隆到克隆环境1705(例如,其中克隆环境1705可用作“开发环境”)。可以使用备份规则2104提取数据,其中提取的数据后期可以使用如参考图21A-J所述的备份规则进行恢复。因此,控制器1701辨别并分配资源,使用系统规则210来设置和分配克隆资源并且将以下各项中的任一者从所述环境复制到克隆环境:数据、配置、代码、可执行文件和驱动应用所需的其他信息。在步骤1788处,控制器1701任选地通过使用系统规则210内的配置规则设置另一个环境以用作备份1706(具有或不具有控制器)来备份所述系统,并且复制模板230、控制器逻辑205和全局规则210。
在从生产环境产生克隆1705之后,克隆1705可用作开发环境,其中可对以下各项进行改变:克隆的代码、配置规则、安全补丁、模板和其他改变。在步骤1789处,可在实现之前测试对开发环境的改变。在测试期间,克隆1706可与生产环境(系统100)或所述系统的其他部件隔离。这可通过使控制器1701选择性地禁用在系统100与克隆1706之间的连接中的一者或多者(例如,通过禁用带内管理连接270和/或禁用应用网络连接)来实现。在步骤1790处,关于所改变的开发环境是否准备就绪进行确定)。如果步骤1709确定开发环境尚未准备就绪(这是通常由开发者作出的决策),则过程流返回到步骤1789以对克隆环境1705进行进一步改变。如果步骤1790确定开发环境已准备就绪,则可在步骤1791处切换开发环境和生产环境。也就是说,控制器将开发环境1705转变为新的生产环境,并且先前的生产环境可保持不变,直至到开发环境/新的生产环境的转变完成且令人满意为止。
图18A图示可在系统的改变管理中设置和使用的系统100的另一个示例性实施方案。在图18A的实例中,系统100包括控制器1801和一个或多个环境1802、1803、1804、1805。所述系统被示出为具有克隆环境1807和备份系统1808。备份和数据恢复可以使用本文其他地方所述的备份规则执行。这里参考图21A-J进一步描述备份系统的管理的示例。
控制器1801以与本文描述的控制器200/1401/1501/1601/1701类似的方式进行配置,并且可包括全局系统规则210、控制器逻辑205、模板230和系统状态220元素。控制器1801可以如本文参考图14A至图16F所描述的方式耦合到一个或多个其他控制器或环境。控制器1801的全局规则210可包括可管理和控制其他控制器和/或环境的规则。此类全局规则210、控制器逻辑205、系统状态220和模板230可使用来通过控制器1801以与本文参考图1至图17B所描述类似的方式设置、供给和部署系统或环境。每个环境可使用全局规则210的定义环境的操作(包括关于其他环境定义环境的操作)的子集来配置。
全局规则210还可包括改变管理规则1811。改变管理规则1811可包括在可能需要对系统、全局规则和/或逻辑的改变时可使用的一组规则和/或指令。改变管理规则可被配置为允许用户或开发者开发改变,在测试环境中测试改变,然后通过将所述改变自动转换为系统规则210内的一组新的配置规则来实现改变。改变管理规则1811可以是全局系统规则210的子集(如图18A所示),或者所述改变管理规则可与全局系统规则210分离。改变管理规则1711可使用全局系统规则210的子集。例如,全局系统规则210可包括被配置为创建新环境的环境创建规则的子集。改变管理规则1811可被配置为设置并使用由控制器1801设置和部署的系统或环境来拷贝并克隆系统100的一些或所有方面。改变管理规则1811可被配置为在通过使用系统的克隆来进行测试和实现而实现之前准许测试对所述系统提出的新的改变。改变管理规则1811可以包括或可以使用本文其他地方所述的备份规则。备份规则可以使用备份规则2104提取数据,其中提取的数据后期可以使用如参考图21A-J所述的备份规则进行恢复。
如图18A所示的克隆环境1807可包括:控制器1807a,所述控制器1807a具有规则、控制器逻辑、模板、系统状态数据;以及所分配的资源1820,所述所分配的资源1820可根据控制器1801的全局系统规则210和改变管理规则1811来分配到一个或多个环境中并且进行设置。备份系统1808也包括:控制器1808a,所述控制器1808a具有规则、控制器逻辑、模板、系统状态数据;以及所分配的资源1821,所述所分配的资源1821可根据控制器1801的全局系统规则210和改变管理规则1811来分配到一个或多个环境中并且进行设置。所述系统可耦合到用户(或应用)界面110或者另一个用户界面。
克隆环境1807可包括系统的特定环境或一部分的规则、逻辑、模板、系统状态、应用和/或资源。克隆1807可包括与系统100相似或不同的硬件,并且克隆1807可使用或不使用虚拟资源。克隆1807可被设置为应用。克隆1807可使用系统100或所述环境的控制器1801的系统规则210内的配置规则来设置和配置。克隆1807可包括或不包括控制器,并且所述克隆可与生产环境共享控制器。克隆1807可包括如上文更详细地描述的所分配的联网资源、计算资源、应用网络和/或数据存储资源。此类资源可使用改变管理规则1811在控制器1801的控制下进行分配。克隆1807可耦合到允许用户对克隆1807进行改变的用户界面。用户界面可与系统100的用户界面110相同或不同。
克隆1807可用于整个系统,或者系统的一部分,诸如一个或多个环境和/或控制器。在一个示例性实施方案中,克隆1807可包括耦合到环境1802的数据资源1820的热备用数据资源1820a。热备用数据资源1820a可在设置克隆1807时使用并且用于测试改变中。例如,如本文关于图18B所描述,热备用数据资源1820a可在改变管理期间与存储资源1820选择性地断开或隔离。隆1807可为或不为系统100的完整拷贝。克隆1807可通过带内管理连接270、带外管理连接260和/或SAN连接280耦合到系统100,这些连接可被选择性地启用和/或完全禁用,和/或被转换为单方向读取和/或写入连接。因此,可改变通向克隆环境1807中的易失性数据的连接,以在克隆环境1807在测试期间与生产环境隔离时,或者在克隆环境准备好作为新的生产环境运行之前都使克隆数据为只读的。
当将旧的生产环境切换为新的生产环境时,控制器1801可指示前端、负载均衡器或者其他应用或资源指向新的生产环境。因此,当发生改变时,可对用户、应用、资源和/或其他连接进行重新定向。这可例如通过多种方法来完成,所述方法包括但不限于:改变ip/ipoib地址列表、无限带宽GUID、dns服务器、无限带宽分区/opensm配置;或改变软件定义的联网(SDN)配置,这可通过向联网资源发送指令来完成。前端、负载均衡器或其他应用和/或资源可指向系统、环境和/或其他应用,包括但不限于:数据库、中间件和/或其他后端。因此,负载均衡器可用于改变管理中以从旧的生产环境切换为新环境。
克隆1807和备份1808可被设置和用于管理系统改变的各方面中。此类改变可包括但不限于对以下各项的改变:代码、配置规则、安全补丁、模板、硬件改变、添加/移除部件和/或依赖应用以及其他改变。备份1808可用于整个系统,或者系统的一部分,诸如一个或多个环境和/或控制器1801。备份1808可包括如上文更详细地描述的联网资源、计算资源、应用网络和/或数据存储资源。备份1808可包括或不包括控制器。备份1808可以是系统100的完整拷贝。备份1808可包括从备份中所包括的配置规则重新构建系统/环境/应用所需的数据,并且可包括所用应用数据。备份1808可作为应用或者使用与系统100相似或不同的硬件来设置。备份1808可通过带内管理连接270、带外管理连接260和/或SAN连接280耦合到系统100,这些连接可被选择性地启用和/或禁用,和/或被转换为单向读取和/或写入连接。
图18B是示出尤其是在图18A的系统包括易失性数据的情况下或者在数据库可写入的情况下使用图18A的系统进行改变管理的示例过程流。这种数据库可以是系统中的环境所使用的存储资源的一部分。在步骤1870处,使用全局系统规则来部署所述系统(包括生产环境)。
在步骤1871处,则使用包括改变管理规则1811的全局系统规则210,以及由主控制器1801或控制器在克隆环境中进行的资源分配来克隆生产环境以创建只读环境,其中禁止克隆环境对所述系统进行写入。之后可将克隆环境用作开发环境。
在步骤1872处,激活热备用1820a并且将所述热备用分配到克隆环境1807以存储系统100中改变的任何易失性数据。更新克隆数据,使得能够利用更新数据测试开发环境的新版本。可在任何时间关闭热同步数据。例如,当测试从旧的环境或生产环境到开发环境的写入时可关闭热同步数据。
在步骤1873处,用户则可使用克隆环境1807作为开发环境来处理改变。之后在步骤1874处测试开发环境的改变。在步骤1875处,关于所改变的开发环境是否准备就绪进行确定(通常这种确定由开发者进行)。如果步骤1875确定改变尚未准备就绪,则过程流可返回到步骤1873,其中用户可能会退回并且对开发环境进行其他改变。如果步骤1875确定改变已准备好运行,则过程流进行到步骤1876,其中关于特定环境在系统或控制器中更新配置规则并且将使用所述配置规则来部署新的更新的环境。
在步骤1877处,则可在运行之前利用所述改变以具有所需的资源和硬件分配的所需的最终配置重新部署开发环境(或新环境)。在处于1878的下一个步骤中,禁用原始生产环境的写入能力,并且原始生产环境变为只读。虽然原始生产环境是只读的,但是作为1878的一部分,可将来自原始生产环境(或者可能还有新的生产环境)的任何新数据都缓存并辨别为过渡数据。作为一个实例,可将所述数据缓存在数据库服务器或其他合适的位置(例如,共享环境)中。然后在步骤1879处切换开发环境(或新环境)和旧的生产环境,使得开发环境(或新环境)变为生产环境。
在此切换之后,在步骤1880处使新的生产环境为可写入的。如果如由开发者所确定,认为新的生产环境是在步骤1881处工作,则在切换过程期间的任何数据丢失(其中此类数据已在步骤1878处缓存)可在步骤1884处利用写入到新环境的数据来调和。在此调和之后,完成改变(步骤1885)。
如果步骤1881确定新的生产环境不在工作(例如,辨别出需要所述系统恢复到旧系统的问题),则在步骤1882处将所述环境切换回去,使得旧的生产环境再次变为生产环境。作为步骤182的一部分,将控制器1801上的用于主体环境的配置规则恢复回到曾用于现在恢复的生产环境的先前的版本。
在步骤1883处,可例如使用缓存数据来确定数据库的改变;并且利用旧的配置规则将数据恢复到旧的生产环境。为了支持步骤1883,数据库可维护对其所进行的改变的日志,从而准许步骤1883确定可能需要撤销的改变。可使用备份数据库来缓存如上所述的数据,其中对缓存数据进行跟踪和时钟控制;可恢复时钟来确定进行了哪些改变。可将快照和日志用于这个目的。
在1883处恢复缓存数据之后,所述过程可返回到步骤1871,如果需要重新开始的话。
本文论述的示例改变管理系统可例如在升级、添加或移除硬件或软件时,在修补软件时,在检测到系统故障时,在硬件故障或检测期间迁移主机时使用,用于动态资源迁移,用于改变配置规则或模板,和/或用于进行任何其他系统相关改变中。控制器1801或系统100可被配置为检测故障,并且在检测到故障时可将改变管理规则或现有的配置规则自动地实现到可用于所述系统或所述控制器的其他硬件上。可使用的故障检测方法的实例包括但不限于:查验主机、查询应用和运行各种测试或测试套件。本文描述的改变管理配置规则可在检测到故障时实现。在检测到故障时,此类规则可触发由控制器实现的备份环境的自动生成、数据或资源的自动迁移。对备份资源的选择可以是基于资源参数。此类资源参数可包括但不限于:使用信息、速度、配置规则以及数据容量和使用状况。
如本文所述,任何时候发生改变,控制器都将对所述改变以及实际上执行了什么创建日志。出于安全或系统更新考虑,本文描述的控制器可被配置为根据配置规则自动地开启和关闭,并且更新IT系统状态。所述控制器可能会关闭资源来节省电力。所述控制器可能会为了不同的效率而在不同的时间开启或迁移资源。在迁移中,遵循配置规则,并且可对环境或系统进行备份或复制。如果存在安全漏洞,则控制器可分离并关断受攻击的区域。
配置和控制服务依赖关系
图19A图示本文参考图1-18所述的示例性系统100,其中该系统100增加了相关服务(或应用),如在一个或多个资源1910上的对应服务模组1901、1902所示的。服务模组1901、1902可以采取提供服务的计算机可执行代码的形式,该服务诸如认证、电子邮件、Web邮件、web服务、中间件、数据库以及/或者其他服务。对于每次参考,服务1901可以被称为服务A,且服务1902可以被称为服务B。
图19A的系统可以连接到外部网络1980以及/或者应用网络390,其连接可以根据图13A到图13E中所提出的描述来禁用及启用。服务1901、1902由控制器200配置为资源或应用,如本文中参考图1至图18在各实施例中所述。
服务1901、1902可以由控制器200控制并且也可通过通用API 1903相互操作。服务1901、1902可使用通用API 1903来解决依赖关系。例如,假设web应用需要http服务器。具有apache或nginx的服务可具有“web服务器通用API”,该web服务器通用API将使该服务器提供webapp的内容并且可将信息代理回到应用。服务1901、1902和API 1903可通过管理网络或通过管理连接(例如260和/或270)而直接耦合到控制器200或控制器200、服务1901、通用API 1903以及服务1902之间的任何其他网络连接。
通用API 1903可在服务1901、1902、控制器200或系统100的其他资源上运行或对其作出响应。服务模组1901的服务A可为依赖性服务,其经配置成由服务模组1902上的依赖服务B通过通用API 1903调用,以执行一个或多个功能。依赖性服务是可满足另一服务的依赖性的服务(在此情况下,另一服务是依赖服务)。依赖性服务也可为可选的依赖性服务。
服务1901、1902可由控制器200配置或创建以安全地彼此相互操作。
图19A的服务及控制器的相互操作的示例参考图19B加以描述。服务可例如由控制器200使用如本文所述的配置规则来启动(见19.1)。控制器200如本文附图所述来解决依赖关系(见19.2)。服务在其规范中可具有一组列出的依赖关系。作为示例,此可经由服务的json规范完成。系统也可使用类似于包管理器如何工作的依赖性解决方案并且为用户提供满足依赖性的方法。作为另一示例,系统可为用户提供安装依赖性服务或使用/选择现有的依赖性服务。依赖性服务B通过通用API 1903对依赖性服务A进行调用(见19.3)。此调用可以是配置服务A来支持服务B的调用或使用服务A的一些功能的调用。通用API1903翻译依赖性服务A(1901)以指示依赖性服务A运行命令(见19.4)。翻译可由服务之一或控制器200进行API调用来完成(且其中API的功能可以调用不同API上的另一API功能)。
根据本文所述的一些示例性实施方案,可以为具有控制器200以及依赖性和依赖服务1901、1902的系统提供额外的安全性。当多个服务同时连接到带内管理连接270且可直接彼此通信时,这种额外的安全性是有用的。在配置、重新配置和/或操作期间,可以根据和/或使用控制器全局系统规则210、逻辑205、模板230和/或系统状态220提供该额外的安全性。在一些示例性实施方案中,服务1901、1902经由带内管理连接270或其他网络或互联来通信,可以提供额外的安全性。根据一些示例性实施方案,依赖性服务1901经配置,以要求控制器验证依赖服务1902。这可以包括验证依赖服务1902的识别码或验证在API上运行命令的服务的识别码。根据一些示例性实施方案,依赖性服务配置为要求控制器200允许为特定依赖服务(或多个服务)执行一个和/或多个功能、任务或其组合的权限。依赖性服务也可以或替代地在配置或重新配置依赖性服务时由控制器200提供权限或者一组权限。也可以更新依赖性服务中所设定的权限。例如,在增加依赖性服务时,可以更新权限组。
在图19C所示的流中描述服务之间所提供的认证和权限的示例。在步骤19.11处,控制器200在配置期间将密钥或密钥对提供给服务,以由此在服务与控制器200之间实现认证。可在系统中针对每个服务执行此步骤。通过依赖性服务从控制器请求验证,由依赖性服务对依赖服务请求的性能进行验证。服务以及传输到服务的数据和传输自服务的数据的识别码例如可以通过相互tls认证、公用密钥认证、其他形式的加密、任何基于网络的认证技术(包括但不限于vlans、vxlans、分区等)、和/或其组合来进行验证。虚拟网络和分区可以用于将网络分成小网络,诸如无限带宽分区。这可以导致这样的现象,如果端口在所谓的分区4和15,则只能在分区4和15上对话。根据一些变型,控制器200可以用作密钥分配中心,同时维护独立于控制器200的服务模组1901、1902内的验证或认证。在服务的配置期间,控制器可以为服务提供密钥或密钥对,该服务可以包括能够直接或间接地在服务和控制器200之间进行认证的公密钥和/或私密钥。根据一个示例,控制器200可以用作公密钥并删除或禁用所提供的私密钥。作为另一个示例,服务可以这样的方式产生其自身密钥,使得来自服务的公密钥可以被控制器200验证、识别和/或认证。在此进一步示例中,因为控制器200为服务提供初始公密钥,服务有能力将信任的公密钥发送给控制器200,而控制器200不知道此信任的公密钥的当前私密钥;并且服务用其最初的密钥对进行认证,以将新的公密钥与控制器200共享。
在步骤19.12处,依赖服务(服务B)通过通用API 1903调用依赖性服务(服务A),以执行功能。依赖性服务(服务A)然后通过控制器200对依赖服务(服务B)进行认证。根据一个示例,依赖性服务可以联系控制器200,并且控制器200可以使用依赖服务所提供的公密钥对请求依赖服务进行认证。如上,依赖服务可以在步骤19.11处获得公密钥。依赖服务也可以创建新密钥对(公+私密钥)并使用旧的密钥对证明其新公密钥是真实的,因为控制器200(在控制器创建公和私密钥的情况下)知道旧公密钥是值得信任的。依赖服务(服务B)可以相似方式认证依赖性服务。(19.13)
在步骤19.14处,依赖性服务(服务A)在执行功能之前也可以创建执行依赖服务(服务B)的功能的权限。例如,如果权限可用的话,依赖性服务可以通过询问控制器200来创建权限。作为另一示例,可以通过控制器200将权限清单加载到依赖性服务(服务A)上来创建权限。
图19D图示了与互操作服务一起使用的增强安全方法的示例。在步骤19.21处,例如,可以使用控制器200和/或在此所述的模板230来创建依赖服务B。在步骤19.22处,当运行依赖服务B时,如在此针对不同实施例所述(例如见图13A-13E),控制器200可以验证和/或禁用到外部网络1910和/或应用网络390的连接。例如,从业人员可能发现在服务开发给网络、诸如互联网时禁用管理连接是有意义的。如上所解释,这提供了更多的隔离和安全性。云API在此情况下(或其他情况下的带外管理连接260)可以用于触发带内管理连接270。在步骤19.23处,依赖服务B运行API命令,以从依赖性服务A请求服务或功能。此步骤也可以通过依赖服务B询问控制器200并且控制器200通过通用API运行命令(见1903)来完成。在步骤19.24处,依赖性服务A验证依赖服务B的识别符和执行服务B的服务或功能的权限。作为示例,此步骤19.24可以通过服务A验证服务B的权限来执行。作为另一示例,此步骤19.24可以通过服务A验证其是否具有为服务B提供服务的权限来执行。在任一情况下,正被另一服务修改的服务可确保其他服务允许进行这些修改。如果被授权和允许,依赖性服务A随后可运行命令中所指定的服务或功能。在步骤19.26处,管理连接、诸如带外管理260、带内管理270、或SAN 280可以为了额外的安全性而断开,如本文参考图13A-13E所述。在步骤19.27处,如果与外部网络1980和/或应用网络390的连接时在19.22处被禁用,则可重新启用。
图19E图示了诸如参考图19A-19D所述的系统的一个示例系统100,其中在控制器200中包括了一组清除规则1904。清除规则1904可以实施为控制器200内的其自身的一组规则,或者其可以实施为全局系统规则、控制器逻辑205、模板230、或其组合。清除规则1904包括在删除服务时遵循的一组指令和规则。作为示例,清除规则204可以包括在用于设置服务的模板230内,其中服务的相关规则在设置或用于生成服务具体清除规则期间加载到服务上。例如,邮件服务可以引起dns记录加到dns服务。如果删除邮件服务,dns服务可以从邮件服务中移除dns记录。
清除规则1904可以用于识别依赖服务对依赖性服务的修改,以当依赖服务被删除或禁用时启用这些修改的删除、移除和/或撤销。图19F示出了用于创建清除规则的示例过程流。例如,图19F图示在删除依赖服务时如何可以验证、例如登录和/或追踪移除的修改。
如图19F所示,在步骤19.31处,从依赖服务(服务B)向API 1903发布命令,以调用依赖性服务(服务A)执行功能。在步骤19.32处,依赖服务(服务B)被验证并且如图19A-19D中所述确认权限。如果在执行功能中对依赖性服务(服务A)进行修改或待进行修改,在步骤19.33处,对应于API命令的相应清除规则和/或清除命令被可恢复地加到依赖服务(服务B)、依赖性服务(服务A)或控制器200中的一个或多个上(或与其清除规则相关联)。清除规则或清除命令可以识别在删除依赖服务(服务A)的情况下用于后续清除的修改。根据不同示例性实施方案,依赖服务或依赖性服务具有关联的清除规则。清除规则也可以配置成修改服务之间的连接。依赖性服务可以具有这样的清除规则,该清除规则可以对应与和其具有关系的每个依赖服务。清除规则也可以由登录的API命令生成。各个清除步骤可以在从API命令登录所获得的时间处执行一次。
当要删除、改变和/或修改依赖服务时,然后可以使用清除规则。当依赖服务已经对依赖性服务产生变化时,也可以使用清除规则。如在图19G中的示例性过程流中所示,在步骤19.41处作出确定以删除服务。在步骤19.42处,控制器逻辑205查看正删除的服务(“删除服务”)的依赖服务。这些依赖关系可以是递归的并且可以通过递归的依赖关系解决方案发现。依赖服务可以在如这里参考图2A-2K所述的依赖服务的服务模板230中或者系统状态220或其他关联的数据库中识别。如果步骤19.43得出存在依赖服务的结论,控制器可以发现可选路径以满足依赖性关系(见19.44)(例如,在图2K中所述)。如果控制器200没有识别出可选路径以满足依赖项(见19.45),可以告知用户/管理员来解决(见19.46);例如,通过添加新依赖性服务、通过取消服务删除、或以相似方式删除依赖服务。如果控制器在步骤19.44处识别出满足依赖关系的可选方式,控制器200可以改变依赖关系并更新和/或重新配置对应的控制器组件(模板230、规则210、逻辑205、系统状态220等)以及依赖服务和/或依赖性服务组件。然后在步骤19.47处可以遵循清除规则。如果步骤19.43得出没有依赖服务的结论,过程流也可以前进到步骤19.47,其中可以遵循清除规则。如所述,清除规则将识别依赖服务对依赖性服务所作出的修改。因此,在步骤19.47处,这些清除规则可以处理,以启用删除、移除和/或撤销这些修改。作为步骤19.47的一部分,从依赖性服务中移除在使用时由删除服务创建的文件。
为计算资源提供存储资源:
图20A图示了示例性系统,其包括控制器200,其中一个或多个计算资源托管利用一个或多个存储资源410中的存储器的一个或多个服务。图21A进一步示出,如果物理服务主机允许和SAN 280会话,期望这样的物理服务主机仅仅接触其被授权使用的远程存储器。相应地,系统最好能阻止不良行为者2002获取非授权访问系统资源,诸如存储资源410(见图20A)。
根据图20B的过程流中所述的示例,控制器200为计算资源提供存储凭证(见20.10)。作为示例,存储凭证可以采取但不限于如下形式:密码、密码短语、挑战握手认证协议(CHAP)密钥、加密密钥、证书或其组合。CHAP是用于远程存储的认证技术、诸如iSCSI/iSER或其他技术。CHAP密钥可以用于SAN的密码。在步骤20.10处的提供可以许多方式的任意一种进行。例如,当创建服务镜像时,控制器200可以包括含有该服务镜像的存储资源连接信息。计算资源也可以查询控制器200。另一种方式是,在启动过程期间,控制器200可以为计算资源提供信息(这可以在创建/提供存储资源后完成,如果它们是依需创建的话)。所有的信息可以在数据库中定位,并且控制器200可以从数据库中提取存储凭证信息或者计算资源可以通过执行数据查询或进行数据库查询的API调用以向控制器请求存储凭证信息。计算资源然后可以使用存储凭证连接到、登录到存储资源或与存储资源通信。
根据如在图20C的过程流中所述的示例,可选地或额外地,可以禁用计算资源310与存储资源410之间的SAN连接280,如在本文的不同实施方案中所述(见20.20)。然后,可以在特定的隔离式连接网络、包括但不限于vlans、vxlans以及无限带宽分区上为计算资源310提供存储资源410。相应地,控制器200可以将计算资源与存储资源配对并且将其放置于相同网络或构架上。作为示例,一端口可以分配给一分区,或者可以告知交换机允许信息流量在两个端口间通过。如上所述,这可以用vlans、vxlans和无限带宽分区来完成。此外,控制器200也可以通过给每个网卡提供密钥并且使具有高性能加密/解密能力的网卡(诸如Mellanox Innova-2,其包括用于资料加密的FPGA)对资料进行加密来允许高速的加密通信。
根据如图20D的示例性过程流中所述的示例,替代地或额外地,联网硬件在发送和接收之前可以被赋予加密密钥并创建一次性密码本(或其他流暗号)以及异或(xor)字节(见20.30)。然后可使用这些加密技术来计算登录凭证,以用于计算资源登录到存储资源(步骤20.31)。因此,在SAN上可保持数据安全,因为数据被加密且试图访问SAN的任何资源的识别符由控制器200进行验证(因为控制器200知道可信赖的公密钥)。
更进一步,虽然可以使用软件来执行加密/解密,但对于其中需要高速数据的系统而已,可以使用网卡而在硬件中进行加密/解密。控制器、存储资源和/或计算资源可就密钥或其他加密机制相互达成协议;并且诸如verilog代码的FPGA代码可以用来使存储资源和计算资源上的每个网卡使用快速硬件加密进行通信。例如,verilog编译器可以编译特定密码的使用。除FPGA以外,也可以使用其他方式在高速存储器之间加密数据。例如,IntelOmnipath可用来在两个节点之间加密数据。控制器200能够将密钥给予资源,以允许安全的传输并且仅仅得到授权的资源访问远程存储器中的数据。
提供并使用备份规则
图21A-J图示了使用备份规则的具有服务的系统和方法的示例。
图21A图示了诸如参考图19A-19D所述的系统的一个示例性系统100,其中在控制器200中包括了一组清除规则2104。清除规则2104可以实施为控制器200内的其身的一组规则,或者其可以实施为全局系统规则、控制器逻辑205、模板230、或其组合,或者可以实施为一个或多个服务、依赖性服务和/或依赖服务的服务模板的一部分。此外,用于服务1901、1902的模板可以包括一组备份规则2104。
在其中系统100支持多个具有彼此依赖关系的服务的示例性实施方案中,备份规则2104可以包括与不同组服务相关联的不同组备份规则的规范。因此,备份规则2104可针对每个服务(或每一类服务)单独地定制。服务相关的备份规则的使用容许系统100灵活地支持有效地跟踪服务依赖关系的自动备份操作,使得不仅备份用于指定服务的数据,还备份用于关于指定服务的指定依赖服务的数据的至少一部分。不仅用于指定服务、而且用于其依赖服务的数据的此归档在需要从备份进行恢复的情况下提供指定服务的更可靠自动恢复。下面参考图21H来论述相互依赖服务之间的链接以及备份操作的示例。
另外,备份规则2104可含有(或指向)恢复信息,该恢复信息用作如何恢复服务和其相关数据的指令(或指向指令)(例如见图21B中的2106)。此恢复信息也可以将要提取的备份数据的位置识别作为恢复的一部分。
此外,控制器200可使用备份规则2104、控制器逻辑205、全局系统规则210和/或其组合来判定如何最好地将存储资源提供给备份操作。例如,备份规则2104可指定将要用于归档备份数据的存储空间,且控制器200然后可在一个或多个系统存储资源内提供适当的存储空间,以用于归档备份数据。作为此操作的一部分,控制器200可以向主体服务提供凭证,以供该主体服务访问所提供的存储空间/资源。
备份规则2104可以包括一组规则和/或指令,每当存在系统或其任何一部分的备份时,可以使用该组规则和/或指令。例如,如本文所述,备份规则2104可以与变化管理一起使用。备份规则2104可用于周期性或例行的系统备份。当服务和/或其依赖关系待被备份时,例如如果要删除、更新或其他改变服务,可以使用备份规则2104。备份规则2104可用于任何其他用户引发的或自动的过程,以便于保存数据或其他信息。备份规则2104可为全局系统规则210、服务模板、服务镜像的一部分,和/或可使用模板230加载到资源1910(例如依赖或依赖性服务(例如1901、1902))上。
图21B图示并说明备份规则2104的示例。备份规则2104可包括备份指令2105。备份指令2105可采取这样的指令形式,例如在服务内部或从控制器200可运行的程式、脚本或逻辑。备份指令2105可以是执行备份过程以备份任何数据、服务、环境或系统100的任何部分的程序、脚本或逻辑。
备份规则2104可以包括恢复指令2106。恢复指令2106可以包括这样的指令,在服务内部或从控制器可运行以恢复任何数据、服务、环境或系统的任何一部分的程序、脚本或逻辑。在备份服务时,备份规则2104也可以指定相关依赖性服务或其内数据或与其对应的数据的备份。恢复指令210可以是执行备份过程的恢复功能的程序、脚本或逻辑。
备份规则2104可包括策略2107,其中策略2107可采取备份规则的子集的形式,其可由对应服务的总体备份规则2104选择性地调用。策略2107例如可以是一组选定的备份规则(其可规定例程)。策略2107可包括描述备份方法或来自依赖性服务的备份数据的方法、程序、脚本、逻辑。基于可取决于和特定系统或程序相关变量相对应特征的模板、决策树或其他程序、脚本逻辑或用户,可以选择或调用策略2107。
备份规则2104可包括存储资源信息2108。存储资源信息210可识别包括例如位置、类型、标识符和/或与其他服务的关系的信息。
数据备份/待机例程可以运行可选地来自每一个不同服务的备份规则所指定的备份例程。这些备份规则将使用特定指定的用于备份每个服务的方法来收集必要数据(例如,如果服务具有postgres数据库,则其可以运行postgresql备份例程)。这些备份规则也可以调用全局系统规则210中所含有的备份例程/规则。
图21C-1至图21C-3示出可备份的数据的示例。作为备份操作的一部分,系统可以将待备份的数据复制到系统的存储资源中。可运行指令,其中在备份规则中所规定的服务(或正在执行代码的任何实体)会复制数据或调用复制数据的功能。备份数据也可包含来自多个服务的数据(或可包含指向不同存储资源的指针集合)。系统也可以跟踪何时存储数据以及进行备份;并且另外在系统状态220中可存在指向备份数据的信息(例如,数据库输入项,并且可能存在一栏位,该栏位陈述:若备份“正在进行中”或“已完成”,则其也可以同样在数据库中具有数据的杂乱信号(hash)以及使得不会存在假的“已完成”并支持验证数据的完整性)。
除了原始备份数据之外,备份数据2100可以包括用作备份数据的识别符的ID2111,其中,此识别符可以采取唯一识别符的形式。备份数据2110也可以包括与相关数据、备份或备份数据的关联或耦合2112。关联/耦合2112的示例性情节为:将存在服务A、B和C的备份,其中A为依赖服务但需要B和C的备份,因此系统能够然后指向B和C的备份,使得若有人试图恢复A并需要恢复B和C或获得数据,则由于某种原因,正在运行以恢复该数据的规则经由关联/耦合212所规定的链接获得要去哪里。另外,A、B和C的备份可储存在一起。
备份数据2110也可以包括与其他存储资源、文件夹、目录结构的耦合或关联2113。耦合/关联2113为备份数据如何能够连接到其他备份数据/与其他备份数据相关联提供链接,因为从业人员可能想将依赖性服务的数据放置在单独的位置(例如,blob/文件/文件夹/tarball或归档或zip/或在子文件夹中)。耦合/关联2113也可以包括指令和到存储机构的相关访问凭证,其有效地陈述“连接到此文件共享,这是密码”。有时,可以通过运行依赖性服务上的备份规则来备份依赖性服务的数据,并且备份数据是其自身的单独实体;但是当系统正在恢复时,其需要得到该数据(且该数据可能在另一个存储资源上)。在此情形下,耦合/关联可以包括关于如何到此存储资源以抓取所需的数据的指令。
备份数据2110也可以包括备份元数据2114,并在图21C-2中图示了此种备份元数据2114的示例。备份元数据2114可以包括这样的信息,诸如对应于数据的ID 2111、备份开始和/或结束的时间、用于备份数据的方法(例如策略或规则)和/或适当的恢复规则(或指向恢复规则的指针)。恢复规则可存储为备份规则的一部分,并且备份规则本身可以存储为“所使用方法2116”或其他恢复信息2115或可以用于引导恢复过程的信息的一部分。备份元数据2114也可以包括服务名称、服务类型或其他服务识别符。备份元数据2114可以包括其他信息,例如耦合、相关备份、存储资源位置、指针、策略和方法。备份元数据2114也可以和id或唯一识别符一起存储在系统状态220中(见图21C-3)。
图21C-4图示恢复信息2115的示例。恢复信息2115可以包含恢复规则或指向恢复指令210的指针。恢复信息也可以包括相关系统信息2118,该相关系统信息来自控制器200、全局系统规则210、系统状态220和/或其组合。恢复信息2115也可以包含信息2119,该信息2119可帮助由特定备份过程而从特定备份信息2110恢复。其可包含关于依赖性服务的位置的信息2120或如何针对依赖性服务的信息查询控制器200、系统状态220、或全局系统规则210(在恢复时系统状态220或系统规则210已经发生变化或存在对系统100的已知变化的情况下)(见2121)。也可以包括系统状态220的其他信息2122,诸如资源可用性、存储资源位置的变化。可选地,可存在与存储在恢复信息中的依赖性服务不相关的其他信息,诸如预期文件大小、备份数据的杂乱信息以及可能不存储在系统状态220、系统规则210或其他控制器部件中的其他信息。
图21D示出控制器200、存储资源1910a和服务1901a(依赖服务或依赖性服务)在例如如图21E中所图示的备份过程期间的关系。图21E的过程流开始于引发备份过程(21.1)。步骤21.1处利用备份规则的过程可以由用户引发或作为自动的过程被引发。例如,用户可以请求系统执行需要备份或待机命例程的功能(例如见图2M,在步骤210.7处),或者控制器200可以根据系统规则210、模板230或控制逻辑205而执行需要备份或待机命例程的任务。控制器200向服务或另一程序发送调用备份例程的备份请求(见图21E的步骤21.2)。控制器200可选地地提供存储资源(见21.3)。在步骤21.4处,服务开始于根据备份规则的备份过程。在步骤21.5处,待备份的数据发送给控制器200或指定的存储资源。备份规则指示控制器200(使用控制器逻辑205或其他存储过程)来将待备份的数据移动或放置到目录、卷、或其他类型的存储资源(见21.6)。接着,将适当的信息记录到系统状态220中(见21.7)。例如,此信息可以包括:备份元数据2114、用于访问适当的存储资源的信息(例如,见图21C-1中的2113)、备份ID 2111或任何其他识别信息。替代地,在步骤21.1处引发备份过程后,控制器200可以耦合到必要的存储资源(见21.8)。控制器200然后运行来自备份规则2104的备份例程(见21.9)。然后,更新系统状态(见21.10)。
图21F是描述备份数据、配置和其他信息的示例性过程流。在步骤21.20处,请求恢复。从系统状态220中找到特定识别的备份数据、配置或其他信息(见21.21)。将含有数据、配置或其他信息的存储资源耦合到恢复服务或相关的存储资源(见21.22)。例如,此类其他信息可以包括不在备份数据2110中的信息,并且系统状态220或系统规则210可能已经发生变化;在此状态下,配置和/或其他信息可以经由有效地陈述例如”请看在系统状态中这个“来通知恢复过程。在步骤21.23处执行恢复过程。在执行完成时,将服务或数据恢复到存储资源报告为已完成(见21.24)然后,更新系统状态220(见21.25)。
图21G示出描述在服务受到损坏并且需要删除或修订的情形下使用备份规则的示例性过程流。在此情形下,过程os(1)备份服务,(2)删除服务,以及(3)恢复服务。在系统100内设置和/或使用服务期间,备份服务和所有依赖性数据(见21.30)。在系统使用期间,识别出服务受到损坏(见21.31)。根据此示例,用户希望从备份重新载入服务,或者替代地引发自动还原过程(见21.32)。删除服务以准备从备份(例如从用于服务的备份数据2104)进行恢复(见21.33)。在步骤21.34处,执行清除规则,例如,如本文参考图19A-19G所述。通过执行清除规则,系统可以避免在恢复期间两次写入一些信息。例如,假设服务需要登录凭证(诸如ldap/视窗活动目录连结账户),并且恢复规则将再次建立此账户;因此清除规则可确定重新创建之前已经将其全部删除干净。这避免恢复数据与系统中已经存在的数据相冲突。恢复过程然后开始于步骤21.35,例如,如本文参考图21F更详细描述。备份规则2104指定在服务的依赖性服务上运行的恢复例程。在步骤21.36处,这些恢复例程在依赖性服务上运行。服务的依赖关系可以在服务创建中规定并且存储在系统状态220中和/或全局系统规则210中。依赖关系也可以在另一时间得到满足或为可选的依赖关系。该信息可以在服务模板、全局系统规则210、服务镜像、系统状态220(或其组合)中。然后,恢复服务和依赖性服务的数据、信息和配置(见步骤21.37)。
图21H示出服务可以如何具有备份规则组以及这些备份规则如何调用依赖性服务上的备份规则。使用此链接作为备份操作的一部分会是挑战性的,但是系统使用能够映射这些依赖关系的控制器200和系统状态220,可以实现高效的特定服务的备份操作,该备份操作扩展至该服务的依赖关系的适当备份,以在从备份恢复时能够实现可靠的恢复操作。即使控制器200在运行备份时不对此进行管理,当创建服务时,控制器200给予服务所需的信息,以知道如何与依赖关系对话并且调用其他备份规则。当系统100具有全部彼此依赖的一组应用/服务时,很难对服务进行备份,因为即使恢复了数据,系统的剩余部分可能不同并且图21H的架构有助于修复此问题。
在图21H中,系统具有如上所述的控制器200,该控制器200可以包括备份规则2104以及指针220p,其可以常驻于系统状态220、服务模板、全局系统规则210或具有依赖服务1902。指针220p可以指向所提供的存储器、正备份或恢复的服务、和/或正使用的备份规则。控制器200或资源2100(其可以耦合到控制器,诸如例如服务)可以除此之外与依赖服务1902通信,以请求或调用使用备份规则2104的备份。依赖服务1902可以具有与其自身相关的其自身的一组备份规则2104a,其可能是或可能不是依赖服务1902(或特定类型的依赖服务)所独有的。依赖性服务1901a、1901b、1901c可以与依赖服务相关联,如本文参考图19A-19G所述。依赖性服务1901c可以与服务1901b相关联,该服务1901b可以是关于依赖性服务1901c的依赖服务。依赖性服务1901a、1901b、1901c可具有一组或多组备份规则2104b、2104c、2014d、2014e,如图21H所示。依赖性服务可以具有多于一组的备份规则,例如依赖性服务1901a被示出具有备份规则2104b、2104c。这些备份规则可以部分或完全备份依赖性服务的数据,并且可备份需要正备份的依赖服务所需的数据。依赖服务备份规则可以调用用于此服务的特定备份规则;例如,可以在与2401d相关的逻辑中特别提及2401e。备份规则2401a可以包含程序、指令、api调用和对可以备份一个服务或多个服务的数据的其他程序的调用。备份规则可以加载或创建用于依赖性服务的备份规则,或者其可以调用现有备份规则,该现有备份规则可选地备份依赖服务上的必要数据。这些指令中的一些可以包括功能性,其包括但不限于数据库备份、文件备份、文件复制、从依赖性服务提取数据。归档数据、连接至存储资源以及进行文件系统复制,其可包括从图9B的一部分(例如,可以复制易失性镜像)。
图21I和21J是描述具有一个或多个依赖性服务的依赖服务的备份过程的示例性过程流。图21I和21J的方法允许使用备份规则2104和/或清除规则1904来备份和恢复依赖服务,可选地删除服务并恢复。例如,通过用户请求或备份备用程序触发,触发使用备份规则2104的备份过程(见图21I的21.40)。在步骤21.41处,调用依赖服务的备份规则。依赖服务的备份规则触发一组依赖性服务的备份规则(见21.42),由此识别相关的、选定的或适当的依赖性服务数据用于备份,如从步骤21.50开始更详细的描述(见图21J)。
在步骤21.43处,在步骤21.50等之前、期间或之后备份依赖服务数据。在步骤21.44处引发依赖服务的删除(或更新)。在步骤21.45处,控制器逻辑205执行清除规则1904;例如本文参考图19E-19G所述。如果要恢复依赖服务或更新的依赖服务,用户或逻辑、脚本或程序引发删除服务的恢复(见21.46)。备份规则的恢复功能触发从依赖性服务的备份规则的恢复操作(见21.47)。恢复功能可以是从备份数据实施恢复操作的规则或代码,且恢复功能可以是2115(见图21C-2)的一部分或者其可以是其自身规则的一部分(例如,其中系统具有备份规则和恢复规则作为两个分开的文件)。在步骤21.48处,可以给予所触发的恢复操作来恢复依赖性服务数据,所触发的恢复操作由依赖性服务的备份规则或由用户定义的另一恢复过程来规定。可以重复一个或多个步骤,使得每个依赖性服务使必要的数据得以恢复。然后,结束依赖恢复过程(见21.49)。
图21J描述用于在依赖服务与多个依赖性服务相关联时使用备份规则的示例。依赖服务的备份规则(或策略)可以识别需要从每个依赖性服务备份哪些信息(此可以是每个依赖性服务上的单独的一组备份规则)(见21.51)。此例如可以使用如本文参考图19A-19F所述的服务相关性信息来进行。用于依赖性服务的备份规则可以包括备份策略,该备份策略包括用于备份依赖性服务数据的方法。在步骤21.52处,选择依赖性服务备份策略。在步骤21.53处,使用对应于依赖性服务的其他备份规则,执行备份例程。在前述步骤之前、期间或之后,可以提供存储资源或者可以设定指针以指向现有的存储资源(见21.54)。例如,可以提供新的存储资源(诸如新的iser或nvmeof目标或如nfs的共享文件夹)或可连接到现有资源的链接。(有时,希望可以具有相互依赖性的多个服务的备份,以使得所有数据在一个资源上,以保持更清洁)。所提供的存储资源可以被创建用于系统运行的备份规则(或用于控制器200运行备份规则),以保存其备份数据。此可以由控制器200或由服务内的备份规则所调用的程序来进行。可在步骤21.55处可选地耦合存储资源;或者步骤21.55可以涉及将存储资源耦合到正备份的服务或控制器200可以从服务提取适当的数据。然后,可以将数据耦合到备份数据中,例如,如图21C-1所示。可以对每个依赖性服务重复前述步骤。步骤21.55也可以包括耦合存储资源、用于各种调用且存储的依赖性服务的数据块中的每一个块的资源或其中的位置。在步骤21.56处,对于依赖性服务完成使用备份规则对依赖性服务的备份,且在步骤21.57处,更新系统状态220。在步骤21.58处,通知依赖服务,依赖性服务上的必要备份已经完成。对每个额外的依赖性服务重复备份过程(见21.59)。可以使用已知的依赖性跟踪来判定次序。若依赖性服务是依赖服务,则将其与其依赖性服务一起类似地备份为依赖服务(见21.60)。
图21K图示用于示例性系统100(诸如参考图19A-19D所述的一个系统)的用于在依赖服务的依赖性服务上创建或加载备份规则的示例,其中依赖服务创建、加载、提供用于依赖性服务的备份规则,允许依赖服务的备份规则在其依赖性服务上执行适当的备份规则。可以提供依赖关系服务,并且其可以如图2K所述来解决或创建。图21K示出,在步骤21.61处创建依赖服务。如图2K所示通过创建新服务图像或耦合到要用作依赖关系服务的现有服务来解决依赖关系。然后,可选地用于创建服务镜像的模板、系统规则和/或其他信息可以用于控制器逻辑或其他过程,以选择要加载到依赖性服务的适当备份规则,以考量可选的依赖关系和满足依赖关系的多种方法(见21.63)。因此,若服务A可以满足服务B1或B2的依赖性,其将根据选择了哪个服务来将正确的备份规则填入到B1或B2中。然后,可将用于依赖性服务的备份规则加载到系统状态220、服务镜像或系统100的其他位置中(见21.62)。
图21L-1及图21L-2图示分别使用如图9B中所示的overlay fs布局而用于系统100上的服务1901的示例性备份方法和恢复方法,该系统诸如参考图19A-19D描述的系统。图21L-1图示备份规则的示例,其中使用诸如lvm克隆或其他文件系统克隆方法的工具来克隆overlay fs的层。触发备份规则,并且备份规则指示易失性镜像954的备份(见21.64)。然后,此数据被打包到备份数据2110中(见21.65)。图21L-2图示从图21L-1所图示的备份过程的对应恢复过程。从图21L-1中所图示的备份规则触发恢复(见21.66)。恢复的服务开始被组装;使用overlay fs可选地耦合基础镜像952、服务镜像953、以及潜在的其他镜像(见21.67)。从备份数据2110提取易失性镜像954(见21.68)。然后,可选地使用overlay fs将易失性镜像854和任选的服务镜像耦合到基础镜像952和/或服务镜像953(见21.69)。然后,恢复服务(见21.70)。
提供和使用更新规则:
图22A图示用于示例性系统100(诸如参考图19A-19D和图21A所述的系统)的示例性更新规则2204,其中控制器200进一步包括该组更新规则2204。更新规则2204可以实施为控制器200内其自个的一组规则,或者其可以实施为全局系统规则、控制器逻辑205、模板230、或其组合,或者可以实施为一个或多个服务、依赖性服务和/或依赖服务的服务模板的一部分。此外,用于服务(例如服务1901、1902)的模板可包括一组更新规则2204。
更新规则2204可包括一个或多个所支持的老版本2205的软件(其可采取模板的形式)或指向其的指针。更新规则2204可进一步包括一个或多个所支持的新版本2206的软件(其可采取模板的形式)或指向其的指针。此外,更新规则2204可包括指向用于依赖性服务的更新方法/规则的指针2207。在更新时,可在使用备份规则2104进行备份且恢复所需或所选的数据之后,通过使用变化管理规则和/或通过删除老版本来将更新加载到系统100上。参考图21A-21J来描述依赖服务备份及依赖性服务备份的示例。更新规则2204也可包括建议的备份规则2208(包括恢复指令)。建议的备份规则可包括本文所述的备份规则2104(或其子集),例如备份策略。指针2207可指向全局规则210、模板230和/或资源(例如服务)内的备份/恢复规则。
图22B是使用更新规则的示例性更新过程的示例性过程流。在此过程中,可刪除一或多個依赖服务且然后使用清除规则1904将其恢复。当引发更新过程(见22.01)时,开始图22B中的过程流。加载/调用适当的规则(见22.02)。处理依赖性服务上的规则(见22.03)。若要刪除服务,则可例如调用如本文中其他地方所述的备份规则2104(见22.04)。然后,刪除服务(见22.05)。可如本文中其他地方所述来运行清除规则1904(见22.06)。然后,可调用且执行备份规则2104以恢复选定的信息数据(见22.07)。
图22C示出用于示例性系统100(诸如参考图19A至图19D、图21A、图21L-1、图21L-2及图9B所述的系统)使用更新规则2204的示例性更新过程。图21L-2图示从图21L-1中所示的备份过程的对应的恢复过程。在步骤22.08处,用户或控制器逻辑(或其组合)触发更新。使用2205及2206来检查更新规则的版本相容性(见22.09)。然后,更新规则开始(见22.02):经由这些更新规则,易失性数据将被耦合至新服务文件系统镜像且可选地与更新规则2204中可选地指定的较新的基础镜像耦合。可从备份数据2110提取服务的易失性数据(见22.10)。可选地使用overlay fs将基础镜像952与新服务镜像953耦合(见22.11),且将易失性数据954耦合至具有新镜像的服务中(见22.12),且然后在所有数据仍然不变的情況下更新服务(见22.13)。
提供并连接到云服务上的实例:
图9F图示具有到资源的额外连接的图9D所示的系统和控制器200,该资源包括云上的实例310a。如本文中在此上下文中所使用,术语“云”是指可用于为系统(诸如网络化计算机系统)提供服务(俗称为“云”)并且可从诸如Amazon、Microsoft等云提供商获得的外部计算机系统。云实例310a可采取需要访问并使用的计算机外部系统100上的任何资源的形式。例如,任何虚拟专用服务器(VPS)、Amazon弹性计算云(EC2)实例、和/或Azure实例可以用作云实例310a。连接265耦合至云API 980,其中当通过连接265要求或购买时,API 980提供实例310a。连接265可为用于提供、修改、和/或破坏云资源的机制。连接265可保持在云实例310a的带外,即不连接到云实例的操作系统。因此,云的操作系统并不能看见连接265。若从业人员需要,则连接265也可提供在云实例的操作系统范围之外操作。一旦通过控制器200提供到系统100,实例310a就可以可选地通过带内管理270或至云实例310a的其他连接且通过可选的VPN 990来与控制器200通信并为系统提供计算或其他功能。
图9G-1是描述使用图9F的系统和控制器以在云上创建存储资源的示例性过程流。在步骤900.11处,控制器通过云API 980来提供实例。例如,这种配置可以通过无服务器的云API(诸如AWS lambda或用于购买云实例的任何技术)来执行。在步骤900.12处,控制器200创建存储桶900.12。如果存储桶是基于云的,则存储桶可以在云提供商的计算机上定位。存储桶提供用于远程访问存储器的机制。存储器可具有访问控制及认证,以确认唯有授权的用户/机器可以访问存储桶中的文件。作为一个示例,Amazon的简单存储服务(S3)可以是一种类型的存储桶。控制器200可使存储桶与所提供的实例相匹配和/或制作计算实例(并且也将其用于存储)。控制器200然后将云存储资源连接信息保存在系统状态220中(见900.13)。
图9G-2是描述使用图9F的系统和控制器100来连接所提供的云存储资源(见310a)与系统的计算资源(见900)的示例性过程流。控制器200在云上创建存储资源,例如,如图9G-1中所述(见900.14),或控制器200识别已经在云上提供的存储资源(见900.15)。控制器200然后将信息给予提供的云存储资源(或给予云API 980),以允许新的计算资源连接到存储资源(见900.16)。此信息可包括但不限于凭证、网络地址、资源位置、连接信息、关于如何连接的指令、加密密钥、证书、公密钥、证书授权和/或所需或可便于连接到存储资源的任何其他信息。在步骤900.17处,然后经由服务镜像中的指令来创建或设置计算资源并且将其耦合到云存储资源。就此而言,服务镜像可含有用来允许或便于云实例上的配置组建和/或提供服务的指令、配置信息、和/或计算机程序。替代地,在步骤900.17处,可经由控制器指令来创建或设置计算资源并且将其耦合到云存储资源。就此而言,控制器200常常经由调用API断点来发送指令。因此,在步骤900.17处,控制器200可经由远程登录到实例中或运行API命令来工作,或控制器200可将指令及信息给予云提供商/云API,云提供商然后运行所有指令。
图9G-3是图示使用控制器200来提供将由控制器200管理的云资源池的示例性流。在步骤900.30处,将云实例310a作为具有云计算资源能力的主机添加至系统。在步骤900.31处,控制器200执行主机的设置。此设置可经由将服务镜像给予主机或经由指向作业系统版本且提供在启动时要运行的脚本来执行。替代地,预载主机的操作系统和/或预配置主机(见步骤900.32)。例如,可将硬盘镜像上传到云,并然后可经由该硬盘镜像来启用服务器或虚拟服务器。在步骤900.33处,将云资源作为计算资源池添加到系统状态220。若添加云资源池,则可能存在在步骤900.33之前执行的额外步骤,在该额外步骤中,控制器200提供有凭证,以连接到主体云提供商。在步骤900.34处,通过控制器200和主机之间的带内管理270来创建VPN连接990。例如,可将硬盘镜像上传到云,并然后可经由该硬盘镜像来启用服务器或虚拟服务。云资源现在可由系统100用作虚拟或云资源池(见900.35)。例如,云资源可用作容器主机(或其他版本的计算资源,诸如虚拟机等),使得其可供控制器200使用,且控制器200可在此云资源上提供这样的容器或其他服务。
图9G-4示出示例性过程流,其图示用于将云资源添加至系统或将更多资源提供到云上的系统的技术。在步骤900.40处,控制器逻辑205连接至云API 980且使用凭证来认证云API980、与云API980通信、使用云API980并且/或经由云API980进行购买。此凭证可由用户针对于其可在云提供商上所具有的账户来提供。支付也可以通过此账户来提供。云API980允許控制器200的购买和/或将控制器200连接到实例310a(见900.41)。使用图9F所示的连接265,控制器200识别资源的实例类型以及其配置(见900.42)。控制器200使用全局系统规则210来判定是否应自动购买和/或添加特定实例(见900.43)。例如,规则210可规定所需要的资源类型(例如,规则210可指示,需要amazon m4.large)。规则210可进一步规定,一旦将该服务通电,控制器200就将购买和配置对应于所需资源类型的实例。若不应自动进行,则控制器200等待授权来使用和/或购买实例(见900.44)。若应自动进行,则控制器200使用其规则210来购买和/或自动设置。在购买和/或设置后,控制器200进行进行到步骤900.46,在此步骤中,控制器200使用模板230来将实例310a作为资源添加到系统。在步骤900.47处,控制器200遵循系统规则210来通过连接265将资源/实例310a通电和/或启用。使用系统规则210,控制器200基于资源的类型从模板230找到并加载用于资源/实例310a的启动镜像(见900.48)。此加载可以通过连接265来执行。从服务或应用的镜像启动服务、应用或资源310a,并将云实例310a启用、通电和/或允许其进行连接(见900.49)。替代地,镜像可来自现有实例模板(例如230)和配置脚本(例如Ubuntu 12.10及shell脚本)。在此情况下,模板230然后可以改变(或具有在overlayfs系统上分层的文件,如以上参考图9A及附录B所述)。可由控制器200通过带内管理连接270或连接265从资源/实例310a接收关于资源/实例310a的信息(见步骤900.50)。通过带内管理270从云实例提供新资源信息并将其添加到系统状态220(见400.51)。实例310a被添加到资源池并准备好进行分配。
图9H图示图9F中所示的具有在云上的额外实例310b的示例性系统,其中,额外实例310b连接到云API980并且通过带内管理连接而通过VPN连接到控制器。可通过通用API1903来连接实例310a及310b,如参考图19A至图19G所述,其中实例310a、310b可作为依赖性服务及依赖服务来交互作用。通用API1903也可以位于云上。也可以通过可选的VPN 990a来耦合实例310a、310b,以便在实例310a、310b之间以与图19A至图19G中所述的服务通信类似的方式进行通信。
图9I是描述使用图9H的系统及控制器200在云上创建存储资源/实例的示例性过程流。在步骤900.60处,控制器200创建服务镜像。此服务镜像可以是含有运行服务所需要的信息的操作系统服务镜像或在云上的计算或存储资源上运行的镜像。在步骤900.61处,控制器200可提供VPN连接信息。此VPN连接信息允许实例经由VPN相互通信。作为此步骤的一部分,控制器200可提供密钥/凭证及创建VPN所需的任何其他信息。VPN可对2点之间的数据进行加密,这意味着较少的端口可暴露于开放式互联网。在步骤900.62处,控制器200使用云API 980来创建实例,诸如实例310a和/或310b。在步骤900.63处,控制器200(可选地使用服务镜像来)创建诸如310a及/或310b的云实例。在步骤900.64处,控制器200使用VPN990来通过控制器200与实例(例如310a、310b)之间的带内管理270进行通信(或用于通过云API 990支持的安全连接)。
图9J图示图9F中所示的示例系统,其还包括在云上的额外实例310b,其中,实例310b连接到云API 980并且还通过带内管理连接270而通过VPN 990连接到控制器200。也可以通过可选的VPN 990a来耦合实例310a、310b。控制器200也可通过(在图19A至图19G中所述的)通用API 1903通过带内管理连接270耦合至实例310a、310b,其中实例310a、310b可作为依赖性服务及依赖服务来交互作用。通用API 1903可以是控制器200的一部分或是单独的。通用API 1903可由实例310a、310b用来要求由依赖性服务将为依赖服务执行的功能,如参考图19A至图19G所述。
图9K是描述使用图9J的系统和控制器200以在云上创建存储资源的示例性过程流,该云包括用作依赖性服务及依赖服务的多个实例。系统规则210或用户动作指示控制器200部署依赖性服务且必要时部署依赖服务(见900.70)。控制器200使用云API 980来部署依赖性服务及依赖服务(见900.71)。在步骤900.72处,部署云计算资源或实例。此部署可由控制器200向云API提供服务镜像来执行。控制器200也可以提供指令(例如shell脚本、脚本、计算机程序、操作系统模板和/或后在云主机上创建工作服务镜像所需的其他信息。在步骤900.73处,控制器200提供关于服务如何连接到通用API 980(通过控制器200或VPN990)的指令。存在控制器可连接到通用API的许多方式。例如,提供最小安全性的一个选项将是互联网上的开放式API及做出请求、诸如http请求。其他选项可提供更大的安全性。例如,另一选项是通过云提供商提供的工具来访问云实例(或其一部分,实例未将其暴露于互联网)。另一选项是,云实例可以将VPN暴露到互联网,并且控制器200可连接至VPN。又一选项可以是,实例连接到VPN,以与控制器对话。在提供或创建实例时,其提供有有助于此类连接所必须的配置信息和计算机程序。在步骤900.74处,依赖性服务(可选地通过实例之间的VPN连接990a来)配置依赖性服务以满足依赖关系。
在另一示例性实施方案中,系统100可作为云托管的系统位于云中。若从业人员需要,则可将此类云托管的系统去云并移动至本地托管的系统。例如,图9L图示用于将系统去云化处理至本地主机或本地托管的系统的示例性过程流。由此实施方案,从业人员可在云上运行其工作或启动其系统,且然后通过将系统去云化到一个或多个本地主机上来完成。从业人员也可以构建IT系统,其不锁定在云中并且可以在后期从云移除。就此而言,包括系统规则的系统100可存在于云中(见步骤900.80)。可将这些系统规则复制到新的本地托管的系统(见步骤900.81)。控制器逻辑然后可以在本地托管的系统上处理这些复制的系统,以有效地将系统去云化并且将其移动到本地主机。作为一个示例,可以使用以上参考图2A-2O所述的技术来执行步骤900.82。
虽然在上文已关于本发明的示例性实施方案描述了本发明,但是可对本发明进行仍然落在发明范围内的各种修改。在审阅本文的教示内容之后将能够认识到对本发明的此类修改。
附录A:示例存储连接过程
这描述了与在多个系统之间共享存储资源相关联的示例过程和示例规则。应理解,这仅仅是存储连接过程的实例,并且可使用用于将计算资源连接到存储资源的其他技术。除非另有说明,否则这些规则适用于试图发起存储连接的所有系统。
关于此附录A的定义:
存储资源:可经由存储传输共享的块、文件或文件系统。
存储传输:本地或远程地共享存储资源的方法。实例将为iSCSI/iSER、NVMEoF、NFS、Samba文件共享。
系统:可尝试通过指定的存储传输连接到存储资源的任何事物。系统可支持任何数量的存储传输,并且关于使用哪些传输可作出其自身的决策。
只读:只读存储资源不允许修改其所包含的数据。此约束由处理在存储传输上导出存储资源的操作的存储守护进程强制执行。关于附加保险,一些数据存储可将存储资源后台数据设定为只读(例如,将LVM LV设定为只读)。
读-写(或易失性):读-写(易失性)存储资源是其内容可通过连接到存储资源的系统修改的存储资源。
规则:存在控制器确定系统是否可连接到给定存储资源时必须遵守的一组规则。
1.读-写存储资源应仅在单个存储传输上导出。
2.读-写存储资源应仅连接到单个系统/由单个系统连接。
3.读-写存储资源不应作为只读进行连接。
4.只读存储资源可能在多个存储传输上导出。
5.只读存储资源可能连接到多个系统/从多个系统连接。
6.只读存储资源不应作为读-写进行连接。
过程
如果我们将连接过程视作为函数,则所述函数将采用2个自变量:
1.存储资源ID
2.受支持的存储传输列表(根据顺序划分优先级)
首先,我们确定所请求的存储资源是只读的还是读-写的。
如果是读-写的,则我们需要查看来查看存储资源是否已进行连接,因为我们将读-写存储资源限制于单个连接。如果所述存储资源确实已经有连接,则我们应确保请求存储资源的系统是当前连接的系统(例如,这可能会在重新连接的情况下发生)。否则,我们将报错,因为多个系统无法连接到同一个读-写存储资源。如果请求系统是
连接到这个存储资源的系统,则我们应确保可用存储传输中的一者与此存储资源的当前的导出匹配。如果确实是的话,我们将连接信息传递到请求系统。如果不是的话,则我们报错,因为我们无法在多个存储传输上为读-写存储资源服务。
对于只读和未连接的读-写存储资源,我们针对供应的存储传输列表进行迭代,并且尝试使用所述传输来导出存储资源。如果导出失败,则我们继续完成所述列表,直到我们成功或用完存储传输为止。如果我们用完的话,则我们通知请求系统无法连接到存储资源。在成功导出时,我们将连接信息,以及新的(资源,传输)=>(系统)关系存储在数据库中。请求系统之后传递存储传输连接信息。
系统:存储连接当前在正常操作期间由控制器和计算守护进程执行。然而,将来的迭代可使服务直接连接到存储资源并且绕过计算守护进程。这可能是对示例服务物理部署的一项要求,并且使用同一个过程来进行虚拟机部署也是有用的。
附录B:接至OverlayFS的示例连接
服务利用OverlayFS来重复使用共用文件系统对象,并且减小服务包大小。
服务在这个实例中包括3个或更多个存储资源:
1.平台.这包含基础linux文件系统并且接受只读访问。
2.服务.这包含与服务的操作(NetThunder服务守护进程、OpenRC脚本、二进制等)直接相关的所有软件。此存储资源接受只读访问。
3.易失性.这些存储资源包含对所述系统的所有改变,并且由LVM从服务内部进行管理(用于物理、容器和虚拟机部署)。
当在虚拟机中运行时,在Qemu中使用具有initramfs的包含用于进行以下操作的逻辑的自定义Linux内核来对服务进行直接内核启动:
1.从可用的读-写盘组装LVM卷组(VG)
*此VG包含一个逻辑卷(LV),所述逻辑卷包含用于服务的所有易失性存储数据。
2.挂载平台、服务和LV
3.使用联合文件系统(在我们的例子中是OverlayFS)来组合三个文件系统。
相同的过程可用于物理部署。一种选项是向经由PXE启动或IPMI ISO启动而启动的轻量级OS远程地提供内核,然后通过kexec进入新的真正的内核。或者跳过轻量级OS,并且通过PXE启动直接进入我们的内核。这种系统在内核initramfs中可能需要附加逻辑来连接到存储资源。
OverlayFS配置看起来可能是以下这样的:
Figure BDA0003499849790001061
由于OverlayFS的一些限制,我们允许将特殊目录'/data'标记为“树外(out oftree)”。如果在创建服务包时服务创建了'/data'目录,则此目录可用于服务。此特殊目录经由‘mount--rbind’挂载以允许访问不在OverlayFS内部的易失性层的子集。这是不支持共享作为OverlayFS的一部分的目录的诸如NFS(网络文件系统)的应用所需的。
内核文件系统布局:
/
+--platform/
+--bin/
+--.../
+--service/
+--data/[optional]
+--bin/
+--...
+--volatile
+--work/
+--root/
+--bin/
+--data/[if present in/service/]
+--...
+--new_root/
+--...
我们创建/new_root目录,并且使用所述目录作为配置我们的OverlayFS的目标。一旦OverlayFS已被配置好,则我们就通过exec_root进入/new_directory,并且所述系统利用所有可用的资源正常起动。

Claims (127)

1.一种信息技术(IT)计算机系统,包括:
控制器;
资源,其用于连接到所述控制器,其中,所述资源包括第一服务和第二服务,其中,所述第一服务和第二服务相对于彼此具有依赖性,其中,所述第一服务包括相对于所述第二服务的依赖性服务,以及其中,所述第二服务包括相对于所述第一服务的依赖服务;以及
应用程序编程接口(API),其将所述第一服务和所述第二服务彼此联系并且与所述控制器联系;以及
其中,所述控制器被配置成管理所述第一服务相对于所述第二服务的可交互操作性。
2.根据权利要求1所述的系统,其中,所述第二服务被配置成通过所述API发布对所述第一服务的调用,以便所述第一服务执行操作。
3.根据权利要求1-2中任一项所述的系统,其中,所述第一服务被配置成要求所述控制器验证所述第二服务,以执行用于所述第二服务的操作。
4.根据权利要求3所述的系统,其中,所述控制器进一步被配置成基于相互tls认证、公密钥认证、和/或基于网络的验证来对所述第二服务进行验证。
5.根据权利要求1-4中任一项所述的系统,其中,所述第一服务被配置成根据来自所述控制器的权限来执行用于第二服务的操作。
6.根据权利要求1-5中任一项所述的系统,其中,所述控制器进一步被配置成将加密密钥提供给所述第一服务和所述第二服务,用于在所述第一服务和所述第二服务的验证中使用。
7.根据权利要求6所述的系统,其中,所述加密密钥包括用于所述第一服务和所述第二服务中每一个的不同密钥对,每个密钥对包括公密钥和私密钥。
8.根据权利要求7所述的系统,其中,所述控制器进一步被配置成在将所述私密钥提供给所述第一服务和所述第二服务后删除所述私密钥的副本,并且其中,所述控制器被配置成基于公密钥管理所述第一服务和所述第二服务的验证。
9.根据权利要求1-8中任一项所述的系统,其中,所述控制器进一步被配置成在所述第一服务和/或第二服务由所述控制器配置时将该资源与任何外部网络断开。
10.根据权利要求9所述的系统,其中,所述控制器进一步被配置成在所述第一服务和/或第二服务已经由所述控制器配置后将该资源重新连接到任何断开的外部网络。
11.根据权利要求9-10中任一项所述的系统,其进一步包括该资源与所述控制器之间的带内连接、带外连接和/或存储区域网络连接中的至少一个,并且其中,所述控制器进一步被配置成在所述第一服务和/或第二服务正在由所述控制器配置时将该资源与所述带内连接、带外连接和/或存储区域网络连接断开。
12.根据权利要求11所述的系统,其中,所述控制器进一步被配置成在所述第一服务和/或第二服务已经由所述控制器配置后将该资源重新连接到断开的带内连接、带外连接和/或存储区域网络连接。
13.根据权利要求1-12中任一项所述的系统,其中,所述控制器进一步被配置成解决所述第一服务和所述第二服务之间的依赖关系。
14.一种信息技术(IT)方法,其与计算机系统一起使用,所述计算机系统包括控制器、连接到所述控制器的资源,其中所述资源包括第一服务和第二服务,其中,所述第一服务和所述第二服务相对于彼此具有依赖性,其中,所述第一服务包括相对于所述第二服务的依赖性服务,以及其中,所述第二服务包括相对于所述第一服务的依赖服务,所述方法包括:
经由应用程序编程接口将所述第一服务和第二服务彼此联系并且与所述控制器联系;以及
所述控制器管理所述第一服务相对于所述第二服务的可交互操作性。
15.根据权利要求14所述的方法,所述方法还包括:
所述第二服务通过所述API发布对所述第一服务的调用,以便所述第一服务执行操作。
16.根据权利要求14-15中任一项所述的方法,所述方法还包括:
所述第一服务要求所述控制器验证所述第二服务,以执行用于所述第二服务的操作。
17.根据权利要求16所述的方法,所述方法还包括:
所述控制器基于相互tls认证、公密钥认证、和/或基于网络的验证来对所述第二服务进行验证。
18.根据权利要求14-17中任一项所述的方法,所述方法还包括:
所述第一服务根据来自所述控制器的权限来执行用于所述第二服务的操作。
19.根据权利要求14-18中任一项所述的方法,所述方法还包括:
所述控制器将加密密钥提供给所述第一服务和所述第二服务,用于在所述第一服务和所述第二服务的验证中使用。
20.根据权利要求19所述的方法,其中,所述加密密钥包括用于所述第一服务和所述第二服务中每一个的不同密钥对,每个密钥对包括公密钥和私密钥。
21.根据权利要求20所述的方法,所述方法还包括:
所述控制器在将所述私密钥提供给所述第一服务和所述第二服务后删除所述私密钥的副本以及
所述控制器基于公密钥管理所述第一服务和所述第二服务的验证。
22.根据权利要求14-21中任一项所述的方法,所述方法还包括:
所述控制器在所述第一服务和/或第二服务在由所述控制器配置时将该资源与任何外部网络断开。
23.根据权利要求22所述的方法,所述方法还包括:
所述控制器在所述第一服务和/或所述第二服务已经由所述控制器配置后将该资源重新连接到任何断开的外部网络。
24.根据权利要求22-23中任一项之方法,其中,所述资源经由所述资源与所述控制器之间的带内连接、带外连接和/或存储区域网络连接中的至少一个连接到所述控制器,所述方法进一步包括:
所述控制器在所述第一服务和/或所述第二服务正由所述控制器配置时进一步将所述资源与所述带内连接、带外连接、和/或存储区域网络连接断开。
25.根据权利要求24所述的方法,所述方法还包括:
所述控制器在所述第一服务和/或第二服务已经由所述控制器配置后将该资源重新连接到断开的带内连接、带外连接和/或存储区域网络连接。
26.根据权利要求14-25中任一项所述的方法,所述方法还包括:
所述控制器解决所述第一服务和所述第二服务之间的依赖关系。
27.一种信息技术(IT)计算机系统,包括:
控制器;
资源,其用于连接到所述控制器,其中,所述资源包括第一服务和第二服务,其中,所述第一服务和第二服务相对于彼此具有依赖性,其中,所述第一服务包括相对于所述第二服务的依赖性服务,以及其中,所述第二服务包括相对于所述第一服务的依赖服务;以及
其中,所述控制器被配置成维护清除规则,所述清除规则将对所述第一服务所做的修改识别为所述第二服务的依赖性,其中,如果所述第二服务被删除和/或禁用,所述清除规则支持对所述第一服务的删除、移除、和/或复原的修改。
28.根据权利要求27所述的系统,其中,所述第二服务被配置成调用所述第一服务,以便所述第一服务执行操作,并且其中,对所述第一服务的修改与所述操作的性能有关;以及
其中,所述控制器被配置成将对所述第一服务的修改识别为所述清除规则的一部分。
29.根据权利要求28所述的系统,其中,所述清除规则将对所述第一服务的修改与所述第二服务相关联。
30.根据权利要求28-29中任一项所述的系统,其中,所述控制器进一步被配置成,(1)判定所述第二服务被删除和/或禁用或者将被删除和/或禁用;以及(2)响应于所述第二服务被删除和/或禁用或者将被删除和/或禁用的判定,应用所述清除规则以删除、移除、和/或复原对所述第一服务的已识别的修改。
31.根据权利要求27-30中任一项所述的系统,其中,所述资源包括彼此之间具有依赖关系的多个额外服务,并且其中,所述清除规则包括识别对各个所述额外服务所做的修改的多个清除规则。
32.根据权利要求31所述的系统,其中,是依赖服务的每个服务与识别对其依赖性服务的修改的清除规则相关联。
33.根据权利要求31-32中任一项所述的系统,所述系统还包括:
应用程序编程接口(API),其将所述服务彼此相联系并且与所述控制器相联系。
34.根据权利要求33所述的系统,其中,所述依赖服务被配置成通过所述API调用其依赖性服务;以及
其中,所述控制器被配置成将对所述依赖性服务的修改识别为所述清除规则的一部分。
35.根据权利要求34所述的系统,其中,所述API被配置成记录来自服务的命令,并且其中,所述控制器进一步被配置成从记录的API命令生成所述清除规则。
36.根据权利要求27-35中任一项所述的系统,其进一步包括连接到所述控制器的多个资源,其中,所述资源包括多个彼此具有依赖关系的多个服务,并且其中,所述清除规则包括识别对各个服务所做的修改的多个清除规则。
37.一种信息技术(IT)方法,包括:
在计算机系统中的资源上运行第一服务和第二服务,所述电脑系统包括连接到所述资源的控制器,其中,所述第一服务和第二服务相对于彼此具有依赖性,其中,所述第一服务包括相对于所述第二服务的依赖性服务,以及其中,所述第二服务包括相对于所述第一服务的依赖服务;以及
所述控制器维持清除规则,所述清除规则将对所述第一服务所做的修改识别为所述第二服务的依赖性,其中,如果所述第二服务被删除和/或禁用,所述清除规则支持对所述第一服务的删除、移除、和/或复原的修改。
38.根据权利要求37所述的方法,所述方法还包括:
所述第二服务调用所述第一服务,以便所述第一服务执行操作,并且其中,对所述第一服务的修改与所述操作的性能有关;以及
其中,所述控制器将对所述第一服务的修改为所述清除规则的一部分。
39.根据权利要求38所述的方法,其中,所述清除规则将对所述第一服务的修改与所述第二服务相关联。
40.根据权利要求38-39中任一项所述的方法,所述方法还包括:
所述控制器判定所述第二服务被删除和/或禁用或者将被删除和/或禁用;以及响应于所述第二服务被删除和/或禁用或者将被删除和/或禁用的判定,所述控制器应用所述清除规则以删除、移除、和/或复原对所述第一服务的已识别的修改。
41.根据权利要求37-40中任一项所述的方法,其中,所述资源包括彼此之间具有依赖关系的多个额外服务,并且其中,所述清除规则包括识别对各个所述额外服务所做的修改的多个清除规则。
42.根据权利要求41所述的方法,其中,是依赖服务的每个服务与识别对其依赖性服务的修改的清除规则相关联。
43.根据权利要求41-42中任一项所述的方法,所述方法还包括:
应用程序编程接口(API),其将所述服务彼此相联系并且与所述控制器相联系。
44.根据权利要求43所述的方法,所述方法还包括:
所述依赖服务通过所述API调用其依赖性服务;以及
所述控制器将对所述依赖性服务的修改识别为所述清除规则的一部分。
45.根据权利要求44所述的方法,所述方法还包括:
所述API记录来自服务的命令;以及
所述控制器从记录的API命令生成所述清除规则。
46.根据权利要求37-45中任一项所述的方法,其中,多个资源连接到所述控制器,其中,所述资源包括多个彼此具有依赖关系的多个服务,并且其中,所述清除规则包括识别对各个服务所做的修改的多个清除规则。
47.一种信息技术(IT)计算机系统,包括:
控制器;
计算资源,用于连接到所述控制器;以及
存储资源,由所述计算资源使用;
其中,所述控制器被配置成将用于所述存储资源的存储凭证提供给所述计算资源;以及
其中,所述计算资源被配置成基于所述存储凭证而连接到所述存储资源、登录到所述存储资源、和/或与所述存储资源通信。
48.根据权利要求47所述的系统,其中,所述控制器进一步被配置成:(1)将所述计算资源和所述存储资源配对;以及(2)将配对的计算资源和存储资源放置到相同的网络或构架上。
49.根据权利要求48所述的系统,其中,所述控制器进一步被配置成:(1)停用所述计算资源和所述存储资源之间的存储区域网络(SAN)连接;以及(2)使得所述存储资源在隔离的连接网络上可供所述计算资源使用,从而将配对的计算资源和存储资源放置到相同的网络或构架上。
50.根据权利要求49所述的系统,其中,隔离的连接网络包括vlans、vxlans、和/或无限带宽分区。
51.根据权利要求47-50中任一项所述的系统,其中,所述存储凭证包括密码或密码短语。
52.根据权利要求47-51中任一项所述的系统,其中,所述存储凭证包括chap密钥。
53.根据权利要求47-52中任一项所述的系统,其中,所述存储凭证包括加密密钥。
54.根据权利要求50所述的系统,其中,所述计算资源被配置成基于加密技术而从加密密钥计算用于所述存储资源的登录凭证。
55.根据权利要求47-54中任一项所述的系统,其中,所述存储凭证包括证书。
56.根据权利要求47-55中任一项所述的系统,其进一步包括多个计算资源和多个存储资源;并且其中,所述控制器被配置成将用于所述存储资源的存储凭证提供给所述计算资源,使得多个计算资源与所述存储资源中的不同存储资源配对。
57.一种用于和计算机系统一起使用的信息技术(IT)方法,所述计算机系统包括控制器、连接到所述控制器的计算资源、以及用于所述计算资源使用的存储资源,所述方法包括:
所述控制器将用于所述存储资源的存储凭证提供给所述计算资源;以及
所述计算资源基于所述存储凭证而连接到所述存储资源、登录到所述存储资源、和/或与所述存储资源通信。
58.根据权利要求57所述的方法,所述方法还包括:
所述控制器进一步将所述计算资源和所述存储资源配对;以及
所述控制器将配对的计算资源和存储资源放置于相同网络或构架上。
59.根据权利要求58所述的方法,所述方法还包括:
所述控制器停用所述计算资源和所述存储资源之间的存储区域网络(SAN)连接;以及
其中,该放置步骤包括使得所述存储资源在隔离的连接网络上可供所述计算资源使用。
60.根据权利要求59所述的方法,其中,隔离的连接网络包括vlans、vxlans、和/或无限带宽分区。
61.根据权利要求57-60中任一项所述的方法,其中,所述存储凭证包括密码或密码短语。
62.根据权利要求57-61中任一项所述的方法,其中,所述存储凭证包括chap密钥。
63.根据权利要求57-62中任一项所述的方法,其中,所述存储凭证包括加密密钥。
64.根据权利要求60所述的方法,所述方法还包括:
所述计算资源基于加密技术而从加密密钥计算用于所述存储资源的登录凭证。
65.根据权利要求57-64中任一项所述的方法,其中,所述存储凭证包括证书。
66.根据权利要求57-65中任一项所述的方法,其中所述计算机系统还包括多个计算资源和多个存储资源;并且其中,提供步骤包括:所述控制器将用于所述存储资源的存储凭证提供给所述计算资源,使得多个计算资源与所述存储资源中的不同存储资源配对。
67.一种信息技术(IT)计算机系统,包括:
控制器;
资源;
带内管理连接,用于将所述资源连接到所述控制器;
第一连接,用于将所述控制器连接到云中的实例;以及
第二连接,用于将云实例连接到所述带内管理连接;
其中,所述控制器被配置成经由所述第一连接提供所述云实例;以及
其中,所述控制器和/或所述资源被配置成经由所述第二连接而与提供的云实例操作性地交互作用。
68.根据权利要求67所述的系统,其中,所述云实例包括云存储资源。
69.根据权利要求68所述的系统,其中,所述控制器进一步配配置成:(1)维护系统状态信息;(2)创建用于所述云存储资源的存储桶;以及(3)将用于所述云存储资源的连接信息保存为所述系统状态信息的一部分。
70.根据权利要求69所述的系统,其中,所述资源包括计算资源,以及其中,所述控制器进一步被配置成将用于所述云存储信息的连接信息提供给所述计算资源,由此使得所述计算资源能够与所述云存储资源连接并使用所述云存储资源。
71.根据权利要求67-70中任一项所述的系统,其中,所述云实例是云实例池的一部分,所述云实例池由所述控制器作为云资源池进行管理。
72.根据权利要求71所述的系统,其中,所述控制器进一步被配置成将所述资源设置为具有云资源池的主机。
73.根据权利要求72所述的系统,其中,所述控制器进一步被配置成:(1)维护系统状态信息;以及(2)将与所述云资源池中的云实例有关的信息添加到所述系统状态信息。
74.根据权利要求73所述的系统,其中,所述控制器进一步被配置成通过所述带内管理连接来创建到所述云资源池的VPN连接。
75.根据权利要求67-74中任一项所述的系统,其中,所述控制器进一步被配置成经由所述第一连接来识别所述云实例的类型。
76.根据权利要求75所述的系统,其中,所述控制器进一步被配置成经由所述第一连接来识别所述云实例的配置。
77.根据权利要求75-76中任一项所述的系统,其中,所述控制器进一步被配置成:(1)维护系统规则;以及(2)基于所述系统规则来判定是否要为所述系统购买所述云实例和/或将所述云实例添加到所述系统。
78.根据权利要求77所述的系统,其中,所述控制器进一步被配置成:响应于要为所述系统购买所述云实例和/或将所述云实例添加到所述系统的判定,使用模板将所述云实例作为所述系统的另一资源添加到所述系统。
79.根据权利要求78所述的系统,其中,所述控制器进一步被配置成经由所述第一连接来为所述云实例上电和/或启用所述云实例。
80.根据权利要求79所述的系统,其中,所述控制器进一步配配置成,基于识别的云实例类型,从所述模板中查找并加载用于所述云实例的启动镜像。
81.根据权利要求80所述的系统,其中,所述云实例进一步被配置成基于所述启动镜像来启动。
82.根据权利要求67-81中任一项所述的系统,其中,所述第一连接经由云应用程序编程接口(API)将所述控制器连接到所述云实例。
83.根据权利要求82所述的系统,其中,所述云API允许由所述控制器购买和/或连接到所述云实例。
84.根据权利要求67-83中任一项所述的系统,其中,所述第二连接将所述云实例经由VPN连接到所述带内管理连接。
85.一种用于和计算机系统一起使用的信息技术(IT)方法,所述计算机系统包括控制器、资源、将所述资源连接到所述控制器的带内管理连接、将云实例连接到所述带内管理连接的第一连接以及将所述云实例连接到所述带内管理连接的第二连接,所述方法包括:
所述控制器经由所述第一连接提供所述云实例;以及
所述控制器和/或所述资源经由所述第二连接与所提供的云实例操作性地交互作用。
86.根据权利要求85所述的方法,其中,所述云实例包括云存储资源。
87.根据权利要求86所述的方法,所述方法还包括:
所述控制器:(1)维护系统状态信息;(2)创建用于所述云存储资源的存储桶;以及(3)将用于所述云存储资源的连接信息保存为所述系统状态信息的一部分。
88.根据权利要求87之方法,其中,所述资源包括计算资源,所述方法进一步包括:
所述控制器将用于所述云存储信息的连接信息提供给所述计算资源,由此使得所述计算资源能够与所述云存储资源连接并使用所述云存储资源。
89.根据权利要求85-88中任一项所述的方法,其中,所述云实例是云实例池的一部分,所述云实例池由所述控制器作为云资源池进行管理。
90.根据权利要求89所述的方法,所述方法还包括:
所述控制器将所述资源设置为具有云资源池的主机。
91.根据权利要求90所述的方法,所述方法还包括:
所述控制器进一步:(1)维护系统状态信息;以及(2)将与所述云资源池中的云实例有关的信息添加到所述系统状态信息。
92.根据权利要求91所述的方法,所述方法还包括:
所述控制器通过所述带内管理连接来创建到所述云资源池的VPN连接。
93.根据权利要求85-92中任一项所述的方法,所述方法还包括:
所述控制器经由所述第一连接识别所述云实例的类型。
94.根据权利要求93所述的方法,所述方法还包括:
所述控制器经由所述第一连接识别所述云实例的配置。
95.根据权利要求93-94中任一项所述的方法,所述方法还包括:
所述控制器:(1)维护系统规则;以及(2)基于所述系统规则来判定是否要为所述系统购买所述云实例和/或将所述云实例添加到所述系统。
96.根据权利要求95所述的方法,所述方法还包括:
响应于要为所述系统购买所述云实例和/或将所述云实例添加所述系统的判定,所述控制器使用模板将所述云实例作为所述系统的另一资源添加到所述系统。
97.根据权利要求96所述的方法,所述方法还包括:
所述控制器经由所述第一连接为所述云实例上电和/或启用所述云实例。
98.根据权利要求97所述的方法,所述方法还包括:
所述控制器基于识别的云实例类型从所述模板中查找并加载用于所述云实例的启动镜像。
99.根据权利要求98所述的方法,所述方法还包括:
基于所述启动镜像来启动所述云实例。
100.根据权利要求85-99中任一项所述的方法,其中,所述第一连接经由云应用程序编程接口(API)将所述控制器连接到所述云实例。
101.根据权利要求100所述的方法,所述方法还包括:
所述云API允许由所述控制器购买和/或连接到所述云实例。
102.根据权利要求85-101中任一项所述的方法,其中,所述第二连接将所述云实例经由VPN连接到所述带内管理连接。
103.一种信息技术(IT)计算机系统,包括:
控制器;
内存;
多个资源,用于连接到所述控制器;以及
多个服务,用于由所述资源中的至少一个资源执行,其中,所述服务包括第一服务和第二服务,其中,所述第一服务和所述第二服务相对于彼此具有依赖性;并且
其中,所述内存被配置成存储多个备份规则,所述备份规则包括与所述第一服务相关联的备份规则规范;并且
其中,所述控制器或所述资源中的至少一个资源被配置成(1)访问所述内存中的与第一服务相关联的备份规则;以及(2)根据访问的与第一服务相关联的备份规则执行所述第一服务的备份操作,其中,与第一服务相关联的备份规则定义与所述第二服务的链接,所述链接使得与所述第二服务相关的数据得以和所述第一服务相关的备份数据协同地备份。
104.根据权利要求103所述的系统,其中,所述内存进一步被配置为存储多个模板,所述模板包括与所述第一服务相关联的模板,与所述第一服务相关联的模板包括与所述第一服务相关联的备份规则和/或指向其的指针。
105.根据权利要求103-104中任一项所述的系统,其中,所述资源包括所个计算资源,其中,所述计算资源中的至少一个计算资源被配置成执行备份操作;
其中,所述资源进一步包括多个存储资源;以及
其中,所述控制器进一步被配置成将所述存储资源中的至少一个存储资源内的存储空间提供给所述备份操作,以在其中归档备份数据。
106.根据权利要求105所述的系统,其中,所述控制器进一步被配置成为所述第一服务提供到所提供的存储空间的访问权,用于根据所述备份操作在其中归档备份数据。
107.根据权利要求105-106中任一项所述的系统,其中,与所述第一服务相关联的备份规则包括多个规则,其监管如何将所述存储资源提供给所述备份操作。
108.根据权利要求103-107中任一项所述的系统,其中,所述控制器进一步被配置成基于与所述第一服务和所述第二服务相关的备份数据发起针对所述第一服务的恢复操作。
109.根据权利要求103-108中任一项所述的系统,其中,所述备份规则进一步包括与所述第二服务相关联的备份规则规范,并且其中,所述备份操作包括访问和执行与所述第二服务相关联的备份规则的至少一部分。
110.根据权利要求109所述的系统,其中,与所述第一服务相关联的备份规则包括指向与所述第二服务相关联的备份规则的指针。
111.根据权利要求109-110中任一项所述的系统,其中,所述服务进一步包括第三服务,其中,所述第三服务关于所述第二服务是依赖的;以及
其中,与所述第二服务相关联的备份规则定义与所述第三服务的链接,所述链接使得与所述第三服务相关的数据也与和所述第一服务和所述第二服务相关的备份数据协同地备份。
112.根据权利要求103-111中任一项所述的系统,其中,所述服务进一步包括第三服务,其中,所述第三服务关于所述第一服务是依赖的;以及
其中,与所述第一服务相关联的备份规则定义与所述第三服务的链接,所述链接使得与所述第三服务相关的数据也与和所述第一服务和所述第二服务相关的备份数据协同地备份。
113.根据权利要求103-112中任一项所述的系统,其中,与所述第一服务相关联的备份规则包括与所述第一服务相关联的恢复信息。
114.一种用于和计算机系统一起使用的信息技术(IT)方法,所述计算机系统包括控制器、内存、连接到所述控制器的多个资源、以及用于由所述资源中的只扫一个资源执行的多个服务,其中,所述资源包括第一服务和第二服务,其中,所述第一服务和第二服务相对于彼此具有依赖性,其中,所述第一服务和所述第二服务相对于彼此具有依赖性,所述方法包括:
将多个备份规则存储在所述内存中,所述备份规则包括与所述第一服务相关联的备份规则规范;
访问所述内存中与所述第一服务相关联的备份规则;以及
根据访问的与所述第一服务相关联的备份规则执行所述第一服务的备份操作,其中,与所述第一服务相关联的备份规则限定与所述第二服务的链接,所述链接使得与所述第二服务相关的数据也和与所述第一服务相关的数据备份协同地备份,其中,该备份操作由所述控制器或所述资源中的至少一个资源执行。
115.根据权利要求114所述的方法,其中,所述内存存储多个模板,所述模板包括与所述第一服务相关联的模板,与所述第一服务相关联的模板包括与所述第一服务相关联的备份规则和/或指向其的指针,并且其中,访问步骤包括经由与所述第一服务相关联的模板访问与所述第一服务相关联的备份规则。
116.根据权利要求114-115中任一项所述的方法,其中,所述资源包括多个计算资源,其中,所述计算资源中的至少一个计算资源执行所述备份操作;
其中,所述资源进一步包括多个存储资源;以及
其中,所述方法进一步包括:控制器将所述存储资源中的至少一个存储资源内的存储空间提供这所述备份操作,以在其中归档备份数据。
117.根据权利要求116所述的方法,所述方法还包括:
所述控制器为所述第一服务提供到所提供的存储空间的访问权,用于根据所述备份操作归档备份数据。
118.根据权利要求116-117中任一项所述的方法,其中,与所述第一服务相关联的备份规则包括多个规则,其监管如何将所述存储资源提供给所述备份操作。
119.根据权利要求114-118中任一项所述的方法,所述方法还包括:
所述控制器基于与所述第一服务和所述第二服务相关的备份数据发起针对所述第一服务的恢复操作。
120.根据权利要求114-119中任一项所述的方法,其中,所述备份规则进一步包括与所述第二服务相关联的备份规则规范,并且其中,所述备份操作包括访问和执行与所述第二服务相关联的备份规则的至少一部分。
121.根据权利要求120所述的方法,其中,与所述第一服务相关联的备份规则包括指向与所述第二服务相关联的备份规则的指针。
122.根据权利要求120-121中任一项所述的方法,其中,所述服务进一步包括第三服务,其中,所述第三服务关于所述第二服务是依赖的;以及
其中,与所述第二服务相关联的备份规则定义与所述第三服务的链接,所述链接使得与所述第三服务相关的数据也与和所述第一服务和所述第二服务相关的备份数据协同地备份。
123.根据权利要求114-122中任一项所述的方法,其中,所述服务进一步包括第三服务,其中,所述第三服务关于所述第一服务是依赖的;以及
其中,与所述第一服务相关联的备份规则定义与所述第三服务的链接,所述链接使得与所述第三服务相关的数据也与和所述第一服务和所述第二服务相关的备份数据协同地备份。
124.根据权利要求114-123中任一项所述的方法,其中,与所述第一服务相关联的备份规则包括与所述第一服务相关联的恢复信息。
125.根据权利要求1-102中任一项所述的系统或方法,其中,所述控制器进一步被配置成管理所述系统的一个或多个部件的备份操作,所述部件包括彼此具有依赖关系的服务。
126.根据权利要求125所述的系统或方法,其中,所述控制器进一步被配置成管理根据权利要求103-124所所述的备份操作。
127.一种系统、设备、方法和/或计算机程序产品,包括本文公开的特征的任何组合。
CN202080056751.9A 2019-06-11 2020-06-10 自动部署的信息技术(it)系统和具有增强的安全性的方法 Pending CN114270779A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962860148P 2019-06-11 2019-06-11
US62/860,148 2019-06-11
PCT/US2020/037087 WO2020252088A1 (en) 2019-06-11 2020-06-10 Automatically deployed information technology (it) system and method with enhanced security

Publications (1)

Publication Number Publication Date
CN114270779A true CN114270779A (zh) 2022-04-01

Family

ID=73781272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080056751.9A Pending CN114270779A (zh) 2019-06-11 2020-06-10 自动部署的信息技术(it)系统和具有增强的安全性的方法

Country Status (10)

Country Link
US (1) US20220174096A1 (zh)
EP (1) EP3984196A4 (zh)
JP (1) JP2022536706A (zh)
KR (1) KR20220060525A (zh)
CN (1) CN114270779A (zh)
AU (1) AU2020294004A1 (zh)
CA (1) CA3143247A1 (zh)
IL (1) IL288814A (zh)
TW (1) TW202105221A (zh)
WO (1) WO2020252088A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114726719A (zh) * 2022-03-23 2022-07-08 中国电信股份有限公司 网元操作系统部署方法、装置、电子设备及存储介质

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544410B2 (en) * 2020-01-10 2023-01-03 Zscaler, Inc. Secure access to third-party cloud-based applications
US11637910B2 (en) * 2020-08-20 2023-04-25 Zscaler, Inc. Cloud access security broker systems and methods with an in-memory data store
US11941465B2 (en) * 2021-04-29 2024-03-26 Michael G. Whitfield File discovery on a data storage device based on a filesystem location of microservices
US20230073891A1 (en) * 2021-09-09 2023-03-09 Beijing Bytedance Network Technology Co., Ltd. Multifunctional application gateway for security and privacy
US20230132276A1 (en) * 2021-10-26 2023-04-27 Schneider Electric Systems, USA Inc. Secure loading and execution of user-defined content on embedded remote terminal unit controller
US20230229779A1 (en) * 2022-01-18 2023-07-20 Dell Products L.P. Automated ephemeral context-aware device provisioning
US11609985B1 (en) * 2022-05-11 2023-03-21 Cyberark Software Ltd. Analyzing scripts to create and enforce security policies in dynamic development pipelines
CN117997734A (zh) * 2022-10-31 2024-05-07 华为云计算技术有限公司 一种针对多资源池网络的管理方法及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1609802A (zh) * 2003-10-24 2005-04-27 微软公司 用于管理许可的编程接口
CN102195964A (zh) * 2010-02-18 2011-09-21 株式会社理光 程序管理系统、程序管理方法、客户端及计算机程序产品
CN105591805A (zh) * 2015-09-28 2016-05-18 杭州华三通信技术有限公司 一种修改服务链配置的方法和装置
CN108337260A (zh) * 2016-05-11 2018-07-27 甲骨文国际公司 多租户身份和数据安全性管理云服务
US20190018760A1 (en) * 2016-04-29 2019-01-17 Intuit Inc. Monitoring of application program interface integrations
CN109491777A (zh) * 2018-11-12 2019-03-19 北京字节跳动网络技术有限公司 任务执行方法、装置、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10122596B2 (en) 2012-09-07 2018-11-06 Oracle International Corporation System and method for providing a service management engine for use with a cloud computing environment
US9558460B2 (en) * 2013-06-28 2017-01-31 Lexmark International Technology Sarl Methods of analyzing software systems having service components
FR3045506B1 (fr) 2015-12-16 2017-12-22 Saint Gobain Pare-brise feuillete de vehicule avec signaletique lumineuse interne.

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1609802A (zh) * 2003-10-24 2005-04-27 微软公司 用于管理许可的编程接口
CN102195964A (zh) * 2010-02-18 2011-09-21 株式会社理光 程序管理系统、程序管理方法、客户端及计算机程序产品
CN105591805A (zh) * 2015-09-28 2016-05-18 杭州华三通信技术有限公司 一种修改服务链配置的方法和装置
US20190018760A1 (en) * 2016-04-29 2019-01-17 Intuit Inc. Monitoring of application program interface integrations
CN108337260A (zh) * 2016-05-11 2018-07-27 甲骨文国际公司 多租户身份和数据安全性管理云服务
CN109491777A (zh) * 2018-11-12 2019-03-19 北京字节跳动网络技术有限公司 任务执行方法、装置、设备及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘琳羽;南凯;: "一种基于Docker的开发者服务平台设计", 科研信息化技术与应用, no. 05 *
刘琳羽;南凯;: "一种基于Docker的开发者服务平台设计", 科研信息化技术与应用, no. 05, 20 September 2015 (2015-09-20) *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114726719A (zh) * 2022-03-23 2022-07-08 中国电信股份有限公司 网元操作系统部署方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
WO2020252088A1 (en) 2020-12-17
JP2022536706A (ja) 2022-08-18
US20220174096A1 (en) 2022-06-02
CA3143247A1 (en) 2020-12-17
KR20220060525A (ko) 2022-05-11
AU2020294004A1 (en) 2022-02-17
IL288814A (en) 2022-02-01
EP3984196A1 (en) 2022-04-20
TW202105221A (zh) 2021-02-01
EP3984196A4 (en) 2023-06-07

Similar Documents

Publication Publication Date Title
JP7391862B2 (ja) 自動的に配備される情報技術(it)システム及び方法
US20220174096A1 (en) Automatically Deployed Information Technology (IT) System and Method with Enhanced Security
US20220329628A1 (en) Techniques for secure intra-node communication between edge devices
US9274824B2 (en) Network technology standard operating environment
US8321863B2 (en) Security management device and method
CN113220398B (zh) 一种智能的多架构融合型安全桌面云系统
US8346897B2 (en) System and method for deploying and maintaining software applications
US8443365B2 (en) Methods and systems to clone a virtual machine instance
JP2008533573A (ja) 障害回復アーキテクチャー
US11740936B2 (en) Method and system for managing cloud resources
US8429717B2 (en) Method for activating virtual machine, apparatus for simulating computing device and supervising device
US10536518B1 (en) Resource configuration discovery and replication system for applications deployed in a distributed computing environment
US20230025529A1 (en) Apparatus and method for managing a distributed system with container image manifest content
US20230148158A1 (en) Method and system for managing cloud resources
AU2018379088B2 (en) Automatically deployed information technology (IT) system and method
Vetter et al. IBM Power Systems HMC Implementation and Usage Guide
US20230325203A1 (en) Provisioning dpu management operating systems using host and dpu boot coordination
Dell RackHD Documentation
JP5307223B2 (ja) 障害回復アーキテクチャ
Casaletto et al. Cisco DCUCI Quick Reference
Záhořík Virtualisation of Critical Network Services

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination