ES2933399T3 - Gestión de ubicación de servicio en sistemas de computación - Google Patents

Gestión de ubicación de servicio en sistemas de computación Download PDF

Info

Publication number
ES2933399T3
ES2933399T3 ES20180819T ES20180819T ES2933399T3 ES 2933399 T3 ES2933399 T3 ES 2933399T3 ES 20180819 T ES20180819 T ES 20180819T ES 20180819 T ES20180819 T ES 20180819T ES 2933399 T3 ES2933399 T3 ES 2933399T3
Authority
ES
Spain
Prior art keywords
computing
cloud
facility
facilities
cloud services
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.)
Active
Application number
ES20180819T
Other languages
English (en)
Inventor
James Johnson
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Application granted granted Critical
Publication of ES2933399T3 publication Critical patent/ES2933399T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • 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/5072Grid computing
    • 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
    • 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/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • 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/52Network services specially adapted for the location of the user terminal
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Hardware Redundancy (AREA)

Abstract

En el presente documento se describen técnicas para facilitar la asignación de servicios en la nube en sistemas de computación en la nube. En una realización, un método puede incluir la transmisión de una solicitud a los controladores de servicios configurados para administrar los correspondientes servicios en la nube que se pueden implementar en el sistema de computación en la nube, incluyendo la solicitud un conjunto de servicios en la nube para implementar en el sistema de computación en la nube. El método también puede incluir recibir, de cada uno de los controladores de servicios, una lista de al menos algunas de las instalaciones informáticas dispuestas en orden de preferencia para implementar uno o más servicios en la nube correspondientes. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Gestión de ubicación de servicio en sistemas de computación
Antecedentes
La computación remota o "en la nube" utiliza normalmente una colección de servidores remotos en centros de datos para proporcionar computación, almacenamiento de datos, comunicaciones electrónicas u otros servicios en la nube. Los servidores remotos pueden interconectarse mediante redes de computadoras para formar un tejido de computación organizado como uno o más agrupaciones de computación. Durante el funcionamiento, varios servidores remotos o agrupaciones de computación pueden cooperar para proporcionar un entorno de computación distribuido que facilite la ejecución de aplicaciones de usuario para proporcionar servicios en la nube.
El documento WO 2014/065722 A1 se refiere a técnicas para desplegar servicios en la nube en una red de computación en la nube donde los servicios en la nube se proporcionarán a clientes de móvil de nube. Se presenta una técnica para desplegar previamente el servicio en la nube requerido en un entorno de procesamiento de servicios en la nube factible que esté más cerca de la ubicación en la que el cliente de nube planea estar en un tiempo estimado de llegada y duración.
El documento US 2014/0366155 se refiere a una pasarela de almacenamiento en la nube configurada para proporcionar servicios de almacenamiento seguro en un entorno de nube. Una técnica puede incluir la implantación del aprovisionamiento de almacenamiento para una máquina virtual en un entorno híbrido de nube que incluye una red de empresa en comunicación con una nube. La red de empresa incluye almacenamiento de empresa, y la nube incluye almacenamiento en la nube. El aprovisionamiento de almacenamiento se implanta al desplegar una pasarela de almacenamiento en la nube que facilita la migración segura de datos asociados con la máquina virtual entre el almacenamiento de empresa y el almacenamiento en la nube.
Sumario
El objeto de la presente invención es mejorar los sistemas de la técnica anterior.
Este objeto se soluciona mediante el objeto de las reivindicaciones independientes.
Las realizaciones preferidas se definen en las reivindicaciones dependientes.
Este sumario se proporciona para presentar una selección de conceptos en una forma simplificada que se describen más adelante en la descripción detallada. Este sumario no pretende identificar las características clave o las características esenciales del objeto reivindicado, ni pretende ser utilizado para limitar el alcance del objeto reivindicado.
Ciertos servicios en la nube prefieren estar físicamente cerca unos de otros debido a la latencia de la comunicación, al rendimiento o a otras consideraciones adecuadas. Por ejemplo, dos máquinas virtuales preferirían estar cerca para intercambiar datos para su procesamiento. Tales preferencias de ubicación están típicamente asociadas a un controlador de servicio común que gestiona servicios similares. Por ejemplo, una aplicación que despliega dos máquinas virtuales puede especificar que las dos máquinas virtuales se alojen en un solo servidor, dentro de una distancia de retardo de red particular o en un único dominio de fallo. Luego, un controlador de máquina virtual puede asignar y despliega las máquinas virtuales de acuerdo con la especificación de la aplicación.
Sin embargo, la gestión anterior de despliegue basada en controlador puede tener una eficacia limitada cuando se manejan ciertas aplicaciones con servicios diferentes que son gestionados por diferentes controladores. Por ejemplo, una aplicación puede incluir un conjunto de máquinas virtuales con servicios de almacenamiento asociados, servicios de bases de datos y/u otros tipos adecuados de servicios en la nube. Los servicios diferentes pueden preferir estar físicamente cerca uno del otro, pero, típicamente, no comparten un controlador de servicio común. En cambio, cada tipo de servicios es colocado por uno o más controladores de los servicios correspondientes. Como tal, facilitar la afinidad de colocación en una colección de servicios diferentes puede suponer una complicación para los proveedores de servicios en la nube.
Varias realizaciones de la tecnología divulgada están dirigidas a técnicas para asignar servicios diferentes a modo de colección a instalaciones de computación, de modo que los diferentes servicios puedan estar físicamente cerca uno del otro. La colección de diferentes servicios se puede también mover como un grupo durante una conmutación por error regional o a nivel de instalación, y se puede restaurar posteriormente a una instalación de computación original después de reparar el fallo. En ciertas implantaciones, una aplicación puede, mediante declaración, especificar una colección de servicios en la nube de diferentes tipos. Cada servicio en la nube especificado puede ser gestionado por el controlador de servicio correspondiente.
Los controladores de servicios pueden luego participar en un proceso para determinar una ubicación (por ejemplo, una o más instalaciones de computación) para desplegar o mover la colección de servicios en la nube como un grupo en base a las preferencias colectivas de los controladores de servicios. Por ejemplo, los controladores de servicios pueden estar advertidos de que ciertas instalaciones de computación, como, por ejemplo, los centros de datos designados como DC1, DC2, DC3, están disponibles para desplegar los servicios en la nube. Los controladores de servicios también pueden comprender que todos los servicios en la nube desplegados en una única instalación de computación (o en un grupo de instalaciones de computación) están físicamente cerca. Dada la lista de posibles instalaciones de computación, un servicio de gestión puede consultar a los controladores de servicio para obtener una lista de las posibles ubicaciones que prefiere cada controlador de servicio. Los controladores de servicios pueden clasificar la lista en orden de preferencia, en base a, por ejemplo, las capacidades disponibles, la idoneidad de la configuración, las restricciones de ubicación compartida especificadas de los servicios en la nube, o a otras consideraciones adecuadas. Una vez que el servicio de gestión recibe las listas de los controladores de servicio, el servicio de gestión puede derivar una preferencia general para la recopilación de servicios basándose en las listas recibidas de posibles ubicaciones. El servicio de gestión puede enviar luego una restricción de colocación a cada controlador de servicios para limitar la asignación de los servicios correspondientes a una o más de las instalaciones de computación.
En ciertas implantaciones, el servicio de gestión puede asignar ciertos valores a cada instalación de computación posible en base a la clasificación correspondiente, y sumar los valores asignados a las instalaciones de computación individuales, para derivar una instalación de preferencia general. En un ejemplo, los controladores primero, segundo y tercero pueden proporcionar las listas de ubicaciones posibles de la siguiente manera:
DC1, DC3, DC2
DC2, DC3, DC1
DC1, DC2, DC3.
Si el servicio de gestión asigna valores de 3, 2 y 1 a las opciones número uno, dos y tres, respectivamente, DC1, DC2, DC3 tendrían valores totales de 7, 6 y 5, respectivamente. Como tal, el servicio de gestión puede seleccionar DC1 como la preferencia general.
En otras implantaciones, el servicio de gestión también puede filtrar las posibles instalaciones para derivar un conjunto de instalaciones que todos los controladores de servicio pueden aceptar antes de aplicar la asignación de valor anterior. En el ejemplo anterior, si el segundo controlador de servicio no puede aceptar DC1, entonces DC2 sería la preferencia general. En otras implantaciones, el servicio de gestión puede aplicar factores de ponderación para ajustar adicionalmente el equilibrio al seleccionar una preferencia general. Por ejemplo, el servicio de gestión puede aplicar un factor de ponderación mayor que uno a una lista de un controlador de servicio en particular, de tal modo que la elección de ese controlador de servicio supere las opciones de la misma clasificación de otros controladores de servicio. En aún otras implantaciones, el servicio de gestión también puede aplicar diferentes esquemas de asignación de valor u otras técnicas adecuadas para lograr el equilibrio deseado al seleccionar la preferencia general.
Cuando un servicio desplegado se encuentra con una interrupción, fallo u otros problemas operativos, un controlador de servicio que gestiona el servicio desplegado puede solicitar al servicio de gestión que lleve a cabo otro proceso para determinar una nueva instalación de preferencia general. En respuesta, el servicio de gestión puede repetir el proceso anterior en base a nuevas listas de posibles instalaciones de computación de al menos uno de los controladores del servicio. Por ejemplo, en el ejemplo anterior, si el tercer controlador de servicios descubre que un servicio gestionado ya no puede funcionar correctamente en DC2, el tercer controlador de servicios puede solicitar al servicio de gestión que repita el proceso de determinación de la ubicación. El tercer controlador de servicio puede especificar una nueva lista, por ejemplo, DC1, DC3. En base a la nueva lista y las listas del primer y segundo controlador, el servicio de gestión puede seleccionar DC3 como la nueva preferencia general y dar instrucciones al primer, segundo y tercer controlador para mover o migrar los servicios en la nube correspondientes a DC3 desde DC2. Cuando DC2 vuelva a estar más tarde disponible, el servicio de gestión puede repetir el proceso nuevamente, y, posiblemente, decidir mover todos los servicios nuevamente a DC2.
En otras implantaciones, la aplicación también puede especificar grados en los que los servicios en la nube deben ubicarse cerca uno del otro (denominados "restricciones de ubicación conjunta"), y el grado en el que tales restricciones de ubicación conjunta pueden relajarse. Esto permite que el servicio de gestión apruebe decisiones o restricciones que no todos los controladores del servicio pueden aceptar. Por ejemplo, con el ejemplo anterior, si la ubicación conjunta de los servicios gestionados por los controladores primero y tercero es más importante que los gestionados por el segundo controlador, el servicio de gestión puede decidir que DC1 es la preferencia general para los controladores primero y tercero de servicio, pero que DC2 será la preferencia general para el segundo controlador.
Al implantar los procesos de determinación de ubicación anteriores, varias realizaciones de la tecnología divulgada pueden mejorar las eficiencias en el despliegue de servicios en la nube de una aplicación en sistemas de computación en la nube. Al permitir que los controladores de servicios propongan ubicaciones preferidas en base a la ubicación o a las características del servicio en la nube, el servicio de gestión puede derivar una preferencia general para todos los servicios en la nube. El despliegue de los servicios en la nube en la ubicación de preferencia general en base a las restricciones de ubicación conjunta relacionadas con la aplicación puede, al menos, reducir los riesgos de degradación o interrupción del rendimiento debido a la latencia o a otros problemas operativos en los sistemas de computación en la nube.
Breve descripción de los dibujos
La figura 1 es un diagrama esquemático de un sistema de computación en la nube que implanta la gestión de ubicación de servicio de acuerdo con las realizaciones de la tecnología divulgada.
La figura 2A es un diagrama esquemático que ilustra una instalación de computación adecuada para el sistema de computación en la nube de la figura 1 de acuerdo con realizaciones de la tecnología divulgada.
La figura 2B es un diagrama esquemático que ilustra ciertos componentes de equipo físico/lógico de computación (hardware/software) de la instalación de computación de la figura 2a de acuerdo con realizaciones de la tecnología divulgada.
Las figuras 3A-3C son diagramas esquemáticos que ilustran ciertos componentes de hardware/software del sistema de computación en la nube de la figura 1 durante ciertas etapas de determinación de una ubicación de preferencia general para desplegar servicios.
Las figuras 4A-4D son diagramas esquemáticos que ilustran ciertos componentes de hardware/software del sistema de computación en la nube de la figura 1 durante ciertas etapas de reubicación de los servicios desplegados.
Las figuras 5A-5C son diagramas de flujo que ilustran diversos aspectos de los procesos de gestión de ubicación de servicio de acuerdo con realizaciones de la tecnología divulgada.
La figura 6 es un dispositivo de computación adecuado para ciertos componentes del sistema de computación en la nube de la figura 1.
Descripción detallada
Se describen a continuación ciertas realizaciones de sistemas de computación, dispositivos, componentes, módulos, rutinas y procesos para facilitar la gestión de ubicación de servicios en sistemas de computación en la nube. En la siguiente descripción, se incluyen detalles específicos de los componentes para proporcionar una comprensión completa de ciertas realizaciones de la tecnología divulgada. El experto en la técnica relevante puede también entender que la tecnología divulgada puede tener realizaciones adicionales o puede practicarse sin varios de los detalles de las realizaciones que se describen más adelante con referencia a las figuras 1-6.
Como se usa en el presente documento, el término "sistema de computación en la nube" o "nube" se refiere, en general, a un sistema de computadoras configurado para proporcionar diversos servicios de computación en la nube a través de una red de computadoras. Un sistema de computación en la nube puede incluir múltiples "instalaciones de computación" o "instalaciones en la nube" interconectadas por una red de computadoras, como una red de área amplia o Internet. En determinadas realizaciones, las instalaciones de computación pueden incluir centros de datos, cada uno de los cuales está ubicado en diferentes ubicaciones físicas. Por ejemplo, los centros de datos se pueden ubicar en distintas manzanas de ciudades, ciudades, estados, áreas metropolitanas, países, regiones, continentes u otras compartimentalizaciones fronterizas adecuadas. En otras realizaciones, las instalaciones de computación también pueden incluir agrupaciones de computación, dominios de fallo u otra división física y/o lógica adecuada de un centro de datos. En realizaciones adicionales, una instalación de computación también puede incluir un grupo de centros de datos en una ubicación geológica.
En ciertas realizaciones, una instalación de computación puede incluir una red de computadoras que contiene dispositivos de red que interconectan servidores remotos o anfitriones entre sí y/o con redes externas (por ejemplo, Internet). Por ejemplo, una instalación de computación puede incluir varios contenedores, bastidores u otros recintos adecuados, cada uno de los cuales contiene varios servidores. El término "dispositivo de red" se refiere, en general, a un componente de comunicaciones de red. Los dispositivos de red de ejemplo incluyen enrutadores, conmutadores, concentradores, puentes, equilibradores de carga, puertas de enlace de seguridad o cortafuegos. Un "anfitrión" se refiere, en general, a un dispositivo de computación configurado para implantar una o más máquinas virtuales, enrutadores virtuales, puertas de enlace virtuales u otros componentes de computación virtualizados adecuados. Por ejemplo, un anfitrión puede incluir un servidor de computación que tenga un hipervisor configurado para admitir una o más máquinas virtuales.
También utilizado en el presente documento, el término "servicio de computación en la nube", "servicio en la nube" o "servicio" se refiere, en general, a uno o más recursos de computación proporcionado/s a través de una red de computadoras tal como Internet por una instalación de computación remota. Ejemplos de servicios en la nube incluyen software como servicio ("SaaS"), plataforma como servicio ("PaaS") e infraestructura como servicio ("IaaS"). SaaS es una técnica de distribución de software en la que un proveedor de servicios en la nube aloja las aplicaciones de software en, por ejemplo, centros de datos, y los usuarios acceden a ellas a través de una red de computadoras. PaaS se refiere, en general, a la entrega de sistemas operativos y servicios asociados a través de la red de computadoras sin necesidad de descargas o instalación. IaaS se refiere, en general, a equipos de subcontratación utilizados para admitir almacenamiento, hardware, servidores, dispositivos de red u otros componentes, todos los cuales son accesibles a través de una red de computadoras.
También utilizado en el presente documento, el término "controlador de servicios" se refiere, en general, a un controlador de nube configurado para facilitar la asignación, creación de casos, migración, monitorización u otras operaciones de gestión relacionadas con proporcionar cierto/s tipo/s de servicios en la nube. Los controladores de servicio de ejemplo pueden incluir un controlador de máquina virtual, un controlador SaaS, un controlador de almacenamiento, un controlador de base de datos, u otros tipos adecuados de controlador. Por ejemplo, se puede configurar un controlador de máquina virtual para facilitar la asignación, la creación de casos o la migración de máquinas virtuales a diferentes instalaciones en la nube. En ciertas realizaciones, un controlador de servicios puede configurarse para ofrecer interfaces de programación de aplicaciones ("API") de transferencia de estado representacional ("REST") para trabajar con instalaciones de nube asociadas. En otras realizaciones, un controlador de servicios puede también configurarse para ofrecer otros tipos de interfaces adecuados.
En ciertas implantaciones, un controlador de servicios puede implantarse en una instalación de nube como un servicio en la nube. Se pueden implantar casos duplicadas del mismo controlador de servicio en múltiples instalaciones en la nube en un sistema de computación en la nube. Los múltiples casos del controlador del servicio pueden entonces cooperar entre sí para llegar a una decisión basada en el quórum, la prioridad u otros criterios adecuados. Por ejemplo, múltiples casos del controlador de servicios pueden proporcionar respuestas a una solicitud de servicio. Una respuesta particular asociada con la mayoría de los casos del controlador de servicio puede considerarse como una respuesta final. En otras implantaciones, un controlador de servicio puede ser un servidor independiente en una instalación en la nube o puede tener otras configuraciones adecuadas.
Como se usa en el presente documento, un "servicio de gestión" se refiere, en general, a un servicio en la nube configurado para coordinar las funciones de diversos controladores de servicios en un sistema de computación en la nube. El servicio de gestión puede implantarse en general de manera similar a un controlador de servicios, o implantarse de otras maneras adecuadas como un servicio en la nube en el sistema de computación en la nube. Como se describe con más detalle más adelante, el servicio de gestión se puede configurar para facilitar la determinación de la preferencia general para la asignación de servicios en la nube en un sistema de computación en la nube que tenga múltiples instalaciones en la nube.
Ciertos servicios en la nube se puede preferir que estén físicamente cerca unos de otros por motivos de rendimiento, mantenimiento u otras razones adecuadas. Dicha preferencia de ubicación se asocia típicamente con un controlador de servicios que gestiona servicios similares. Sin embargo, tal gestión de despliegue basada en controladores puede tener una efectividad limitada cuando se manejan ciertas aplicaciones con servicios diferentes que se gestionan de maneras diferentes. Por ejemplo, una aplicación puede incluir un conjunto de máquinas virtuales con servicios de almacenamiento asociados, servicios de bases de datos y/u otros tipos adecuados de servicios en la nube. Los servicios diferentes pueden preferir estar físicamente cerca unos de los otros, pero normalmente no comparten un controlador de servicio común. Cada tipo de servicios puede estar gestionado por uno o más controladores de servicios distintos. Como tal, facilitar la afinidad de colocación en una colección de servicios diferentes puede resultar complicado para los proveedores de servicios en la nube.
Varias realizaciones de la tecnología divulgada están dirigidas a técnicas en la asignación de servicios diferentes como una colección de instalaciones de computación que están física y suficientemente cerca unas de las otras. La colección de servicios diferentes también se puede mover como un grupo durante un error a nivel de instalación o regional, y se puede restaurar a la instalación original después de reparar los fallos. En ciertas implantaciones, una aplicación puede especificar declarativamente una colección de servicios de diferentes tipos. Cada servicio especificado se puede identificar con un controlador de servicio correspondiente configurado para gestionar el servicio especificado. Luego, los controladores de servicios pueden participar en un proceso de licitación para determinar una ubicación para desplegar o mover la colección de servicios como un grupo en base a las preferencias colectivas de los controladores de servicios, como se describe con más detalle más abajo con referencia a las figuras 1-6.
La figura 1 es un diagrama esquemático de un sistema 100 de computación en la nube que implanta una gestión de ubicación de servicio de acuerdo con realizaciones de la tecnología divulgada. Como se muestra en la figura 1, el sistema 100 de computación en la nube puede incluir múltiples instalaciones 103 de computación (identificadas individualmente como instalaciones 103a-103c, primera, segunda y tercera, respectivamente, de computación) interconectadas con los dispositivos 102 de cliente de los usuarios 101 a través de una red 104 de computadoras. La red 104 de computadoras puede incluir una red de área amplia, una red de área local, Internet u otros tipos adecuados de red. Una red 104 de computadoras de ejemplo se describe con más detalle más adelante con referencia a la figura 2A.
Aunque los componentes particulares y las disposiciones asociadas del sistema 100 de computación en la nube se muestran en la figura 1, en otras realizaciones, el sistema 100 de computación en la nube puede incluir componentes adicionales y/o diferentes. Por ejemplo, en la realización ilustrada, el sistema 100 de computación en la nube incluye tres instalaciones, es decir, las instalaciones primera, segunda y tercera 103a-103c de computación. En otras realizaciones, el sistema 100 de computación en la nube puede incluir tres, cuatro o cualquier otro número adecuado de instalaciones 103 de computación. En realizaciones adicionales, el sistema 100 de computación en la nube puede también incluir servidores web, servidores de nombres de dominio u otros componentes adecuados.
Los dispositivos 102 de cliente pueden incluir individualmente un dispositivo de computación que facilita el acceso a las instalaciones 103 de computación mediante la red 104 de computadoras por parte de los usuarios 101. Por ejemplo, en la realización ilustrativa, los dispositivos 102 de cliente incluyen individualmente una computadora portátil 102a, una computadora 102b de escritorio y un asistente personal digital 102c. En otras realizaciones, los dispositivos 102 de cliente también pueden incluir tabletas, teléfonos inteligentes u otros dispositivos de computación adecuados. Aunque se muestran tres usuarios 101 en la figura 1 con fines ilustrativos, en otras realizaciones, el sistema 100 de computación en la nube puede facilitar el acceso de cualquier número adecuado de usuarios 101 a las instalaciones 103 de computación mediante la red 104 de computadoras.
Las instalaciones 103 de computación se pueden configurar individualmente para proporcionar suscripciones de ciertos servicios en la nube a los usuarios 101. En ciertas realizaciones, las instalaciones 103 de computación se pueden situar en diferentes ubicaciones. Por ejemplo, cada una de las instalaciones 103 de computación puede estar ubicada en una ciudad, país u otras áreas adecuadas diferentes. Cada una de las instalaciones 103 de computación puede también incluir diferentes configuraciones o perfiles de operación. En un ejemplo, la primera instalación 103a de computación puede tener más capacidad de computación que las instalaciones segunda o tercera 103b y 103c de computación. La segunda instalación 103b de computación puede tener más capacidad de almacenamiento que las otras instalaciones de computación. En otro ejemplo, la tercera instalación 103c de computación puede tener más capacidades de ocio en computación, almacenamiento, red u otros tipos adecuados de recursos que las otras instalaciones 103 de computación.
Como se muestra en la figura 1, el sistema 100 de computación en la nube puede también incluir múltiples controladores 152 de servicio. En la realización ilustrada, los controladores 152 de servicio incluyen un controlador 152a de máquina virtual, un controlador SaaS 152b, un controlador 152c de almacenamiento y un controlador 152d de base de datos. Cada uno de los anteriores controladores 152 de servicios puede estar enterado de las instalaciones 103 de computación y de los perfiles de funcionamiento o de configuración asociados. Los controladores 152 de servicio se pueden entonces configurar para asignar y desplegar servicios en la nube correspondientes a las instalaciones individuales 103 de computación. Por ejemplo, el controlador 152a de máquina virtual se puede configurar para asignar y crear en caso una o más máquinas virtuales para una o más de las instalaciones 103 de computación en base a la capacidad disponible, capacidad u otros perfiles adecuados de las instalaciones 103 de computación. El controlador SaaS 152b, el controlador 152c de almacenamiento y el controlador 152d de base de datos pueden configurarse para asignar un servicio SaaS, un servicio de almacenamiento y un servicio de base de datos para una o más instalaciones 103 de computación, respectivamente. En otras realizaciones, los controladores 152 de servicio pueden también incluir un controlador de correo electrónico, un controlador de servidor web u otros tipos adecuados de controladores 152 de servicio. Los componentes de ejemplo de una instalación 103 adecuada de computación para el sistema 100 de computación en la nube se describen con más detalle más adelante con referencia a las figuras 2A-2B.
Como se muestra en la figura 1, el sistema 100 de computación en la nube también puede incluir un servicio 105 de gestión configurado para facilitar las operaciones de los controladores 152 de servicio. En ciertas realizaciones, el servicio 105 de gestión puede configurarse para recibir una solicitud de servicio de uno de los usuarios 101 para desplegar una aplicación en el sistema 100 de computación en la nube. En respuesta, el servicio 105 de gestión puede configurarse para consultar a los controladores 152 de servicios con respecto a qué instalaciones 103 de computación prefieren los controladores 152 de servicio individuales para desplegar diversos servicios en la nube asociados con la aplicación. El servicio 105 de gestión puede entonces recibir una lista de instalaciones 103 de computación en orden de preferencia de los controladores 152 de servicio individuales y determinar una preferencia general en base a ello, como se describe con más detalle más adelante con referencia a las figuras 3A-4D.
La figura 2A es un diagrama esquemático que ilustra una instalación 103 de computación adecuada para el sistema 100 de computación en la nube de la figura 1 de acuerdo con realizaciones de la tecnología divulgada. Como se muestra en la figura 2A, la instalación 103 de computación puede incluir una red subyacente 109 que interconecta una pluralidad de dispositivos 102 de cliente asociados con los usuarios 101 y con múltiples anfitriones 106. Aunque los componentes particulares de la instalación 103 de computación se muestran en la figura 2A, la instalación 103 de computación puede también incluir, en otras realizaciones, componentes adicionales y/o diferentes. Por ejemplo, la instalación 103 de computación también puede incluir tejidos de computación adicionales (no mostrados) interconectados entre sí, dispositivos de almacenamiento en red, infraestructuras de utilidad y/u otros componentes adecuados.
Como se muestra en la figura 2A, la red subyacente 109 puede incluir uno o más dispositivos de red físicos 112 que interconectan a los usuarios 101 con los anfitriones 106. Los ejemplos de los dispositivos de red 113 pueden incluir enrutadores, conmutadores, cortafuegos, equilibradores de carga u otros componentes adecuados. Aunque el esquema de conexión particular se muestra en la figura 2A con fines ilustrativos, en otras realizaciones, los dispositivos 112 de red pueden acoplarse operativamente en una topología jerárquica, plana, de "malla" o en otras topologías adecuadas.
Como se muestra en la figura 2A, los anfitriones 106 pueden acoplarse operativamente entre sí mediante los dispositivos 113 de red. En ciertas realizaciones, los anfitriones 106 pueden incluir individualmente un procesador, un servidor físico o varios servidores físicos. En otras realizaciones, los anfitriones 106 también pueden incluir un servidor virtual o varios servidores virtuales. Los anfitriones 106 pueden organizarse en bastidores, zonas de disponibilidad, grupos, conjuntos, agrupaciones de computación u otras divisiones adecuadas. Por ejemplo, en la realización ilustrada, los anfitriones 106 están agrupados en tres agrupaciones 107 de computación (que se muestran individualmente como agrupaciones primera, segunda y tercera 107a-107c, respectivamente, de computación), que están acopladas operativamente a los respectivos dispositivos 112a-112c de red en la red subyacente 109. Aunque se muestran tres agrupaciones 107 de computación en la figura 2A con fines ilustrativos, la instalación 103 de computación puede incluir, en otras realizaciones, uno, dos, ocho, diez, dieciséis o cualquier otro número adecuado de agrupaciones 107 de computación con similares o diferentes componentes y/o configuraciones.
Como se muestra en la figura 2A, la instalación 103 de computación también se puede acoplar a un servicio 105 de gestión y a múltiples controladores 152 de servicio configurados para monitorizar, controlar o gestionar de otro modo el funcionamiento de los anfitriones 106 con las agrupaciones 107 de computación. Por ejemplo, en ciertas realizaciones, los controladores 152 de servicio pueden incluir controladores de tejido (o ciertos componentes de éstos) configurados para gestionar el procesamiento, el almacenamiento, las comunicaciones u otros tipos adecuados de recursos de hardware en las agrupaciones 107 de computación para alojar servicios en la nube. En otras realizaciones, el servicio 105 de gestión puede también incluir un controlador de centro de datos, un controlador de suministro de aplicaciones, u otros tipos adecuados de controlador o componentes de éstos. En la realización ilustrada, el servicio 105 de gestión se muestra separado de las agrupaciones 107 de computación. En otras realizaciones, el servicio 105 de gestión puede incluir uno o más anfitriones 106 en las 107 agrupaciones de computación. En realizaciones adicionales, el servicio 105 de gestión puede incluir servicios de software alojados en uno o más de los anfitriones 106 en las agrupaciones 107 de computación.
La figura 2B es un diagrama esquemático que ilustra un ejemplo de red superpuesta 109' implantada en la red subyacente 109 y adecuada para la instalación 103 de computación de la figura 2A de acuerdo con realizaciones de la tecnología divulgada. En la figura 2B, solo se muestran ciertos componentes de la red subyacente 109 de la figura 2A para mayor claridad. Como se muestra en la figura 2B, un primer anfitrión 106a y un segundo anfitrión 106b pueden incluir cada uno un procesador 132, una memoria 133 y un componente 136 de entrada/salida acoplados operativamente entre sí. El procesador 132 puede incluir un microprocesador, una matriz de puertas programables en campo y/u otros dispositivos lógicos adecuados. La memoria 134 puede incluir medios volátiles y/o no volátiles (por ejemplo, ROM, RAM, medios de almacenamiento en disco magnético, medios de almacenamiento óptico, dispositivos de memoria flash y/u otros medios de almacenamiento adecuados) y/u otros tipos de medios de almacenamiento legibles por computadora configurados para almacenar datos recibidos desde, así como instrucciones para, el procesador 132 (por ejemplo, instrucciones para realizar los métodos analizados más adelante con referencia a las figuras 5A-5C). El componente 136 de entrada/salida puede incluir una pantalla, una pantalla táctil, un teclado, un ratón, una impresora y/u otros tipos adecuados de dispositivos de entrada/salida configurados para aceptar entradas y proporcionar salidas a un operador y/o a un controlador de software automatizado (no mostrado).
La memoria 134 de los anfitriones primero y segundo 106a y 105b puede incluir instrucciones ejecutables por los procesadores 132 para hacer que los procesadores individuales 132 proporcionen un hipervisor 140 (identificado individualmente como hipervisores primero y segundo 140a y 140b) y otros componentes adecuados (no mostrado). Los hipervisores 140 pueden configurarse individualmente para iniciar, monitorizar, terminar y/o gestionar localmente una o más máquinas virtuales 144 organizadas en sitios 142 de arrendatario. Por ejemplo, como se muestra en la figura 2B, el primer anfitrión 106a puede proporcionar un primer hipervisor 140a que gestiona los sitios 142a y 142b de los arrendatarios primero y segundo, respectivamente. El segundo servidor 106b puede proporcionar un segundo hipervisor 140b que gestiona los sitios 142a' y 142b' de los arrendatarios primero y segundo, respectivamente. Los hipervisores 140 pueden ser componentes de software, de hardware o de soporte lógico inalterable (firmware). Cada uno de los sitios 142 de arrendatario puede incluir múltiples máquinas virtuales 144 u otros casos de arrendatario adecuados para un usuario particular 101. Por ejemplo, el primer anfitrión 106a y el segundo anfitrión 106b pueden ambos albergar el sitio 142a y 142a' de arrendatario para el primer usuario 101a (véase la figura 1). El primer anfitrión 106a y el segundo anfitrión 106b pueden albergar el sitio 142b y 142b' de arrendatario para el segundo usuario 101b (véase la figura 1). Cada máquina virtual 144 puede ejecutar un sistema operativo, un agente intermedio de lógica de intercambio de información entre aplicaciones (middleware) y/o las aplicaciones correspondientes. En ciertas realizaciones, las máquinas virtuales 144, alojadas en uno o más de los anfitriones 106, pueden utilizarse para realizar una o más tareas solicitadas por el usuario. En otras realizaciones, las máquinas virtuales 144 u otros componentes adecuados de la instalación 103 de computación se pueden utilizar también para implantar otros servicios en la nube adecuados.
También mostrada en la figura 2B, la instalación 103 de computación puede incluir una red superpuesta 109', contando con una o más que interconecta/n los sitios 142a y 142b de arrendatarios a través de múltiples anfitriones 106. Por ejemplo, una primera red virtual 146a interconecta los primeros sitios 142a y 142a' de arrendatarios en el primer anfitrión 106a y en el segundo anfitrión 106b. Una segunda red virtual 146b interconecta los segundos sitios 142b y 142b' de arrendatarios en el primer anfitrión 106a y en el segundo anfitrión 106b. Aunque se muestre una sola red virtual 146 como correspondiente a un sitio 142 de arrendatario, pueden configurarse, en otras realizaciones, múltiples redes virtuales 146 (no mostradas) que correspondan a un solo sitio 142 de arrendatario.
Las máquinas virtuales 144 en las redes virtuales 146 pueden comunicarse entre sí mediante la red subyacente 109 (véase la figura 2A) incluso aunque las máquinas virtuales 144 estén ubicadas en diferentes anfitriones 106. Las comunicaciones de cada una de las redes virtuales 146 pueden aislarse desde otras redes virtuales 146. En ciertas realizaciones, se puede permitir que las comunicaciones crucen de una red virtual 146 a otra a través de una pasarela de seguridad o, si no, de manera controlada. Una dirección de red virtual puede corresponder a una de las máquinas virtuales 145 en una red virtual 146 particular. De este modo, diferentes redes virtuales 146 pueden usar una o más direcciones de red virtual que son iguales. Las direcciones de red virtual de ejemplo pueden incluir direcciones IP, direcciones MAC y/u otras direcciones adecuadas.
En referencia a las figuras 2A y 2B, en funcionamiento, los usuarios 101 pueden solicitar el despliegue de una aplicación mediante, por ejemplo, un portal de usuario (no mostrado). Por ejemplo, un usuario 101 puede solicitar la creación de casos de una máquina virtual 144 que pueda funcionar con un servicio de base de datos. En respuesta a la recepción de la solicitud de servicio del usuario 101, el servicio 105 de gestión puede verificar un nivel de suscripción del usuario 101, y proporcionar la asignación y la creación de casos de la máquina virtual solicitada y el servicio de base de datos tras la verificación. El servicio 105 de gestión puede entonces indicar al controlador 152a de máquina virtual que haga que uno o más de los anfitriones 106 creen un caso de la máquina virtual solicitada 145, como se describe con más detalle a continuación con referencia a las figuras 3A-3C.
Las figuras 3A-3C son diagramas esquemáticos que ilustran ciertos componentes de hardware/software de la instalación 105 de computación en las figuras 2A y 2B durante ciertas etapas de asignación de servicios en la nube de acuerdo con realizaciones de la tecnología divulgada. En las figuras 3A-3C, para mayor claridad, se omiten ciertos componentes del sistema 100 de computación en la nube. Por ejemplo, en las figuras 3A-3C, con fines ilustrativos, se muestra sólo al usuario 101, sin el dispositivo cliente 102 correspondiente.
Además, en las figuras 3A-3C y en otras figuras del presente documento, los componentes, objetos, clases, módulos y rutinas de software individuales pueden ser un programa, procedimiento o proceso de computación escrito como código fuente en C, C++, C#, Java y/u otros lenguajes de programación adecuados. Un componente puede incluir, sin limitación, uno o más módulos, objetos, clases, rutinas, propiedades, procesos, subprocesos, ejecutables, bibliotecas u otros componentes. Los componentes pueden estar en forma fuente o binaria. Los componentes pueden incluir aspectos del código fuente antes de la compilación (por ejemplo, clases, propiedades, procedimientos, rutinas), unidades binarias compiladas (por ejemplo, bibliotecas, ejecutables) o artefactos creados en caso y utilizados en tiempo de ejecución (por ejemplo, objetos, procesos, subprocesos). En ciertas realizaciones, los diversos componentes y módulos que se describen a continuación pueden implantarse con actores. En otras realizaciones, la generación de la aplicación y/o servicios relacionados se puede también implantar utilizando aplicaciones monolíticas, aplicaciones de varios niveles u otros componentes adecuados.
Los componentes dentro de un sistema pueden tomar diferentes formas dentro del sistema. Como ejemplo, un sistema que comprende un primer componente, un segundo componente y un tercer componente puede, sin limitación, abarcar un sistema en el que el primer componente es una propiedad en el código fuente, el segundo componente es una biblioteca compilada binaria y el tercer componente es un subproceso creado en tiempo de ejecución. El programa, procedimiento o proceso de computación puede compilarse en un código objeto, intermedio o de máquina y presentarse para su ejecución por uno o más procesadores de una computadora personal, un servidor de red, una computadora portátil, un teléfono inteligente y/u otros dispositivos de computadora adecuados. Igualmente, los componentes pueden incluir circuitos de hardware.
El experto en la técnica reconocería que el hardware puede considerarse software fosilizado y el software puede considerarse hardware licuado. Tan sólo como ejemplo, las instrucciones de software en un componente pueden grabarse en un circuito de matriz lógica programable o pueden diseñarse como un circuito de hardware con los circuitos integrados apropiados. Igualmente, el hardware puede ser emulado por software. Diversas implantaciones de código fuente, intermedio y/u objeto y datos asociados pueden almacenarse en una memoria de computadora que incluye memoria de sólo lectura, memoria de acceso aleatorio, medios de almacenamiento de disco magnético, medios de almacenamiento óptico, dispositivos de memoria flash y/o otros medios de almacenamiento legibles por computadora adecuados, excluyendo las señales propagadas.
Como se muestra en la figura 3A, el servicio de gestión 105 puede incluir un administrador 109 de ubicación que tiene un componente 162 de entrada, un analizador 164 de preferencias y un componente 166 de salida acoplados operativamente entre sí. El componente 162 de entrada se puede configurar para recibir una solicitud 150 de servicio del usuario 101. La solicitud 150 de servicio puede incluir una solicitud para desplegar una aplicación en el sistema 100 de computación en la nube. La aplicación puede incluir una colección de diferentes servicios en la nube que se alojen en una o más de las instalaciones 103 de computación. En ciertas realizaciones, el componente 162 de entrada puede incluir una interfaz de programa de aplicación (API) de transferencia de estado representativo (REST). En otras realizaciones, el componente 162 de entrada puede incluir otras interfaces adecuadas.
El componente 166 de salida puede configurarse para transmitir diversos tipos de mensajes a los controladores 152 de servicio. Por ejemplo, como se muestra en la figura 3A, el componente 166 de salida puede configurarse para transmitir una solicitud 172 a cada uno de los controladores 152 de servicio para una lista 103 de instalaciones de computación en orden de preferencia de los controladores 152 de servicio. La solicitud 172 puede identificar la colección de diferentes servicios en la nube que se desplegarán y las restricciones de ubicación asociadas, los grados en los que se pueden relajar las restricciones, y otra información adecuada. En ciertas realizaciones, el componente 166 de salida puede incluir un servicio de mensajería configurado de acuerdo a un protocolo adecuado (por ejemplo, TCP/IP). En otras realizaciones, el componente 166 de salida puede incluir otros módulos adecuados para comunicarse con los controladores 152 de servicio.
Como se muestra en la figura 3B, en respuesta a la recepción de la solicitud 172, los controladores 152 de servicios individuales pueden enviar una lista 174 de instalaciones 103 de computación (identificados a continuación como "CF") en orden de preferencia, para desplegar uno o más de los diferentes servicios asociados con la aplicación. Por ejemplo, el controlador 152a de máquina virtual, el controlador SaaS 152b, el controlador 152c de almacenamiento y el controlador 152d de base de datos pueden enviar las siguientes listas, respectivamente:
Lista 1: CF1, CF3, CF2
Lista 2: CF2, CF3, CF1
Lista 3: CF1, CF2, CF3
Lista 4: CF1, CF2, CF3.
El analizador 164 de preferencias puede configurarse para analizar las listas recibidas de instalaciones 103 de computación de los controladores 152 de servicio y derivar una instalación de preferencia general para asignar y desplegar la colección de servicios en la nube diferentes relacionados con la aplicación.
En ciertas realizaciones, el analizador 164 de preferencia puede asignar un valor numérico a cada una de las instalaciones 103 de computación en las listas en base a la clasificación de la instalación 103 de computación correspondiente. Por ejemplo, los valores de 3, 2 y 1 pueden ser asignados a una primera opción, a una segunda opción y a una tercera opción, respectivamente. De este modo, en el ejemplo anterior, a CF1 en la lista 1 se le asignaría un valor de 3, mientras que a CF1 en la lista 2 se le asignaría un valor de 1. En otras realizaciones, los valores para diferentes clasificaciones pueden estar sesgados y afectar al peso general para una determinada clasificación. Por ejemplo, en lugar de un valor de 3, a una primera opción se le puede asignar un valor de 5, al tiempo que a las opciones segunda y tercera se les asignen valores de 2 y 1, respectivamente. Como tal, la primera opción puede tener más peso que la combinación de las opciones segunda y tercera. En otros ejemplos, los incrementos de valor pueden reducirse para disminuir el peso atribuido a las diferentes clasificaciones.
En realizaciones adicionales, el analizador 164 de preferencias también se puede configurar para aplicar un factor de ponderación a una o más listas 174 en base a los controladores 152 de servicio correspondientes. Por ejemplo, el analizador 164 de preferencias puede aplicar un factor de ponderación mayor que uno (por ejemplo, 2) a la lista 3 recibida del controlador 152c de almacenamiento porque un servicio de almacenamiento puede ser más costoso de mover que otros servicios. Como tal, en el ejemplo anterior, al CF1 de la lista 3 se le asignaría un valor de 3x2=6, mientras que a las primeras opciones en otras listas 174 se les asignaría un valor de 3. En otros ejemplos, el analizador 164 de preferencias puede también aplicar un factor de ponderación de menos de uno (por ejemplo, 0,5) a cierta/s lista/s 174 para disminuir los impactos de preferencia de la/s lista/s 174.
El analizador 164 de preferencias puede configurarse entonces para sumar todos los valores asignados a cada una de las instalaciones 103 de computación para derivar un valor total de los mismos. Por ejemplo, en el ejemplo anterior, cuando se asignan valores de 3, 2 y 1 a una primera opción, a una segunda opción y a una tercera opción, respectivamente, la primera instalación 103a de computación (CF1) tendría un valor total de 10. La segunda instalación 103b de computación (CF2) tendría un valor total de 8. La tercera instalación 103c de computación (CF3) tendría un valor total de 6. El analizador 164 de preferencias puede seleccionar entonces una instalación 103 de computación con el valor total más alto (por ejemplo, la primera instalación 103a de computación) como la instalación de preferencia general para desplegar la colección de diferentes servicios en la nube relacionados con la aplicación. De este modo, como se muestra en la figura 3C, el analizador 164 de preferencias puede hacer que el componente 166 de salida transmita una restricción 176 de asignación a los controladores 152 de servicios individuales, los cuales, a su vez, transmitirán una orden 178 de asignación a la primera instalación 103a de computación para desplegar la colección de diferentes servicios. La orden 178 de asignación hace que la primera instalación 103a de computación aprovisione, cree casos o, de otro modo, proporcione los servicios en la nube solicitados, los cuales, por ejemplo, se muestran como una máquina virtual 144, un servicio SaaS 145, un servicio 147 de almacenamiento y un servicio 149 de base de datos.
En ciertas realizaciones, la solicitud 150 de servicio puede también incluir datos que identifiquen una restricción de ubicación compartida entre dos o más de los servicios en la nube y un grado de umbral en el que se pueda relajar la restricción de ubicación compartida. Por ejemplo, en el ejemplo que se muestra en la figura 3c , la solicitud 150 de servicio puede especificar que la máquina virtual 144 debe ubicarse junto con el servicio 147 de almacenamiento en una única instalación 103 de computación. Sin embargo, el servicio SaaS 145 puede ubicarse en una instalación 103 de computación diferente a la que aloja la máquina virtual 144 y el servicio 147 de almacenamiento. En respuesta, el analizador 164 de preferencias puede evaluar las listas 174 (véase la figura 3B) y determinar que el servicio SaaS 145 va a asignarse a la segunda instalación 103b de computación, mientras que los otros servicios se asignarán a la primera instalación 103a de computación.
En realizaciones adicionales, los controladores 152 de servicios individuales también pueden especificar qué instalación 103 de computación no es aceptable para desplegar un servicio particular. En respuesta, el analizador 164 de preferencias puede filtrar las instalaciones 103 de computación para eliminar la instalación 103 de computación inaceptable. Por ejemplo, en el ejemplo anterior, si el controlador 152d de base de datos indica que la primera instalación 103a de computación no es aceptable para desplegar el servicio 149 de base de datos, el analizador 164 de preferencia puede entonces eliminar la primera instalación 103a de computación y designar en su lugar la segunda instalación 103b de computación como la instalación de preferencia general. En ciertas realizaciones, el servicio 105 de gestión se puede también configurar para facilitar la migración de algunos o todos los servicios en la nube desplegados relacionados con la aplicación en respuesta a un fallo, interrupción u otros problemas operativos adecuados encontrados en las instalaciones 103 de computación, como se describe con más detalle a continuación con referencia a las figuras 4A-4D.
Las figuras 4A-4D son diagramas esquemáticos que ilustran ciertos componentes de hardware/software del sistema 100 de computación en la nube de la figura 1 durante ciertas etapas de reubicación de los servicios desplegados. Como se muestra en la figura 4A, la primera instalación 103a de computación puede detectar que, por ejemplo, el servicio SaaS 145 desplegado en la primera instalación 103a de computación ha fallado, ha encontrado un problema operativo o necesita una reubicación (se muestra resaltado a modo de ilustración). La primera instalación 103a de computación puede informar al controlador SaaS 152b sobre el fallo detectado mediante una notificación de fallo 182. En respuesta a la recepción de la notificación 182 de fallo, el controlador SaaS 152b puede transmitir una solicitud 184 de reubicación al administrador 109 de ubicación del servicio 105 de gestión.
Como se muestra en la figura 4B, en respuesta a la recepción de la solicitud 184 de reubicación, el administrador 109 de ubicación puede transmitir, mediante el componente 166 de salida, otra solicitud 172' a los controladores 152 de servicios individuales para obtener otra lista de las instalaciones 103 de computación en orden de preferencia. En respuesta, los controladores 152 de servicio pueden proporcionar nuevas listas 174' de las instalaciones 103 de computación al administrador 109 de ubicación. Al menos uno de los controladores 152 de servicio (por ejemplo, el controlador SaaS 152b) puede proporcionar una lista que sea diferente a la original en base a la notificación 182 de fallo recibida (véase la figura 4A). Por ejemplo, en el ejemplo descrito anteriormente con referencia a la figura 3C, el controlador SaaS 152b puede proporcionar la lista revisada 2' como sigue:
Lista 2': CF3, CF2
en la que el controlador SaaS 152b considera inaceptable la primera instalación 103a de computación.
En ciertas realizaciones, el controlador SaaS 152b también puede promover clasificaciones de ciertas instalaciones 103 de computación en base a la existencia de un caso duplicado o a otras razones adecuadas. Por ejemplo, como se muestra en la figura 4C, un caso duplicado del servicio SaaS 149' se puede alojar en la tercera instalación 103c de computación debido, por ejemplo, a las políticas regionales de duplicación. Como tal, en la nueva lista 2', el controlador SaaS 152b puede promocionar la tercera instalación 103c de computación sobre la segunda instalación 103b de computación. En otras realizaciones, el controlador SaaS 152b también puede aumentar el peso de la nueva lista enviada 2', por ejemplo, insistiendo en un factor de ponderación para la lista 2' que sea mayor que uno. En realizaciones adicionales, el controlador SaaS 152b también puede insistir en que la tercera instalación 103c de computación sea la única opción aceptable para el controlador SaaS 152b.
Como se muestra en la figura 4D, después de volver a evaluar las nuevas listas 174', el analizador 164 de preferencias puede determinar que, por ejemplo, la tercera instalación 103c de computación sea ahora la nueva instalación de preferencia general para desplegar la colección de diferentes servicios en la nube. Como tal, el analizador 164 de preferencias puede hacer que el componente 166 de salida emita una nueva restricción 176' de asignación a los controladores 152 de servicios individuales, los cuales, a su vez pueden emitir la orden 178' de asignación/migración correspondiente para migrar los servicios desplegados a la tercera instalación 103c de computación. Aunque las operaciones de reubicación se describen anteriormente usando el servicio SaaS 145 como ejemplo, en otras realizaciones, cualquiera de los controladores 152 de servicio puede provocar las mismas o similares operaciones de reubicación.
Las figuras 5A-5C son diagramas de flujo que ilustran diversos aspectos de los procesos de gestión de la ubicación del servicio de acuerdo con realizaciones de la tecnología divulgada. Aunque los procesos se describen a continuación con referencia al sistema 100 de computación en la nube de las figuras 1-4D, las realizaciones de los procesos se pueden realizar, en otras realizaciones, en otros sistemas de computación con componentes adicionales y/o diferentes.
La figura 5A es un diagrama de flujo que ilustra un proceso 200 de asignación de una colección de diferentes servicios en la nube a distintas instalaciones de computación de un sistema de computación en la nube. Como se muestra en la figura 5A, el proceso 200 puede incluir la recepción de una solicitud de usuario para desplegar una aplicación en la etapa 202. La aplicación puede incluir una colección de diferentes servicios en la nube, por ejemplo, máquinas virtuales, servicios SaaS, servicios de almacenamiento y servicios de base de datos. El proceso 200 puede incluir luego el envío de una solicitud de oferta a los controladores de servicios individuales en la etapa 204. Los controladores de servicios individuales están configurados para asignar ciertos tipos de servicios en la nube para su despliegue. Por ejemplo, un controlador de máquina virtual se puede configurar para asignar varias máquinas virtuales en una única instalación de computación. En otro ejemplo, un controlador de base de datos puede asignar uno o más servicios de base de datos a una o más instalaciones de computación.
El proceso 200 puede incluir recibir y analizar ofertas de los controladores de servicio en la etapa 206. En ciertas realizaciones, las ofertas recibidas pueden incluir, cada una, una lista de instalaciones de computación clasificadas en orden de preferencia por los controladores de servicio individuales. El análisis de las ofertas puede entonces incluir la agregación de las preferencias de todas las listas recibidas para derivar una instalación de preferencia general. En otras realizaciones, las ofertas recibidas pueden incluir otra información adecuada y analizarse de otras maneras adecuadas para derivar una preferencia general. Las operaciones de ejemplo para analizar las ofertas recibidas se describen a continuación con referencia a la figura 5B. El proceso 200 puede incluir entonces la emisión de una restricción de ubicación a los controladores de servicio en base a los resultados del análisis de las ofertas recibidas en la etapa 208.
La figura 5B es un diagrama de flujo que ilustra un proceso 220 de análisis de ofertas para asignar servicios en la nube a distintas instalaciones de computación de un sistema de computación en la nube. Como se muestra en la figura 5B, el proceso 220 puede incluir la asignación de valores a cada instalación de computación en orden de preferencia. En ciertas realizaciones, a las instalaciones de computación preferidas se les pueden asignar valores más altos que a las instalaciones de computación menos preferidas. En otras realizaciones, a las instalaciones de computación preferidas se les pueden asignar valores más bajos que a las instalaciones de computación menos preferidas.
El proceso 220 puede incluir entonces una etapa opcional 224 en la que se pueden aplicar uno o más factores de ponderación a las ofertas individuales. Por ejemplo, para aumentar el impacto de una oferta particular, el proceso 220 puede incluir la aplicación de un factor de ponderación de más de uno a las instalaciones de computación incluidas en la oferta. Para disminuir el impacto de una oferta particular, el proceso 220 puede incluir la aplicación de un factor de ponderación de menos de uno a las instalaciones de computación incluidas en la oferta. En otros ejemplos, los factores de peso pueden aplicarse de otras maneras adecuadas. El proceso 220 puede incluir entonces la determinación de los valores totales correspondientes a cada una de las instalaciones de computación de las ofertas de la etapa 226, y seleccionar una instalación de preferencia general en base a los valores totales en la etapa 228.
La figura 5C es un diagrama de flujo que ilustra un proceso 240 de generación de ofertas para asignar servicios en la nube a distintas instalaciones de computación de un sistema de computación en la nube. Como se muestra en la figura 5C, el proceso 240 puede incluir la recepción de una solicitud de oferta en la etapa 242. En ciertas realizaciones, la solicitud de oferta puede incluir una colección de diferentes servicios en la nube para desplegar en distintas instalaciones de computación. En otras realizaciones, la solicitud de oferta también puede incluir información de ubicación conjunta relacionada con la recopilación de diferentes servicios en la nube u otra información adecuada. El proceso 240 puede entonces incluir proporcionar preferencias de ubicación o instalación en respuesta a la solicitud de oferta recibida en la etapa 244. El proceso 240 puede incluir recibir una restricción de ubicación o instalación en la etapa 246. En ciertas realizaciones, la restricción de ubicación da instrucciones para el despliegue de servicios en la nube correspondientes a una ubicación preferida incluida en las preferencias de ubicación proporcionadas. En otras realizaciones, la restricción de ubicación da instrucciones para el despliegue de los correspondientes servicios en la nube en una ubicación menos preferida incluida en las preferencias de ubicación proporcionadas. El proceso 240 puede incluir entonces la emisión de órdenes de asignación a las instalaciones de computación indicadas en la restricción de ubicación recibida para el despliegue de la colección de servicios en la nube diferentes.
La figura 6 es un dispositivo 300 de computación adecuado para ciertos componentes del sistema 100 de computación en la nube de la figura 1. Por ejemplo, el dispositivo 300 de computación puede ser adecuado para los anfitriones 106 o los dispositivos 102 de cliente de la figura 1. En una configuración muy básica 302, el dispositivo 300 de computación puede incluir uno o más procesadores 304 y una memoria 306 del sistema. Se puede usar un bus 308 de memoria para comunicarse entre el procesador 304 y la memoria 306 del sistema.
Dependiendo de la configuración deseada, el procesador 304 puede ser de cualquier tipo, incluidos, entre otros, un microprocesador (|j P), un microcontrolador (|j C), un procesador de señal digital (DSP) o cualquier combinación de éstos. El procesador 304 puede incluir uno más niveles de almacenamiento en caché, tal como un caché 310 de nivel uno y un caché 312 de nivel dos, un núcleo 314 de procesador y registros 316. Un núcleo 314 de procesador de ejemplo puede incluir una unidad lógica aritmética (ALU), una unidad de punto flotante (FPU), un núcleo de procesamiento de señales digitales (DSP Core) o cualquier combinación de éstos. También se puede usar un controlador 318 de memoria de ejemplo con el procesador 304 o, en algunas implantaciones, el controlador 318 de memoria puede ser una parte interna del procesador 304.
Dependiendo de la configuración deseada, la memoria 306 del sistema puede ser de cualquier tipo, incluyendo, entre otras, memoria volátil (tal como RAM), memoria no volátil (tal como ROM, memoria flash, etc.) o cualquier combinación de éstas. La memoria 306 del sistema puede incluir un sistema operativo 320, una o más aplicaciones 322 y datos 324 de programa. Esta configuración básica descrita 302 se ilustra en la figura 8 mediante los componentes dentro de la línea discontinua interior.
El dispositivo 300 de computación puede tener características o funcionalidades adicionales, e interfaces adicionales para facilitar las comunicaciones entre la configuración básica 302 y cualquier otro dispositivo e interfaz. Por ejemplo, se puede usar un controlador de bus/interfaz 330 para facilitar las comunicaciones entre la configuración básica 302 y uno o más dispositivos 332 de almacenamiento de datos mediante un bus 334 de interfaz de almacenamiento. Los dispositivos 332 de almacenamiento de datos pueden ser dispositivos 336 de almacenamiento extraíbles, dispositivos 338 de almacenamiento no extraíbles, o una combinación de éstos. Los ejemplos de dispositivos de almacenamiento extraíbles y no extraíbles incluyen dispositivos de disco magnético tales como unidades de disco flexible y unidades de disco duro (HDD), unidades de disco óptico tales como unidades de disco compacto (CD) o unidades de disco versátil digital (DVD), unidades de estado sólido (SSD), y unidades de cinta, por nombrar algunos. Los medios de almacenamiento de computación de ejemplo pueden incluir medios volátiles y no volátiles, extraíbles y no extraíbles implantados en cualquier método o tecnología para el almacenamiento de información, tales como instrucciones legibles por computadora, estructuras de datos, módulos de programa u otros datos. El término "medio de almacenamiento legible por computadora" o "dispositivo de almacenamiento legible por computadora" excluye las señales propagadas y los medios de comunicación.
La memoria 306 del sistema, los dispositivos 336 de almacenamiento extraíbles y los dispositivos 338 de almacenamiento no extraíbles son ejemplos de medios de almacenamiento legibles por computadora. Los medios de almacenamiento legibles por computadora incluyen, entre otros, RAM, ROM, EEPROM, memoria flash u otra tecnología de memoria, CD-ROM, discos versátiles digitales (DVD) u otro almacenamiento óptico, casetes magnéticos, cinta magnética, almacenamiento en disco magnético u otros dispositivos de almacenamiento magnético, o cualquier otro medio que se pueda utilizar para almacenar la información deseada y al que se pueda acceder mediante el dispositivo 300 de computación. Cualquier medio de almacenamiento legible por computadora de este tipo puede ser parte del dispositivo 300 de computación. El término "medio de almacenamiento legible por computadora" excluye las señales propagadas y los medios de comunicación.
El dispositivo 300 de computación también puede incluir un bus 340 de interfaz para facilitar la comunicación desde diversos dispositivos de interfaz (por ejemplo, dispositivos 342 de salida, interfaces periféricas 344 y dispositivos 346 de comunicación) a la configuración básica 302 mediante el controlador 330 de bus/interfaz. Algunos dispositivos 342 de salida de ejemplo incluyen una unidad 348 de procesamiento de gráficos y una unidad 350 de procesamiento de audio, que se pueden configurar para comunicarse con diversos dispositivos externos, tales como una pantalla o unos altavoces, a través de uno o más puertos A/V 352. Las interfaces periféricas 344 de ejemplo incluyen un controlador 354 de interfaz en serie o un controlador 356 de interfaz paralelo, que puede configurarse para comunicarse con dispositivos externos tales como dispositivos de entrada (por ejemplo, teclado, ratón, lápiz, dispositivo de entrada de voz, dispositivo de entrada táctil, etc.) u otros dispositivos periféricos (por ejemplo, impresora, escáner, etc.) mediante uno o más puertos 358 de E/S. Un ejemplo de dispositivo 346 de comunicación incluye un controlador 360 de red, que se puede configurar para facilitar las comunicaciones con uno o más dispositivos 362 de computación a través de un enlace de comunicación de red mediante uno o más puertos 364 de comunicación.
El enlace de comunicación de red puede ser un ejemplo de un medio de comunicación. Los medios de comunicación pueden estar típicamente representados por instrucciones legibles por computadora, estructuras de datos, módulos de programa, u otros datos en una señal de datos modulada, tal como una onda portadora u otro mecanismo de transporte, y pueden incluir cualquier medio de suministro de información. Una "señal de datos modulados" puede ser una señal que tiene una o más de sus características configuradas o cambiadas de tal manera que codifican información en la señal. A modo de ejemplo, y sin limitación, los medios de comunicación pueden incluir medios cableados, tales como una red cableada o una conexión directa por cable, y medios inalámbricos, tales como acústicos, de radiofrecuencia (RF), de microondas, de infrarrojos (IR) y otros medios inalámbricos. El término medios legibles por computadora según se usa en el presente documento puede incluir tanto medios de almacenamiento como medios de comunicación.
El dispositivo 300 de computación se puede implantar como una parte de un dispositivo electrónico portátil (o móvil) de factor de forma pequeña, tal como un teléfono celular, un asistente de datos personal (PDA), un dispositivo de reproducción de medios personal, un dispositivo de reloj web inalámbrico, un dispositivo de auriculares personal, un dispositivo de aplicación específica o un dispositivo híbrido que incluya cualquiera de las funciones anteriores. El dispositivo 300 de computación se puede también implantar como una computadora personal que incluya tanto configuraciones de computadora portátil como de computadora no portátil.
A partir de lo anterior, se apreciará que se han descrito realizaciones específicas de la divulgación en el presente documento con fines de ilustración, pero que se pueden realizar diversas modificaciones sin desviarse de la divulgación. Además, muchos de los elementos de una realización se pueden combinar con otras realizaciones además de o en lugar de los elementos de las otras realizaciones. En consecuencia, la tecnología no está limitada sino por las reivindicaciones adjuntas.
La siguiente es una lista de realizaciones preferidas adicionales de la invención:
Realización 1: Un método para desplegar servicios en la nube en un sistema de computación en la nube que tiene múltiples instalaciones de computación interconectadas por una red de computadoras, comprendiendo el método: recibir una solicitud de servicio para desplegar una aplicación en el sistema de computación en la nube, incluyendo, la aplicación, múltiples servicios en la nube, cada uno de los cuales puede ser gestionado por un controlador de servicio correspondiente en el sistema de computación en la nube, pudiendo desplegarse al menos un servicio en más de una de las instalaciones de computación; y
en respuesta a la recepción de la solicitud de servicio,
consultar a los controladores de servicios para obtener una lista de las instalaciones de computación dispuestas en orden de preferencia por cada uno de los controladores de servicios para desplegar uno o más servicios en la nube correspondientes asociados con la aplicación;
seleccionar una instalación de computación de las múltiples instalaciones de computación en base a las preferencias de los controladores de servicio reflejadas en las listas de las instalaciones de computación; y
dar instrucciones a los controladores de servicios para que desplieguen los servicios en la nube asociados con la aplicación de la instalación de computación seleccionada, consiguiendo por ello la colocación de diferentes servicios en la nube en la instalación de computación seleccionada.
Realización 2: El método de la realización 1, en el que consultar los controladores de servicio incluye: transmitir una solicitud que contenga datos que identifiquen los servicios en la nube que serán desplegados por los controladores de servicios individuales; y
recibir, de los controladores de servicios individuales, la lista de las instalaciones de computación dispuestas en orden de preferencia en base a un perfil de las instalaciones de computación individuales.
Realización 3: El método de la realización 1, en el que:
recibir la solicitud de servicio incluye recibir una solicitud de servicio que identifique una restricción de colocación entre dos o más de los servicios en la nube; y
seleccionar la instalación de computación incluye:
transmitir una solicitud de oferta que contenga datos que identifiquen los servicios en la nube que desplegarán los controladores de servicios individuales; y
recibir, de los controladores de servicios individuales, la lista de las instalaciones de computación dispuestas en orden de preferencia en base a al menos un elemento de entre una capacidad disponible o una competencia de las instalaciones de computación individuales y la restricción de ubicación conjunta entre dos o más de los servicios en la nube.
Realización 4: El método de la realización 1, en el que:
recibir la solicitud de servicio incluye recibir una solicitud de servicio que identifique una restricción de ubicación entre dos o más de los servicios en la nube y un grado de umbral en el que se puede relajar la restricción de ubicación conjunta;
la instalación de computación seleccionada es una primera instalación de computación; y
seleccionar la instalación de computación incluye relajar la restricción de ubicación conjunta en base al grado de umbral para seleccionar una segunda instalación de computación para desplegar al menos uno de los servicios en la nube asociados con la aplicación, siendo la segunda instalación de computación distinta de la primera instalación de computación.
Realización 5: El método de la realización 1, en el que la selección de la instalación de computación incluye: agregar las preferencias en las listas de los controladores de servicio para derivar una instalación de computación preferida general por todos los controladores de servicio; y
seleccionar la instalación de computación incluye seleccionar una instalación de computación preferida general para desplegar los servicios en la nube de la aplicación.
Realización 6: El método de la realización 1 en el que:
cada una de las listas contiene datos que representan una clasificación de las instalaciones de computación en orden de preferencia;
seleccionar la instalación de computación incluye:
para cada lista, asignar un valor numérico a cada una de las instalaciones de computación de la lista en base a la clasificación de la instalación de computación correspondiente;
sumar los valores numéricos asignados para cada instalación de computación para derivar un valor total para cada instalación de computación; y
seleccionar una instalación de computación que tenga el valor total más alto para desplegar los servicios en la nube asociados con la aplicación.
Realización 7: El método de la realización 1, que comprende adicionalmente:
recibir un aviso de uno de los controladores de servicio de que un servicio en la nube correspondiente desplegado en la instalación de computación seleccionada va a migrar a otra de las instalaciones de computación; y en respuesta a la recepción de la notificación,
consultar a los controladores de servicios para obtener una nueva lista de las instalaciones de computación dispuestas en orden de preferencia por cada uno de los controladores de servicios para desplegar uno o más servicios en la nube correspondientes asociados con la aplicación;
seleccionar otra instalación de computación de las múltiples instalaciones de computación en base a las preferencias de los controladores de servicio reflejadas en las listas de las instalaciones de computación; y dar instrucciones a los controladores de servicios para que migren los servicios en la nube asociados con la aplicación a otra instalación de computación seleccionada.
Realización 8: Un dispositivo de computación, que comprende:
un procesador; y
una memoria que contiene instrucciones ejecutables por el procesador para hacer que el procesador realice un proceso que comprende:
recibir, mediante una red de computadoras, una solicitud de presentación de preferencias para desplegar un servicio en la nube en una de las múltiples instalaciones de computación de un sistema de computación en la nube; en respuesta a la recepción de la solicitud,
generar una lista que contenga las instalaciones de computación clasificadas en base a su adecuación para desplegar el servicio en la nube; y
transmitir, mediante la red de computadoras, la lista generada que contiene las instalaciones de computación clasificadas;
recibir, mediante la red de computadoras, una instrucción para desplegar el servicio en la nube en una de las instalaciones de computación de la lista transmitida; y
en respuesta a recibir la instrucción, desplegar el servicio en la nube en una de las instalaciones de computación indicadas en la instrucción, consiguiendo por ello la colocación de servicios en la nube diferentes en una de las instalaciones de computación.
Realización 9: El dispositivo de computación de la realización 8, en el que generar la lista que contiene las instalaciones de computación incluye generar la lista que contiene las instalaciones de computación en base a una capacidad disponible o a una competencia de las instalaciones de computación individuales para desplegar el servicio en la nube.
Realización 10: El dispositivo de computación de la realización 8, que comprende adicionalmente:
detectar un fallo en la instalación de computación para continuar alojando el servicio en la nube; y
en respuesta al fallo detectado, transmitir, mediante la red de computadoras, una solicitud de reinicio de un proceso para determinar otra instalación de computación para migrar el servicio en la nube desde la instalación de computación.

Claims (12)

REIVINDICACIONES
1. Un método para desplegar servicios en la nube en un sistema de computación en la nube que tiene múltiples instalaciones de computación interconectadas por una red de computadoras, comprendiendo el método: recibir (202) una solicitud de servicio (150) para desplegar una aplicación en el sistema de computación en la nube, incluyendo la aplicación múltiples servicios en la nube de diferentes tipos de servicios gestionados por separado en el sistema de computación en la nube, pudiéndose al menos uno de los múltiples servicios en la nube desplegar en más de una de las instalaciones de computación, en el que recibir la solicitud de servicio incluye recibir la solicitud de servicio que identifica una restricción de ubicación conjunta entre dos o más de los servicios en la nube y un grado de umbral en el que se puede relajar la restricción de ubicación conjunta; y
en respuesta a la recepción de la solicitud de servicio,
consultar (204) listas que contengan individualmente datos que representen las instalaciones de computación dispuestas en orden de preferencia para desplegar cada uno de los múltiples servicios en la nube de diferentes tipos de servicios asociados con la aplicación;
seleccionar (228) una instalación de computación de entre las múltiples instalaciones de computación en base a las preferencias reflejadas en las listas consultadas de las instalaciones de computación; y
desplegar (208) los múltiples servicios en la nube asociados con la aplicación en la instalación de computación seleccionada,
en el que la instalación de computación seleccionada es una primera instalación de computación, y
en el que seleccionar la instalación de computación incluye relajar la restricción de ubicación conjunta en base al grado de umbral para seleccionar una segunda instalación de computación y desplegar en ella al menos uno de los múltiples servicios en la nube asociados con la aplicación, siendo la segunda instalación de computación distinta de la primera instalación de computación.
2. El método de la reivindicación 1, en el que consultar las listas incluye:
transmitir una solicitud que contenga datos que identifiquen los múltiples servicios en la nube que se van a desplegar; y
recibir las listas de las instalaciones de computación dispuestas por orden de preferencia en base a un perfil de las instalaciones de computación individuales.
3. El método de la reivindicación 1, en el que:
seleccionar la instalación de computación incluye:
transmitir una solicitud de oferta que contenga datos que identifiquen los múltiples servicios en la nube que se van a desplegar; y
recibir las listas de las instalaciones de computación dispuestas en orden de preferencia en base a al menos un elemento de entre la capacidad disponible o la competencia de las instalaciones de computación individuales y la restricción de ubicación conjunta entre dos o más de los servicios en la nube.
4. El método de la reivindicación 1, en el que la selección de la instalación de computación incluye:
agregar las preferencias en las listas para derivar una instalación de computación preferida general; y seleccionar la instalación de computación incluye seleccionar la instalación de computación preferida general para desplegar los múltiples servicios en la nube de la aplicación.
5. El método de la reivindicación 1, en el que:
cada una de las listas contiene datos que representan una clasificación de las instalaciones de computación en orden de preferencia;
seleccionar la instalación de computación incluye:
para cada una de las listas, asignar un valor numérico a cada una de las instalaciones de computación de las listas en base a la clasificación de la instalación de computación correspondiente;
sumar los valores numéricos asignados para cada instalación de computación para derivar un valor total para cada instalación de computación; y
seleccionar la instalación de computación que tenga el valor total más alto para desplegar los servicios en la nube asociados con la aplicación.
6. El método de la reivindicación 1, en el que seleccionar la instalación de computación incluye filtrar las listas de las instalaciones de computación para eliminar una o más instalaciones de computación no aceptables por al menos uno de los controladores de servicio.
7. El método de la reivindicación 1, en el que:
seleccionar la instalación de computación incluye aplicar un factor de ponderación a las listas correspondiente a uno de los múltiples servicios en la nube, de manera que la preferencia por uno de los múltiples servicios en la nube supere la preferencia por otro de los múltiples servicios en la nube.
8. El método de la reivindicación 1, que comprende adicionalmente:
recibir un aviso de que el servicio en la nube correspondiente desplegado en la instalación de computación seleccionada va a migrar a otra de las instalaciones de computación; y
en respuesta a la recepción de la notificación,
consultar nuevas listas de las instalaciones de computación dispuestas en orden de preferencia para desplegar cada uno de los múltiples servicios en la nube asociados con la aplicación;
seleccionar otra instalación de computación de las múltiples instalaciones de computación en base a las preferencias reflejadas en las listas de las instalaciones de computación; y
migrar los múltiples servicios en la nube asociados con la aplicación a la otra instalación de computación seleccionada.
9. Un dispositivo (300) de computación para gestionar servicios en la nube en un sistema de computación en la nube que tiene múltiples instalaciones de computación interconectadas por una red de computadoras, comprendiendo el dispositivo de computación:
un procesador (304); y
una memoria (306) que contiene instrucciones ejecutables por el procesador para hacer que el dispositivo de computación:
transmita (204), mediante la red de computadoras, solicitudes de preferencias para desplegar un conjunto de servicios en la nube de diferentes tipos de servicios gestionados por separado en el sistema de computación en la nube;
reciba (206) listas múltiples como respuestas a las solicitudes transmitidas, las listas múltiples que contienen individualmente datos que representan al menos algunas de las instalaciones de computación dispuestas en orden de preferencia para desplegar uno de los servicios en la nube en el conjunto de servicios en la nube; seleccione (228) una de las instalaciones de computación de las instalaciones de computación múltiples para desplegar el conjunto de servicios en la nube en base a las preferencias reflejadas en las listas múltiples recibidas; y despliegue (208) el conjunto de servicios en la nube de diferentes tipos de servicios gestionados por separado en el sistema de computación en la nube para la instalación de computación seleccionada,
en el que la instalación de computación seleccionada es una primera instalación de computación, y
en el que seleccionar una de las instalaciones de computación incluye relajar una restricción de ubicación conjunta entre dos o más de los servicios en la nube en base a un grado de umbral para el que se puede relajar la restricción de ubicación conjunta para seleccionar una segunda instalación de computación para desplegar al menos uno de los múltiples servicios en la nube, siendo la segunda instalación de computación distinta de la primera instalación de computación.
10. El dispositivo de computación de la reivindicación 9, en el que la memoria incluye instrucciones adicionales ejecutables por el procesador para hacer que el dispositivo de computación:
reciba, mediante la red de computadoras, una solicitud de selección de otra de las instalaciones de computación para el despliegue de al menos uno de los servicios en la nube; y
en respuesta a la recepción de la solicitud, transmita, mediante la red de computadoras, solicitudes adicionales de nuevas listas de instalaciones de computación dispuestas por orden de preferencia.
11. El dispositivo de computación de la reivindicación 9, en el que la memoria incluye instrucciones adicionales ejecutables por el procesador para hacer que el dispositivo de computación:
reciba, mediante la red de computadoras, una solicitud de selección de otra de las instalaciones de computación para desplegar al menos uno de los servicios en la nube;
en respuesta a la recepción de la solicitud, transmita, mediante la red de computadoras, solicitudes adicionales de nuevas listas de instalaciones de computación dispuestas en orden de preferencia;
reciba las nuevas listas de al menos algunas de las instalaciones de computación dispuestas en orden de preferencia para desplegar uno o más servicios en la nube correspondientes en el conjunto de servicios en la nube; seleccione otra de las instalaciones de computación de entre las múltiples instalaciones de computación para desplegar el conjunto de servicios en la nube en base a las preferencias reflejadas en las nuevas listas recibidas; y despliegue el al menos un servicio en la nube en la otra instalación seleccionada de entre las instalaciones de computación.
12. El dispositivo de computación de la reivindicación 9, en el que seleccionar una de las instalaciones de computación incluye:
para cada una de las listas recibidas, asignar un valor numérico a cada una de las instalaciones de computación de la lista en base a una clasificación de la instalación de computación correspondiente;
sumar los valores numéricos asignados para cada instalación de computación para derivar un valor total para cada instalación de computación; y
seleccionar una de las instalaciones de computación, siendo ésta la que tenga el valor total más alto para desplegar el conjunto de servicios en la nube.
ES20180819T 2016-09-21 2017-09-14 Gestión de ubicación de servicio en sistemas de computación Active ES2933399T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US15/272,275 US10476948B2 (en) 2016-09-21 2016-09-21 Service location management in computing systems

Publications (1)

Publication Number Publication Date
ES2933399T3 true ES2933399T3 (es) 2023-02-08

Family

ID=59997446

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20180819T Active ES2933399T3 (es) 2016-09-21 2017-09-14 Gestión de ubicación de servicio en sistemas de computación

Country Status (5)

Country Link
US (2) US10476948B2 (es)
EP (2) EP3516517B1 (es)
CN (2) CN109716299B (es)
ES (1) ES2933399T3 (es)
WO (1) WO2018057371A1 (es)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018182746A1 (en) * 2017-04-01 2018-10-04 Intel Corporation Hotpluggable runtime
CN110688197A (zh) * 2019-09-11 2020-01-14 新华三大数据技术有限公司 一种云操作系统
US11366709B2 (en) 2020-06-10 2022-06-21 Microsoft Technology Licensing, Llc Distributed application execution for cloud computing
US11733988B2 (en) * 2021-01-20 2023-08-22 Microsoft Technology Licensing, Llc Application deployment for applications offered by multiple deployment sources
US20220337668A1 (en) * 2021-04-14 2022-10-20 Oracle International Corporation Systems and methods for real-time repository management for universal service deployment

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100228819A1 (en) * 2009-03-05 2010-09-09 Yottaa Inc System and method for performance acceleration, data protection, disaster recovery and on-demand scaling of computer applications
CN102255933B (zh) * 2010-05-20 2016-03-30 中兴通讯股份有限公司 云服务中介、云计算方法及云系统
US9342367B2 (en) * 2010-06-16 2016-05-17 Computer Associates Think, Inc. System and method for selecting cloud services
US8549066B1 (en) 2010-08-26 2013-10-01 Adobe Systems Incorporated Service provider interface for deploying and managing applications on a cloud
US8909784B2 (en) * 2010-11-23 2014-12-09 Red Hat, Inc. Migrating subscribed services from a set of clouds to a second set of clouds
US8769622B2 (en) * 2011-06-30 2014-07-01 International Business Machines Corporation Authentication and authorization methods for cloud computing security
CN103023762A (zh) * 2011-09-27 2013-04-03 阿尔卡特朗讯公司 云计算接入网关及用于提供用户终端接入云提供商的方法
US8726264B1 (en) 2011-11-02 2014-05-13 Amazon Technologies, Inc. Architecture for incremental deployment
US8984162B1 (en) 2011-11-02 2015-03-17 Amazon Technologies, Inc. Optimizing performance for routing operations
US9229740B1 (en) 2011-11-02 2016-01-05 Amazon Technologies, Inc. Cache-assisted upload proxy
US10057377B2 (en) * 2012-06-29 2018-08-21 Vmware, Inc. Dynamic resolution of servers in a distributed environment
GB2504487A (en) 2012-07-30 2014-02-05 Ibm Automated network deployment of cloud services into a network by matching security requirements
US10419524B2 (en) * 2012-09-07 2019-09-17 Oracle International Corporation System and method for workflow orchestration for use with a cloud computing environment
US10178154B2 (en) 2012-10-23 2019-01-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for cloud service deployment
EP2926262A4 (en) * 2012-12-03 2016-07-13 Hewlett Packard Entpr Dev Lp SYSTEM FOR MANAGING A CLOUD SERVICE
US9189285B2 (en) * 2012-12-14 2015-11-17 Microsoft Technology Licensing, Llc Scalable services deployment
US9813318B2 (en) * 2013-03-15 2017-11-07 International Business Machines Corporation Assessment of best fit cloud deployment infrastructures
US9824390B2 (en) * 2013-03-15 2017-11-21 International Business Machines Corporation Cloud service brokerage service store
US20140280595A1 (en) * 2013-03-15 2014-09-18 Polycom, Inc. Cloud Based Elastic Load Allocation for Multi-media Conferencing
US20140280964A1 (en) 2013-03-15 2014-09-18 Gravitant, Inc. Systems, methods and computer readable mediums for implementing cloud service brokerage platform functionalities
US20140366155A1 (en) 2013-06-11 2014-12-11 Cisco Technology, Inc. Method and system of providing storage services in multiple public clouds
CN104253831B (zh) * 2013-06-26 2018-05-11 国际商业机器公司 一种用于在云计算环境中部署应用的方法和系统
US10033662B2 (en) * 2013-09-04 2018-07-24 Hewlett Packard Enterprise Development Lp Policy based selection of resources for a cloud service
US10462018B2 (en) * 2013-10-03 2019-10-29 Hewlett Packard Enterprise Development Lp Managing a number of secondary clouds by a master cloud service manager
WO2015119638A1 (en) 2014-02-10 2015-08-13 Empire Technology Development, Llc Automatic collection and provisioning of migration resources
WO2015184158A1 (en) * 2014-05-28 2015-12-03 New Media Solutions, Inc. Generation and management of computing infrastructure instances
US9311131B2 (en) * 2014-08-04 2016-04-12 International Business Machines Corporation Monitoring and dynamically reconfiguring virtual machine patterns
US9912609B2 (en) 2014-08-08 2018-03-06 Oracle International Corporation Placement policy-based allocation of computing resources
US9825881B2 (en) 2014-09-30 2017-11-21 Sony Interactive Entertainment America Llc Methods and systems for portably deploying applications on one or more cloud systems
WO2016053301A1 (en) 2014-09-30 2016-04-07 Hewlett Packard Enterprise Development Lp Topology based management with stage and version policies
US9898321B2 (en) * 2015-07-23 2018-02-20 At&T Intellectual Property I, L.P. Data-driven feedback control system for real-time application support in virtualized networks
US10142174B2 (en) * 2015-08-25 2018-11-27 Oracle International Corporation Service deployment infrastructure request provisioning

Also Published As

Publication number Publication date
CN109716299A (zh) 2019-05-03
US10476948B2 (en) 2019-11-12
US10944815B2 (en) 2021-03-09
US20200036782A1 (en) 2020-01-30
EP3731093B1 (en) 2022-11-16
EP3731093A1 (en) 2020-10-28
WO2018057371A1 (en) 2018-03-29
US20180084038A1 (en) 2018-03-22
EP3516517A1 (en) 2019-07-31
EP3516517B1 (en) 2020-07-29
CN109716299B (zh) 2023-08-22
CN117290091A (zh) 2023-12-26

Similar Documents

Publication Publication Date Title
ES2933399T3 (es) Gestión de ubicación de servicio en sistemas de computación
EP3811597B1 (en) Zone redundant computing services using multiple local services in distributed computing systems
CN109196474B (zh) 计算系统中的分布式操作控制
US10956148B2 (en) Concurrent I/O enclosure firmware/field-programmable gate array (FPGA) update in a multi-node environment
US9571374B2 (en) Dynamically allocating compute nodes among cloud groups based on priority and policies
US10558535B2 (en) Cluster file system support for extended network service addresses
US20200394072A1 (en) Provisioning Disaster Recovery Resources Across Multiple Different Environments Based on Class of Service
US9628504B2 (en) Deploying a security appliance system in a high availability environment without extra network burden
US20210405902A1 (en) Rule-based provisioning for heterogeneous distributed systems
US20200167093A1 (en) Storage virtualization with high availability
US10554492B2 (en) Physical machine management in distributed computing systems
US20230161633A1 (en) Avoidance of Workload Duplication Among Split-Clusters
US8725878B1 (en) Method and apparatus for topology driven zoning
US10230594B2 (en) Intelligently managing pattern contents across multiple racks based on workload and human interaction usage patterns
US9875373B2 (en) Prioritization of users during disaster recovery