RU2704734C2 - Система управления и диспетчеризации контейнеров - Google Patents
Система управления и диспетчеризации контейнеров Download PDFInfo
- Publication number
- RU2704734C2 RU2704734C2 RU2018130629A RU2018130629A RU2704734C2 RU 2704734 C2 RU2704734 C2 RU 2704734C2 RU 2018130629 A RU2018130629 A RU 2018130629A RU 2018130629 A RU2018130629 A RU 2018130629A RU 2704734 C2 RU2704734 C2 RU 2704734C2
- Authority
- RU
- Russia
- Prior art keywords
- container
- instance
- software
- cluster
- service
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 143
- 238000002955 isolation Methods 0.000 claims abstract description 7
- 238000003860 storage Methods 0.000 claims description 68
- 230000015654 memory Effects 0.000 claims description 32
- 238000012544 monitoring process Methods 0.000 claims description 14
- 238000009826 distribution Methods 0.000 claims description 7
- 230000000007 visual effect Effects 0.000 claims description 2
- 230000008450 motivation Effects 0.000 claims 1
- 230000000694 effects Effects 0.000 abstract description 4
- 239000000126 substance Substances 0.000 abstract 1
- 239000003795 chemical substances by application Substances 0.000 description 142
- 230000008569 process Effects 0.000 description 127
- 238000004891 communication Methods 0.000 description 33
- 230000004044 response Effects 0.000 description 30
- 238000013500 data storage Methods 0.000 description 25
- 239000003999 initiator Substances 0.000 description 20
- 238000012545 processing Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 13
- 238000005538 encapsulation Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 238000012546 transfer Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 7
- 238000013475 authorization Methods 0.000 description 7
- 238000012790 confirmation Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 125000004122 cyclic group Chemical group 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000007774 longterm Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000013468 resource allocation Methods 0.000 description 3
- 238000013515 script Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000013341 scale-up Methods 0.000 description 1
- 230000007781 signaling event Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 238000009827 uniform distribution Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Computer And Data Communications (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Изобретение относится к способу, системе и машиночитаемому носителю информации для управления программным контейнером. Технический результат заключается в управлении запуском программного контейнера. В способе выполняют получение определения задач, причем определение задач указывает по меньшей мере: местоположение, на котором расположен образ программного обеспечения; и информацию, используемую для определения количества ресурсов, выделяемых программному контейнеру для образа программного обеспечения, причем программный контейнер является экземпляром пространства пользователя, который выполняется изолированно от других программных контейнеров, выполняемых на том же экземпляре виртуальной машины; определение экземпляра виртуальной машины, на котором запускают программный контейнер; и побуждение получения образа программного обеспечения из местоположения, указанного определением задач, и запуска в программном контейнере на экземпляре виртуальной машины. 3 н. и 17 з.п. ф-лы, 16 ил.
Description
ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННУЮ ЗАЯВКУ
[0001] Настоящая заявка заявляет приоритет в соответствии с совместно поданной заявкой на патент США №14/538,663, поданной 11 ноября 2014 года под названием «SYSTEM FOR MANAGING AND SCHEDULING CONTAINERS», которая включено в настоящий документ в полном объеме посредством ссылки.
УРОВЕНЬ ТЕХНИКИ
[0002] Стремясь снизить затраты и накладные расходы, связанные с поддержанием собственных вычислительных ресурсов, физические и юридические лица стали приобретать услуги дистанционных вычислений, такие как удаленное выполнение программы в нескольких экземплярах виртуальных машин и удаленное хранение данных, которые предоставляют клиентам поставщики служб вычислительных ресурсов. Такие услуги дистанционных вычислений часто являются настраиваемыми и масштабируемыми для удовлетворения различных вычислительных потребностей клиентов поставщика служб вычислительных ресурсов. Тем не менее для клиента может представлять сложность управление различными приложениями, несколькими экземплярами виртуальных машин, и такие приложения могут быть непереносимыми в другие вычислительные системы или недостаточно масштабируемыми для удовлетворения растущих потребностей в ресурсах.
КРАТКОЕ ОПИСАНИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ
[0003] Далее будут описаны варианты реализации настоящего изобретения со ссылкой на нижеследующие фигуры, на которых:
[0004] На Фиг. 1 проиллюстрирован пример клиента, взаимодействующего с контейнерной службой в соответствии с вариантом реализации изобретения;
[0005] На Фиг. 2 проиллюстрирован пример контейнерной службы в соответствии с вариантом реализации изобретения;
[0006] На Фиг. 3 проиллюстрирован пример виртуализации контейнерной службы в соответствии с вариантом реализации изобретения;
[0007] На Фиг. 4 проиллюстрирован пример экземпляра контейнера в соответствии с вариантом реализации изобретения;
[0008] На Фиг. 5 проиллюстрирован пример распределения ресурсов в экземпляре контейнера в соответствии с вариантом реализации изобретения;
[0009] На Фиг. 6 представлена блок-схема, иллюстрирующая пример рабочего процесса запуска задачи в кластере в соответствии с вариантом реализации изобретения;
[0010] На Фиг. 7 представлена блок-схема, иллюстрирующая пример создания кластера в соответствии с вариантом реализации изобретения;
[0011] На Фиг. 8 представлена блок-схема, иллюстрирующая пример регистрации экземпляра контейнера в соответствии с вариантом реализации изобретения;
[0012] На Фиг. 9 представлена блок-схема, иллюстрирующая пример регистрации задачи в соответствии с вариантом реализации изобретения;
[0013] На Фиг. 10 представлена блок-схема, иллюстрирующая пример запуска задачи в соответствии с вариантом реализации изобретения;
[0014] На Фиг. 11 представлена блок-схема, иллюстрирующая пример останова задачи в соответствии с вариантом реализации изобретения;
[0015] На Фиг. 12 представлена блок-схема, иллюстрирующая пример отмены регистрации задачи в соответствии с вариантом реализации изобретения;
[0016] На Фиг. 13 представлена блок-схема, иллюстрирующая пример отмены регистрации контейнера в соответствии с вариантом реализации изобретения;
[0017] На Фиг. 14 представлена блок-схема, иллюстрирующая пример удаления кластера в соответствии с вариантом реализации изобретения;
[0018] На Фиг. 15 проиллюстрирован пример построения системы управления и диспетчеризации контейнеров в соответствии с вариантом реализации изобретения; и
[0019] На Фиг. 16 проиллюстрирована среда, в которой могут быть реализованы различные варианты реализации изобретения.
ПОДРОБНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
[0020] Далее будут описаны различные варианты реализации изобретения. Для целей объяснения далее приведены конкретные конфигурации и подробные сведения, чтобы обеспечить полное понимание вариантов реализации изобретения. Однако специалисту в данной области техники будет понятно, что варианты реализации изобретения могут быть применены на практике и без указания конкретных деталей. Кроме того, хорошо известные функции могут быть опущены или упрощены, чтобы не затруднять понимание описания.
[0021] Описанные и предложенные технологии включают системы и способы создания кластеров экземпляров программных контейнеров для выполнения программных контейнеров для клиентов поставщика служб вычислительных ресурсов. Экземпляры программных контейнеров могут быть экземплярами виртуальных машин, сконфигурированными для поддержки контейнеризации, и экземпляры программных контейнеров могут регистрироваться и отменять регистрацию в кластере по мере необходимости в соответствии с потребностями клиента. Каждый экземпляр программного контейнера может содержать агент контейнеров, который представляет собой приложение, выполненное с возможностью выполнения, при исполнении одним или большим количеством процессоров компьютерной системы, различных задач с программными контейнерами и экземплярами программных контейнеров, включая регистрацию экземпляров контейнеров, отмену регистрации экземпляров контейнеров, запуск задач, останов задач, предоставление задачам разных статусов, подачу сигналов об активности задач и сообщений о событиях задач. Программные контейнеры могут содержать данные и один или большее количество процессов, которые при выполнении в экземпляре компьютерной системы, выполненном с возможностью поддержки контейнеризации, могут быть отделены от других процессов, выполняемых в том же экземпляре компьютерной системы.
[0022] Программные контейнеры могут быть выполнены с возможностью выполнения в качестве задач в соответствии с определением задач, а определение задач может сохраняться в форме файла определения задач. Файл определения задач может описывать один или большее количество программных контейнеров, назначенных для запуска в качестве группы. Образы программного обеспечения программных контейнеров, которые могут представлять собой полную копию конкретного состояния программного контейнера на момент создания образа программного обеспечения, выполненные с возможностью выполнения в экземплярах программных контейнеров, могут предоставляться поставщику служб вычислительных ресурсов или в его местоположениях, указанных в определении задач. Определение задач также может определять потребности в ресурсах, отношения между контейнерами, используемые сетевые порты и совместно используемые ресурсы.
[0023] При получении запроса на запуск задач из определения задач планировщик может определить, в соответствии со схемой размещения, какие экземпляры программных контейнеров в кластере будут выполнять задачи. В некоторых случаях поставщик служб вычислительных ресурсов может предоставлять многопользовательский планировщик для определения того, где выполнять программные контейнеры, а в некоторых случаях поставщик служб вычислительных ресурсов может позволить клиентам обеспечивать и настраивать собственные планировщики для настройки работы планировщика. В некоторых случаях планировщик может быть выполнен с возможностью использования случайной схемы выбора для случайного (согласно некоторой схеме стохастического распределения) или циклического выбора экземпляра контейнера для размещения указанного программного контейнера, учитывая потребность в ресурсах, указанную в определении задач. Агенты контейнеров могут быть выполнены с возможностью запуска задач в соответствующих экземплярах программных контейнеров. В некоторых вариантах реализации изобретения агент телеметрии может быть выполнен с возможностью сбора данных, таких как метрики контрольной группы и информация о событиях из журнала о выполняемых программных контейнерах, и передачи этих данных службе телеметрии. Служба телеметрии может позволять клиентам контролировать состояния программных контейнеров в своих экземплярах контейнеров, и клиенты могут указывать, посредством службы телеметрии, какие действия следует выполнять в ответ на различные события контейнеров, и критерии для направления предупреждения на основе собранных данных.
[0024] Описанные и предложенные технологии представляют собой усовершенствования в области вычислительной техники, в частности, в областях виртуализации и контейнеризации, поскольку предлагают множество многопользовательских служб контейнеризации для управления программными контейнерами. Кроме того, описанные и предложенные технологии улучшают функционирование компьютерных систем, позволяя эффективно распределять ресурсы вычислительных систем и изолировать программные приложения таким образом, чтобы они не конкурировали между собой за ресурсы. Кроме того, описанные и предложенные технологии обеспечивают значимые преимущества по сравнению с общими системами виртуализации за счет повышения мобильности, предоставления многопользовательских служб и автоматического масштабирования ресурсов по мере увеличения или уменьшения спроса.
[0025] На Фиг. 1 проиллюстрирован аспект среды 100, в которой возможна практическая реализация варианта осуществления изобретения. Как показано на Фиг. 1, среда 100 может содержать клиента 102, который отправляет файл определения задач 104 для программных контейнеров 118 вместе с запросом на запуск задач по сети 106 контейнерной службе 108 поставщика служб вычислительных ресурсов 110. Планировщик, например планировщик 208 (как проиллюстрировано на Фиг. 2), может определить, в каком экземпляре контейнера 114 кластера 116 экземпляров контейнеров должны быть запущены программные контейнеры 118, указанные в файле определения задач 104. В некоторых вариантах реализации изобретения программные контейнеры могут быть выполнены с возможностью совместного использования ресурсов 120, предоставляемых другими службами 122 поставщика служб вычислительных ресурсов 110, таких как тома данных, предоставленные службой хранения данных на уровне блоков поставщика служб вычислительных ресурсов 110.
[0026] Клиент 102 может быть физическим лицом, связанным с учетной записью клиента контейнерной службы, или может быть физическим лицом, системой, ресурсом-вычислительным устройством или другим компонентом, уполномоченным действовать от имени физического лица, ассоциированного с учетной записью клиента. Кроме того, ресурсы клиента 102 могут быть доступными для других пользователей. Например, клиент 102 может использовать экземпляр контейнера 114 для создания онлайновой торговой площадки для других пользователей, которые, в свою очередь, могут покупать и/или продавать товары и услуги на указанной торговой площадке, предоставленной клиентом 102 посредством контейнерной службы. Клиент 102 может осуществлять связь с контейнерной службой 108 поставщика служб вычислительных ресурсов 110 по сети 106, которая может представлять собой сеть связи, такую как интернет, интранет-сеть, сеть поставщика услуг интернета (ISP) и/или какую-либо другую сеть, как описано ниже.
[0027] В некоторых примерах термины «определение задач» или «файл определения задач» могут относиться к файлу, определяющему множество связанных контейнеров (т.е. набор контейнеров, которые, при выполнении в вычислительной системе хоста, ассоциированы друг с другом), назначенных для запуска в качестве группы. Файл определения задач 104 может дополнительно указывать диск и местоположение в сети, которые могут совместно использовать в одной физической машине контейнеры 118. Файл определения задач 104 может затем использоваться для запуска множества контейнеров 118. В некоторых вариантах реализации изобретения файл определения задач 104 может определять и связывать контейнеры 118, распределенные по нескольким физическим машинам. Один файл определения задач 104 может содержать и планировать множество задач. В некоторых примерах термин «задача» может означать создание экземпляра файла определения задач 104, и задача может состоять из одного или большего количества контейнеров 118. Задачи могут быть изменены путем применения нового определения задач к задаче.
[0028] Файл определения задач 104 может содержать всю информацию, необходимую для размещения контейнеров 118 в кластере 116, а управление кластером 116 может осуществляться посредством вызовов через интерфейс прикладного программирования.
[0029] Пример определения задач может иметь следующий вид:
[0030] В данном примере определения задач указано, что первая задача под названием «db» имеет образ программного обеспечения, доступный по пути «forest/postgresql». Для выполнения первой задачи выделено 1000 общих вычислительных ресурсов процессора и 1 Гбайт памяти, также первая задача использует порт 5432. Аналогично, определение задач также определяет вторую задачу с названием «web», которая имеет образ программного обеспечения, доступный по пути «hub.web.com./rails:latest». Для выполнения второй задачи выделено 1000 общих вычислительных ресурсов процессора и 1 Гбайт памяти, также вторая задача использует порты 8000:8000. В определении задач указано, что второй задаче («web») разрешено устанавливать связь с первой задачей («db»). Следует отметить, что в то время как некоторые единицы измерения, используемые в данном примере, приведены в виде фиксированного значения, как, например, в случае представления вычислительной мощности в виде фиксированного числа общих вычислительных ресурсов центрального процессора, предполагается, что могут использоваться и другие единицы и типы значений (например, процент от общей вычислительной мощности или общего объема памяти) для обеспечения динамического распределения ресурсов.
[0031] Контейнерная служба 108 может представлять собой службу, предоставленную поставщиком служб вычислительных ресурсов 110, обеспечивающую клиенту 102 возможность выполнения контейнеров 118 в кластере 116. Контейнерная служба 108 может быть аналогична контейнерной службе 200, описанной со ссылкой на Фиг. 2. Поставщик услуг вычислительных ресурсов 110 может быть аналогичен поставщику служб вычислительных ресурсов 1502, описанный со ссылкой на Фиг. 15, и может предоставлять одну или большее количество служб вычислительных ресурсов своим клиентам по отдельности или в виде комбинации служб распределенной компьютерной системы. Одна или большее количество служб вычислительных ресурсов поставщика служб вычислительных ресурсов 110 могут быть доступны по сети 106 и могут включать в себя такие службы, как службы виртуальных компьютерных систем, службы хранения данных на уровне блоков, криптографические службы, службы хранения данных по требованию, службы уведомлений, службы аутентификации, службы управления политиками, службы задач и/или другие подобные службы. Не все описанные здесь варианты реализации изобретения охватывают все описанные службы, и дополнительные службы могут предоставляться в дополнение к описанным или вместо них.
[0032] Например, поставщик служб вычислительных ресурсов 110 может быть объектом, который предоставляет вычислительные ресурсы, такие как службы хранения данных, виртуальных компьютерных систем и/или веб-сервисы. Клиенты поставщика служб вычислительных ресурсов 110 могут взаимодействовать с одной или большим количеством служб через интерфейс, который может представлять собой интерфейс веб-служб или любой другой тип пользовательского интерфейса. Каждая служба, предоставляемая поставщиком служб вычислительных ресурсов, может иметь свой собственный интерфейс, а подмножества служб могут иметь соответствующие отдельные интерфейсы в дополнение к общему интерфейсу или в качестве альтернативы ему.
[0033] В некоторых примерах термин «экземпляр контейнера» может относиться к экземпляру компьютерной системы (виртуальной или невиртуальной, такой как физическая компьютерная система, работающая под управлением операционной системы), выполненному с возможностью запуска и выполнения программных контейнеров. Таким образом, экземпляр контейнера 114 может быть выполнен с возможностью выполнения контейнеров 118 в соответствии с файлом определения задач 104, предоставленным клиентом 102. Один или большее количество экземпляров контейнеров могут составлять кластер. В некоторых примерах термин «кластер» может относиться к множеству, состоящему из одного или большего количества экземпляров контейнеров, которые были зарегистрированы в кластере (т.е. ассоциированы с ним). Таким образом, экземпляр контейнера 114 может быть одним из множества различных экземпляров контейнеров, зарегистрированных в кластере 116, а другие экземпляры контейнеров кластера 116 могут быть выполнены с возможностью выполнения одинаковых или различных типов контейнеров, таких как контейнеры 118. Экземпляры контейнеров в кластере могут относиться к разным или одинаковым типам экземпляров, и у клиента 102 может быть больше одного кластера. Таким образом, клиент 102 может запускать один или большее количество кластеров, а затем управлять изоляцией пользователей и приложений контейнеров 118 в каждом кластере посредством вызовов через интерфейс прикладного программирования. Более подробная информация о кластерах приведена в описании Фиг. 2.
[0034] Контейнер (также называемый программным контейнером или изолированным экземпляром пространства пользователя) может быть облегченным экземпляром виртуализации под управлением экземпляра компьютерной системы, содержащего программы, данные и системные библиотеки. При выполнении контейнера исполняющая программа (т.е. процесс) изолирована от других процессов, выполняемых в том же экземпляре компьютерной системы. Таким образом, каждый из контейнеров 118 может выполняться в операционной системе (например, с использованием памяти, центрального процессора и памяти, выделенной операционной системой) экземпляра контейнера 114, отдельно от других (например, каждый контейнер может иметь изолированный вид файловой системы операционной системы). Каждый из контейнеров 118 может иметь свое собственное пространство имен, а приложения, работающие в контейнерах 118, изолированы путем предоставления им доступа только к ресурсам, доступным в пространстве имен контейнера. Таким образом, контейнеры 118 могут представлять собой эффективный способ выполнения одного или большего количества отдельных приложений в собственном пространстве имен. Система инкапсуляции контейнеров позволяет одному или большему количеству контейнеров выполняться в одном операционном экземпляре без накладных расходов, связанных с запуском и поддержанием виртуальных машин для выполнения отдельных экземпляров пользовательского пространства. Примером системы инкапсуляции контейнеров является Docker-движок контейнеров.
[0035] Контейнеры 118 могут запускаться только с определенными ресурсами из выделенных экземпляру контейнера 114; т.е. контейнер может запускаться с определенным объемом памяти и без возможности использования большей, чем указанное количество, вычислительной мощности. Распределение ресурсов среди контейнеров 118 может быть определено в файле определения задач 104. Возможно одновременное выполнение нескольких контейнеров на одном хост-компьютере или в одном экземпляре хост-контейнера, и ресурсы хоста могут эффективно распределяться между контейнерами. В некоторых вариантах реализации изобретения хост может поддерживать выполнение контейнеров в экземплярах контейнеров только одного клиента. В других вариантах реализации изобретения один хост может разрешать нескольким клиентам иметь экземпляры контейнеров, выполняемые в хосте. В последнем случае контейнерная служба может обеспечивать безопасность таким образом, что клиенты не будут иметь доступ к «чужим» контейнерам, кластерам или экземплярам контейнеров.
[0036] Различные типы задач могут предъявлять разные требования к ресурсам и могут иметь различную продолжительность. Таким образом, служба планировщика в контейнерной службе 110 может динамически планировать выполнение контейнеров 118 независимо от базовой операционной системы экземпляра контейнера, и, как таковая, базовая операционная система экземпляра контейнера 114 может быть очень простой. В альтернативном варианте планирование выполнения контейнеров 118 может осуществляться планировщиком, установленным внутри экземпляра контейнера 114 кластера 116.
[0037] Другие службы 122 могут быть, например, службами 1508-20 и 1524 поставщика служб вычислительных ресурсов 1502, описанного со ссылкой на Фиг. 15. Аналогично, другие ресурсы 120 могут включать в себя ресурсы, которые могут совместно использоваться виртуализированными экземплярами, например, объем памяти службы хранения данных на уровне блоков.
[0038] На Фиг. 2 проиллюстрирован пример контейнерной службы 200 варианта реализации настоящего изобретения. Как показано на Фиг. 2, среда 200 может содержать клиентов 202 поставщика служб вычислительных ресурсов, осуществляющих связь через интерфейсную службу 204, управляющую одним или большим количеством контейнеров в одном или большем количестве экземпляров контейнеров 218. Как уже отмечалось, система инкапсуляции контейнеров, обеспеченная контейнерной службой 200 или связанная с ней интерфейсом, может позволить клиенту настроить одно или большее количество приложений в контейнере операционной системы, которая поддерживает контейнеры. Выполняемые процессы и ресурсы внутри контейнера могут быть изолированы от других процессов экземпляра родительского контейнера и от выполняемых процессов и ресурсов в других контейнерах той же хост-системы. Клиент может указать объем памяти и вычислительную мощность, выделенные контейнеру. Базовый контейнер, приложения и данные в нем затем могут быть упакованы в виде образа, содержащего одну или большее количество программ, данных и любых системных зависимостей (например, библиотеки, файлы и т.д.), которые необходимы для выполнения программ в операционной системе экземпляра контейнера. В некоторых примерах термин «образ» может относиться ко всей копии конкретного состояния базового контейнера на момент создания образа. Затем образ может использоваться для запуска одного или большего количества одинаковых контейнеров, каждому из которых может быть назначено определенное количество ресурсов и которые могут быть изолированы друг от друга. Контейнеры могут запускаться в одной и той же или разных физических машинах. При этом ожидается, что каждый контейнер будет выполняться так же, как и базовый контейнер.
[0039] Каждый из экземпляров контейнеров 218 может быть сконфигурирован с возможностью включения пары агентов, агента контейнеров 222 и агента телеметрии 224, которые могут позволить управлять контейнерами, предоставлять информацию о состоянии кластера, а также обеспечивать возможность ведения журнала и сбора данных телеметрии. Контейнерная служба 200 может состоять из множества служб, включая службу шаблонов 206, один или большее количество планировщиков 208, службу маршрутизатора 210 и службу телеметрии 212. Поскольку контейнерная служба 200 может быть выполнена в виде многопользовательской службы (т.е. ресурсы контейнерной службы 200 могут обслуживать несколько клиентов одновременно), и поскольку службы, предоставляемые контейнерной службой 200, существуют вне и отдельно от экземпляров контейнеров 218, клиентам 202 не нужно устанавливать отдельные программные приложения в их соответствующих экземплярах контейнеров 218, чтобы обеспечить функциональные возможности, предоставляемые службами. Клиенты 202 могут использовать функциональные возможности, предоставляемые этими службами, осуществляя вызовы функций через интерфейс прикладного программирования веб-сервиса через интерфейсную службу 204, которая может быть выполнена с возможностью получения запросов от клиентов 202 и направления этих запросов соответствующим службам, таким как соответствующая серверная служба менеджера контейнеров 214.
[0040] Как уже отмечалось, клиент может запускать один или большее количество кластеров, а затем управлять изоляцией пользователей и приложений в каждом кластере с помощью интерфейсной службы 204. Например, клиент может указать, что «экземпляры 1-10» должны составлять первый кластер, а «экземпляры 11-15» - второй кластер. После этого, когда клиент направляет запрос на запуск контейнера, клиент может указать, в каком кластере должен запускаться контейнер: в первом или во втором.
[0041] Каждый кластер может иметь идентификатор кластера (ID), который однозначно отличает кластеры друг от друга. Кластеры могут быть определены путем ссылки на их соответствующие идентификаторы. Клиент может использовать разные кластеры для различных типов задач. Например, клиент может использовать первый кластер для запуска служб, а второй - для выполнения пакетных заданий. Экземпляры в первом кластере могут быть оптимизированы для работы сервера, а экземпляры второго сервера могут быть оптимизированы для выполнения кратковременных заданий, таких как пакетные задания.
[0042] Доступные вызовы функций через интерфейс прикладного программирования для кластеров могут включать: CreateCluster (Создать кластер), DescribeCluster (Описать кластер), ListClusters (Перечислить кластеры) и DeleteCluster (Удалить кластер). Вызов через интерфейс прикладного программирования CreateCluster (Создать кластер) может приводить к созданию кластера. В некоторых случаях после создания кластера интерфейсная служба 204 может предоставить клиенту идентификатор вновь созданного кластера. Идентификатор кластера может позволить клиенту зарегистрировать экземпляры контейнеров в кластере; например, клиент может обеспечить регистрацию экземпляра контейнера в кластере путем передачи идентификатора кластера в качестве параметра вызову RegisterContainerlnstance (Зарегистрировать экземпляр контейнера) через интерфейс прикладного программирования. В дополнительном или альтернативном варианте клиент может указать один или большее количество существующих экземпляров контейнеров, принадлежащих клиенту, в качестве параметров вызова CreateCluster (Создать кластер) через интерфейс прикладного программирования, чтобы обеспечить регистрацию одного или большего количества существующих экземпляров контейнеров в кластере при его создании. Кроме того, в некоторых случаях клиент может указать в параметрах вызова CreateCluster (Создать кластер) через интерфейс прикладного программирования количество экземпляров контейнеров, которые необходимо создать и зарегистрировать в кластере после его создания. Вызов функции CreateCluster (Создать кластер) через интерфейс прикладного программирования дополнительно проиллюстрирован на Фиг. 7.
[0043] После того, как кластер будет создан и начнет работать, вызов DescribeCluster (Описать кластер) через интерфейс прикладного программирования может использоваться клиентами 202 или приложениями для запроса информации о кластере. Сведения, предоставляемые в ответ на вызов DescribeCluster (Описать кластер) через интерфейс прикладного программирования, могут включать список приложений, выполняемых в кластере, доступные в кластере ресурсы и их типы. Информация, возвращаемая вызовом DescribeCluster (Описать кластер) через интерфейс прикладного программирования, может затем использоваться в качестве параметров для вызова StartTask (Начать задачу) через интерфейс прикладного программирования для запуска задачи в описанном кластере.
[0044] Планировщик 208 может быть выполнен с возможностью запуска задач в описанном кластере. С другой стороны, клиенты 208 могут реализовать свой собственный планировщик вместо планировщика 208 и использовать информацию, получаемую с помощью вызова DescribeCluster (Описать кластер) через интерфейс прикладного программирования, в сочетании с логикой размещения планировщика клиента для принятия решений по размещению запланированных задач. Клиент может разработать и/или загрузить алгоритм размещения, используемый его собственным планировщиком, или может выбрать из списка возможных алгоритмов размещения, предоставленных клиенту поставщиком служб вычислительных ресурсов. Контейнерная служба 200 может определить, исходя из имеющихся ресурсов, следует ли принять или отклонить решения по размещению, принятые планировщиком клиента.
[0045] Планировщик 208 может быть многопользовательской службой, выполненной с возможностью оптимального планирования множества задач для их выполнения в кластере. Таким образом, клиентам 202 не нужно выбирать, где должны выполняться задачи. Схема размещения планировщика 208 может быть выполнена с возможностью равномерного распределения задач по кластеру (например, циклическая, стохастическая схема распределения и т.д.) и может быть выполнена с возможностью распределения задач на основе текущего или прогнозируемого потребления ресурсов кластером, чтобы наиболее эффективно использовать имеющиеся ресурсы. Планировщик 208 может получить метаданные менеджера кластеров и другую информацию о наличии экземпляров контейнеров 218 в кластере через серверные службы менеджера контейнеров 214. Метаданные менеджера кластеров и другая информация могут содержать данные о текущем состоянии экземпляров контейнеров 218, присвоенных кластеру, имеющихся ресурсах в экземплярах контейнеров, контейнерах, выполняемых в экземплярах контейнеров, а также другую информацию, используемую планировщиком 208 для принятия решений по размещению. Вызов DescribeCluster (Описать кластер) через интерфейс прикладного программирования может привести к тому, что серверная служба менеджера кластеров предоставит метаданные для указанного кластера.
[0046] Планировщик 208 может распределять задачи, по меньшей мере частично, на основе правил безопасности, групп безопасности и/или ролей безопасности, наличия сродства или отсутствия сродства. Например, задачи в определенной группе безопасности могут быть настроены для запуска в одном и том же экземпляре контейнера, если это возможно или целесообразно, либо, наоборот, могут быть запланированы для запуска в отдельных экземплярах контейнеров. В другом примере задачи могут быть присвоены определенным группам безопасности или назначены таким образом, чтобы иметь определенные роли безопасности, и, основываясь на такой группе или роли безопасности, задача может быть назначена для выполнения в конкретном кластере или конкретных экземплярах кластеров, либо может иметь приоритет в использовании ресурсов по сравнению с другими задачами. Распределение задач на основе сродства/отсутствия сродства включает назначение «меток», указывающих отношения между контейнерами, экземплярами контейнеров и задачами. В качестве примера распределения, по меньшей мере частично, на основе сродства: два экземпляра контейнера могут быть помечены как «общие», а один экземпляр контейнера может быть помечен как «база данных». В определении задач задача может быть указана с ограничением на запуск «общий», обеспечивающим сродство, состоящее в том, что данная задача должна быть запущена в одном (или большем количестве) экземпляров контейнеров с тегом «общий». В качестве примера распределения задач на основе отсутствия сродства: некоторые экземпляры контейнеров могут быть помечены как «безопасный для обработки кредитных карт», и другой экземпляр контейнера может быть помечен как «http-сайт». Поскольку контейнеры «http-сайт» могут обслуживать трафик от недоверенных сторонних объектов, может быть нежелательно использовать такие контейнеры совместно с задачами обработки кредитных карт. Таким образом, определение задач может быть составлено таким образом, чтобы указывать на отсутствие сродства «http-сайта» с задачами обработки кредитных карт и гарантировать то, что контейнеры для обработки кредитных карт не будут запускаться в экземплярах контейнеров с тегом «http-сайт». В этом примере, планировщик 208 может быть сконфигурирован с возможностью анализа произвольных тегов в определении задач и использования их для того, чтобы отфильтровать экземпляры контейнеров, которые не отвечают критериям, связанным с тегом. Далее планировщик 208 может выбрать экземпляр контейнера из отфильтрованного множества для размещения контейнера.
[0047] В некоторых вариантах реализации изобретения планировщик 208 может связываться напрямую с агентами контейнеров 222 для запуска задач. В других вариантах реализации изобретения планировщик 208 может осуществлять связь со службами связи с агентами 220, которые затем могут передавать сообщение агенту контейнеров 222. В других вариантах реализации изобретения планировщик 208 может сообщать решения о размещении серверным службам менеджера контейнеров 214, который может передавать сообщение непосредственно агенту контейнеров 222 или службам связи с агентами 220. Как уже отмечалось, в некоторых вариантах реализации изобретения клиенты 202 могут реализовывать свои собственные планировщики для управления задачами вместо использования планировщика 208.
[0048] В некоторых случаях контейнеры могут быть выполнены с возможностью конкуренции за ресурсы и, в случае конфликта, контейнеры, ассоциированные с определенными ролями безопасности, могут иметь приоритет над другими контейнерами. Следует обратить внимание на то, что во всех случаях схема размещения может учитывать имеющиеся ресурсы в экземплярах контейнеров и потребности в ресурсах контейнера. Например, экземпляр контейнера не может быть выбран для конкретных задач, если потребности в ресурсах этих задач превышают ресурсы, доступные в экземпляре контейнера. Однако в некоторых вариантах реализации изобретения экземпляр контейнера может быть все же выбран, но запуск конкретных задач может быть отложен до тех пор, пока не будет доступно достаточно ресурсов в экземпляре контейнера для поддержки выполнения конкретных задач.
[0049] Контейнеры также могут быть сконфигурированы для использования других ресурсов, предоставляемых поставщиком служб вычислительных ресурсов. Например, каждый контейнер может быть выполнен с виртуальным сетевым интерфейсом, чтобы позволить контейнеру осуществлять связь по виртуальной сети с другими контейнерами и/или другими ресурсам поставщика служб вычислительных ресурсов. Кроме того, учетные данные безопасности могут назначаться для каждого контейнера, так что контейнеры будут иметь свои собственные учетные данные безопасности для доступа к другим ресурсам, предоставляемым поставщиком служб вычислительных ресурсов. Кроме того, контейнерная служба может быть сконфигурирована с возможностью интеграции со службой балансировки нагрузки для равномерного распределения нагрузки в контейнерах. Например, клиент может предоставить список адресов интернет-протокола, связанных с виртуальными сетями контейнеров клиента и/или экземпляров клиента средству балансировки нагрузки службы балансировки нагрузки и проинструктировать средство балансировки нагрузки, чтобы оно сбалансировало рабочую нагрузку между адресами интернет-протокола. Кроме того, контейнерная служба может быть интегрирована с сервисом автоматического масштабирования, чтобы обеспечить возможность динамического изменения ресурсов, используемых контейнерами, по мере необходимости.
[0050] Например, клиент может реализовать несколько планировщиков для одного кластера, которые будут определять, для каких экземпляров в кластере запускать контейнеры. Множество планировщиков могут конкурировать друг с другом в соответствии со схемой размещения, например, с использованием оптимистического контроля совпадений для определения местоположений запуска контейнеров. Например, каждый планировщик, используя оптимистические совпадения, может предположить, что, в целом, контейнеры не будут мешать друг другу, и в ситуации, когда один контейнер имеет измененные данные, считанные другим контейнером, осуществляющий считывание контейнер может перезапуститься и повторно считать измененные данные.
[0051] В некоторых случаях конфигурация планировщика может быть направлена на максимизацию имеющихся ресурсов. Например, кластер может использоваться в основном для выполнения долгосрочных служб, но может возникать необходимость в выполнении одного или большего количества краткосрочных пакетных заданий. В этом примере планировщик, сконфигурированный для максимизации доступных ресурсов, может осуществлять поиск экземпляра с минимально достаточной вычислительной мощностью для поддержки пакетных заданий, в качестве наиболее подходящего места для пакетных заданий. Кроме того, планировщик может осуществлять поиск экземпляра, использующего наименьшую часть своей вычислительной мощности, и планировать выполнение пакетных заданий в этом экземпляре.
[0052] В некоторых вариантах реализации изобретения мета-планировщик может быть настроен для работы на верхнем уровне иерархической схемы, «во главе» одного или большего количества планировщиков, и мета-планировщик может решать, где запускать пакетные задания. Например, в варианте реализации изобретения может существовать два типа задач: краткосрочные пакетные задания и долгосрочные службы. Эти два типа задач могут иметь различные правила размещения, например, может быть желательным равномерно распределить задачи служб среди доступных экземпляров контейнеров в одном или большем количестве указанных кластеров, в то время как конфигурация пакетных заданий может предусматривать выполнение в любом доступном экземпляре контейнера с пространственным разделением циклов обработки. В некоторых случаях для каждого множества правил размещения может быть назначен собственный планировщик. Однако в тех случаях, когда такие правила размещений конкурируют или конфликтуют друг с другом, или в тех случаях, когда для конкретной задачи необходимо определить и назначить соответствующий планировщик, мета-планировщик может определять, какая из конкурирующих задач должна превалировать, синхронизировать информацию между планировщиками или определить соответствующий планировщик для размещения задачи.
[0053] Управление кластером может осуществляться посредством вызовов через интерфейс прикладного программирования, направляемых интерфейсной службе 204. Например, вызов через интерфейс прикладного программирования может выполняться для запроса списка доступных кластеров и определения того, какие контейнеры могут выполняться в каких кластерах. Вызов ListClusters (Перечислить кластеры) через интерфейс прикладного программирования может обеспечить получение списка всех кластеров, к которым клиент имеет доступ. Вызов DeleteCluster (Удалить кластер) через интерфейс прикладного программирования может обеспечить удаление указанного кластера и более подробно описан со ссылкой на Фиг. 14.
[0054] Доступные вызовы функций через интерфейс прикладного программирования для экземпляров контейнеров могут включать: RegisterContainerlnstance (Зарегистрировать экземпляр контейнера), DescribeContainerlnstance (Описать экземпляр контейнера) и DeregisterContainerlnstance (Отменить регистрацию экземпляра контейнера). Вызов RegisterContainerlnstance (Зарегистрировать экземпляр контейнера) через интерфейс прикладного программирования может использоваться агентом контейнеров экземпляра контейнера, чтобы зарегистрировать экземпляр контейнера у менеджера кластеров после создания экземпляра контейнера. В некоторых вариантах реализации изобретения менеджер кластеров состоит из метаданных о кластерах (например, о группировке экземпляров контейнеров). В другом варианте реализации изобретения менеджер кластеров может содержать программное обеспечение управления конфигурацией, установленное клиентом или предоставленное поставщиком служб вычислительных ресурсов. Затем планировщик может ссылаться на экземпляры контейнеров 218, зарегистрированные у менеджера кластеров при определении того, в каком экземпляре контейнера запускать контейнеры. RegisterContainerlnstance (Зарегистрировать экземпляр контейнера) дополнительно описан со ссылкой на Фиг. 8. Вызов DescribeContainerlnstance (Описать экземпляр контейнера) через интерфейс прикладного программирования может возвращать информацию об экземпляре контейнера, в т.ч. ресурсах, доступных для экземпляра контейнера, и выполняемых в экземпляре контейнера задачах.
[0055] Поскольку контейнеры могут выполняться в любом доступном экземпляре контейнера с достаточными ресурсами в кластере, контейнеры могут масштабироваться в сторону увеличения или уменьшения в пределах кластера по мере необходимости, при условии наличия достаточного количества экземпляров контейнеров. Если количества экземпляров контейнеров в кластере недостаточно, могут быть созданы дополнительные экземпляры контейнеров и зарегистрированы в кластере посредством менеджера кластеров. Если в кластере избыток экземпляров контейнеров, для некоторых экземпляров контейнеров может быть отменена регистрация в кластере посредством менеджера кластеров. Вызов DeregisterContainerlnstance (Отменить регистрацию экземпляра контейнера) через интерфейс прикладного программирования может использоваться для отмены регистрации в указанном кластере экземпляра контейнера, который был зарегистрирован с использованием вызова RegisterContainerlnstance (Зарегистрировать экземпляр контейнера) через интерфейс прикладного программирования. DeregisterContainerlnstance (Отменить регистрацию экземпляра контейнера) далее описан со ссылкой на Фиг. 13.
[0056] Доступные вызовы функций через интерфейс прикладного программирования для определений задач могут включать: RegisterTaskDefinition (Зарегистрировать определение задач), DescribeTaskDefinition (Описать определение задач), ListTaskDefinitions (Перечислить определения задач) и DeregisterTaskDefinition (Отменить регистрацию определения задач). Вызов RegisterTaskDefinition (Зарегистрировать определение задач) через интерфейс прикладного программирования может использоваться для регистрации определения задач для запуска задач. Он дополнительно описан со ссылкой на Фиг. 9. Вызов DescribeTaskDefinition (Описать определение задач) через интерфейс прикладного программирования может использоваться для получения информации об определении задач, включая содержимое файла определения задач. Вызов ListTaskDefinitions (Перечислить определения задач) через интерфейс прикладного программирования может возвращать список определений задач, доступных для клиента, или может возвращать список определений задач, связанных с конкретным идентификатором кластера или идентификатором экземпляра контейнера. Вызов DeregisterTaskDefinition (Отменить регистрацию определения задач) через интерфейс прикладного программирования может отменить регистрацию определения задач, которое было зарегистрировано с помощью вызова RegisterTaskDefinition (Зарегистрировать определение задач) через интерфейс прикладного программирования. Он дополнительно описан со ссылкой на Фиг. 12.
[0057] Вызовы функций через интерфейс прикладного программирования для задач могут включать: StartTask (Начать задачу), DescribeTask (Описать задачу), ListTasks (Перечислить задачи) и StopTask (Остановить задачу). Клиент может передать файл определения задач (или их соответствующие идентификаторы) в качестве параметров вызова StartTask (Начать задачу) через интерфейс прикладного программирования и может дополнительно указать экземпляр контейнера или кластер для запуска одной или большего количества задач в экземпляре контейнера или кластере. Например, клиент может получить один или большее количество идентификаторов экземпляров контейнеров кластера в ответ на вызов DescribeCluster (Описать кластер) через интерфейс прикладного программирования и может предписать выполнение файла определения задач в одном или большем количестве указанных экземпляров контейнеров. Если клиент выполняет задачи непосредственно, он может вызвать StartTask (Начать задачу) через интерфейс прикладного программирования и указать экземпляр контейнера для запуска. В альтернативном варианте планировщик 208 может использовать StartTask (Начать задачу) через интерфейс прикладного программирования для запуска задач. Кроме того, клиенты 202 могут настроить собственный планировщик, чтобы использовать StartTask (Начать задачу) через интерфейс прикладного программирования для запуска задач.
[0058] Планировщик 208 или установленный клиентом планировщик также может быть сконфигурирован для запуска задач в файле определения задач и может определять, где размещать задачи в кластере. Например, планировщик 208 может принять решение равномерно распределить задачи между экземплярами контейнеров кластера, распределить задачи согласно распределению хи-квадрат либо может распределить задачи между экземплярами контейнеров кластера в соответствии с какой-либо другой эвристикой или набором ограничений. Параметры, передаваемые вызову StartTask (Начать задачу) через интерфейс прикладного программирования, могут предписывать запуск нескольких задач, например, путем передачи файла определения задач, содержащего несколько задач. В некоторых вариантах реализации изобретения клиент 202 может вместо указания одного кластера или экземпляра контейнера указать список кластеров или экземпляров контейнеров, а планировщик 208 может определить, в каком из экземпляров контейнеров выполнять задачи. Вызов StartTask (Начать задачу) через интерфейс прикладного программирования описан более подробно со ссылкой на Фиг. 10.
[0059] Вызов DescribeTask (Описать задачу) через интерфейс прикладного программирования может использоваться для получения информации о выполняемых задачах от агентов контейнеров 222, в т.ч. информации о выделенных ресурсах, длительности и состоянии выполнения. Вызов ListTasks (Перечислить задачи) через интерфейс прикладного программирования может использоваться для получения списка всех выполняемых задач или списка всех задач, выполняемых в указанном кластере или экземпляре контейнера. Вызов StopTask (Остановить задачу) через интерфейс прикладного программирования может использоваться для передачи команды агентам контейнеров 222 остановить указанные выполняемые задачи, запущенные с использованием вызова StartTask (Начать задачу) через интерфейс прикладного программирования. Вызов StopTask (Остановить задачу) через интерфейс прикладного программирования описан более подробно со ссылкой на Фиг. 11.
[0060] Контейнерная служба контейнеров 200 может взаимодействовать с системой аутентификации поставщика служб вычислительных ресурсов, такой как система аутентификации 1518, как проиллюстрировано на Фиг. 15, для проверки подлинности вызовов через интерфейс прикладного программирования, направленных интерфейсной службе 204. В некоторых вариантах реализации изобретения отдельные группы безопасности и роли безопасности могут быть сконфигурированы и назначены различным контейнерам в одном хосте. Контейнерная служба 200 также может быть выполнена с возможностью запуска контейнеров и экземпляров контейнеров 218 в виртуальном частном облаке.
[0061] В некоторых вариантах реализации изобретения контейнеры могут быть выполнены с возможностью подключения к другим службам поставщика служб вычислительных ресурсов, таким как служба хранения данных на уровне блоков и/или служба хранения данных по требованию. В некоторых случаях контейнеры могут быть выполнены с возможностью совместного использования подключенных служб с другими контейнерами. В качестве примера: экземпляр контейнера клиента может сопоставляться с объемом хранилища на уровне блоков службы хранения на уровне блоков поставщика служб вычислительных ресурсов, а каждый из контейнеров в экземпляре может быть выполнен с возможностью чтения данных из объема хранилища на уровне блоков и/или записи в него. В некоторых примерах объем хранилища на уровне блоков может совместно использоваться несколькими экземплярами контейнеров, например, всеми экземплярами контейнеров в кластере или нескольких кластерах, таким образом, что экземпляры контейнеров в кластере или кластерах могут иметь возможность совместно использовать объем хранилища на уровне блоков со своими выполняемыми контейнерами. В другом примере экземпляр контейнера может сопоставляться с 20 различными объемами хранилища на уровне блоков, но только два из этих объемов будут указаны для контейнеров.
[0062] Служба шаблонов 206 может быть выполнена с возможностью позволять клиентам 202 определять определение задач для своих контейнеров. В некоторых примерах «определение задач» может относиться к скрипту или набору метаданных, которые могут определить группу контейнеров; например, количество контейнеров, их типы, компоненты, отношения к другим контейнерам, информацию, описывающую связанные экземпляры и другие метаданные. Определения задач могут также предписывать скоординированный запуск групп контейнеров. Служба шаблонов 206 может получать определение задач от клиентов 202, хранить определение задач в базе данных 216 и позволять клиентам 202 создавать, просматривать, обновлять, удалять и иным образом управлять их определениями задач.
[0063] Служба шаблонов 206 может предоставить клиентам 202 возможность задавать определение задач. Служба шаблонов 206 может позволять клиентам предоставлять определение задач путем загрузки файла определения задач или может обеспечить определение задач, позволяя клиентам выбирать из различных вариантов и/или изменять настройки по умолчанию для динамического создания файла определения задач. Служба шаблонов 206 может позволить клиентам регистрировать определение задач. Служба шаблонов 206 также может обеспечивать интерфейс редактирования для внесения изменений в уже зарегистрированные определения задач. Служба шаблонов 206 может регистрировать определения задач, по меньшей мере частично, путем предоставления определений задач поддерживаемой менеджером контейнеров службе 214 для их хранения в базе данных 216.
[0064] В некоторых примерах термин «парк» может относиться ко множеству компьютерных систем (виртуальных или физических), выполняющих экземпляры, например, экземпляры контейнеров согласно настоящему изобретению или другим применениям контейнерной службы 200. Парк может быть разделен на субпарки, и каждый субпарк может поддерживаться серверной службой менеджера контейнеров и службой связи с агентами, выделенной для этого субпарка. Службы связи с агентами 220 могут быть выполнены с возможностью связи с агентами контейнеров 222 и агентами телеметрии 224, работающими в экземплярах контейнеров в субпарке.
[0065] Серверные службы менеджера контейнеров 214 могут быть выполнены с возможностью предоставления других служб управления и ресурсов субпарку на серверной стороне, например, программное обеспечение для управления кластером или метаданные менеджера кластеров, указанные в настоящем описании. Серверные службы менеджера контейнеров могут быть выполнены с возможностью получения определений задач от службы шаблонов 206, хранения определений задач в базе данных 216, получения метаданных менеджера кластеров из экземпляров контейнеров 218 или от служб связи с агентами 220 и предоставления по запросу данных определения задач и метаданных менеджера кластеров планировщику 208 или установленному клиентом планировщику. Серверные службы менеджера контейнеров могут быть выполнены с возможностью предоставления информации о заданном кластере, например, метаданных менеджера кластеров, в ответ на вызов DescribeCluster (Описать кластер) через интерфейс прикладного программирования.
[0066] Службы связи с агентами 220 и серверные службы менеджера контейнеров 214 могут быть реализованы в виде отдельных компьютерных систем в пределах субпарка, отдельных экземпляров виртуальных машин субпарка, могут совместно использовать одни и те же компьютерные системы и/или экземпляры виртуальных машин в субпарке или могут выполняться в компьютерных системах отдельно от соответствующего субпарка, но при поддержании связи с ним. В субпарке может быть несколько экземпляров контейнеров 218. В некоторых случаях каждый субпарк может представлять собой один кластер. В других случаях кластеры могут охватывать несколько субпарков. В иных случаях каждый субпарк может содержать более одного кластера. Служба маршрутизатора 210 может быть выполнена с возможностью направления запросов от интерфейсной службы 204 соответствующему субпарку. В некоторых вариантах реализации изобретения служба маршрутизатора 210 может направлять запросы одному субпарку. В других вариантах реализации изобретения служба маршрутизатора может направлять запросы между несколькими субпарками.
[0067] Служба телеметрии 212 может быть выполнена с возможностью агрегации метрик контрольной группы (например, информации о процессах, выполняемых в контейнерах) и журналы контейнеров, а также предоставлять агрегированные метрики и журналы службе мониторинга ресурсов, чтобы позволить клиентам 202 контролировать использование ресурсов, например, использование процессора, памяти и сети, соответствующими экземплярами контейнеров. Метрики контрольной группы содержат информацию, такую как объем памяти, используемой процессами контейнеров, количество вызванных процессом отказов страницы, использование центрального процессора процессами контейнеров, время, в течение которого центральные процессоры выполняли системные вызовы «по поручению» процессов контейнеров, количество операций чтения и записи с помощью процессов контейнеров и количество операций ввода/вывода для процессов контейнеров.
[0068] Серверные службы менеджера контейнеров 214 могут быть выполнены с возможностью получения запросов на размещение от клиентов 202 для их контейнеров через интерфейсные службы 204 и может обеспечивать доступность запрашиваемых ресурсов для контейнеров. Серверные службы менеджера контейнеров 214 могут затем записывать требуемое состояние контейнера в базу данных 216. В некоторых вариантах реализации изобретения серверные службы менеджера контейнеров отвечают за метаданные менеджера кластеров, которые могут храниться в базе данных 216 и предоставляться по запросу планировщику 208 или установленному клиентом планировщику. Кроме того, серверные службы менеджера контейнеров могут регулярно получать информацию от отдельных агентов контейнеров 222, например, информацию, относящуюся к событиям жизненного цикла и сигналам об активности (например, сигналам, периодически направляемым агентами контейнеров 222 для индикации штатного режима работы). В некоторых случаях эта информация может передаваться соответствующему компоненту или объекту через интерфейсную службу 204. В некоторых вариантах реализации изобретения агенты контейнеров передают эту информацию через службы связи с агентами 220, которые затем могут передавать эту информацию непосредственно серверным службам менеджера контейнеров 214 или, в других вариантах реализации изобретения, сохранять информацию в базе данных 216, после чего серверные службы менеджера контейнеров 214 могут считывать информацию.
[0069] База данных 216 может быть хранилищем данных, расположенным в распределенной вычислительной системе контейнерной службы 200, или может представлять собой хранилище данных другой службы поставщика служб вычислительных ресурсов, например, службы реляционных баз данных. В некоторых вариантах реализации изобретения база данных 216 может представлять собой множество распределенных баз данных, которые совместно используют журнал транзакций. Службы связи с агентами 220 могут быть выполнены с возможностью отслеживания состояния всех агентов в кластере и принудительной подачи команд на выполнение и изменения состояния соответствующему экземпляру. В некоторых вариантах реализации изобретения связь других компонентов контейнерной службы с контейнерами и экземплярами контейнеров 218 осуществляется посредством служб связи с агентами 220. Каждый парк может иметь, по меньшей мере, одну службу связи с агентами, которая передает сообщения между агентами контейнеров 222 парка.
[0070] Агенты контейнеров 222 могут быть программными приложениями, настроенными для выполнения в экземплярах, принадлежащих клиентам 202, и могут выступать в качестве интерфейса между их соответствующими экземплярами контейнеров 218 и другими службами и объектами, такими как серверные службы менеджера контейнеров 214. Например, агенты контейнеров 222 могут выступать в качестве посредников между выполняемыми задачами соответствующих экземпляров контейнеров 218 и другими объектами и службами, таким образом, что все коммуникации для контейнера или от него проходят через агент контейнеров. Таким образом, агент контейнеров может быть выполнен с возможностью, интерпретации и трансляции команд между контейнером и конкретной системой инкапсуляции контейнеров, работающей со контейнерной службой 200. Таким образом можно вносить изменения в конкретную систему инкапсуляции контейнеров без необходимости запроса обновления задач или определений задач; т.е. может возникнуть необходимость только в обновлении агентов контейнеров 222, чтобы отразить изменения в конкретной системе инкапсуляции.
[0071] Таким образом, каждый из экземпляров контейнеров 218 может иметь соответствующий агент контейнеров, работающий в нем и осуществляющий связь с соответствующей серверной службой менеджера контейнеров. Агент контейнеров, сам по себе, может быть контейнером, выполненным с возможностью мониторинга своего соответствующего экземпляра контейнера, и может предоставлять информацию системе, используемой для запуска контейнеров, отслеживания контейнеров и контроля состояния кластера. Агент контейнеров может также выполнять функции регистрации и отмены регистрации своего соответствующего экземпляра контейнера, запуска и останова задач в своем соответствующем экземпляре контейнера. Агент контейнеров также может быть выполнен с возможностью ответа на запросы о предоставлении описания его соответствующего экземпляра контейнера, перечислении задач, выполняемых в его соответствующем экземпляре контейнера, и запросы о предоставлении описания задач, выполняемых в его соответствующем экземпляре контейнера. Агенты контейнеров 222 могут быть выполнены с возможностью мониторинга состояния контейнеров в соответствующих экземплярах контейнеров 218 (например, сообщать о сигналах активности, подтверждающих работу экземпляра контейнера, продолжительности работы контейнеров, их статусах и частоте возникновения ошибок контейнера), а также могут быть выполнены с возможностью выполнения действий, основанных на наступлении определенных событий. Например, если агент контейнеров обнаруживает, что контейнер обнаружил ошибку и прекратил работу, агент контейнеров может автоматически обеспечить создание нового контейнера для замены неисправного. В других вариантах реализации изобретения планировщик 208 может предпринять определенные действия в ответ на события, о которых сообщают агенты контейнеров 222. В приведенном выше примере именно планировщик 208 может обеспечивать создание нового контейнера для замены работающего с ошибками контейнера. Клиент-владелец контейнера может определять условия, события и действия для планировщика 208 и/или агента контейнеров. Например, клиент может указать, что в случае прекращения работы контейнеров клиента, например, из-за ошибки или отключения питания, планировщику 208 или агенту контейнеров не следует создавать контейнеры для замены неработающих контейнеров. Вместо этого клиент может указать, что планировщик 208 или агент контейнеров должен уведомить (например, путем изменения индикатора состояния, направления сообщения по электронной почте и т.д.) клиента о возникновении проблемы.
[0072] Агенты контейнеров 222 и/или агенты телеметрии 224 могут быть выполнены с возможностью автоматического запуска при создании их соответствующих экземпляров контейнеров 218. При реализации новой системы инкапсуляции контейнеров контейнерной службой 200 единственными изменениями, необходимыми для экземпляров контейнеров 218 и контейнеров, могут быть связаны с конфигурацией новых агентов контейнеров, чтобы сделать их совместимыми с создаваемой новой системой инкапсуляции контейнеров и заменить агенты контейнеров 222 новыми агентами контейнеров. В таком случае клиенты 202 должны иметь возможность использовать одни и те же интерфейсы прикладного программирования со контейнерной службой 200, и новые агенты контейнеров должны быть выполнены с возможностью поддержки тех же интерфейсов прикладного программирования, так что клиенты 202 не заметят переход на новую систему инкапсуляции.
[0073] Агенты контейнеров 222 могут опрашиваться системой инкапсуляции контейнеров для передачи информации системе инкапсуляции контейнеров. Агент контейнеров 222 может регистрировать или отменять регистрацию экземпляров контейнеров 218, получать инструкции от серверной службы менеджера контейнеров 214, а также обеспечивать запуск и работу агента телеметрии 224. Агент контейнеров 222 может также обеспечивать обновления контейнеров в экземплярах контейнеров 218 и следить за состоянием контейнеров, работающих в экземплярах контейнеров 218, с помощью потока событий.
[0074] Агент телеметрии 224 может быть выполнен с возможностью сбора данных телеметрии, таких как множество метрик контрольной группы и журналов системы инкапсуляции контейнеров, и предоставления указанных данных телеметрии службе телеметрии 212. Служба телеметрии 212 может быть выполнена с возможностью агрегации данных, полученных от агента телеметрии 224, для службы мониторинга ресурсов поставщика служб вычислительных ресурсов, которая, в свою очередь, может быть выполнена с возможностью подачи сигнала тревоги или выполнения каких-либо других действий на основе агрегированных данных. Например, если агент телеметрии 224 передает журнал, указывающий на состояние ошибки контейнера, службе телеметрии 212, служба телеметрии 212 может передать состояние ошибки службе мониторинга ресурсов, которая отреагирует, подав сигнал тревоги, сообщающий клиенту о том, что в контейнере возникла ошибка. В другом примере служба мониторинга ресурсов может вызывать подачу сигнала тревоги, если один из показателей (например, использование центрального процессора процессами контейнера), предоставленный службой телеметрии 212, превышает пороговое значение. Следует отметить, что в некоторых вариантах реализации изобретения служба телеметрии 212 может быть настраиваемой, позволяя задавать условия тревоги и пороговые значения. Примеры срабатывания сигнализации включают направление текстового сообщения клиенту-владельцу контейнера, сообщения по электронной почте клиенту-владельцу контейнера и/или отображение визуального индикатора (например, красного значка, всплывающего окна и т.д.) в интерфейсе, отображающем статусы контейнеров.
[0075] Контейнерная служба 200 может также позволять связывать тома данных с контейнерами. Такие тома данных могут быть назначенными каталогами в контейнере и могут совместно использоваться с одним или большим количеством других контейнеров. Эти каталоги могут не подчиняться файловой системе, принятой по умолчанию в экземпляре контейнера. Таким образом, данные могут сохраняться на постоянной основе и совместно использоваться другими контейнерами в экземпляре контейнера. Конфигурирование тома данных может осуществляться посредством записей в файле определения задач. В некоторых вариантах реализации изобретения создание и выбор одного или большего количества томов данных для контейнера может осуществляться с помощью пользовательского интерфейса, настроенного для этой цели на осуществление связи с интерфейсной службой 204. Контейнерная служба 200 может использовать другие сервисы хранения данных, такие как служба хранения данных по требованию 1514 или служба хранения данных на уровне блоков 1510, как проиллюстрировано на Фиг. 2, поставщика служб вычислительных ресурсов для обеспечения хранения томов данных. В других вариантах реализации изобретения тома данных могут использовать собственную память экземпляра контейнера для организации тома данных.
[0076] Контейнерная служба 200 может быть интегрирована с другими службами поставщика служб вычислительных ресурсов. Например, экземпляры контейнеров могут быть помечены и/или назначены группе автоматического масштабирования службы автоматического масштабирования поставщика служб вычислительных ресурсов. Таким образом, служба автоматического масштабирования может контролировать использование ресурсов экземплярами контейнеров и может динамически корректировать/распределять ресурсы по мере необходимости, например, в случае резкого увеличения потребности в ресурсах в экземплярах контейнеров. Аналогично, контейнерная служба 200 может интегрироваться со службой балансировки нагрузки поставщика служб вычислительных ресурсов. Так, например, служба балансировки нагрузки может распределять трафик среди контейнеров или экземпляров контейнеров для того, чтобы сбалансировать рабочую нагрузку между экземплярами контейнеров.
[0077] Например, клиент может использовать веб-сайт с использованием экземпляров контейнеров 218, назначенных группе автоматического масштабирования. Веб-сайт может получать запросы по интернету от нескольких пользователей, а балансировщик нагрузки службы балансировки нагрузки может распределять запросы среди экземпляров контейнеров 218 в соответствии со схемой распределения для балансировки нагрузки. Служба балансировки нагрузки может представлять собой компьютерную систему или виртуальную компьютерную систему, сконфигурированную с возможностью распределения запросов среди экземпляров контейнеров 218, назначенных балансировщиком нагрузки, с целью оптимизации использования ресурсов и/или предотвращения перегрузки какого-либо хост-компьютера. Например, балансировщик нагрузки может включать в себя физическое оборудование, подключенное к серверной стойке или иным способом включенное в состав центра обработки данных. В другом примере балансировщик нагрузки может содержать одну или большее количество виртуальных машин, поддерживаемых хост-компьютером. В то же время служба автоматического масштабирования может обнаруживать, требуется ли больше или меньше ресурсов экземплярам контейнеров 218 с учетом поступающих запросов, и может выделять больше или меньше ресурсов экземплярам контейнеров 218 по мере необходимости.
[0078] На Фиг. 3 проиллюстрирован аспект среды 300, в которой возможна практическая реализация варианта осуществления изобретения. В частности, на Фиг. 3 проиллюстрирована контейнерная служба, аналогичная контейнерной службе 1522, обеспечивающая работу множества виртуальных машин, настроенных в качестве экземпляров контейнеров 320 в соответствии с, по меньшей мере, одним вариантом реализации изобретения. Контейнерная служба может обеспечивать системные аппаратные средства 340 клиентам 302 поставщика служб вычислительных ресурсов 304, предоставляющего контейнерную службу для работы служб вычислений в контейнерах 310. Системные аппаратные средства 340 могут включать в себя один или большее количество хостов 342, также называемых компьютерными хост-системами. Каждый из хостов 342 может представлять собой любое устройство или оборудование, сконфигурированное с возможностью выполнения инструкций для осуществления задач вычислений данных, обработки или хранения, такое как компьютер или сервер. Хосты 342 могут быть оснащены любыми необходимыми средствами обработки, в т.ч. одним или большим количеством процессоров, таких как центральный процессор, блок обработки графики или процессор цифровых сигналов. Хосты 342 также могут быть оснащены памятью (например, статической и динамической памятью), шинами, портами ввода и вывода, соответствующими любому протоколу квитирования, связи или передачи данных. Системные аппаратные средства 340 также могут включать в себя запоминающие устройства, например, на дисках и лентах, а также сетевое оборудование. Запоминающие устройства могут быть сетевыми хранилищами, управляемыми службой хранения данных, такой как служба хранения данных на уровне блоков 1510, описанной со ссылкой на Фиг. 15.
[0079] Уровни виртуализации 344 в системных аппаратных средствах 340 позволяют использовать системные аппаратные средства 340 для предоставления вычислительных ресурсов для работы одного или большего количества экземпляров контейнеров 320. Уровень виртуализации 344 может представлять собой любое устройство, программное обеспечение или встроенное программное обеспечение, используемое для предоставления виртуальной вычислительной платформы для экземпляров контейнеров 320. Уровни виртуализации 344, реализованные на хостах 342, позволяют использовать множество системных аппаратных средств 340 для предоставления вычислительных ресурсов, необходимых для поддержки экземпляров контейнеров 320. Кроме того, физический хост 342 может осуществлять хостинг нескольких уровней виртуализации одного и того же или разных типов на одних и тех же системных аппаратных средствах 340. Каждый экземпляр контейнера 320 может содержать различные виртуальные компьютерные компоненты, такие как один или большее количество виртуальных процессоров, виртуальную память и виртуальное хранилище. Экземпляры контейнеров 320 могут быть предоставлены клиентам поставщика служб вычислительных ресурсов 304, и клиенты могут запускать операционную систему 306 и приложения в каждом из экземпляров контейнеров 320. Пример уровня виртуализации 344 включает в себя гипервизор.
[0080] Запросы может получать интерфейс запросов, такой как интерфейсная служба 204, проиллюстрированная на Фиг. 2, управляемая поставщиком служб вычислительных ресурсов 304. Интерфейс запросов 314 может направлять запрос соответствующему экземпляру контейнера. Каждый экземпляр контейнера 320 может включать в себя один или большее количество программных агентов 308. Программные агенты 308 могут быть сконфигурированы таким образом, чтобы позволять клиентам 302 управлять их соответствующими контейнерами 310 и экземплярами контейнеров. Программные агенты 308 могут быть дополнительно сконфигурированы для регистрации событий и сбора телеметрических данных, связанных с контейнерами 310 и экземплярами контейнеров 320. Примерами таких программных агентов 308 являются агенты контейнеров 222 и агенты телеметрии 224, описанные со ссылкой на Фиг. 2.
[0081] Операционные системы 306 могут представлять собой любые операционные системы, пригодные для работы в экземплярах контейнеров 320 и обеспечивающие технологию изоляции, которая позволяет схемам контейнеризации изолировать экземпляры виртуализации, такие как контейнеры 310, от других процессов, выполняемых в операционной системе 306. Примеры таких операционных систем включают различные реализации операционных систем Linux, которые поддерживают функции изоляции ресурсов в ядре Linux. Как уже отмечалось, контейнеры 310 могут быть виртуализированными экземплярами в операционной системе 306, запущенными на базе образов приложений в соответствии с одним или большим количеством определений задач, и им могут быть выделены ресурсы из соответствующих экземпляров контейнеров 320.
[0082] На Фиг. 4 проиллюстрирован аспект среды 400, в которой возможна практическая реализация варианта осуществления изобретения. Как проиллюстрировано на Фиг. 4, среда 400 может содержать множество контейнеров 402, запущенных в экземпляре контейнера 418, который контролируется агентом контейнеров 422 и предоставляет метрики и данные журнала агенту телеметрии 424. Агент контейнеров 422, в свою очередь, может передавать данные мониторинга через службу связи с агентами, такую как служба связи с агентами 420, аналогичная службе связи с агентами 220. Агент контейнеров 422 также может осуществлять связь с агентом телеметрии 424, а агент контейнеров 422 может периодически контролировать состояние агента телеметрии 424, чтобы убедиться в том, что агент телеметрии 424 работает. Если агент телеметрии 424 прекращает работу, или в случае какой-либо ошибки, агент контейнеров 424 может, если необходимо, перезапустить агент телеметрии 424. В некоторых вариантах реализации изобретения мониторинг данных от агента контейнеров 222 может осуществляться интерфейсной службой 204 в ответ на вызов через интерфейс прикладного программирования. Агент телеметрии 424 может передавать метрики и данные журнала службе телеметрии 412, аналогичной службе телеметрии 212. В некоторых вариантах реализации изобретения агент телеметрии связан напрямую со службой телеметрии 412, в то время как в других вариантах реализации изобретения настоящего изобретения агент телеметрии 424 может осуществлять связь со службой телеметрии 412 через интерфейсную службу 404.
[0083] Контейнеры 402, аналогичные контейнерам, рассматриваемым в различных частях данного описания, могут обеспечивать выполнение экземпляров виртуализации (называемых также задачами) различной продолжительности (например, краткосрочные пакетные задания, долгосрочные фоновые процессы и т.д.), изолированных от других процессов в экземпляре контейнера. Агент телеметрии 424 может собирать метрики контейнеров 402, агрегировать данные и передавать их службе телеметрии 412. Агент контейнеров 422 выполняет роль посредника между контейнерами 402 и ресурсами, службами и другими объектами вне пространства имен контейнеров 402. В некоторых вариантах реализации изобретения контейнеры 402 могут быть выполнен с возможностью совместного использования внешних ресурсов, таких как тома хранилища данных на уровне блоков. В некоторых из этих реализаций доступ контейнеров 402 к совместно используемым внешним ресурсам и связь с ними может осуществляться через агента контейнеров 422. В других вариантах реализации изобретения экземпляр контейнера 418 или операционная система экземпляра контейнера 418 может поддерживать возможность доступа контейнеров 402 к совместно используемым ресурсам и связи с ними, минуя агента контейнера 422.
[0084] В качестве менеджера кластеров 406 может использоваться программное обеспечение для управления метаданными или кластерами, снабженное набором правил для определения того, в каком экземпляре контейнера 418 следует запустить контейнеры 402. Например, при создании экземпляра контейнера 418 его агент контейнеров 422 может передать менеджеру кластеров 406 обновленные данные, указывающие на доступность экземпляра контейнера 418 для хостинга контейнеров клиента. После этого, если от клиента или планировщика через интерфейсную службу 404 поступает запрос на запуск контейнера, планировщик может обратиться к менеджеру кластеров 406, чтобы выбрать экземпляр контейнера 418 и дать команду агенту контейнеров 422 экземпляра контейнера 418 на запуск контейнера. Менеджер кластеров 406 также может быть выполнен с возможностью указания того, какие действия должны предприниматься в ответ на определенные виды событий контейнеров. Например, если в одном из контейнеров 402 возникают ошибки, и/или он прекращает работу, агент контейнеров 422 может обратиться к менеджеру кластеров 406, чтобы определить, следует ли повторно запустить неисправный или неработающий контейнер.
[0085] Следует обратить внимание на то, что в некоторых вариантах реализации изобретения планировщик может осуществлять связь со службой связи с агентами 420 или напрямую с агентом контейнеров 422, чтобы передать агенту контейнеров 422 команду на запуск задач. В других вариантах реализации изобретения планировщик передает данные размещения и команды на запуск серверной части менеджера контейнеров 414, которая затем обеспечивает запуск контейнеров в соответствии с заявками на размещение от планировщика, например, путем передачи инструкций по запуску агенту контейнеров 422, напрямую или через службу связи с агентами. Менеджер кластеров 406 может быть многопользовательским; например, менеджер кластеров 406 может быть снабжен информацией для управления кластерами нескольких клиентов поставщика служб вычислительных ресурсов.
[0086] Как уже отмечалось, серверная часть менеджера контейнеров 414 может быть выполнена с возможностью обеспечения среды для других процессов, поддерживающих контейнеры и экземпляры контейнеров в определенном субпарке, таком как менеджер кластеров 406. Агент контейнеров 422 может быть выполнен с возможностью передачи данных о жизненном цикле и состоянии контейнеров 402, мониторинг которых осуществляет агент контейнеров 422, менеджеру кластеров 406. В некоторых вариантах реализации изобретения агент контейнеров 422 собирает метрики и данные журнала и передает эту информацию агенту телеметрии 424 или непосредственно службе телеметрии. Кроме того, в некоторых вариантах реализации изобретения агент контейнеров 422 может передавать обновленную информацию менеджеру кластеров 406 через службу связи с агентами 420. В некоторых вариантах реализации изобретения связь между агентом контейнеров и внешними компонентами может осуществляться в виде односторонней передачи данных от агента контейнеров 422 службе связи с агентами 420 и внешним компонентам. В других вариантах реализации изобретения связь между агентом контейнеров 422 и службой связи с агентами 420 является двухсторонней. В других вариантах реализации изобретения агент контейнеров 422 может непосредственно передавать обновленную информацию менеджеру кластеров 406, минуя службу связи с агентами 420. Следует обратить внимание на то, что агент контейнеров 422 может представлять собой программный контейнер, который запускается при создании экземпляра контейнера, а в других случаях агент контейнеров 422 может представлять собой процесс, работающий под управлением операционной системы экземпляра контейнера при поддержании связи с контейнерами 402.
[0087] Как уже отмечалось, агент телеметрии 424 может быть выполнен с возможностью сбора метрик и данных журнала о контейнерах 402, работающих в экземпляре контейнера 418, и передачи собранных метрик и данных журнала службе телеметрии 412. В некоторых вариантах реализации изобретения агент телеметрии 424 может представлять собой отдельный собственный контейнер, который запускается при создании экземпляра контейнера 418. В других вариантах реализации изобретения агент телеметрии может представлять собой процесс, выполняющийся под управлением операционной системы экземпляра контейнера 418 и выполненный с возможностью получения метрик и данных журнала непосредственно через контейнеры 402 или через агента контейнеров 422. Следует обратить внимание на то, что не все реализации настоящего изобретения требуют наличия агента телеметрии 424 и/или служб телеметрии 412.
[0088] На Фиг. 5 проиллюстрирован пример 500 распределения ресурсов между экземпляром контейнера 502 и контейнерами 504А-04В в экземпляре контейнера. Экземпляр контейнера 502 может быть экземпляром компьютерной системы (виртуальной или невиртуальной), выполненным с возможностью поддержки экземпляров контейнеров (контейнеризации). Экземпляр контейнера 502 изображен с некоторым выделенным количеством вычислительных ресурсов 506 и некоторым количеством ресурсов памяти 508. Каждый из контейнеров 504А-04С может быть запущен в экземпляре контейнера 502 из образа программного обеспечения, и ему могут быть предоставлены ресурсы из пула ресурсов экземпляра контейнера 502, например, вычислительные ресурсы 506 и ресурсы памяти 508. Как проиллюстрировано на фигуре, контейнеру 506А выделено 35% вычислительных ресурсов 506 и 15% ресурсов памяти 508 экземпляра контейнера 502 для выполнения его процессов 510А. Аналогично, контейнеру 506 В выделено 40% вычислительных ресурсов 506 и 50% ресурсов памяти 508 экземпляра контейнера 502 для выполнения его процессов 510 В. Аналогично, контейнеру 504С выделено 10% вычислительных ресурсов 506 и 20% ресурсов памяти 508 экземпляра контейнера 502 для выполнения его процессов 510С. В целом контейнерам 504А-04С выделено 85% вычислительных ресурсов 506 и 85% ресурсов памяти экземпляра контейнера 502.
[0089] Экземпляр контейнера может включать в себя агент контейнеров 512. Агент контейнеров 512, как уже отмечалось, может представлять собой отдельный работающий контейнер, сконфигурированный как интерфейс между контейнерами 504А-04С и объектами, внешними по отношению к экземпляру контейнера 502. Объем ресурсов, выделяемых контейнерам 504А-04С, может быть указан в определении задач. Планировщик может определять экземпляр контейнера 502 для запуска контейнеров 504А-04С на основе (как было указано в настоящем описании) схемы размещения и/или доступных ресурсов во множестве экземпляров контейнеров, к которому относится экземпляр контейнера 502. Затем планировщик может уведомить экземпляр контейнера 502 или агента контейнеров 512, чтобы выделить объем ресурсов, указанный в определении задач контейнерам 504А-04С, и агент контейнеров 512 может выделить ресурсы контейнерам 504А-04С согласно инструкциям планировщика. Кроме того, после выделения ресурсов для каждого из контейнеров 504А-04С планировщик может передать экземпляру контейнера 502 или агенту контейнеров 512 уведомление о запуске каждого из контейнеров 504А-04С в качестве работающих контейнеров (т.е. задач) в их собственном пространстве имен и при исключительном использовании выделенных им ресурсов. После получения уведомления агент контейнеров 512 может запустить контейнеры 504А-04С в экземпляре контейнера 502 в соответствии с указаниями планировщика.
[0090] На Фиг. 6 проиллюстрирована блок-схема, иллюстрирующая пример процесса 600 запуска задач в кластере в соответствии с различными вариантами реализации изобретения. Процесс 600 может выполняться с использованием любой подходящей системы, такой как сервер в центре обработки данных, множества вычислительных устройств в распределенной системе поставщика служб вычислительных ресурсов или любого электронного устройства клиента, такого как электронное устройство клиента 1602, описанное со ссылкой на Фиг. 16. Процесс 600 содержит ряд операций, в ходе которых получают образ программного обеспечения и определение задач для контейнера, создают кластер и регистрируют в нем экземпляры контейнеров, описывают кластер, запускают образ в определенном экземпляре контейнера в соответствии с определением задач и обновляют описание кластера.
[0091] В 602 поставщик служб вычислительных ресурсов получает образ программного обеспечения от клиента поставщика служб вычислительных ресурсов. Как уже отмечалось, образ программного обеспечения может ссылаться на данные, представляющие все состояние программного приложения на момент создания его образа, таким образом, что программное приложение может быть восстановлено до этого состояния путем восстановления/запуска образа программного обеспечения. В некоторых случаях, операции в 602 могут быть направлены на получение исполняемого инсталлятора или файла приложения, а не образа. Следует обратить внимание на то, что в некоторых случаях получение образа программного обеспечения включает в себя наличие образа программного обеспечения, доступного для поставщика служб вычислительных ресурсов, например, через местоположение ресурса, указанного в файле определения задач. В некоторых случаях образ программного обеспечения может храниться в хранилище данных, таком как база данных 216 (как проиллюстрировано на Фиг. 2) поставщика служб вычислительных ресурсов.
[0092] В 604 поставщик служб вычислительных ресурсов может получить определение задач с описанием задач/контейнеров для выполнения в одном или большем количестве экземпляров. Определение задач может иметь форму файла определения задач или может быть получено поставщиком служб вычислительных ресурсов в ответ на варианты, выбранные клиентом с помощью интерфейса пользователя. Определение задач может указывать информацию, такую как описание задач/контейнеров, местоположения, где можно найти образы для задач/контейнеров, объемы ресурсов, выделяемых для задач/контейнеров, совместно используемые ресурсы, соотношения между другими контейнерами, а также другие данные. Как уже отмечалось, определение задач может храниться в хранилище данных, таком как база данных 216 (как проиллюстрировано на Фиг. 2) поставщика служб вычислительных ресурсов.
[0093] В 606 могут быть созданы экземпляры контейнеров. Как уже было отмечено, экземпляры контейнеров могут быть экземплярами виртуальных машин, которые поддерживают контейнеризацию. В некоторых случаях создание экземпляров контейнеров включает в себя запуск агента контейнеров в экземпляре контейнера. Агент контейнеров может работать под управлением операционной системы экземпляра контейнера, а сам агент контейнеров может представлять собой контейнер.
[0094] В 608 может создаваться один или большее количество кластеров. Как уже было отмечено, кластер может представлять собой логическую группировку одного или большего количества экземпляров контейнеров. Кластеры могут использоваться для различных целей, в т.ч. для разделения задач по функциям, группировки различных типов экземпляров контейнеров и группировки экземпляров контейнеров на основе расположения физических хост-машин в инфраструктуре поставщика служб вычислительных ресурсов. После создания кластера возможна регистрация одного или большего количества экземпляров контейнеров, как входящих в кластер, посредством менеджера кластеров. Как уже отмечалось, в некоторых случаях экземпляры контейнеров могут быть членами более чем одного кластера. Следует обратить внимание на то, что операции 606-08 могут происходить одновременно или в любом порядке. Например, кластер может быть создан до экземпляров контейнеров, а при создании экземпляров контейнеров агенты контейнеров в экземплярах контейнеров могут автоматически обеспечивать регистрацию экземпляра контейнера в кластере.
[0095] В 610 поставщик служб вычислительных ресурсов предоставляет кластер или его идентификатор клиенту или другому объекту, ответственному за направление запросов на запуск задач. В некоторых случаях этот иной объект может быть планировщиком, таким как планировщик 208 (как проиллюстрировано на Фиг. 2), обеспечиваемым контейнерной службой или планировщиком, установленным клиентом. Идентификатор кластера может предоставляться в ответ на запрос на создание кластера в 608. В других случаях идентификатор кластера может предоставляться запрашивающему объекту, направившему вызов ListClusters (Перечислить кластеры) через интерфейс прикладного программирования.
[0096] В 612 может быть получен вызов DescribeCluster (Описать кластер) через интерфейс прикладного программирования от клиента или другого объекта, ответственного за запросы на запуск задач (например, планировщика), с указанием кластера (например, путем передачи идентификатора кластера 610 в качестве параметра) для описания кластера. В ответ на вызов DescribeCluster (Описать кластер) через интерфейс прикладного программирования поставщик служб вычислительных ресурсов в 614 может предоставить информацию о кластере, включая количество и идентификаторы экземпляров контейнеров в кластере, доступные ресурсы в кластере, используемые ресурсы в кластере, запущенные задачи и т.д. Эта информация может использоваться клиентом или планировщиком для определения того, где (например, в каком экземпляре контейнера) запускать те или иные конкретные задачи (например, для достижения определенных целей производительности, балансировки нагрузки и т.д.).
[0097] В 616 поставщик служб вычислительных ресурсов получает запрос на выполнение одной или большего количества задач в соответствии с информацией, указанной в определении задач, полученном в 604. В некоторых случаях запрос может указывать на то, в каких экземплярах контейнеров выполнять одну или большее количество задач. В других случаях запрос может указывать, в каком кластере выполнять одну или большее количество задач, и планировщик, такой как планировщик 216 (как проиллюстрировано на Фиг. 2), может определить, в каком экземпляре контейнера необходимо запустить задачи в соответствии со схемой размещения. Схемы размещения могут включать схемы циклического размещения, размещения со стохастическим назначением или схемы с эвристическим подходом на основании использования ресурсов или других критериев.
[0098] После определения целевого расположения задач (например, после определения идентификаторов экземпляра контейнера для запуска задач) в 618 могут запускаться задачи, соответствующие образам программного обеспечения 602, в одном или большем количестве экземпляров контейнеров в соответствии с определением задач 604. В некоторых случаях запуск задач может выполняться агентами контейнеров, выполняющимися в определенных экземплярах контейнеров. Пунктирная линия между 618 и 620 указывает на то, что операции ниже нее не могут быть неотъемлемой частью запуска задач в кластере, но предоставляют информацию о текущих задачах, запущенных в 602-18.
[0099] В 620 может быть получен запрос на описание кластера, аналогичный запросу в 612. В 622 поставщик служб вычислительных ресурсов может запросить у одного или большего количества агентов контейнеров выполняющих задачи экземпляров контейнеров данные о статусе задач, выполняемых в экземплярах контейнеров. В 624 поставщик служб вычислительных ресурсов может предоставить информацию, описывающую кластер, в ответ на запрос 620, аналогично операциям в 614. Однако, в отличие от 614, информация теперь должна отражать выполняемые задачи и/или эффект ресурсов, выделенных выполняемым задачам, запущенным в кластере 618. Следует отметить, что одна или большее количество операций, выполняемых в 602-20, могут выполняться в различном порядке и в разных комбинациях, в т.ч. параллельно.
[0100] На Фиг. 7 проиллюстрирована блок-схема, иллюстрирующая пример процесса 700 создания кластера в соответствии с различными вариантами реализации изобретения. Процесс 700 может выполняться с использованием любой подходящей системы, такой как сервер в центре обработки данных, множества вычислительных устройств в распределенной системе поставщика служб вычислительных ресурсов или любого электронного устройства клиента, такого как электронное устройство клиента 1602, описанное со ссылкой на Фиг. 16. Процесс 700 включает в себя ряд операций, включающих получение вызова CreateCluster (Создать кластер) через интерфейс прикладного программирования от инициатора запроса, аутентификацию инициатора запроса, а затем, если аутентификация успешна, хранение метаданных кластера в базе данных, составление идентификатора кластера и предоставление инициатору запроса.
[0101] В 702 поставщик служб вычислительных ресурсов получает через интерфейс прикладного программирования вызов от клиента или другого объекта, предписывающий создать кластер. Создание кластера может включать в себя формирование идентификатора для кластера, хранение идентификатора кластера в базе данных вместе с другими метаданными о кластере. В некоторых случаях инициатор запроса может предписывать, посредством вызова CreateCluster (Создать кластер) через программный интерфейс приложения, зарегистрировать экземпляры контейнеров в кластере при их создании. В таких случаях указанные экземпляры контейнеров (например, один или большее количество идентификаторов экземпляров контейнеров, передаваемые в качестве параметров вызова через интерфейс прикладного программирования) или доступные экземпляры контейнеров могут быть зарегистрированы в ассоциации с идентификатором кластера при создании кластера. В других подобных случаях, если существующие экземпляры контейнеров не указаны, и нет доступных экземпляров контейнеров, могут быть созданы новые экземпляры контейнеров и зарегистрированы в кластере при его создании. Следует обратить внимание на то, что в некоторых вариантах реализации изобретения поставщик служб вычислительных ресурсов может предоставлять клиенту кластер по умолчанию; в таком случае клиенту не нужно использовать CreateCluster (Создать кластер) интерфейса прикладного программирования, и он может просто зарегистрировать экземпляры контейнеров в кластере по умолчанию, за исключением случаев, когда требуются дополнительные кластеры, или кластер по умолчанию удален.
[0102] В 704 поставщик служб вычислительных ресурсов определяет, имеет ли инициатор запроса достаточные привилегии для того, чтобы его запрос был выполнен. Например, инициатор запроса может предоставить данные идентификации и доказательства наличия полномочий в качестве параметров с помощью вызова CreateCluster (Создать кластер) через интерфейс прикладного программирования. Например, инициатор запроса может предоставить, как доказательство наличия полномочий, соответствующих личности, информацию, достаточную для доказательства наличия доступа к учетным данным, такую как пароль, криптографический хэш/дайджест пароля, криптографическую цифровую подпись, генерируемую путем подписания ключа шифрования, или другой секретный ключ, проверяемый поставщиком служб вычислительных ресурсов для авторизации личности инициатора запроса. Поставщик служб вычислительных ресурсов может предоставить эту идентификационную информацию и подтверждение полномочий службе аутентификации, такой как система аутентификации 1518 (проиллюстрирована на Фиг. 15), которая затем может проверить идентификационную информацию и подтверждение полномочий инициатора запроса. После того как личность инициатора запроса подтверждена, поставщик служб вычислительных ресурсов или служба аутентификации может определить, дает ли политика безопасности и/или роль, связанная с личностью, достаточные привилегии для выполнения запроса.
[0103] Если поставщику служб вычислительных ресурсов не удалось идентифицировать личность (например, она не найдена в базе данных безопасности), подтверждение полномочий было недостаточно, чтобы удостоверить личность (например, введен неправильный пароль), или личность инициатора запроса не удается подтвердить по иным причинам, система, выполняющая процесс 700, не может переходить к следующему этапу процесса 700. Система, выполняющая процесс 700, может отреагировать на отсутствие успешной аутентификации сообщением об ошибке инициатору запроса и/или зарегистрировать ошибку аутентификации в журнале безопасности. В противном случае, если личность инициатора запроса подтверждена, и у него достаточно привилегий для того, чтобы его запрос CreateCluster (Создать кластер) был выполнен, система, выполняющая процесс 700, может перейти к 706.
[0104] В 706 система, выполняющая процесс 700, может сохранить идентификатор кластера и метаданные кластера в хранилище данных, например, базе данных 216, описанной со ссылкой на Фиг. 2. Как уже отмечалось, в некоторых случаях кластер может быть метаданными, которые хранятся в связи с одним или большим количеством экземпляров контейнеров (например, экземпляры контейнеров, зарегистрированные в кластере). Планировщик может обращаться к менеджеру кластеров, чтобы определить, в каком экземпляре контейнера в кластере запускать контейнер. В некоторых примерах «менеджер кластеров» относится, по меньшей мере частично, к метаданным кластера. В других примерах менеджер кластеров может представлять собой программное приложение или службу, которое(ая) управляет метаданными кластера и поддерживает связь с планировщиком. Следует обратить внимание на то, что в некоторых вариантах реализации изобретения сохранение метаданных кластера в хранилище данных может вызывать формирование идентификатора кластера. Метаданные кластера могут содержать такую информацию, как географический регион хостов экземпляров контейнеров в кластере, количество экземпляров контейнеров, назначенных или разрешенных для назначения кластеру, и дата/время создания кластера.
[0105] После сохранения в 708 система, выполняющая процесс 700, может уведомить инициатора запроса о том, что создание кластера прошло успешно. В некоторых случаях это уведомление может содержать дополнительную информацию/метаданные о кластере, включая идентификаторы любых экземпляров контейнеров, зарегистрированных в кластере, и доступные ресурсы (например, памяти и/или вычислительные мощности). После этого инициатор запроса (если его личность успешно подтверждена) может воспользоваться вызовом DescribeCluster (Описать кластер) через интерфейс прикладного программирования для передачи идентификатора кластера в качестве параметра, а поставщик служб вычислительных ресурсов может ответить, предоставив информацию, включающую информацию о метаданных, список экземпляров контейнеров, зарегистрированных в указанном кластере, список задач, выполняемых в экземплярах контейнеров кластера, доступные ресурсы в кластере, ресурсы, используемые в кластере, метрики об экземплярах контейнеров в кластере, собранные службой телеметрии, такой как служба телеметрии 212 (как проиллюстрировано на Фиг. 2), определения задач, связанных с кластером или экземплярами контейнеров в кластере, и другие данные о состоянии кластера.
[0106] На Фиг. 8 проиллюстрирована блок-схема, иллюстрирующая пример процесса 800 регистрации экземпляра контейнера в соответствии с различными вариантами реализации изобретения. Процесс 800 может выполняться с использованием любой подходящей системы, такой как сервер в центре обработки данных, множества вычислительных устройств в распределенной системе поставщика служб вычислительных ресурсов или любого электронного устройства клиента, такого как электронное устройство клиента 1602, описанное со ссылкой на Фиг. 16. Процесс 800 включает в себя ряд операций, включающих получение системой, выполняющей процесс 800, вызова через интерфейс прикладного программирования от инициатора запроса, предписывающего зарегистрировать экземпляр контейнера. Затем система проверяет личность инициатора запроса, регистрирует экземпляр контейнера и уведомляет инициатора запроса об успешной регистрации.
[0107] В 802 поставщик служб вычислительных ресурсов получает вызов через интерфейс прикладного программирования, предписывающий зарегистрировать экземпляр контейнера. В некоторых случаях этот запрос может быть получен от клиента или другого объекта, внешнего по отношению к контейнерной службе. В некоторых из этих случаев запрос может быть получен через интерфейсную службу и передан агенту контейнеров, который регистрирует экземпляр контейнера. В других случаях этот запрос может направляться агентом контейнеров интерфейсной службе. Например, если экземпляр контейнера создается с агентом контейнеров, последний может автоматически стремиться зарегистрировать экземпляр контейнера в указанном кластере или кластере, заданном по умолчанию. Регистрация экземпляра контейнера может включать в себя ассоциацию существующего экземпляра виртуальной машины, специально сконфигурированной для поддержки контейнеризации, или ассоциацию существующего экземпляра виртуальной машины, имеющего поддержку контейнеризации в определенном кластере. Эта ассоциация может храниться в базе данных, например, базе данных 216 (как проиллюстрировано на Фиг. 2), как соотношение между идентификатором экземпляра и идентификатором кластера. В таком случае, инициатор запроса может предоставить идентификатор экземпляра (или другое идентифицирующее свойство) и идентификатор кластера в качестве параметров в вызове функции RegisterContainerlnstance (Зарегистрировать экземпляр контейнера).
[0108] В некоторых случаях инициатор запроса может не указывать конкретный существующий экземпляр контейнера, и, в таком случае, поставщик служб вычислительных ресурсов может выбрать контейнер из множества предварительно созданных экземпляров контейнеров, пригодных для контейнеризации. В других случаях, если подходящий предварительно созданный экземпляр контейнера недоступен, поставщик служб вычислительных ресурсов может создать новый экземпляр контейнера, пригодный для экземпляра контейнера, и зарегистрировать только что созданный экземпляр контейнера в указанном кластере. В некоторых вариантах реализации изобретения вызов RegisterContainerlnstance (Зарегистрировать экземпляр контейнера) через интерфейс прикладного программирования может использоваться для регистрации существующего экземпляра контейнера в другом кластере, отличном от кластера, в котором он был зарегистрирован. В этом случае инициатор запроса может указать идентификатор экземпляра контейнера и идентификатор кластера в качестве параметров вызова через интерфейс прикладного программирования.
[0109] В 804 поставщик служб вычислительных ресурсов определяет, имеет ли инициатор запроса достаточные привилегии для того, чтобы его запрос был выполнен. Например, инициатор запроса может предоставить данные идентификации и доказательства наличия полномочий в качестве параметров с помощью вызова RegisterContainerlnstance (Зарегистрировать экземпляр контейнера) через интерфейс прикладного программирования. Например, инициатор запроса может предоставить, как доказательство наличия полномочий, соответствующих личности, информацию, достаточную для доказательства наличия доступа к учетным данным, такую как пароль, криптографический хэш/дайджест пароля, криптографическую цифровую подпись, генерируемую путем подписания ключа шифрования, или другой секретный ключ, проверяемый поставщиком служб вычислительных ресурсов для авторизации личности инициатора запроса. Поставщик служб вычислительных ресурсов может предоставить эту идентификационную информацию и подтверждение полномочий службе аутентификации, такой как система аутентификации 1518 (как проиллюстрировано на ФИГ. 15), которая затем может проверить идентификационную информацию и подтверждение полномочий инициатора запроса. После того, как личность инициатора запроса подтверждена, поставщик служб вычислительных ресурсов или служба аутентификации может определить, дает ли политика безопасности и/или роль, связанная с личностью, достаточные привилегии для выполнения запроса.
[0110] Если поставщику служб вычислительных ресурсов не удалось идентифицировать личность (например, она не найдена в базе данных безопасности), подтверждение полномочий было недостаточно, чтобы удостоверить личность (например, введен неправильный пароль), или личность инициатора запроса не удается подтвердить по иным причинам, система, выполняющая процесс 800, не может переходить к следующему этапу процесса 800. Система, выполняющая процесс 800, может отреагировать на отсутствие успешной аутентификации сообщением об ошибке инициатору запроса и/или зарегистрировать ошибку аутентификации в журнале безопасности. В противном случае, если личность инициатора запроса подтверждена, и у него достаточно привилегий для того, чтобы его запрос RegisterContainerlnstance (Зарегистрировать экземпляр контейнера) был выполнен, система, выполняющая процесс 800, может перейти к 806.
[0111] В 806 система, выполняющая процесс 800, может попытаться найти идентификатор экземпляра контейнера (если он указан) в соответствующей базе данных, такой как база данных 216. Если идентификатор экземпляра контейнера найден, и определено, что он уже ассоциирован с другим идентификатором кластера, в некоторых случаях, система, выполняющая процесс 800, может на этапе 806 отменить регистрацию экземпляра контейнера в кластере, в котором он зарегистрирован в настоящее время, и зарегистрировать в указанном кластере. В некоторых из этих случаев указанная отмена регистрации/повторная регистрация может выполняться автоматически после аутентификации инициатора запроса. В других случаях система, выполняющая процесс 800, может запросить у инициатора запроса подтверждение отмены регистрации экземпляра контейнера в кластере, в котором он в настоящее время зарегистрирован, прежде чем система выполнит операцию отмены регистрации/повторной регистрации. В других вариантах реализации изобретения экземпляры контейнеров могут быть зарегистрированы в нескольких кластерах одновременно, и в таких вариантах реализации изобретения уже зарегистрированный экземпляр контейнера может не лишаться регистрации в кластере, в котором он в настоящее время зарегистрирован.
[0112] Если экземпляр контейнера не был зарегистрирован в кластере, его регистрация в кластере была отменена, или если в варианте реализации изобретения поддерживается регистрация экземпляра контейнера в нескольких кластерах, система, выполняющая процесс 800, может сохранять идентификатор экземпляра контейнера в базе данных в ассоциации с указанным кластером. Система, выполняющая процесс 800, может затем уведомить инициатора запроса, что регистрация экземпляра контейнера в указанном кластере прошла успешно, и, в некоторых случаях, в частности, случаях создания нового экземпляра контейнера, система может в ответ включать идентификатор экземпляра контейнера. В последующем вызове DescribeContainerlnstance (Описать экземпляр контейнера) через интерфейс прикладного программирования поставщик служб вычислительных ресурсов может предоставить инициатору запроса (при условии его успешной аутентификации) информацию об экземпляре контейнера, включая доступные ресурсы, задачи, выполняемые в экземпляре контейнера, а также в каком кластере или кластерах зарегистрирован экземпляр контейнера.
[0113] На Фиг. 9 проиллюстрирована блок-схема, иллюстрирующая пример процесса 900 регистрации задач в соответствии с различными вариантами реализации изобретения. Процесс 900 может выполняться с использованием любой подходящей системы, такой как сервер в центре обработки данных, множества вычислительных устройств в распределенной системе поставщика служб вычислительных ресурсов или любого электронного устройства клиента, такого как электронное устройство клиента 1602, описанное со ссылкой на Фиг. 16. Процесс 900 включает в себя ряд операций, включающих получение системой, выполняющей процесс 900, вызова через интерфейс прикладного программирования от инициатора запроса, предписывающего зарегистрировать определение задач. Затем система проверяет личность инициатора запроса, регистрирует определение задач и направляет ответ с указанием идентификатора определения задач. В некоторых вариантах реализации изобретения определение задач может быть зарегистрировано с идентификатором инициатора запроса. Например, если инициатор запроса является клиентом поставщика служб вычислительных ресурсов, определение задач может быть зарегистрировано в ассоциации с идентификатором аккаунта клиента. В других вариантах реализации изобретения определения задач могут быть доступны пользователям, например, через торговые площадки в интернете, и могут быть зарегистрированы в связи с торговой площадкой в интернете, покупателем или другим объектом или службой.
[0114] В 902 поставщик служб вычислительных ресурсов получает через интерфейс прикладного программирования вызов от клиента или другого объекта, предписывающий зарегистрировать задачу. Регистрация задачи может включать в себя сохранение определения задач или файла определения задач в базе данных. В некоторых вариантах реализации изобретения инициатору запроса не нужно создавать и загружать отдельное определение задач, а он может иметь возможность выбора различных вариантов посредством пользовательского интерфейса, предоставляемого поставщиком служб вычислительных ресурсов, и поставщик служб вычислительных ресурсов может динамически генерировать определение задач на основе выбранных элементов. В некоторых случаях поставщик служб вычислительных ресурсов может предоставить интерфейс ввода текста, чтобы позволить клиенту ввести или вырезать/вставить определение задач через интерфейс. В некоторых случаях запрос на регистрацию задачи может сопровождаться одним или большим количеством образов программного обеспечения, соответствующих образам программного обеспечения, указанным в определении задач. В некоторых вариантах реализации изобретения запрос может указывать один или большее количество идентификаторов кластера для ассоциации с определением задач. В других вариантах реализации изобретения запрос может указывать один или большее количество идентификаторов экземпляров контейнера для ассоциации с определением задач. В других вариантах реализации изобретения определение задач может быть зарегистрировано независимо от любого указанного кластера или экземпляра контейнера.
[0115] В 904 поставщик служб вычислительных ресурсов определяет, имеет ли инициатор запроса достаточные привилегии для того, чтобы его запрос был выполнен. Например, инициатор запроса может предоставить данные идентификации и доказательства наличия полномочий в качестве параметров с помощью вызова RegisterTaskDefinition (Зарегистрировать определение задач) через интерфейс прикладного программирования. Например, инициатор запроса может предоставить, как доказательство наличия полномочий, соответствующих личности, информацию, достаточную для доказательства наличия доступа к учетным данным, такую как пароль, криптографический хэш/дайджест пароля, криптографическую цифровую подпись, генерируемую путем подписания ключа шифрования, или другой секретный ключ, проверяемый поставщиком служб вычислительных ресурсов для авторизации личности инициатора запроса. Поставщик служб вычислительных ресурсов может предоставить эту идентификационную информацию и подтверждение полномочий службе аутентификации, такой как система аутентификации 1518 (как проиллюстрировано на Фиг. 15), которая затем может проверить идентификационную информацию и подтверждение полномочий инициатора запроса. После того, как личность инициатора запроса подтверждена, поставщик служб вычислительных ресурсов или служба аутентификации может определить, предоставляет ли политика безопасности и/или роль, связанная с личностью, достаточные привилегии для выполнения запроса.
[0116] Если поставщику служб вычислительных ресурсов не удалось идентифицировать личность (например, она не найдена в базе данных безопасности), подтверждение полномочий было недостаточно, чтобы удостоверить личность (например, введен неправильный пароль), или личность инициатора запроса не удается подтвердить по иным причинам, система, выполняющая процесс 900, не может перейти к следующему этапу процесса 900. Система, выполняющая процесс 900, может отреагировать на отсутствие успешной аутентификации сообщением об ошибке инициатору запроса и/или зарегистрировать ошибку аутентификации в журнале безопасности. В противном случае, если личность инициатора запроса подтверждена, и у него достаточно привилегий для того, чтобы его запрос RegisterTaskDefinition (Зарегистрировать определение задач) был выполнен, система, выполняющая процесс 900, может перейти к 906.
[0117] В 906 система, выполняющая процесс 900, может сохранить определение задач в хранилище данных, например, базе данных 216, описанной со ссылкой на Фиг. 2. В некоторых вариантах реализации изобретения определение задач может быть зарегистрировано в ассоциации с идентификатором клиента учетной записи поставщика служб вычислительных ресурсов. В других реализациях изобретения определение задач может быть зарегистрировано на личность пользователя, который получил определение задач от веб-сайта, какого-либо поставщика служб вычислительных ресурсов или конкретного поставщика служб вычислительных ресурсов (например, покупателя определения задач на онлайновой торговой площадке). В других вариантах реализации изобретения определение задач может быть сохранено и связано с одним или большим количеством идентификаторов кластеров и/или идентификаторов экземпляров контейнеров. После сохранения идентификатор определения задач, уникальный для определения задач, может быть сформирован поставщиком служб вычислительных ресурсов или базой данных. Следует также отметить, что в некоторых вариантах реализации изобретения идентификатор определения задач может предоставляться с вызовом RegisterTaskDefinition (Зарегистрировать определение задач) через интерфейс прикладного программирования, чтобы обновить определение задач, уже хранящееся в базе данных. Таким образом, инициатор запроса может предоставить обновленное определение задач и имеющийся идентификатор определения задач в качестве параметров вызова RegisterTaskDefinition (Зарегистрировать определение задач) через интерфейс прикладного программирования, и поставщик служб вычислительных ресурсов может найти запись определения задач, соответствующую существующему идентификатору определения задач, и обновить определение задач, соответствующее идентификатору определения задач, используя обновленное определение задач.
[0118] Таким образом, в 908 система, выполняющая процесс 900, может предоставлять этот идентификатор определения задач инициатору запроса и как подтверждение успешности регистрации определения задач, и как способ для инициатора запроса позднее задать определение задач, хранящееся в базе данных. В некоторых случаях один или большее количество образов программного обеспечения могут сопровождать вызов RegisterTaskDefinition (Зарегистрировать определение задач) через интерфейс прикладного программирования, и эти образы программного обеспечения могут быть сохранены в одном и том же или в различных хранилищах данных как определения задач. В некоторых случаях эти программные образы могут быть отнесены к целевому ID определения, в то время как в других случаях образ программного обеспечения может получить идентификаторы программного обеспечения образа, которые могут быть предоставлены запрашивающим наряду с идентификатора определения задач сохраненного определения задач.
[0119] На Фиг. 10 проиллюстрирована блок-схема, иллюстрирующая пример процесса 1000 запуска задачи в соответствии с различными вариантами реализации изобретения. Процесс 1000 может выполняться с использованием любой подходящей системы, такой как сервер в центре обработки данных, множества вычислительных устройств в распределенной системе поставщика служб вычислительных ресурсов или любого электронного устройства клиента, такого как электронное устройство клиента 1602, описанное со ссылкой на Фиг. 16. Процесс 1000 включает в себя ряд операций, предусматривающих получение запроса на запуск задачи, аутентификацию инициатора запроса, и, если аутентификация прошла успешно, определение надлежащего места запуска задачи и запуск задачи.
[0120] В 1002 поставщик служб вычислительных ресурсов получает вызов через интерфейс прикладного программирования, предписывающий запустить задачу. В некоторых случаях этот вызов через интерфейс прикладного программирования может быть получен через интерфейсную службу от клиента или другого объекта, внешнего по отношению к контейнерной службе. В других случаях этот вызов через интерфейс прикладного программирования может быть осуществлен агентом контейнеров в ответ на сообщение от планировщика, предписывающее запустить задачу. Вызов StartTask (Начать задачу) через интерфейс прикладного программирования может использоваться для запуска программных контейнеров из, например, образа программного контейнера или из одного или большего количества исполняемых файлов приложения. Вызов StartTask (Начать задачу) через интерфейс прикладного программирования может включать в себя параметр для одного или большего количества идентификаторов определений задач для определений задач, хранящихся в хранилище данных, таких как база данных 216. В некоторых случаях само определение задач, а не идентификатор определения задач, может быть передано в качестве параметра вызова StartTask (Начать задачу) через интерфейс прикладного программирования. В других случаях параметры, указывающие местоположение (например, унифицированный локатор ресурса, локатор сетевого ресурса, путь к файлу и т.д.) одного или большего количества файлов определений задач, могут передаваться в качестве параметров StartTask (Начать задачу) через интерфейс прикладного программирования. В других случаях контейнерная служба может быть выполнена с возможностью запуска задач без отдельного определения программы; например, StartTask (Начать задачу) интерфейса прикладного программирования может иметь параметры по умолчанию, и любая информация для запуска задачи, которая требуется от инициатора запроса или отличается от установок по умолчанию, может передаваться в виде параметров вызова StartTask (Начать задачу) через интерфейс прикладного программирования.
[0121] Вызов StartTask (Начать задачу) интерфейса прикладного программирования может также принимать в качестве параметра один или большее количество идентификаторов образов программного обеспечения, представляющих образы базового контейнера. В некоторых случаях параметр, указывающий местоположение файла образа, может передаваться вместо файла образа. В других случаях определение задач может содержать информацию для определения местоположения контейнера программного обеспечения для запуска задачи. Инициатор запроса может также указывать один или большее количество идентификаторов кластеров в качестве параметров вызова StartTask (Начать задачу) через интерфейс прикладного программирования, чтобы определить, в каких кластерах следует запускать задачу или несколько задач. Кроме того, инициатор запроса может указать один или большее количество идентификаторов экземпляров контейнеров в качестве параметров вызова StartTask (Начать задачу) через интерфейс прикладного программирования, чтобы определить, в каких экземплярах контейнеров следует запускать задачу или несколько задач. Идентификаторы кластеров могут быть получены с помощью вызова ListClusters (Перечислить кластеры) через интерфейс прикладного программирования. Идентификаторы зарегистрированных экземпляров контейнеров могут быть получены с помощью вызова DescribeCluster (Описать кластер) через интерфейс прикладного программирования.
[0122] В 1004 поставщик служб вычислительных ресурсов определяет, имеет ли инициатор запроса достаточные привилегии для того, чтобы его запрос был выполнен. Например, инициатор запроса может предоставить данные идентификации и доказательства наличия полномочий в качестве параметров с помощью вызова StartTask (Начать задачу) через интерфейс прикладного программирования. Например, инициатор запроса может предоставить, как доказательство наличия полномочий, соответствующих личности, информацию, достаточную для доказательства наличия доступа к учетным данным, такую как пароль, криптографический хэш/дайджест пароля, криптографическую цифровую подпись, генерируемую путем подписания ключа шифрования, или другой секретный ключ, проверяемый поставщиком служб вычислительных ресурсов для авторизации личности инициатора запроса. Поставщик служб вычислительных ресурсов может предоставить эту идентификационную информацию и подтверждение полномочий службе аутентификации, такой как система аутентификации 1518 (как проиллюстрировано на Фиг. 15), которая затем может проверить идентификационную информацию и подтверждение полномочий инициатора запроса. После того, как личность инициатора запроса подтверждена, поставщик служб вычислительных ресурсов или служба аутентификации может определить, дает ли политика безопасности и/или роль, связанная с личностью, достаточные привилегии для выполнения запроса.
[0123] Если поставщику служб вычислительных ресурсов не удалось определить личность (например, она не найдена в базе данных безопасности), подтверждение полномочий было недостаточно, чтобы удостоверить личность (например, введен неправильный пароль), или личность инициатора запроса не удается подтвердить по иным причинам, система, выполняющая процесс 1000, не может переходить к следующему этапу процесса 1000. Система, выполняющая процесс 1000, может отреагировать на отсутствие успешной аутентификации сообщением об ошибке инициатору запроса и/или зарегистрировать ошибку аутентификации в журнале безопасности. В противном случае, если личность инициатора запроса подтверждена, и у него достаточно привилегий для того, чтобы его запрос StartTask (Начать задачу) был выполнен, система, выполняющая процесс 1000, может перейти к 1006.
[0124] В 1006 система, выполняющая процесс 1000, может определить экземпляр контейнера, в котором будет запущена задача. В некоторых вариантах реализации изобретения планировщик контейнерной службы, такой как планировщик 208 (как проиллюстрировано на Фиг. 2), может определить, в каком экземпляре контейнера из указанных кластеров и/или списка экземпляров контейнеров должна(ы) запускаться задача или задачи в соответствии со схемой размещения. Схема размещения может быть любой из множества схем размещения, включая циклическую схему размещения, схему размещения с псевдослучайным стохастическим назначением или схему размещения, принимающую во внимание состояния контейнеров (например, текущее количество имеющихся ресурсов и т.д.). В некоторых вариантах реализации изобретения клиент учетной записи может установить приложение планировщика в экземпляре виртуальной машины. В таких вариантах реализации изобретения вызов StartTask (Начать задачу) через интерфейс прикладного программирования может получать в качестве параметра идентификатор или указатель ресурса, указывающий местоположение установленного планировщика, и процесс 1000 может дополнительно включать систему, выполняющую процесс 1000, при поддержке связи с установленным планировщиком, для определения того, в каком экземпляре контейнера запускать задачу или несколько задач. В некоторых случаях указанная задача может быть уже запущена. В таких случаях система, выполняющая процесс 1000, может остановить выполнение задачи и перезапустить задачу. В некоторых из этих случаев система, выполняющая процесс 1000, может уведомить инициатора запроса о том, что задача уже запущена, и может запросить подтверждение того, следует ли остановить выполнение задачи и перезапустить ее.
[0125] В некоторых ситуациях система, выполняющая процесс 1000, может определить, что для запуска задачи или задач в кластере или списке экземпляра контейнера недостаточно ресурсов. Например, в файле определения задач может быть указано больше памяти для выделения программным контейнерам, чем в настоящее время доступно в экземплярах контейнеров указанного кластера. В некоторых из этих случаев система, выполняющая процесс 1000, может ожидать в течение предварительно заданного периода времени (например, 10 миллисекунд) и повторять попытку запуска задач, пока системе не удастся запустить задачи или пока не будет достигнуто пороговое число попыток.
[0126] Если система, выполняющая процесс 1000, не может запустить задачи, она может уведомить инициатора запроса о том, что задачи не удалось запустить в связи с конкретной возникшей проблемой. В некоторых вариантах реализации изобретения, если для запуска задачи недостаточно имеющихся ресурсов, контейнерная служба может взаимодействовать со службой автоматического масштабирования для получения дополнительных ресурсов для поддержки запуска задачи. Например, система, выполняющая процесс 1000, может создать и зарегистрировать один или большее количество новых экземпляров контейнеров в кластере и запустить задачу или задачи в новых экземплярах контейнеров. В другом примере система, выполняющая процесс 1000, может выполнить «мгновенный снимок» экземпляра контейнера, перезапустить экземпляр контейнера с обновленными ресурсами (например, вычислительными мощностями и памятью) и восстановить экземпляр контейнера на основе этого снимка.
[0127] В 1008 система, выполняющая процесс 1000, может запустить образ контейнера или указанное приложение в определенном экземпляре контейнера. Как уже отмечалось, запуск образа контейнера или указанного приложения в экземпляре контейнера может включать создание одного или большего количества идентификаторов задач, сохранение идентификаторов задач в хранилище данных, таком как база данных 216 (как проиллюстрировано на Фиг. 2), в ассоциации с определенным идентификатором экземпляра контейнера, с указанием отдельного пространства имен для контейнера, выделением указанных ресурсов контейнеру и восстановлением указанного образа контейнера и/или указанного приложения в пространстве имен контейнера. Это может быть выполнено для каждого контейнера, определенного в определении задач. Определение задач может также указывать связи между контейнерами; например, контейнер, сконфигурированный таким образом, чтобы служить веб-сервисом, может быть связан с контейнером, сконфигурированным таким образом, чтобы служить в качестве базы данных, и эти два контейнера могут быть выполнены с возможностью поддержания связи друг с другом при их запуске. Кроме того, в некоторых вариантах реализации изобретения контейнеры могут совместно использовать определенные ресурсы других служб поставщика служб вычислительных ресурсов. Например, файл определения задач может указать, что два контейнера будут совместно использовать определенный том хранилища данных на уровне блоков.
[0128] После запуска система, выполняющая процесс, может уведомить инициатора запроса о том, что задача или задачи были успешно запущены. В некоторых случаях это может быть вопросом изменения значка интерфейса мониторинга, чтобы указать, что задача была запущена и в настоящее время работает в конкретном кластере или экземпляре. В других случаях событие может записываться в журнал. В других случаях инициатор запроса может быть уведомлен, получив действительный идентификатор задачи от системы, соответствующей выполняемой задаче. Список выполняемых задач может быть получен с помощью вызова ListTasks (Перечислить задачи) через интерфейс прикладного программирования. Данные о задаче, такие как состояние контейнера, продолжительность работы контейнера и использование ресурсов контейнером, могут быть получены с помощью вызова DescribeTask (Описать задачу) через интерфейс прикладного программирования с указанием идентификатора задачи.
[0129] На Фиг. 11 проиллюстрирована блок-схема, иллюстрирующая пример процесса 1100 останова задачи в соответствии с различными вариантами реализации изобретения. Процесс 1100 может выполняться с использованием любой подходящей системы, такой как сервер в центре обработки данных, множества вычислительных устройств в распределенной системе поставщика служб вычислительных ресурсов или любого электронного устройства клиента, такого как электронное устройство клиента 1602, описанное со ссылкой на Фиг. 16. Процесс 1100 включает в себя ряд операций, предусматривающих получение запроса на останов задачи, аутентификацию инициатора запроса и останов задачи с высвобождением ресурсов, выделенных для выполнения этой задачи.
[0130] В 1102 поставщик служб вычислительных ресурсов получает вызов через интерфейс прикладного программирования, предписывающий остановить выполнение задачи. В некоторых случаях вызов через интерфейс прикладного программирования может быть получен интерфейсной службой от клиента или другого объекта, внешнего по отношению к контейнерной службе. В других случаях агент контейнеров может осуществить вызов через интерфейс прикладного программирования в ответ на сообщение от планировщика, предписывающее остановить задачу. StopTask (Остановить задачу) может получать в качестве параметра один или большее количество идентификаторов выполняемых задач. В 1104 поставщик служб вычислительных ресурсов определяет, имеет ли инициатор запроса достаточные привилегии для того, чтобы его запрос был выполнен. Например, инициатор запроса может предоставить данные идентификации и доказательства наличия полномочий в качестве параметров с помощью вызова StopTask (Остановить задачу) через интерфейс прикладного программирования. Например, инициатор запроса может предоставить, как доказательство наличия полномочий, соответствующих личности, информацию, достаточную для доказательства наличия доступа к учетным данным, такую как пароль, криптографический хэш/дайджест пароля, криптографическую цифровую подпись, генерируемую путем подписания ключа шифрования, или другой секретный ключ, проверяемый поставщиком служб вычислительных ресурсов для авторизации личности инициатора запроса. Поставщик служб вычислительных ресурсов может предоставить эту идентификационную информацию и подтверждение полномочий службе аутентификации, такой как система аутентификации 1518 (как проиллюстрирована на Фиг. 15), которая затем может проверить идентификационную информацию и подтверждение полномочий инициатора запроса. После того, как личность инициатора запроса подтверждена, поставщик служб вычислительных ресурсов или служба аутентификации может определить, предоставляет ли политика безопасности и/или роль, связанная с личностью, достаточные привилегии для выполнения запроса.
[0131] Если поставщику служб вычислительных ресурсов не удалось определить личность (например, она не найдена в базе данных безопасности), подтверждение полномочий было недостаточно, чтобы удостоверить личность (например, введен неправильный пароль), или личность инициатора запроса не удается подтвердить по иным причинам, система, выполняющая процесс 1100, не может переходить к следующему этапу процесса 1100. Система, выполняющая процесс 1100, может отреагировать на отсутствие успешной аутентификации сообщением об ошибке инициатору запроса и/или зарегистрировать ошибку аутентификации в журнале безопасности. В противном случае, если личность инициатора запроса подтверждена, и у него достаточно привилегий для того, чтобы его запрос StopTask (Остановить задачу) был выполнен, система, выполняющая процесс 1100, может перейти к 1106.
[0132] В 1106 указанная выполняемая задача или задачи может (могут) быть остановлена(ы), а ресурсы, ранее выделенные на эту задачу или задачи, могут быть высвобождены/упорядочены в ходе «сборки мусора» и добавлены к имеющимся ресурсам экземпляра хост-контейнера. В некоторых случаях идентификатор задачи может быть деактивирован, заархивирован или удален из хранилища данных. В других случаях состояние задачи может быть обновлено до «Остановлена», и это изменение статуса может быть отражено в любом интерфейсе для просмотра состояния выполняемых задач. Инициатор запроса также может быть уведомлен о том, что задача, ассоциированная с идентификатором задачи, была успешно остановлена.
[0133] На Фиг. 12 проиллюстрирована блок-схема, иллюстрирующая пример процесса 1200 отмены регистрации экземпляра контейнера в соответствии с различными вариантами реализации изобретения. Процесс 1200 может выполняться с использованием любой подходящей системы, такой как сервер в центре обработки данных, множества вычислительных устройств в распределенной системе поставщика служб вычислительных ресурсов или любого электронного устройства клиента, такого как электронное устройство клиента 1602, описанное со ссылкой на Фиг. 16. Процесс 1200 включает в себя ряд операций, предусматривающих получение запроса на отмену регистрации определения задач, аутентификацию инициатора запроса, и, если у инициатора запроса достаточно привилегий, отмену регистрации определения задач.
[0134] В 1202 поставщик служб вычислительных ресурсов получает вызов через интерфейс прикладного программирования, предписывающий отменить регистрацию задачи. В некоторых случаях этот запрос может быть получен контейнерной службой от клиента или другого объекта. Отмена регистрации задачи может включать в себя деактивацию, архивирование или удаление задачи из хранилища данных, зарегистрированного в соответствии с процессом 900 для регистрации задачи. Таким образом, идентификатор определения задач, сформированный в процессе 900, может быть предоставлен с вызовом DeregisterTaskDefinition (Отменить регистрацию определения задач) через интерфейс прикладного программирования для определения задачи, регистрацию которой необходимо отменить.
[0135] В 1204 поставщик служб вычислительных ресурсов определяет, имеет ли инициатор запроса достаточные привилегии для того, чтобы его запрос был выполнен. Например, инициатор запроса может предоставить данные идентификации и доказательства наличия полномочий в качестве параметров с помощью вызова DeregisterTaskDefinition (Отменить регистрацию определения задач) через интерфейс прикладного программирования. Например, инициатор запроса может предоставить, как доказательство наличия полномочий, соответствующих личности, информацию, достаточную для доказательства наличия доступа к учетным данным, такую как пароль, криптографический хэш/дайджест пароля, криптографическую цифровую подпись, генерируемую путем подписания ключа шифрования, или другой секретный ключ, проверяемый поставщиком служб вычислительных ресурсов для авторизации личности инициатора запроса. Поставщик служб вычислительных ресурсов может предоставить эту идентификационную информацию и подтверждение полномочий службе аутентификации, такой как система аутентификации 1518 (как проиллюстрировано на Фиг. 15), которая затем может проверить идентификационную информацию и подтверждение полномочий инициатора запроса. После того, как личность инициатора запроса подтверждена, поставщик служб вычислительных ресурсов или служба аутентификации может определить, дает ли политика безопасности и/или роль, связанная с личностью, достаточные привилегии для выполнения запроса.
[0136] Если поставщику служб вычислительных ресурсов не удалось идентифицировать личность (например, она не найдена в базе данных безопасности), подтверждение полномочий было недостаточно, чтобы удостоверить личность (например, введен неправильный пароль), или личность инициатора запроса не удается подтвердить по иным причинам, система, выполняющая процесс 1200, не может переходить к следующему этапу процесса 1200. Система, выполняющая процесс 1200, может отреагировать на отсутствие успешной аутентификации сообщением об ошибке инициатору запроса и/или зарегистрировать ошибку аутентификации в журнале безопасности. В противном случае, если личность инициатора запроса подтверждена, и у него достаточно привилегий для того, чтобы его запрос DeregisterTaskDefinition (Отменить регистрацию определения задач) был выполнен, система, выполняющая процесс 1200, может перейти к 1206.
[0137] В 1206 система, выполняющая процесс 1200, может деактивировать, архивировать или удалить определение задач из хранилища данных, в которое определение задач было записано на этапе 906. Произвольные записи данных, указывающие на взаимосвязь между определением задач и кластером, экземпляром контейнера, образом программного обеспечения или другим контейнером, могут быть также деактивированы, заархивированы или удалены. В некоторых случаях, если задача или задачи, ассоциированные с определением задач, выполняются, задачи могут быть остановлены в соответствии с процессом 1100 останова задач. После отмены регистрации задачи инициатор запроса может быть уведомлен об успешной отмене регистрации задачи.
[0138] На Фиг. 13 приведена блок-схема, иллюстрирующая пример процесса 1300 отмены регистрации экземпляра контейнера в соответствии с различными вариантами реализации изобретения. Процесс 1300 может выполняться с использованием любой подходящей системы, такой как сервер в центре обработки данных, множества вычислительных устройств в распределенной системе поставщика служб вычислительных ресурсов или любого электронного устройства клиента, такого как электронное устройство клиента 1602, описанное со ссылкой на Фиг. 16. Процесс 1300 включает в себя ряд операций, предусматривающих получение запроса на отмену регистрации зарегистрированного экземпляра контейнера в кластере, аутентификацию инициатора запроса и отмену регистрации экземпляра контейнера в кластере.
[0139] В 1302 поставщик служб вычислительных ресурсов получает через интерфейс прикладного программирования вызов от клиента или другого объекта, предписывающий отменить регистрацию экземпляра контейнера. Отмена регистрации экземпляра контейнера может включать в себя отмену ассоциации экземпляра контейнера, зарегистрированного в соответствии с процессом 800 регистрации экземпляра контейнера в указанном кластере. Эта ассоциация может находиться в базе данных, например, базе данных 216 (как проиллюстрировано на Фиг. 2), как соотношение между идентификатором зарегистрированного экземпляра контейнера, переданного в качестве параметров вызова DeregisterContainerlnstance (Отменить регистрацию экземпляра контейнера) через интерфейс прикладного программирования, и идентификатором кластера. В некоторых случаях этот запрос может быть получен от интерфейсной службы и передан агенту контейнеров, который отменяет регистрацию соответствующего экземпляра контейнера. В других случаях этот запрос может направляться агентом контейнеров интерфейсной службе. Например, если необходимо отменить предоставление экземпляра контейнера, удалить его из кластера и перенести в другой кластер, агент контейнеров может автоматически стремиться отменить регистрацию экземпляра контейнера в кластере, в котором он в настоящее время зарегистрирован. В некоторых из этих случаев инициатор запроса может указать идентификатор экземпляра зарегистрированного контейнера, который может быть определен с помощью вызова DescribeCluster (Описать кластер) через интерфейс прикладного программирования, и система, выполняющая процесс 1300, может отменить регистрацию указанного экземпляра контейнера во всех кластерах, в которых он был зарегистрирован. В некоторых случаях, если экземпляр контейнера зарегистрирован в нескольких кластерах, система, выполняющая процесс 1300, может запросить у инициатора запроса подтверждение того, в каком кластере или кластерах следует отменить регистрацию экземпляра контейнера. В других случаях идентификатор экземпляра и идентификатор кластера могут быть переданы в качестве параметров вызова DeregisterContainerlnstance (Отменить регистрацию экземпляра контейнера) через интерфейс прикладного программирования, и для экземпляра контейнера может быть отменена регистрация, при условии, что у инициатора запроса достаточно привилегий, как определенно в 1304, в указанном кластере.
[0140] В 1304 поставщик служб вычислительных ресурсов определяет, имеет ли инициатор запроса достаточные привилегии для того, чтобы его запрос был выполнен. Например, инициатор запроса может предоставить данные идентификации и доказательства наличия полномочий в качестве параметров с помощью вызова DeregisterContainerlnstance (Отменить регистрацию экземпляра контейнера) через интерфейс прикладного программирования. Например, инициатор запроса может предоставить, как доказательство наличия полномочий, соответствующих личности, информацию, достаточную для доказательства наличия доступа к учетным данным, такую как пароль, криптографический хэш/дайджест пароля, криптографическую цифровую подпись, генерируемую путем подписания ключа шифрования, или другой секретный ключ, проверяемый поставщиком служб вычислительных ресурсов для авторизации личности инициатора запроса. Поставщик служб вычислительных ресурсов может предоставить эту идентификационную информацию и подтверждение полномочий службе аутентификации, такой как система аутентификации 1518 (как проиллюстрировано на Фиг. 15), которая затем может проверить идентификационную информацию и подтверждение полномочий инициатора запроса. После того, как личность инициатора запроса подтверждена, поставщик служб вычислительных ресурсов или служба аутентификации может определить, дает ли политика безопасности и/или роль, связанная с личностью, достаточные привилегии для выполнения запроса.
[0141] Если поставщику служб вычислительных ресурсов не удалось идентифицировать личность (например, она не найдена в базе данных безопасности), подтверждение полномочий было недостаточно, чтобы удостоверить личность (например, введен неправильный пароль), или личность инициатора запроса не удается подтвердить по иным причинам, система, выполняющая процесс 1300, не может переходить к следующему этапу процесса 1300. Система, выполняющая процесс 1300, может отреагировать на отсутствие успешной аутентификации сообщением об ошибке инициатору запроса и/или зарегистрировать ошибку аутентификации в журнале безопасности. В противном случае, если личность инициатора запроса подтверждена, и у него достаточно привилегий для того, чтобы его запрос RegisterContainerlnstance (Зарегистрировать экземпляр контейнера) был выполнен, система, выполняющая процесс 1300, может перейти к 1306.
[0142] В 1306 система, выполняющая процесс 1300, может осуществлять поиск указанного идентификатора экземпляра в хранилище данных, где был зарегистрирован экземпляр контейнера. Следует обратить внимание на то, что задачи, выполняющиеся в указанном экземпляре контейнера, могут быть остановлены в соответствии с процессом 1100 останова задач перед отменой регистрации экземпляра контейнера. В некоторых случаях, если задачи выполняются в указанном экземпляре контейнера, система, выполняющая процесс 1300, может запросить у инициатора запроса подтверждение на останов выполняемых задач, прежде чем система отменит регистрацию экземпляра контейнера. Как уже отмечалось, в некоторых вариантах реализации изобретения экземпляр контейнера может быть зарегистрирован в нескольких кластерах, и инициатор запроса может указать, что экземпляр контейнера необходимо дерегистрировать только в подмножестве кластеров. В таких вариантах реализации изобретения, если задачи, ассоциированные с указанным подмножеством кластеров, выполняются в экземпляре контейнера и, как подтверждено инициатором запроса, должны быть остановлены, только задачи, ассоциированные с указанным подмножеством кластеров, могут быть остановлены, не затрагивая остальные выполняемые задачи.
[0143] В 1308, после идентификации идентификатора экземпляра в базе данных и останова соответствующих задач, идентификатор экземпляра может быть деактивирован, заархивирован или удален из хранилища данных. В некоторых случаях состояние экземпляра может быть обновлено до «отменена регистрация», и это изменение статуса может быть отражено в любом интерфейсе для просмотра состояния кластера. Если экземпляр контейнера зарегистрирован в нескольких кластерах, для указанного экземпляра контейнера может быть отменена ассоциация только в указанном подмножестве кластеров, и экземпляр контейнера может оставаться зарегистрированным в оставшихся кластерах. После отмены регистрации инициатор запроса также может быть уведомлен о том, что для экземпляра контейнера, ассоциированного с экземпляром, была успешно отменена регистрация в кластере или кластерах, в которых отменяли его регистрацию.
[0144] В некоторых вариантах реализации настоящего изобретения возможна отмена предоставления экземпляров контейнеров, не зарегистрированных в каких-либо кластерах, при этом ресурсы, выделенные этим экземплярам контейнеров, могут быть высвобождены. В альтернативном варианте экземпляры контейнеров могут быть добавлены в очередь экземпляров, доступных для регистрации в кластере. Таким образом, если экземпляр контейнера необходим для регистрации в кластере в соответствии с процессом 800 регистрации экземпляров контейнеров, экземпляр контейнера может быть выбран из доступных экземпляров контейнеров без дополнительных операций, связанных с предоставлением нового экземпляра контейнера для регистрации.
[0145] На Фиг. 14 проиллюстрирована блок-схема, иллюстрирующая пример процесса 1400 удаления кластера в соответствии с различными вариантами реализации изобретения. Процесс 1400 может выполняться с использованием любой подходящей системы, такой как сервер в центре обработки данных, множества вычислительных устройств в распределенной системе поставщика служб вычислительных ресурсов или любого электронного устройства клиента, такого как электронное устройство клиента 1602, описанное со ссылкой на Фиг. 16. Процесс 1400 включает в себя ряд операций, предусматривающих получение запроса на удаление кластера, аутентификацию инициатора запроса, отмену регистрации любых экземпляров контейнеров в указанном кластере и удаление или иную деактивацию кластера.
[0146] В 1402 поставщик служб вычислительных ресурсов получает через интерфейс прикладного программирования вызов от клиента или другого объекта, предписывающий удалить кластер. Удаляемый кластер может быть кластером, заданным по умолчанию, предоставленным поставщиком служб вычислительных ресурсов, или может представлять собой кластер, созданный в соответствии с процессом 700 создания кластера. DeleteCluster (Удалить кластер) интерфейса прикладного программирования может принимать в качестве параметра идентификатор кластера, который необходимо удалить. Идентификаторы кластеров и метаданные кластеров далее могут сохраняться в хранилище данных, таком как база данных 216 (как проиллюстрировано на Фиг. 2). Этот идентификатор кластера может быть предоставлен инициатором запроса при создании кластера или может быть определен с помощью вызова ListClusters (Перечислить кластеры) через интерфейс прикладного программирования.
[0147] В 1404 поставщик служб вычислительных ресурсов определяет, имеет ли инициатор запроса достаточные привилегии для того, чтобы его запрос был выполнен. Например, инициатор запроса может предоставить данные идентификации и доказательства наличия полномочий в качестве параметров с помощью вызова DeleteCluster (Удалить кластер) через интерфейс прикладного программирования. Например, инициатор запроса может предоставить, как доказательство наличия полномочий, соответствующих личности, информацию, достаточную для доказательства наличия доступа к учетным данным, такую как пароль, криптографический хэш/дайджест пароля, криптографическую цифровую подпись, генерируемую путем подписания ключа шифрования, или другой секретный ключ, проверяемый поставщиком служб вычислительных ресурсов для авторизации личности инициатора запроса. Поставщик служб вычислительных ресурсов может предоставить эту идентификационную информацию и подтверждение полномочий службе аутентификации, такой как система аутентификации 1518 (как проиллюстрировано на Фиг. 15), которая затем может проверить идентификационную информацию и подтверждение полномочий инициатора запроса. После того, как личность инициатора запроса подтверждена, поставщик служб вычислительных ресурсов или служба аутентификации может определить, дает ли политика безопасности и/или роль, связанная с личностью, достаточные привилегии для выполнения запроса.
[0148] Если поставщику служб вычислительных ресурсов не удалось определить личность (например, она не найдена в базе данных безопасности), подтверждение полномочий было недостаточно, чтобы удостоверить личность (например, введен неправильный пароль), или личность инициатора запроса не удается подтвердить по иным причинам, система, выполняющая процесс 1400, не может переходить к следующему этапу процесса 1400. Система, выполняющая процесс 1400, может отреагировать на отсутствие успешной аутентификации сообщением об ошибке инициатору запроса и/или зарегистрировать ошибку аутентификации в журнале безопасности. В противном случае, если личность инициатора запроса подтверждена, и у него достаточно привилегий для того, чтобы его запрос DeleteCluster (Удалить кластер) был выполнен, система, выполняющая процесс 1400, может перейти к 1406.
[0149] В 1406, если в указанном кластере зарегистрированы какие-либо экземпляры контейнеров, для каждого из этих экземпляров контейнеров может быть отменена регистрация в кластере в соответствии с процессом 1300 отмены регистрации экземпляров контейнеров. В 1408 запись или записи кластера, ассоциированного с указанным идентификатором кластера, могут быть найдены в хранилище данных и деактивированы, заархивированы или удалены из хранилища данных. Если кластер деактивирован или заархивирован, метаданные о кластере могут быть сохранены, и кластер может быть реактивирован объектом, обладающим полномочиями на выполнение этой операции. Затем инициатор запроса может быть уведомлен о том, что кластер был успешно удален, и экземпляры контейнеров больше не могут быть зарегистрированы в кластере с этим идентификатором. Например, интерфейс, отображающий статусы кластеров, может обновиться для отображения состояния «удаленный» для указанного кластера, и кластер более не будет отображаться в ответе на вызов ListClusters (Перечислить кластеры) через интерфейс прикладного программирования.
[0150] На Фиг. 15 проиллюстрирован пример подключения клиента к поставщику служб вычислительных ресурсов в соответствии с, по меньшей мере одним, вариантом реализации изобретения. Поставщик служб вычислительных ресурсов 1502 может предоставлять различные службы клиенту 1504, а клиент 1504 может осуществлять связь с поставщиком служб вычислительных ресурсов 1502 через интерфейс 1526, который может представлять собой интерфейс веб-сервисов или любой другой тип пользовательского интерфейса. В то время как на Фиг. 15 проиллюстрирован один интерфейс 1526 для служб поставщика служб вычислительных ресурсов 1502, каждая служба может иметь свой собственный интерфейс и, в целом, подмножества служб могут иметь соответствующие интерфейсы в дополнении к интерфейсу 1526 или в качестве альтернативы ему. Клиент 1504 может быть организацией, которая может использовать одну или большее количество служб, предоставляемых поставщиком служб вычислительных ресурсов 1502, для сохранения и передачи информации своим сотрудникам, которые могут быть расположены в различных географических точках. Кроме того, клиент 1504 может быть физическим лицом, использующим службы поставщика служб вычислительных ресурсов 1502 для доставки контента удаленной рабочей группе. Как проиллюстрировано на Фиг. 15, клиент 1504 может осуществлять связь с поставщиком служб вычислительных ресурсов 1502 по сети 1506, в результате чего сеть 1506 может представлять собой сеть связи, такую как интернет, интранет или сеть поставщика служб интернета (ISP). Некоторые сообщения от клиента 1504 поставщику служб вычислительных ресурсов 1502 могут приводить к тому, что поставщик служб вычислительных ресурсов 1502 будет действовать в соответствии с одним или большим количеством вариантов реализации настоящего изобретения, приведенных в настоящем описании, или их модификациями.
[0151] Поставщик служб вычислительных ресурсов 1502 может предоставлять своим клиентам различные службы вычислительных ресурсов. В этом примере службы, предоставляемые поставщиком служб вычислительных ресурсов 1502, включают службу виртуальной компьютерной системы 1508, службу хранения данных на уровне блоков 1510, службу криптографии 1512, службу хранения данных по требованию 1514, службу уведомления 1516, систему аутентификации 1518, службу управления политикой 1520, контейнерную службу 1522 и одну или большее количество других служб 1524. Следует отметить, что не все описанные варианты реализации изобретения включают в себя службы 1508-24, описанные со ссылкой на Фиг. 15, и дополнительные службы могут предоставляться в дополнение к описанным или вместо них. Как описано выше, каждая из служб 1508-24 может включать в себя один или большее количество интерфейсов веб-сервисов, позволяющих клиенту 1504 направлять надлежащим образом сконфигурированные API-вызовы различным службам посредством запросов веб-службы. Кроме того, каждая из служб может содержать один или большее количество интерфейсов служб, которые позволяют службам осуществлять доступ друг к другу (например, для активации виртуальной компьютерной системы службы виртуальных компьютерных систем 1508 для сохранения данных или выборки данных из службы хранения данных по требованию 1514 и/или доступа к одному или большему количеству устройств хранения данных на уровне блоков, предоставляемых службой хранения данных на уровне блоков 1510).
[0152] Служба виртуальных компьютерных систем 1508 может быть множеством вычислительных ресурсов, выполненных с возможностью создания экземпляров виртуальных машин по поручению клиента 1504. Клиент 1504 может взаимодействовать со службой виртуальных компьютерных систем 1508 (посредством надлежащим образом сконфигурированных и прошедших аутентификацию API-вызовов) для предоставления и эксплуатации виртуальных компьютерных систем, которые создаются в физических вычислительных устройствах, размещенных у поставщика служб вычислительных ресурсов 1502 и управляемых им. Виртуальные компьютерные системы могут использоваться для различных целей, например, для работы в качестве серверов поддержки веб-сайта, управления бизнес-приложениями или, в целом, чтобы служить в качестве вычислительных мощностей для клиента. Другими применениями виртуальных компьютерных систем могут быть поддержка приложений баз данных, приложений электронной коммерции, бизнес-приложений и/или других приложений. Хотя служба виртуальных компьютерных систем 1508 проиллюстрирована на Фиг. 15, любая другая компьютерная система или служба компьютерных систем могут использоваться поставщиком служб вычислительных ресурсов 1502, например, компьютерная система или служба компьютерных систем, которая не использует виртуализацию или создание экземпляров, а вместо этого предоставляет вычислительные ресурсы на выделенных или совместно используемых компьютерах/серверах и/или других физических устройствах.
[0153] Служба хранения данных на уровне блоков 1510 может содержать один или большее количество вычислительных ресурсов, совместно работающих для хранения данных клиента 1504 с использованием запоминающих устройств на уровне блоков (и/или их виртуализаций). Устройства хранения на уровне блоков службы хранения данных на уровне блоков 1510, например, могут быть функционально связаны с виртуальными компьютерными системами, предоставляемыми службой виртуальных компьютерных систем 1508, чтобы служить в качестве логических единиц (например, виртуальные диски) для компьютерных систем. Устройство хранения данных на уровне блоков может обеспечивать постоянное хранение данных, используемых/генерируемых соответствующей виртуальной компьютерной системой, в которой служба виртуальных компьютерных систем 1508 может обеспечивать только непродолжительное хранение данных.
[0154] Поставщик служб вычислительных ресурсов 1502 также включает в себя службу криптографии 1512. Служба криптографии 1512 может использовать одну или большее количество служб хранения поставщика служб вычислительных ресурсов 1502 для хранения ключей клиентов в зашифрованном виде, при этом ключи могут использоваться для расшифровки ключей клиента 1504, доступных только определенным устройствам службы криптографии 1512.
[0155] Поставщик служб вычислительных ресурсов 1502 дополнительно включает в себя службу хранения данных по требованию 1514. Служба хранения данных по требованию 1514 может представлять собой совокупность вычислительных ресурсов, выполненных с возможностью синхронной обработки запросов на сохранение данных и/или доступ к данным. Служба хранения данных по требованию 1514 может работать с использованием вычислительных ресурсов (например, баз данных), которые позволяют службе хранения данных по требованию 1514 быстро находить и получать данные, которые будут представляться в ответ на запросы данных. Например, служба хранения данных по требованию 1514 может сохранять данные таким образом, что при получении запроса на извлечение объекта данных этот объект данных может быть предоставлен (либо может быть инициирована потоковая передача объектов данных) в ответ на запрос. Как уже отмечалось, данные, хранящиеся в службе хранения данных по требованию 1514, могут быть организованы в объекты данных. Объекты данных могут иметь произвольные размеры, за исключением, возможных случаев существования некоторых ограничений по размеру. Таким образом, служба хранения данных по требованию 1514 может хранить многочисленные объекты данных различных размеров. Служба хранения данных по требованию 1514 может работать в качестве хранилища значений ключей, ассоциирующих объекты данных с идентификаторами объектов данных, которые могут использоваться клиентом 1504 для извлечения или выполнения других операций в связи с объектами данных, сохраняемыми службой хранения данных по требованию 1514.
[0156] В среде, проиллюстрированной на Фиг. 15, присутствует служба уведомлений 1516. Служба уведомлений 1516 может содержать множество вычислительных ресурсов, в совокупности настроенных для обеспечения веб-сервиса или другого интерфейса и консоли управления на базе браузера. Консоль управления может использоваться для настройки тем, по которым клиенты желают получать уведомления, настройки приложений (или абонентов), оформления подписки клиентов на темы, публикации сообщений или настройки отправки сообщений по выбранному клиентами протоколу (т.е. протоколу передачи гипертекста (HTTP), электронной почте и посредством службы коротких сообщений (SMS) и др.). Служба уведомлений 1516 может предоставлять уведомления клиентам, используя механизм «PUSH», без необходимости периодической проверки или «опроса» для получения новой информации и обновлений. Служба уведомлений 1516 также может использоваться для различных целей, таких как приложения мониторинга, выполняемые в службе виртуальных компьютерных систем 1508, системы документооборота, обновления информации, которые должны осуществляться в определенное время, мобильные приложения и многое другое.
[0157] Как проиллюстрировано на Фиг. 15, поставщик служб вычислительных ресурсов 1502 в различных вариантах реализации изобретения включает в себя систему аутентификации 1518 и службу управления политикой 1520. Система аутентификации 1518 в варианте реализации настоящего изобретения представляет собой компьютерную систему (т.е. множество вычислительных ресурсов), выполненную с возможностью выполнения операций по аутентификации пользователей клиента. Например, одна из служб 1508-1516 и 1520-24 может предоставлять полученную от пользователя информацию системе аутентификации 1518, чтобы получить в ответ информацию, указывающую на то, являются ли запросы пользователя аутентифицированными.
[0158] Служба управления политикой 1520 в варианте реализации настоящего изобретения представляет собой компьютерную систему, выполненную с возможностью управления политиками от имени клиентов (например, клиента 1504) поставщика служб вычислительных ресурсов 1502. Служба управления политикой 1520 может включать в себя интерфейс, позволяющий пользователям направлять запросы, связанные с управлением политикой. Например, такие запросы могут быть запросами на добавление, удаление, изменение или иную модификацию политики для клиента или выполнение других административных действий, таких, как обеспечение инвентаризации существующих политик и т.д.
[0159] Поставщик служб вычислительных ресурсов 1502 в различных вариантах реализации изобретения также имеет контейнерную службу 1522. Контейнерная служба 1522 выполнена с возможностью создания и управления программными контейнерами и экземплярами контейнеров для клиентов 1504 поставщика служб вычислительных ресурсов способом, описанным для контейнерной службы 200 (как проиллюстрировано на Фиг. 2). Контейнерная служба 1522 может быть настроена на использование других ресурсов поставщика служб вычислительных ресурсов 1502, таких как служб хранения данных на уровне блоков 1510. Например, контейнерная служба 1522 может позволять выполнять задачи в экземплярах контейнеров для совместного использования одного или большего количества указанных томов хранения данных на уровне блоков.
[0160] Поставщик служб вычислительных ресурсов 1502 дополнительно поддерживает одну или большее количество других служб 1524 на основе, по меньшей мере частично, потребности своих клиентов 1504. Например, поставщик служб вычислительных ресурсов 1502 может поддерживать службу баз данных для своих клиентов 1504. Служба баз данных может быть множеством вычислительных ресурсов, совместно работающих для работы одной или нескольких баз данных для одного или большего количества клиентов 1504. Клиент 1504 может использовать и управлять базой данных из службы баз данных, используя соответствующим образом сконфигурированные API-вызовы. Это, в свою очередь, может позволить клиенту 1504 поддерживать и потенциально масштабировать операции в базе данных. Другие службы включают без ограничения службы хранения архивных данных на уровне объектов и службы, которые управляют и/или контролируют другие службы.
[0161] Следует обратить внимание на то, что, если не указано иное, использование выражений касательно исполняемых команд (также называемых кодом, приложениями, агентами и т.д.), выполняющих операции, которые инструкции обычно не выполняют без посторонней помощи (например, передача данных, расчеты и т.д.), в контексте описания раскрытых вариантов реализации изобретения означает, что инструкции выполняются машиной, в результате чего машину побуждают выполнить указанные операции.
[0162] Варианты осуществления настоящего изобретения могут быть описаны с учетом следующих пунктов:
1. Реализуемый компьютером способ, включающий следующее:
под управлением одного или большего количества компьютерных систем, сконфигурированных исполняемыми инструкциями,
создание кластера и идентификатора кластера, идентифицирующего кластер, причем кластер представляет собой множество экземпляров контейнеров, связанных с клиентом поставщика служб вычислительных ресурсов, зарегистрированных в кластере и выполненных с возможностью выполнения одного или большего количества программных контейнеров;
получение образа программного контейнера, выполненного с возможностью выполнения в экземпляре компьютерной системы, причем программный контейнер содержит данные и один или большее количество процессов, которые при выполнении в экземпляре компьютерной системы изолированы от других процессов, выполняемых в экземпляре компьютерной системы, а образ представляет собой полную копию конкретного состояния программного контейнера на момент создания образа;
получение запроса на запуск множества образов, включая образ программного контейнера, в соответствии с определением задач, причем указанное определение задач идентифицирует множество программных контейнеров, включающее программный контейнер, назначенный для запуска в качестве группы, и определяет выделение ресурсов множеству программных контейнеров, причем запрос указывает идентификатор кластера; и
в ответ на запрос на запуск одного или большего количества образов,
определение подмножества множества экземпляров контейнеров, представленных кластером, указанным идентификатором кластера, в котором следует запустить множество программных контейнеров, причем один или большее количество экземпляров контейнеров определяются в соответствии со схемой размещения; и
запуск множества образов в качестве выполняемых программных контейнеров в подмножестве множества экземпляров контейнеров таким образом, что выполняемым программным контейнерам выделяются ресурсы в соответствии с распределением ресурсов, указанным в определении задач.
2. Реализуемый компьютером способ по п. 1, отличающийся тем, что подмножество множества экземпляров контейнеров определяется многопользовательской службой планировщика, сконфигурированной с возможностью определения подмножества множества экземпляров контейнеров на основе, по меньшей мере частично, схемы размещения и определения задач.
3. Реализуемый компьютером способ по п. 1 или 2, отличающийся тем, что множество образов запускается отдельными агентами контейнеров, работающими в подмножестве множества экземпляров контейнеров, причем отдельные агенты контейнеров представляют собой программные приложения, каждое из которых сконфигурировано с возможностью выполнения в соответствующих экземплярах контейнеров и действует в качестве посредника между выполняемыми программными контейнерами и объектами, внешними по отношению к соответствующим экземплярам контейнеров.
4. Реализуемый компьютером способ по любому из пп. 1-3, отличающийся тем, что способ дополнительно включает предоставление метрик и информацию журнала о выполняемых программных контейнерах службе телеметрии, причем служба телеметрии может конфигурироваться с возможностью агрегации метрик и информации журнала и предоставления агрегированных метрик и данных журнала службе мониторинга ресурсов.
5. Система, содержащая:
один или большее количество процессоров;
память, содержащую инструкции, которые при исполнении одним или большим количеством процессоров побуждают систему реализовать по меньшей мере:
серверную службу, которая:
принимает запросы на размещение для множества экземпляров контейнеров, причем множество экземпляров контейнеров обеспечивает хостинг для соответствующего множества агентов контейнеров,
обеспечивает доступность ресурсов, указанных в определении задач, во множестве экземпляров контейнеров, и
получает информацию от множества агентов контейнеров о состояниях множества выполняемых контейнеров во множестве экземпляров контейнеров,
предоставляет информацию планировщику; и
планировщик, который, на основе, по меньшей мере частично, схемы размещения, определения задач и информации, предоставленной серверной службой:
определяет подмножество множества экземпляров контейнеров, зарегистрированных в кластере, в котором необходимо разместить отдельные контейнеры из множества контейнеров,
уведомляет агента контейнеров о необходимости выделения ресурсов для отдельных контейнеров в подмножестве в соответствии с ресурсами, выделяемыми отдельным контейнерам согласно указаниям в определении задач, и
уведомляет агента контейнеров о необходимости запуска внутри подмножества и из местоположений образов программного обеспечения, указанных в определении задач, множества контейнеров в качестве множества выполняемых контейнеров.
6. Система по п. 5, отличающаяся тем, что подмножество множества экземпляров контейнеров определяется многопользовательской службой планировщика поставщика служб вычислительных ресурсов.
7. Система по пп. 5 или 6, отличающаяся тем, что подмножество множества экземпляров контейнеров определяется приложением планировщика, установленным пользователем поставщика служб вычислительных ресурсов.
8. Система по любому из пп. 5-7, отличающаяся тем, что инструкции дополнительно содержат инструкции, которые при выполнении одним или большим количеством процессоров, побуждают систему реализовать агента телеметрии, собирающего данные для службы телеметрии о процессах, выполняемых во множестве работающих контейнеров, причем служба телеметрии агрегирует данные и предоставляет агрегированные данные службе мониторинга ресурсов.
9. Система по любому из пп. 5-8, отличающаяся тем, что инструкции, побуждающие систему определить подмножество множества экземпляров контейнеров, содержат инструкции, которые при выполнении одним или большим количеством процессоров, побуждают систему определить подмножество множества экземпляров контейнеров на основе, по меньшей мере частично, ресурсов, выделяемых отдельным контейнерам из множества контейнеров, и количества доступных ресурсов в отдельных экземплярах контейнеров множества экземпляров контейнеров, зарегистрированных в кластере.
10. Система по любому из пп. 5-9, отличающаяся тем, что инструкции дополнительно содержат инструкции, которые при выполнении одним или большим количеством процессоров, побуждают систему реализовать службу шаблонов, составляющую определение задач таким образом, что указанное определение задач задает для множества контейнеров расположение образов программного обеспечения для отдельных контейнеров из множества контейнеров и ресурсов, выделяемых отдельным контейнерам из множества контейнеров.
11. Система по любому из пп. 5-10, отличающаяся тем, что инструкции дополнительно содержат инструкции, которые при выполнении одним или большим количеством процессоров, побуждают систему реализовать множество агентов контейнеров, которые работают во множестве экземпляров контейнеров и:
регистрируют множество экземпляров контейнеров в кластере,
выделяют ресурсы множеству экземпляров контейнеров в ответ на уведомление от планировщика о необходимости выделения ресурсов,
запускают множество контейнеров как множество работающих контейнеров в ответ на уведомление от планировщика о необходимости запуска множества контейнеров,
осуществляют мониторинг состояния множества работающих контейнеров во множестве экземпляров контейнеров, и
предоставляют информацию о состояниях серверной службе.
12. Система по п. 11, отличающаяся тем, что множество агентов контейнеров дополнительно сконфигурированы с возможностью обеспечения одного или большего количества периодических сигналов для индикации штатной работы отдельных контейнеров, статусов отдельных контейнеров и возникновения ошибок в отдельных контейнерах.
13. Система по пп. 11 или 12, отличающаяся тем, что инструкции, реализующие множество агентов контейнеров, дополнительно содержат инструкции, которые при выполнении одним или большим количеством процессоров, побуждают систему реализовать множество агентов контейнеров, чтобы:
остановить работу множества работающих контейнеров;
отменить регистрацию множества экземпляров контейнеров в кластере; и
удалить кластер.
14. Энергонезависимый машиночитаемый носитель данных, сохраняющий исполняемые инструкции, которые при выполнении одним или большим количеством процессоров компьютерной системы пробуждают компьютерную систему по меньшей мере:
получить образ программного обеспечения программного контейнера, сконфигурированный с возможностью выполнения в экземпляре компьютерной системы;
получить запрос на запуск образа программного обеспечения в соответствии с определением задач, причем определение задач определяет выделение ресурсов для программного контейнера;
определить множество экземпляров контейнеров для запуска образа программного обеспечения в соответствии с определением задач, причем множество экземпляров контейнеров определяется в соответствии со схемой размещения; и
запустить образ программного обеспечения в виде одного или большего количества выполняемых программных контейнеров во множестве экземпляров контейнеров в соответствии с определением задач.
15. Энергонезависимый машиночитаемый носитель данных по п. 14, отличающийся тем, что схема размещения является одной их следующих: циклическая схема размещения или схема размещения со стохастическим назначением.
16. Энергонезависимый машиночитаемый носитель данных по п. 14 или 15, отличающийся тем, что инструкции дополнительно содержат инструкции, которые при выполнении одним или большим количеством процессоров, побуждают компьютерную систему, в ответ на вызов через интерфейс прикладного программирования, создать кластер для представления множества экземпляров компьютерной системы, в котором экземпляр компьютерной системы является членом указанного множества.
17. Энергонезависимый машиночитаемый носитель данных по любому из пп. 14-16, отличающийся тем, что инструкции, побуждающие компьютерную систему определить множество экземпляров контейнеров, дополнительно содержат инструкции, которые при выполнении одним или большим количеством процессоров побуждают компьютерную систему определить множество экземпляров контейнеров на основе, по меньшей мере частично, из одной или более групп безопасности или ролей безопасности, присвоенных образу программного обеспечения.
18. Энергонезависимый машиночитаемый носитель данных по любому из пп. 14-17, отличающийся тем, что инструкции дополнительно содержат инструкции, которые при выполнении одним или большим количеством процессоров, побуждают компьютерную систему, в ответ на вызов через интерфейс прикладного программирования, зарегистрировать экземпляр компьютерной системы в кластере, представляющем множество экземпляров компьютерной системы.
19. Энергонезависимый машиночитаемый носитель данных по любому из пп. 14-18, отличающийся тем, что инструкции дополнительно содержат инструкции, которые при выполнении одним или большим количеством процессоров, побуждают компьютерную систему, в ответ на вызов через интерфейс прикладного программирования, зарегистрировать определение задач с учетной записью клиента поставщика служб вычислительных ресурсов.
20. Энергонезависимый машиночитаемый носитель данных по любому из пп. 14-19, отличающийся тем, что запрос на запуск образа программного обеспечения является запросом, полученным посредством вызова через интерфейс прикладного программирования для запуска образа программного обеспечения в соответствии с определением задач.
21. Энергонезависимый машиночитаемый носитель данных по любому из пп. 14-20, отличающийся тем, что множество экземпляров контейнеров является подмножеством экземпляров контейнеров, зарегистрированных в кластере, и инструкции дополнительно содержат инструкции, которые при выполнении одним или большим количеством процессоров, побуждают компьютерную систему, в ответ на вызов через интерфейс прикладного программирования, предоставить информацию о том, какие образы программного обеспечения работают в экземплярах контейнеров, зарегистрированных в кластере, и какие ресурсы доступны в экземплярах контейнеров, зарегистрированных в кластере.
На Фиг. 16 проиллюстрированы аспекты примерной среды 1600 для реализации аспектов в соответствии с различными вариантами реализации изобретения. Следует понимать, что, хотя для объяснения принципов изобретения используется веб-среда, для реализации различных вариантов осуществления изобретения возможно применение иных подходящих сред. Среда содержит электронное клиентское устройство 1602, которое может включать любое подходящее устройство, выполненное с возможностью передачи и/или приема запросов, сообщений или информации по соответствующей сети 1604, а в некоторых вариантах реализации изобретения- передачи информации обратно пользователю устройства. Примеры таких клиентских устройств включают персональные компьютеры, мобильные телефоны, портативные устройства обмена сообщениями, ноутбуки, планшетные компьютеры, телевизионные приставки, персональные цифровые секретари, встроенные компьютерные системы, электронные книги и т.п. Сеть может включать в себя любую соответствующую сеть, в т.ч. интранет-сеть, интернет, сотовую сеть, локальную сеть, спутниковую сеть или любую другую сеть и/или их комбинации. Компоненты, используемые для такой системы, могут зависеть, по меньшей мере частично, от выбранного типа сети и/или окружающей среды. Протоколы и компоненты для передачи данных по указанной сети хорошо известны и не будут подробно рассматриваться. Связь по сети может осуществляться посредством проводных или беспроводных соединений и их комбинаций. В этом примере сеть включает в себя интернет, так как среда содержит веб-сервер 1606 для приема запросов и предоставления контента в ответ на них, хотя для специалиста в данной области с обычным уровнем подготовки будет понятно, что для аналогичных целей могут использоваться другие сети и иные устройства.
Иллюстративная среда содержит сервер приложений 1608 и хранилище данных 1610. Следует понимать, что возможно наличие нескольких серверов приложений, уровней или других элементов, процессов или компонентов, которые могут быть соединены в цепочку или иным образом сконфигурированы, которые могут взаимодействовать для выполнения таких задач, как получение данных из соответствующего хранилища данных. Используемые серверы могут быть реализованы различными способами, например, в виде аппаратных средств или виртуальных компьютерных систем. В некоторых вариантах серверы могут представлять собой модуль программирования, выполняемый в компьютерной системе. Если не указано иное, или иное не следует из контекста, употребляемый здесь термин «хранилище данных» относится к любому устройству или комбинации устройств, способных осуществлять хранение данных, доступ к ним и извлечение искомых данных, которые могут включать в себя любую комбинацию и количество серверов данных, баз данных, запоминающих устройств и носителей для хранения данных, в любой стандартной, распределенной, виртуальной или кластерной среде. Сервер приложений может включать в себя любые соответствующие аппаратные средства, программное обеспечение и микропрограммное обеспечение для интеграции с хранилищем данных, необходимые для реализации аспектов одного или большего количества приложений для клиентского устройства, обработки некоторых или всех доступов к данным и бизнес-логики для приложения. Сервер приложений может предоставлять службы контроля доступа совместно с хранилищем данных и способен генерировать контент, в т.ч. текст, графику, аудио, видео и/или другое содержание, полезное для пользователя, которое может предоставляться пользователю веб-сервером в виде языка гипертекстовой разметки (HTML), расширяемого языка разметки (XML), JavaScript, каскадных таблиц стилей (CSS) или другого соответствующего, структурированного языка для стороны клиента. Переносимый в клиентское устройство контент может обрабатываться клиентским устройством, чтобы обеспечить контент в одной или большем количестве форм, включая формы, воспринимаемые пользователем на слух, визуально и/или с помощью других органов чувств, включая прикосновение, вкус и/или запах. Обработка всех запросов и ответов, а также передача контента между электронным устройством клиента 1602 и сервером приложений 1608 в этом примере может обеспечиваться веб-сервером посредством РНР: гипертекстового препроцессора (PHP), Python, Ruby, Perl, Java, HTML, XML или другого соответствующего, структурированного для стороны сервера языка. Следует понимать, что веб-серверы и серверы приложений не являются обязательными компонентами, а приведены лишь в качестве примера, поскольку указанный структурированный код может быть выполнен на любом подходящем устройстве или хост-машине, как описано в других разделах. Кроме того, операции, описанные в качестве выполняемых одним устройством (если иное не следует из контекста), могут выполняться совместно несколькими устройствами, которые могут образовывать распределенную и/или виртуальную систему.
Хранилище данных 1610 может содержать несколько отдельных таблиц данных, баз данных, документов с данными, динамических схем хранения данных и/или другие решения и носители для хранения данных, относящихся к определенному аспекту настоящего изобретения. Например, проиллюстрированное хранилище данных может включать в себя механизмы для хранения производственных данных 1612 и пользовательской информации 1616, которые могут использоваться для предоставления контента стороне производства. Также показано, что хранилище данных включает в себя механизм для хранения данных журнала 1614, которые могут использоваться для составления отчетов, анализа или других целей. Следует понимать, что возможны многие другие аспекты для хранения в хранилище данных, такие как информация об образе страницы и правах доступа, которые могут храниться в любом из перечисленных выше решений в зависимости от обстоятельств или в дополнительных решениях в хранилище данных 1610. Хранилище данных 1610 выполнено с возможностью управления посредством связанной с ним логики для получения инструкций от сервера приложений 1608 и, в ответ на них, получения, обновления или иной обработки данных. Сервер приложений 1608 может обеспечивать статические, динамические или комбинацию статических и динамических данных в ответ на полученные инструкции. Динамические данные, такие как данные, используемые в веб-журналах (блогах), торговых приложениях, службах новостей и других приложениях, могут генерироваться структурированными языками на стороне сервера, как описано или может обеспечиваться системой управления контентом (CMS), выполняющейся на сервере приложений или под его управлением. В одном примере пользователь, используя управляемое пользователем устройство, может направить запрос на поиск определенного типа элемента. В этом случае хранилище данных может получить доступ к информации пользователя, чтобы удостоверить его личность, и пользователю может быть предоставлен доступ к подробной информации в каталоге для получения сведений об элементах указанного типа. Затем информация может быть предоставлена пользователю, например, в виде списка результатов на веб-странице, которую пользователь может просматривать с помощью браузера на электронном устройстве клиента 1602. Информацию о конкретном интересующем элементе можно просматривать на специальной странице или в окне браузера. Следует отметить, однако, что варианты реализации настоящего изобретения не обязательно ограничиваются контекстом веб-страниц, а могут применяться в более широком смысле к обработке запросов в целом, где запросы не обязательно являются запросами на получение контента.
Каждый сервер, как правило, будет включать в себя операционную систему, которая обеспечивает исполняемые программные инструкции для общего администрирования и функционирования этого сервера, и, как правило, будет включать в себя машиночитаемый носитель (например, жесткий диск, оперативную память, постоянное запоминающее устройство и т.д.) для хранения инструкций, которые при выполнении процессором сервера позволяют серверу выполнять предусмотренные для него функции. Подходящие варианты реализации операционной системы и общих функциональных возможностей серверов известны или коммерчески доступны и могут быть легко реализованы специалистами, имеющими обычную квалификацию в данной области, в частности с применением описанного изобретения.
В одном варианте реализации изобретения среда является распределенной и/или виртуальной вычислительной средой с использованием нескольких компьютерных систем и компонентов, которые соединены между собой посредством линий связи, используя одну или большее количество компьютерных сетей или прямых соединений. Тем не менее специалистам в данной области техники с обычным уровнем подготовки будет понятно, что такая система может работать одинаково успешно в системе, имеющей меньшее или большее количество компонентов, чем это проиллюстрировано на Фиг. 16. Таким образом, представление типовой среды 1600 на Фиг. 16 следует рассматривать как иллюстративное по своей природе и не ограничивающее объем изобретения.
Различные варианты реализации изобретения дополнительно могут быть реализованы в самых различных операционных средах, которые в некоторых случаях могут включать в себя один или большее количество компьютеров пользователей, вычислительные устройства или устройства обработки, которые могут использоваться для любого из целого ряда применений. Пользовательские или клиентские устройства могут включать в себя любые из множества неспециализированных персональных компьютеров, таких как настольные компьютеры, ноутбуки или планшетные компьютеры, работающие под управлением стандартной операционной системы, а также сотовые, беспроводные и мобильные устройства с мобильным программным обеспечением, способные поддерживать ряд сетевым протоколов и протоколов обмена сообщениями. Такая система также может включать в себя ряд рабочих станций, работающих под управлением любой из множества коммерчески доступных операционных систем и других известных приложений для таких целей, как разработка и управление базами данных. Эти устройства могут также включать другие электронные устройства, такие как терминалы, тонкие клиенты, игровые системы и другие устройства, способные поддерживать связь по сети. Эти устройства могут также включать виртуальные устройства, такие как виртуальные машины, гипервизоры и другие виртуальные устройства, способные осуществлять связь по сети.
Различные варианты реализации настоящего изобретения используют сеть, знакомую специалистам в данной области техники, для поддержания связи с использованием любого из множества коммерчески доступных протоколов, таких как протокол управления передачей/протокол интернета (TCP/IP), протокол пользовательских дейтаграмм (UDP), протоколы, работающие на различных уровнях модели взаимодействия открытых систем (OSI), протокол передачи файлов (FTP), технология Universal Plug and Play (UpnP), сетевая файловая система (NFS), общая файловая система интернета (CIFS) и AppleTalk. Сеть может быть, например, локальной, глобальной, виртуальной частной сетью, сетью Интернет, интранет-сетью, экстранет-сетью, коммутируемой телефонной сетью общего доступа, сетью с ИК-связью, беспроводной сетью, сетью спутниковой связи и любой их комбинацией.
В вариантах с использованием веб-сервера он может запускать любое из множества серверных приложений или приложений среднего уровня, в т.ч. серверы протокола передачи гипертекста (HTTP), FTP-серверы, серверы общего шлюзового интерфейса (CGI), серверы баз данных, серверы Java, Apache и серверы бизнес-приложений. Сервер(ы) также может(могут) выполнять программы или скрипты в ответ на запросы от пользовательских устройств, например, путем выполнения одного или большего количества веб-приложений, которые могут быть реализованы в виде одного или большего количества скриптов или программ, написанных на любом языке программирования, например, Java®, С, С# или С++, или любом языке скриптов, например, Ruby, PHP, Perl, Python или TCL, а также их комбинации. Сервер(ы) может (могут) также включать в себя серверы баз данных, в т.ч. коммерчески доступные от Oracle®, Microsoft®, Sybase® и IBM®, а также с серверы с открытым исходным кодом, такие как MySQL, Postgres, SQLite, MongoDB и любой другой сервер, способный осуществлять хранение, извлечение и доступ к структурированным или неструктурированным данным. Серверы баз данных могут включать в себя серверы на основе таблиц, документов, неструктурированные, реляционные, нереляционные серверы или их комбинации и/или другие серверы баз данных.
Среда может содержать множество хранилищ данных и других запоминающих устройств и носителей информации, как описано выше. Они могут находиться в различных местах, например, на носителе данных, локальном по отношению к (и/или расположенному внутри) одному или большему количеству компьютеров, или удаленному для любого или всех компьютеров в сети. В конкретном множестве вариантов реализации изобретения информация может находиться в сетевом хранилище (SAN), известном специалистам в данной области техники. Аналогичным образом, любые необходимые файлы для выполнения функций, присущих компьютерам, серверам или другим сетевым устройствам, могут быть сохранены локально и/или удаленно, в зависимости от обстоятельств. В случаях, когда система содержит компьютеризированные устройства, каждое такое устройство может включать в себя аппаратные элементы, которые могут быть электрически соединены с помощью шины; такие элементы включают, например, центральный процессор (CPU или «процессор»), устройство ввода (например, мышь, клавиатура, контроллер, сенсорный экран или сенсорная клавиатура) и устройство вывода (например, дисплей, принтер или динамик). Такая система может также включать в себя одно или большее количество запоминающих устройств, таких как дисковые накопители, оптические запоминающие устройства и твердотельные устройства для хранения данных, такие как оперативное запоминающее устройство (RAM) или постоянное запоминающее устройство (ROM), а также съемные носители, карты памяти, флэш-память и т.д.
Такие устройства могут также включать в себя устройство считывания машиночитаемых носителей данных, устройства связи (например, модем, беспроводная или проводная сетевая карта, ИК-устройство связи и т.д.) и рабочую память, как описано выше. Устройство считывания машиночитаемых носителей данных может быть связано с машиночитаемым носителем данных или выполнено с возможностью приема машиночитаемого носителя данных, представляющего собой удаленные, локальные, несъемные и/или съемные запоминающие устройства, а также носители для временного и/или постоянного хранения, записи, передачи и извлечения считываемой компьютером информации. Система и различные устройства, как правило, также будет включать в себя ряд программных приложений, модулей, служб или других элементов, расположенных в устройстве рабочей памяти, в т.ч. операционную систему и прикладные программы, например, клиентское приложение или веб-браузер. Следует понимать, что альтернативные варианты реализации изобретения могут включать многочисленные вариации описанного выше. Например, возможно использование настроенного специально для конкретного пользователя аппаратного обеспечения, и/или отдельные элементы могут быть реализованы в аппаратных средствах, программном обеспечении (в т.ч. портативном программном обеспечении, таком как апплеты) или в обоих. Кроме того, могут быть использованы соединения с другими вычислительными устройствами, такими как сетевые устройства ввода/вывода.
Носители данных и машиночитаемые носители для хранения кода или частей кода могут включать в себя любые соответствующие носители, известные или используемые в данной области, в т.ч. носители для хранения и передачи данных, такие как энергозависимые и энергонезависимые, съемные и несъемные носители, реализованные любым способом или с применением любой технологией для хранения и/или передачи информации, такой как машиночитаемые инструкции, структуры данных, программные модули или другие данные, в т.ч. оперативное запоминающее устройство (RAM), постоянное запоминающее устройство (ROM), электрически стираемое перепрограммируемое постоянное запоминающее устройство (EEPROM), флэш-память или другая технология запоминающих устройств, CD-ROM, универсальный цифровой диск (DVD) или другое оптическое запоминающее устройство, магнитные кассеты, магнитная лента, магнитное дисковое запоминающее устройство или другие магнитные устройства хранения информации, или любой другой носитель, который может быть использован для хранения требуемой информации и доступный для вычислительного устройства. На основе представленного здесь описания и пояснений специалист в данной области техники с обычным уровнем подготовки сможет понять другие пути и/или способы реализации вариантов осуществления настоящего изобретения.
Описание и фигуры, соответственно, следует рассматривать в иллюстративном, а не ограничительном смысле. Следует понимать, что в них можно внести различные модификации и изменения, не выходя за пределы существа и объема изобретения, изложенных в формуле изобретения.
Другие варианты не выходят за рамки сущности настоящего изобретения. Хотя изобретение допускает различные модификации и альтернативные конструкции, некоторые варианты реализации изобретения проиллюстрированы на фигурах и подробно описаны выше. Следует, однако, понимать, что настоящее изобретение не предполагается ограничивать описанными специфическими формами, а, напротив, предполагается охватить все модификации, альтернативные конструкции и эквиваленты, соответствующие сути и духу изобретения и входящие в его объем, определяемый прилагаемой формулой изобретения.
Термин, относящийся к единственному числу, и аналогичные термины, используемые в контексте настоящего изобретения (особенно в контексте формулы изобретения), должен толковаться как охватывающий как единственное, так и множественное число, если только в настоящем документе не указано иное, или это явно противоречит контексту. Термины «содержащий», «имеющий», «включающий» и «включающий в себя» должны толковаться как открытые термины (т.е. означающие «включающий без ограничения перечисленным»), если не указано иное. Термин «связанный» в немодифицированной форме и применительно к физическим соединениям следует понимать как частично или полностью содержащийся, присоединенный или соединенный с другим объектом, даже при наличии какого-либо вмешательства. Перечисление диапазонов значений в данном документе предназначено только для использования в качестве краткого способа указания отдельных значений, находящихся в пределах диапазона, если не указано иное, и каждое отдельное значение включено в описание, как если бы оно было прямо указано. Употребляемый термин «множество» (например, «множество элементов») или «подмножество», если иное не указано или не противоречит контексту, следует понимать как непустое множество, содержащее один или большее количество элементов. Кроме того, если не указано иное или не противоречит контексту, термин «подмножество» соответствующего множества не обязательно обозначает собственно подмножество соответствующего множества, а подмножество и соответствующее множество могут быть одинаковыми.
Конъюнктивный язык, например, фразы вида «по меньшей мере один из А, В и С» или «по крайней мере один из А, В и С» следует понимать с учетом контекста, как общее обозначение того, что элемент, термин и т.д. могут быть либо А, либо В, либо С, или любым непустым подмножеством множества А и В и С, если не указано иное, или иное явно противоречит контексту. Например, в иллюстративном примере множества, содержащего три элемента, конъюнктивные фразы «по меньшей мере один из А, В и С» и «по крайней мере один из А, В и С» относятся к любому из следующих множеств: {А}, {В}, {С}, {А, В}, {А, С}, {В, С}, {А, В, С}. Таким образом, такой конъюнктивный язык, как правило, не подразумевает, что для некоторых вариантов реализации необходимо наличие каждого из по меньшей мере одного из А, по меньшей мере одного из В и по меньшей мере одного из С.
Выполнение описанных процессов может осуществляться в любом подходящем порядке, если не указано иное или иное явным образом противоречит контексту. Описанные процессы (или их варианты и/или комбинации) могут выполняться под управлением одной или большего количества компьютерных систем, снабженных исполняемыми инструкциями, и могут быть реализованы в виде кода (например, исполняемых инструкций, одного или большего количества компьютерных программ или одного или большего количества приложений), совместно выполняемого одним или большим количеством процессоров, аппаратными средствами или их комбинациями. Код может храниться на машиночитаемом носителе, например, в виде компьютерной программы, содержащей инструкции, выполняемые одним или большим количеством процессоров. Машиночитаемый носитель может быть энергонезависимым.
Использование любых примеров или иллюстративной формы (например, «такой как») в настоящем документе предназначено только для лучшего раскрытия вариантов реализации изобретения и не накладывает ограничений на объем настоящего изобретения, кроме того, что заявлено в формуле изобретения. Ни одно выражение в описании не должно быть истолковано как указание на какой-либо незаявленный элемент, существенный для практики применения изобретения.
В настоящем документе описаны конкретные варианты реализации настоящего изобретения, включая наилучшие способы его реализации, известные авторам. Изменения предпочтительных вариантов реализации изобретения будут очевидными для специалистов в данной области техники после прочтения приведенного выше описания. Авторы изобретения полагают, что специалисты в данной области смогут применить указанные измененные варианты в зависимости от обстоятельств, и считают возможным практическое применение другие вариантов осуществления настоящего изобретения, отличных от подробно рассмотренных в настоящем описании. Соответственно, объем настоящего изобретения включает все модификации и эквиваленты исследуемого объекта, изложенного в формуле изобретения, прилагаемой к настоящему документу в соответствии с действующим законодательством. Кроме того, любая комбинация вышеописанных элементов во всех их возможных вариантах охватывается объемом приведенного описания изобретения, если иное не указано в данном документе или иным образом явно не противоречит контексту.
Все приведенные ссылки, включая публикации, патентные заявки и патенты, включены в данное описание во всей своей полноте посредством ссылки в той же степени, как если бы каждая ссылка отдельно и прямо указывала на включение в полном объеме посредством ссылки.
Claims (61)
1. Выполняемый компьютером способ управления программным контейнером, содержащий:
получение определения задач, причем определение задач указывает по меньшей мере:
местоположение, на котором расположен образ программного обеспечения; и
информацию, используемую для определения количества ресурсов, выделяемых программному контейнеру для образа программного обеспечения, причем программный контейнер является экземпляром пространства пользователя, который выполняется изолированно от других программных контейнеров, выполняемых на том же экземпляре виртуальной машины;
определение экземпляра виртуальной машины, на котором запускают программный контейнер; и
побуждение получения образа программного обеспечения из местоположения, указанного определением задач, и запуска в программном контейнере на экземпляре виртуальной машины.
2. Выполняемый компьютером способ по п. 1, в котором набор экземпляров виртуальной машины является одним или более экземпляров виртуальной машины, которые зарегистрированы в ассоциации друг с другом как кластер.
3. Выполняемый компьютером способ по п. 1, дополнительно содержащий:
получение, через интерфейс прикладного программирования, запроса на инстанцирование определения задач, причем интерфейс прикладного программирования предоставлен поставщиком служб вычислительных ресурсов.
4. Выполняемый компьютером способ по п. 1, в котором побуждение запуска образа программного обеспечения дополнительно содержит выполнение планировщика, указанного клиентом поставщика служб вычислительных ресурсов, причем планировщик выполнен с возможностью выбора экземпляра виртуальной машины из набора экземпляров виртуальной машины для выполнения программного контейнера.
5. Выполняемый компьютером способ по п. 1, в котором определение экземпляра виртуальной машины для запуска программного контейнера включает анализ приложением планировщика определения задач на тэги, указывающие сродство или отсутствие сродства для определенных типов экземпляров виртуальной машины.
6. Выполняемый компьютером способ по п. 1, в котором:
экземпляр виртуальной машины связан с клиентом поставщика служб вычислительных ресурсов; и
определение задач определяется клиентом через интерфейс редактирования службы шаблонов, предоставленного поставщиком служб вычислительных ресурсов.
7. Система управления программным контейнером, содержащая:
один или более процессоров; и
память, содержащую инструкции, которые, в результате выполнения одним или более процессоров, побуждают систему:
получать определение задач, указывающих по меньшей мере:
местоположение, на котором расположен образ программного обеспечения; и
информацию, используемую для определения количества ресурсов, выделяемых программному контейнеру для образа программного обеспечения, причем программный контейнер:
является экземпляром пространства пользователя, который выполняется изолированно от других программных контейнеров, выполняемых на экземпляре виртуальной машины; и
имеет совместные ресурсы экземпляра виртуальной машины;
определять экземпляр виртуальной машины, на котором запускается программный контейнер; и
запускать образ программного обеспечения, полученный из местоположения, указанного определением задач, в программном контейнере на определенном экземпляре виртуальной машины, причем программный контейнер является выделенным в совместном ресурсе в соответствии с количеством ресурсов, указанным в определении задач.
8. Система по п. 7, в которой определенный экземпляр виртуальной машины определен из набора экземпляров виртуальной машины, функционирующего в виртуальной сети клиента поставщика служб вычислительных ресурсов.
9. Система по п. 7, в которой набор экземпляров виртуальной машины связан с группой автоматического масштабирования службы автоматического масштабирования, которая побуждает экземпляр виртуальной машины быть добавленным или исключенным из группы автоматического масштабирования в зависимости по меньшей мере частично от доступного количества ресурсов, определенного из информации, содержащейся в определении задач.
10. Система по п. 7, в которой:
программный контейнер является вторым программным контейнером; и
определение задач получено в результате того, что первый программный контейнер сталкивается с ошибкой при выполнении образа программного обеспечения.
11. Система по п. 7, в которой инструкции, которые побуждают систему определять экземпляр виртуальной машины, дополнительно основаны по меньшей мере частично на схеме распределения для балансировки нагрузки службы балансировки нагрузки.
12. Система по п. 7, в которой инструкции дополнительно содержат инструкции, побуждающие систему:
агрегировать метрики о программном контейнере для формирования агрегированных метрик; и
разрешать клиентам поставщика служб вычислительных ресурсов хостировать систему для мониторинга использования ресурсов программного контейнера по меньшей мере путем предоставления агрегированных метрик службе мониторинга ресурсов поставщика служб вычислительных устройств.
13. Система по п. 12, в которой метрики включают одно или более из:
объема памяти, используемой программным контейнером;
количества раз, когда произошла ошибка при выполнении образа программного обеспечения; или
использования процессора программным контейнером.
14. Энергонезависимый машиночитаемый носитель информации, содержащий сохраненные на нем выполняемые инструкции, которые, в результате выполнения одним или более процессоров компьютерной системы, побуждают компьютерную систему по меньшей мере:
получать определение задач, причем определение задач указывает по меньшей мере:
местоположение, на котором расположен образ программного обеспечения; и
информацию, используемую для определения количества вычислительных ресурсов, выделяемых в программном контейнере для образа программного обеспечения, причем программный контейнер имеет совместные ресурсы экземпляра компьютерной системы;
определять экземпляр компьютерной системы для запуска программного контейнера; и
запускать образ программного обеспечения, полученный из местоположения, указанного в определении задач, в качестве программного контейнера в определенном экземпляре компьютерной системы, причем программному контейнеру выделен совместный ресурс из доступных ресурсов определенного экземпляра компьютерной системы в соответствии с количеством, указанном в определении задач.
15. Энергонезависимый машиночитаемый носитель информации по п. 14, в котором местоположение, в котором расположен образ программного обеспечения, является местоположением в хранилище данных поставщика служб вычислительных ресурсов, который хостирует компьютерную систему.
16. Энергонезависимый машиночитаемый носитель информации по п. 14, в котором выполняемые инструкции дополнительно содержат инструкции, которые побуждают компьютерную систему:
агрегировать метрики о программном контейнере для формирования агрегированных меток; и
предоставлять агрегируемые метки службе мониторинга ресурсов поставщика служб вычислительных ресурсов, хостирующего компьютерную систему.
17. Энергонезависимый машиночитаемый носитель информации по п. 16, в котором агрегированные метки включают одно или более из:
количества времени, затрачиваемого одним или более процессоров на выполнение системных вызовов, созданных программным контейнером;
количества операций чтения и записи, выполняемых программным контейнером; или
количества операций ввода/вывода, поставленных в очередь для программного контейнера.
18. Энергонезависимый машиночитаемый носитель информации по п. 16, в котором:
определенный экземпляр компьютерной системы связан с клиентом поставщика служб вычислительных устройств, который хостирует компьютерную систему; и
агрегированные метрики соответствуют предопределенному условию, которое побуждает службу мониторинга ресурсов запускать сигнал тревоги, который уведомляет клиента о том, что предопределенное условие выполнено.
19. Энергонезависимый машиночитаемый носитель информации по п. 18, в котором предопределенное условие является по меньшей мере одним из:
указания на наличие состояния ошибки в программном контейнере или
что по меньшей мере одна из агрегированных метрик достигла значения относительно порогового значения.
20. Энергонезависимый машиночитаемый носитель информации по п. 18, в котором сигнал тревоги, который уведомляет клиента, включает одно или более из:
текстового сообщения, отправленного на устройство, связанное с клиентом;
сообщения электронной почты, отправленное на координаты электронной почты, связанной с клиентом; или
визуального индикатора состояния, отображаемого в пользовательском интерфейсе, доступном для клиента.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/538,663 US9256467B1 (en) | 2014-11-11 | 2014-11-11 | System for managing and scheduling containers |
US14/538,663 | 2014-11-11 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2017116433A Division RU2666475C1 (ru) | 2014-11-11 | 2015-11-10 | Система управления и диспетчеризации контейнеров |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2019131233A Division RU2751576C2 (ru) | 2014-11-11 | 2019-10-03 | Система управления и диспетчеризации контейнеров |
Publications (3)
Publication Number | Publication Date |
---|---|
RU2018130629A RU2018130629A (ru) | 2019-03-15 |
RU2018130629A3 RU2018130629A3 (ru) | 2019-05-20 |
RU2704734C2 true RU2704734C2 (ru) | 2019-10-30 |
Family
ID=54771180
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2018130629A RU2704734C2 (ru) | 2014-11-11 | 2015-11-10 | Система управления и диспетчеризации контейнеров |
RU2017116433A RU2666475C1 (ru) | 2014-11-11 | 2015-11-10 | Система управления и диспетчеризации контейнеров |
RU2019131233A RU2751576C2 (ru) | 2014-11-11 | 2019-10-03 | Система управления и диспетчеризации контейнеров |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2017116433A RU2666475C1 (ru) | 2014-11-11 | 2015-11-10 | Система управления и диспетчеризации контейнеров |
RU2019131233A RU2751576C2 (ru) | 2014-11-11 | 2019-10-03 | Система управления и диспетчеризации контейнеров |
Country Status (9)
Country | Link |
---|---|
US (5) | US9256467B1 (ru) |
EP (1) | EP3218808A1 (ru) |
JP (2) | JP6522750B2 (ru) |
KR (2) | KR102042988B1 (ru) |
CN (1) | CN107111519A (ru) |
AU (3) | AU2015346530C1 (ru) |
RU (3) | RU2704734C2 (ru) |
SG (2) | SG10201913839VA (ru) |
WO (1) | WO2016077367A1 (ru) |
Families Citing this family (381)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8019732B2 (en) | 2008-08-08 | 2011-09-13 | Amazon Technologies, Inc. | Managing access of multiple executing programs to non-local block data storage |
US9225638B2 (en) | 2013-05-09 | 2015-12-29 | Vmware, Inc. | Method and system for service switching using service tags |
US10325032B2 (en) * | 2014-02-19 | 2019-06-18 | Snowflake Inc. | Resource provisioning systems and methods |
JP2015197845A (ja) * | 2014-04-02 | 2015-11-09 | キヤノン株式会社 | 情報処理装置及びその制御方法、並びにプログラム |
US10291548B2 (en) | 2014-08-08 | 2019-05-14 | Oracle International Corporation | Contribution policy-based resource management and allocation system |
US9912609B2 (en) * | 2014-08-08 | 2018-03-06 | Oracle International Corporation | Placement policy-based allocation of computing resources |
US10693946B2 (en) | 2014-09-16 | 2020-06-23 | Amazon Technologies, Inc. | Instance backed mobile devices |
US9755898B2 (en) | 2014-09-30 | 2017-09-05 | Nicira, Inc. | Elastically managing a service node group |
US11296930B2 (en) | 2014-09-30 | 2022-04-05 | Nicira, Inc. | Tunnel-enabled elastic service model |
US9256467B1 (en) | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
US9886306B2 (en) | 2014-11-21 | 2018-02-06 | International Business Machines Corporation | Cross-platform scheduling with long-term fairness and platform-specific optimization |
US10148527B2 (en) | 2014-12-05 | 2018-12-04 | Accenture Global Services Limited | Dynamic network component placement |
US9882968B1 (en) | 2014-12-09 | 2018-01-30 | Amazon Technologies, Inc. | Virtual network interface multiplexing |
US9692666B2 (en) * | 2014-12-22 | 2017-06-27 | Rovio Entertainment Ltd. | Container manager |
US10484168B2 (en) * | 2015-03-02 | 2019-11-19 | Dell Products L.P. | Methods and systems for obfuscating data and computations defined in a secure distributed transaction ledger |
US9967333B2 (en) | 2015-03-02 | 2018-05-08 | Dell Products Lp | Deferred configuration or instruction execution using a secure distributed transaction ledger |
US9965628B2 (en) | 2015-03-02 | 2018-05-08 | Dell Products Lp | Device reporting and protection systems and methods using a secure distributed transactional ledger |
US9967334B2 (en) | 2015-03-02 | 2018-05-08 | Dell Products Lp | Computing device configuration and management using a secure decentralized transaction ledger |
US10592985B2 (en) | 2015-03-02 | 2020-03-17 | Dell Products L.P. | Systems and methods for a commodity contracts market using a secure distributed transaction ledger |
WO2016153401A1 (en) * | 2015-03-24 | 2016-09-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and nodes for scheduling data processing |
US10594743B2 (en) | 2015-04-03 | 2020-03-17 | Nicira, Inc. | Method, apparatus, and system for implementing a content switch |
CN106155764A (zh) | 2015-04-23 | 2016-11-23 | 阿里巴巴集团控股有限公司 | 调度虚拟机输入输出资源的方法及装置 |
CN106201839B (zh) | 2015-04-30 | 2020-02-14 | 阿里巴巴集团控股有限公司 | 一种业务对象的信息加载方法和装置 |
CN106209741B (zh) | 2015-05-06 | 2020-01-03 | 阿里巴巴集团控股有限公司 | 一种虚拟主机及隔离方法、资源访问请求处理方法及装置 |
CN106293869A (zh) * | 2015-05-26 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种资源分配方法和装置 |
US9781124B2 (en) * | 2015-06-11 | 2017-10-03 | International Business Machines Corporation | Container-based system administration |
US10379889B2 (en) * | 2015-06-15 | 2019-08-13 | Microsoft Technology Licensing, Llc | Monitoring and reporting performance of collaboration services using a monitoring service native to the collaboration service |
US10977128B1 (en) | 2015-06-16 | 2021-04-13 | Amazon Technologies, Inc. | Adaptive data loss mitigation for redundancy coding systems |
US10270475B1 (en) | 2015-06-16 | 2019-04-23 | Amazon Technologies, Inc. | Layered redundancy coding for encoded parity data |
US10298259B1 (en) | 2015-06-16 | 2019-05-21 | Amazon Technologies, Inc. | Multi-layered data redundancy coding techniques |
CA2990405A1 (en) * | 2015-06-22 | 2016-12-29 | Draios Inc. | Monitoring of applications isolated in containers |
US9747119B2 (en) * | 2015-06-23 | 2017-08-29 | Vmware, Inc. | Methods and apparatus to monitor virtual computing environments |
US11061969B1 (en) | 2015-06-29 | 2021-07-13 | Amazon Technologies, Inc. | Instance backed mobile devices with multiple instances |
US10609122B1 (en) | 2015-06-29 | 2020-03-31 | Amazon Technologies, Inc. | Instance backed building or place |
US10394762B1 (en) | 2015-07-01 | 2019-08-27 | Amazon Technologies, Inc. | Determining data redundancy in grid encoded data storage systems |
CN106708819A (zh) | 2015-07-17 | 2017-05-24 | 阿里巴巴集团控股有限公司 | 一种数据缓存的预热方法及其装置 |
CN106445473B (zh) * | 2015-08-06 | 2019-12-06 | 华为技术有限公司 | 一种容器部署方法及装置 |
US10911404B1 (en) | 2015-08-24 | 2021-02-02 | Amazon Technologies, Inc. | Attribute based authorization |
US9690622B1 (en) * | 2015-08-24 | 2017-06-27 | Amazon Technologies, Inc. | Stateless instance backed mobile devices |
CN106487708B (zh) | 2015-08-25 | 2020-03-13 | 阿里巴巴集团控股有限公司 | 网络访问请求控制方法和装置 |
US9853913B2 (en) | 2015-08-25 | 2017-12-26 | Accenture Global Services Limited | Multi-cloud network proxy for control and normalization of tagging data |
US11422840B2 (en) * | 2015-08-28 | 2022-08-23 | Vmware, Inc. | Partitioning a hypervisor into virtual hypervisors |
US11386060B1 (en) | 2015-09-23 | 2022-07-12 | Amazon Technologies, Inc. | Techniques for verifiably processing data in distributed computing systems |
US10586042B2 (en) | 2015-10-01 | 2020-03-10 | Twistlock, Ltd. | Profiling of container images and enforcing security policies respective thereof |
US10943014B2 (en) | 2015-10-01 | 2021-03-09 | Twistlock, Ltd | Profiling of spawned processes in container images and enforcing security policies respective thereof |
US10664590B2 (en) | 2015-10-01 | 2020-05-26 | Twistlock, Ltd. | Filesystem action profiling of containers and security enforcement |
US10223534B2 (en) * | 2015-10-15 | 2019-03-05 | Twistlock, Ltd. | Static detection of vulnerabilities in base images of software containers |
US10599833B2 (en) | 2015-10-01 | 2020-03-24 | Twistlock, Ltd. | Networking-based profiling of containers and security enforcement |
US10922418B2 (en) | 2015-10-01 | 2021-02-16 | Twistlock, Ltd. | Runtime detection and mitigation of vulnerabilities in application software containers |
US10915628B2 (en) | 2015-10-01 | 2021-02-09 | Twistlock, Ltd. | Runtime detection of vulnerabilities in an application layer of software containers |
US10567411B2 (en) | 2015-10-01 | 2020-02-18 | Twistlock, Ltd. | Dynamically adapted traffic inspection and filtering in containerized environments |
US10693899B2 (en) | 2015-10-01 | 2020-06-23 | Twistlock, Ltd. | Traffic enforcement in containerized environments |
US9940470B2 (en) * | 2015-10-06 | 2018-04-10 | Symantec Corporation | Techniques for generating a virtual private container |
US10778446B2 (en) * | 2015-10-15 | 2020-09-15 | Twistlock, Ltd. | Detection of vulnerable root certificates in software containers |
US9569180B1 (en) * | 2015-10-29 | 2017-02-14 | International Business Machines Corporation | Application development in cloud based environment |
US10782990B1 (en) | 2015-11-24 | 2020-09-22 | Amazon Technologies, Inc. | Container telemetry |
US10394789B1 (en) | 2015-12-07 | 2019-08-27 | Amazon Technologies, Inc. | Techniques and systems for scalable request handling in data processing systems |
US10642813B1 (en) | 2015-12-14 | 2020-05-05 | Amazon Technologies, Inc. | Techniques and systems for storage and processing of operational data |
US10324790B1 (en) | 2015-12-17 | 2019-06-18 | Amazon Technologies, Inc. | Flexible data storage device mapping for data storage systems |
US10261782B2 (en) | 2015-12-18 | 2019-04-16 | Amazon Technologies, Inc. | Software container registry service |
US10032032B2 (en) | 2015-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Software container registry inspection |
US10002247B2 (en) | 2015-12-18 | 2018-06-19 | Amazon Technologies, Inc. | Software container registry container image deployment |
US11455190B2 (en) | 2016-02-05 | 2022-09-27 | Sas Institute Inc. | Implicit status in many task computing |
US11513850B2 (en) | 2016-02-05 | 2022-11-29 | Sas Institute Inc. | Coordinated performance controller failover in many task computing |
US11474863B2 (en) | 2018-06-22 | 2022-10-18 | Sas Institute Inc. | Federated area coherency across multiple devices in many-task computing |
US11775341B2 (en) | 2016-02-05 | 2023-10-03 | Sas Institute Inc. | Automated job flow generation to provide object views in container-supported many task computing |
US10360187B1 (en) * | 2016-03-05 | 2019-07-23 | Virtuozzo International Gmbh | Hybrid storage for virtual machines and containers |
US11379416B1 (en) * | 2016-03-17 | 2022-07-05 | Jpmorgan Chase Bank, N.A. | Systems and methods for common data ingestion |
US9898354B2 (en) | 2016-03-21 | 2018-02-20 | Microsoft Technology Licensing, Llc | Operating system layering |
US10268514B1 (en) * | 2016-03-22 | 2019-04-23 | Amazon Technologies, Inc. | Performance analysis of stateless compute functions using function call intercept |
US10324766B1 (en) * | 2016-03-24 | 2019-06-18 | Amazon Technologies, Inc. | Task profile collection |
US10592336B1 (en) | 2016-03-24 | 2020-03-17 | Amazon Technologies, Inc. | Layered indexing for asynchronous retrieval of redundancy coded data |
US10061668B1 (en) | 2016-03-28 | 2018-08-28 | Amazon Technologies, Inc. | Local storage clustering for redundancy coded data storage system |
US10678664B1 (en) | 2016-03-28 | 2020-06-09 | Amazon Technologies, Inc. | Hybridized storage operation for redundancy coded data storage systems |
US10013213B2 (en) * | 2016-04-22 | 2018-07-03 | EMC IP Holding Company LLC | Container migration utilizing state storage of partitioned storage volume |
WO2017200878A1 (en) * | 2016-05-17 | 2017-11-23 | Amazon Technologies, Inc. | Versatile autoscaling |
US10135837B2 (en) | 2016-05-17 | 2018-11-20 | Amazon Technologies, Inc. | Versatile autoscaling for containers |
WO2017205223A1 (en) * | 2016-05-23 | 2017-11-30 | William Turner | Hyperconverged system including a user interface, a services layer and a core layer equipped with an operating system kernel |
US11394685B2 (en) * | 2016-05-27 | 2022-07-19 | Walmart Apollo, Llc | Systems and methods of database instance container deployment |
KR20170139872A (ko) * | 2016-06-10 | 2017-12-20 | 삼성에스디에스 주식회사 | 멀티 테넌트 기반의 서비스 제공 시스템 및 방법 |
US10594798B2 (en) * | 2016-06-16 | 2020-03-17 | Veniam, Inc. | Systems and methods for managing containers in a network of moving things |
US10305747B2 (en) * | 2016-06-23 | 2019-05-28 | Sap Se | Container-based multi-tenant computing infrastructure |
US10013265B2 (en) | 2016-06-23 | 2018-07-03 | International Business Machines Corporation | Management of container host clusters |
WO2018004403A1 (en) * | 2016-06-28 | 2018-01-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Managing a lifecycle of a software container |
WO2018005297A1 (en) * | 2016-06-30 | 2018-01-04 | Intel Corporation | Technologies for implementing consolidated device infrastructure systems |
US10169156B2 (en) | 2016-07-21 | 2019-01-01 | International Business Machines Corporation | Automatic restarting of containers |
US10394541B2 (en) * | 2016-07-27 | 2019-08-27 | Optim Corporation | System, method, and program for distributing container image |
US10615998B2 (en) | 2016-08-17 | 2020-04-07 | Red Hat, Inc. | State analysis of remote computing images |
US10366091B2 (en) | 2016-08-18 | 2019-07-30 | Red Hat, Inc. | Efficient image file loading and garbage collection |
US10210024B2 (en) * | 2016-08-23 | 2019-02-19 | Samsung Electronics Co., Ltd. | Intelligent controller for containerized applications |
US10432638B2 (en) * | 2016-08-29 | 2019-10-01 | Cisco Technology, Inc. | Infrastructure aware adaptive resource allocation |
CN109416646B (zh) * | 2016-09-08 | 2022-04-05 | 华为技术有限公司 | 一种容器分配的优化方法及处理设备 |
EP3516516B1 (en) * | 2016-09-21 | 2022-05-11 | Accenture Global Solutions Limited | Dynamic resource allocation for application containers |
US10154065B1 (en) | 2016-09-22 | 2018-12-11 | Trend Micro Incorporated | Policy management in software container computing environments |
US11442935B2 (en) | 2016-09-26 | 2022-09-13 | Splunk Inc. | Determining a record generation estimate of a processing task |
US11550847B1 (en) | 2016-09-26 | 2023-01-10 | Splunk Inc. | Hashing bucket identifiers to identify search nodes for efficient query execution |
US10984044B1 (en) | 2016-09-26 | 2021-04-20 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets stored in a remote shared storage system |
US11106734B1 (en) * | 2016-09-26 | 2021-08-31 | Splunk Inc. | Query execution using containerized state-free search nodes in a containerized scalable environment |
US10956415B2 (en) | 2016-09-26 | 2021-03-23 | Splunk Inc. | Generating a subquery for an external data system using a configuration file |
US11586627B2 (en) | 2016-09-26 | 2023-02-21 | Splunk Inc. | Partitioning and reducing records at ingest of a worker node |
US11461334B2 (en) | 2016-09-26 | 2022-10-04 | Splunk Inc. | Data conditioning for dataset destination |
US20180089324A1 (en) | 2016-09-26 | 2018-03-29 | Splunk Inc. | Dynamic resource allocation for real-time search |
US11126632B2 (en) | 2016-09-26 | 2021-09-21 | Splunk Inc. | Subquery generation based on search configuration data from an external data system |
US11604795B2 (en) | 2016-09-26 | 2023-03-14 | Splunk Inc. | Distributing partial results from an external data system between worker nodes |
US11321321B2 (en) | 2016-09-26 | 2022-05-03 | Splunk Inc. | Record expansion and reduction based on a processing task in a data intake and query system |
US11620336B1 (en) | 2016-09-26 | 2023-04-04 | Splunk Inc. | Managing and storing buckets to a remote shared storage system based on a collective bucket size |
US11243963B2 (en) | 2016-09-26 | 2022-02-08 | Splunk Inc. | Distributing partial results to worker nodes from an external data system |
US11222066B1 (en) | 2016-09-26 | 2022-01-11 | Splunk Inc. | Processing data using containerized state-free indexing nodes in a containerized scalable environment |
US12013895B2 (en) | 2016-09-26 | 2024-06-18 | Splunk Inc. | Processing data using containerized nodes in a containerized scalable environment |
US11163758B2 (en) | 2016-09-26 | 2021-11-02 | Splunk Inc. | External dataset capability compensation |
US11562023B1 (en) | 2016-09-26 | 2023-01-24 | Splunk Inc. | Merging buckets in a data intake and query system |
US11599541B2 (en) | 2016-09-26 | 2023-03-07 | Splunk Inc. | Determining records generated by a processing task of a query |
US11294941B1 (en) | 2016-09-26 | 2022-04-05 | Splunk Inc. | Message-based data ingestion to a data intake and query system |
US11250056B1 (en) | 2016-09-26 | 2022-02-15 | Splunk Inc. | Updating a location marker of an ingestion buffer based on storing buckets in a shared storage system |
US11580107B2 (en) | 2016-09-26 | 2023-02-14 | Splunk Inc. | Bucket data distribution for exporting data to worker nodes |
US11003714B1 (en) | 2016-09-26 | 2021-05-11 | Splunk Inc. | Search node and bucket identification using a search node catalog and a data store catalog |
US11663227B2 (en) | 2016-09-26 | 2023-05-30 | Splunk Inc. | Generating a subquery for a distinct data intake and query system |
US10353965B2 (en) | 2016-09-26 | 2019-07-16 | Splunk Inc. | Data fabric service system architecture |
US11874691B1 (en) | 2016-09-26 | 2024-01-16 | Splunk Inc. | Managing efficient query execution including mapping of buckets to search nodes |
US11860940B1 (en) | 2016-09-26 | 2024-01-02 | Splunk Inc. | Identifying buckets for query execution using a catalog of buckets |
US11281706B2 (en) | 2016-09-26 | 2022-03-22 | Splunk Inc. | Multi-layer partition allocation for query execution |
US11232100B2 (en) | 2016-09-26 | 2022-01-25 | Splunk Inc. | Resource allocation for multiple datasets |
US10977260B2 (en) | 2016-09-26 | 2021-04-13 | Splunk Inc. | Task distribution in an execution node of a distributed execution environment |
US11416528B2 (en) | 2016-09-26 | 2022-08-16 | Splunk Inc. | Query acceleration data store |
US11615104B2 (en) | 2016-09-26 | 2023-03-28 | Splunk Inc. | Subquery generation based on a data ingest estimate of an external data system |
US11593377B2 (en) | 2016-09-26 | 2023-02-28 | Splunk Inc. | Assigning processing tasks in a data intake and query system |
US11269939B1 (en) | 2016-09-26 | 2022-03-08 | Splunk Inc. | Iterative message-based data processing including streaming analytics |
US11567993B1 (en) | 2016-09-26 | 2023-01-31 | Splunk Inc. | Copying buckets from a remote shared storage system to memory associated with a search node for query execution |
US11314753B2 (en) | 2016-09-26 | 2022-04-26 | Splunk Inc. | Execution of a query received from a data intake and query system |
US11023463B2 (en) | 2016-09-26 | 2021-06-01 | Splunk Inc. | Converting and modifying a subquery for an external data system |
US11137980B1 (en) | 2016-09-27 | 2021-10-05 | Amazon Technologies, Inc. | Monotonic time-based data storage |
US10810157B1 (en) | 2016-09-28 | 2020-10-20 | Amazon Technologies, Inc. | Command aggregation for data storage operations |
US11204895B1 (en) | 2016-09-28 | 2021-12-21 | Amazon Technologies, Inc. | Data payload clustering for data storage systems |
US10657097B1 (en) | 2016-09-28 | 2020-05-19 | Amazon Technologies, Inc. | Data payload aggregation for data storage systems |
US11281624B1 (en) | 2016-09-28 | 2022-03-22 | Amazon Technologies, Inc. | Client-based batching of data payload |
US10496327B1 (en) | 2016-09-28 | 2019-12-03 | Amazon Technologies, Inc. | Command parallelization for data storage systems |
US10437790B1 (en) | 2016-09-28 | 2019-10-08 | Amazon Technologies, Inc. | Contextual optimization for data storage systems |
US10871995B2 (en) * | 2016-09-29 | 2020-12-22 | Amazon Technologies, Inc. | Managed container instances |
US10303388B1 (en) * | 2016-09-30 | 2019-05-28 | EMC IP Holding Company LLC | Storage filtering using container images |
US10614239B2 (en) | 2016-09-30 | 2020-04-07 | Amazon Technologies, Inc. | Immutable cryptographically secured ledger-backed databases |
US10412022B1 (en) | 2016-10-19 | 2019-09-10 | Amazon Technologies, Inc. | On-premises scaling using a versatile scaling service and an application programming interface management service |
US10732951B2 (en) * | 2016-10-28 | 2020-08-04 | Hewlett Packard Enterprise Development Lp | Container images |
US10523581B2 (en) | 2016-10-31 | 2019-12-31 | Microsoft Technology Licensing Llc | Flighting of node controller in pilot mode in resource management system |
US10521447B2 (en) | 2016-11-14 | 2019-12-31 | International Business Machines Corporation | Container application execution using image metadata |
US10296764B1 (en) | 2016-11-18 | 2019-05-21 | Amazon Technologies, Inc. | Verifiable cryptographically secured ledgers for human resource systems |
US10409642B1 (en) | 2016-11-22 | 2019-09-10 | Amazon Technologies, Inc. | Customer resource monitoring for versatile scaling service scaling policy recommendations |
US11269888B1 (en) | 2016-11-28 | 2022-03-08 | Amazon Technologies, Inc. | Archival data storage for structured data |
US10346189B2 (en) * | 2016-12-05 | 2019-07-09 | Red Hat, Inc. | Co-locating containers based on source to improve compute density |
US10809920B1 (en) * | 2016-12-20 | 2020-10-20 | Amazon Technologies, Inc. | Block store management for remote storage systems |
US10268593B1 (en) | 2016-12-20 | 2019-04-23 | Amazon Technologies, Inc. | Block store managamement using a virtual computing system service |
US11507283B1 (en) | 2016-12-20 | 2022-11-22 | Amazon Technologies, Inc. | Enabling host computer systems to access logical volumes by dynamic updates to data structure rules |
US10921991B1 (en) | 2016-12-20 | 2021-02-16 | Amazon Technologies, Inc. | Rule invalidation for a block store management system |
US11023215B2 (en) | 2016-12-21 | 2021-06-01 | Aon Global Operations Se, Singapore Branch | Methods, systems, and portal for accelerating aspects of data analytics application development and deployment |
US10572226B2 (en) * | 2016-12-21 | 2020-02-25 | Aon Global Operations Ltd (Singapore Branch) | Methods, systems, and portal using software containers for accelerating aspects of data analytics application development and deployment |
US10423634B1 (en) | 2016-12-27 | 2019-09-24 | EMC IP Holding Company LLC | Temporal queries on secondary storage |
US10353603B1 (en) | 2016-12-27 | 2019-07-16 | EMC IP Holding Company LLC | Storage container based replication services |
US10394599B2 (en) | 2017-01-05 | 2019-08-27 | International Business Machines Corporation | Breaking dependence of distributed service containers |
US10169023B2 (en) | 2017-02-06 | 2019-01-01 | International Business Machines Corporation | Virtual container deployment |
US10909136B1 (en) | 2017-02-08 | 2021-02-02 | Veritas Technologies Llc | Systems and methods for automatically linking data analytics to storage |
US11093297B2 (en) * | 2017-02-08 | 2021-08-17 | Dell Products L.P. | Workload optimization system |
US10360053B1 (en) * | 2017-02-14 | 2019-07-23 | Veritas Technologies Llc | Systems and methods for completing sets of computing tasks |
US10216455B1 (en) * | 2017-02-14 | 2019-02-26 | Veritas Technologies Llc | Systems and methods for performing storage location virtualization |
US10685033B1 (en) | 2017-02-14 | 2020-06-16 | Veritas Technologies Llc | Systems and methods for building an extract, transform, load pipeline |
AU2018201304A1 (en) * | 2017-02-22 | 2018-09-06 | Woodside Energy Technologies Pty Ltd | A model management system |
US10613885B2 (en) * | 2017-02-24 | 2020-04-07 | International Business Machines Corporation | Portable aggregated information calculation and injection for application containers |
US10176106B2 (en) | 2017-02-24 | 2019-01-08 | International Business Machines Corporation | Caching mechanisms for information extracted from application containers including applying a space guard and a time guard |
US10318314B2 (en) * | 2017-02-24 | 2019-06-11 | International Business Machines Corporation | Techniques for managing software container dependencies |
US10691816B2 (en) | 2017-02-24 | 2020-06-23 | International Business Machines Corporation | Applying host access control rules for data used in application containers |
US10606682B2 (en) | 2017-03-09 | 2020-03-31 | International Business Machines Corporation | System and method of collecting serviceability data in containers based cloud infrastructure |
US10606646B1 (en) | 2017-03-13 | 2020-03-31 | Veritas Technologies Llc | Systems and methods for creating a data volume from within a software container and initializing the data volume with data |
US10936549B2 (en) | 2017-03-16 | 2021-03-02 | Cisco Technology, Inc. | Cluster-wide container optimization and storage compression |
US10356048B2 (en) * | 2017-03-17 | 2019-07-16 | Verizon Patent And Licensing Inc. | Container deployment for a network |
US10341198B2 (en) * | 2017-03-17 | 2019-07-02 | Verizon Patent And Licensing Inc. | Configuring a back-end container and a corresponding front-end proxy container on a network device |
US10540191B2 (en) | 2017-03-21 | 2020-01-21 | Veritas Technologies Llc | Systems and methods for using dynamic templates to create application containers |
EP3379413A1 (en) * | 2017-03-21 | 2018-09-26 | Nokia Solutions and Networks Oy | Optimization of a software image layer stack |
US10614117B2 (en) | 2017-03-21 | 2020-04-07 | International Business Machines Corporation | Sharing container images between mulitple hosts through container orchestration |
US20180316547A1 (en) * | 2017-04-27 | 2018-11-01 | Microsoft Technology Licensing, Llc | Single management interface to route metrics and diagnostic logs for cloud resources to cloud storage, streaming and log analytics services |
US10547672B2 (en) | 2017-04-27 | 2020-01-28 | Microsoft Technology Licensing, Llc | Anti-flapping system for autoscaling resources in cloud networks |
KR101826498B1 (ko) * | 2017-05-02 | 2018-02-07 | 나무기술 주식회사 | 클라우드 플랫폼 시스템 |
KR101807806B1 (ko) * | 2017-05-02 | 2017-12-11 | 나무기술 주식회사 | 클라우드 플랫폼에서 어플리케이션을 컨테이너화하는 방법 |
US10387204B2 (en) | 2017-05-12 | 2019-08-20 | International Business Machines Corporation | Resource pooling in a virtualized cloud container environment |
US10922205B2 (en) * | 2017-05-16 | 2021-02-16 | Vmware, Inc. | Monitoring applications running on containers |
US10467046B2 (en) * | 2017-05-30 | 2019-11-05 | Red Hat, Inc. | Fast and greedy scheduling machine based on a distance matrix |
US11100243B2 (en) * | 2017-06-06 | 2021-08-24 | Microsoft Technology Licensing, Llc | Selective persistence of data utilized by software containers |
US11140455B1 (en) | 2017-06-09 | 2021-10-05 | Amazon Technologies, Inc. | Video encoder network sandboxing |
US10650139B2 (en) | 2017-06-12 | 2020-05-12 | Daniel Maurice Lerner | Securing temporal digital communications via authentication and validation for wireless user and access devices with securitized containers |
US10719354B2 (en) | 2017-06-20 | 2020-07-21 | Samsung Electronics Co., Ltd. | Container workload scheduler and methods of scheduling container workloads |
US10909165B2 (en) | 2017-06-20 | 2021-02-02 | Red Hat, Inc. | Sharing filesystems between containers |
US10567359B2 (en) * | 2017-07-18 | 2020-02-18 | International Business Machines Corporation | Cluster of secure execution platforms |
US10466899B2 (en) | 2017-07-28 | 2019-11-05 | Hewlett Packard Enterprise Development Lp | Selecting controllers based on affinity between access devices and storage segments |
US11989194B2 (en) | 2017-07-31 | 2024-05-21 | Splunk Inc. | Addressing memory limits for partition tracking among worker nodes |
US11921672B2 (en) | 2017-07-31 | 2024-03-05 | Splunk Inc. | Query execution at a remote heterogeneous data store of a data fabric service |
US10459769B2 (en) * | 2017-08-04 | 2019-10-29 | Unisys Corporation | Elastic container management system |
US10592315B2 (en) * | 2017-08-28 | 2020-03-17 | General Electric Company | Software container messaging mechanism |
US10691480B2 (en) * | 2017-08-30 | 2020-06-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Apparatus and method for configuring and enabling virtual applications |
US10896182B2 (en) | 2017-09-25 | 2021-01-19 | Splunk Inc. | Multi-partitioning determination for combination operations |
US11151137B2 (en) | 2017-09-25 | 2021-10-19 | Splunk Inc. | Multi-partition operation in combination operations |
JP6612826B2 (ja) * | 2017-09-29 | 2019-11-27 | 株式会社日立製作所 | コンテナ管理装置、コンテナ管理方法、及びコンテナ管理プログラム |
US10599500B2 (en) * | 2017-09-30 | 2020-03-24 | Oracle International Corporation | API registry in a container platform for automatically generating client code libraries |
US10740143B2 (en) | 2017-10-06 | 2020-08-11 | International Business Machines Corporation | Controlling asynchronous tasks |
CN107844371A (zh) * | 2017-10-12 | 2018-03-27 | 北京京东尚科信息技术有限公司 | 任务处理方法、系统及电子设备 |
CN109710397A (zh) * | 2017-10-26 | 2019-05-03 | 阿里巴巴集团控股有限公司 | 数据处理方法、装置、存储介质、处理器和系统 |
US10805181B2 (en) | 2017-10-29 | 2020-10-13 | Nicira, Inc. | Service operation chaining |
CN112214293B (zh) | 2017-11-08 | 2024-07-16 | 华为云计算技术有限公司 | 一种无服务器架构下业务部署的方法和函数管理平台 |
KR102310515B1 (ko) * | 2017-11-22 | 2021-10-08 | 한국전자기술연구원 | 지능형 컴포넌트를 위한 컨테이너 기반 관리 방법 |
US10956563B2 (en) * | 2017-11-22 | 2021-03-23 | Aqua Security Software, Ltd. | System for securing software containers with embedded agent |
KR102310509B1 (ko) * | 2017-11-22 | 2021-10-08 | 한국전자기술연구원 | 컨테이너 기반 지능형 컴포넌트에 대한 원격 호출 방법 |
US11055134B2 (en) * | 2017-11-30 | 2021-07-06 | International Business Machines Corporation | Performing an action on a composite of software instances |
KR102016238B1 (ko) | 2017-12-05 | 2019-08-29 | 숭실대학교산학협력단 | 도커 컨테이너 관리 시스템 및 방법, 이를 수행하기 위한 기록매체 |
US11030016B2 (en) | 2017-12-07 | 2021-06-08 | International Business Machines Corporation | Computer server application execution scheduling latency reduction |
KR20190070659A (ko) * | 2017-12-13 | 2019-06-21 | 주식회사 넥스클라우드 | 컨테이너 기반의 자원 할당을 지원하는 클라우드 컴퓨팅 장치 및 방법 |
WO2019133326A1 (en) * | 2017-12-27 | 2019-07-04 | Daniel Maurice Lerner | Securing temporal digital communications |
US10607484B2 (en) * | 2017-12-28 | 2020-03-31 | Intel Corporation | Privacy-preserving distributed visual data processing |
US10833955B2 (en) * | 2018-01-03 | 2020-11-10 | International Business Machines Corporation | Dynamic delivery of software functions |
US11023529B2 (en) | 2018-01-04 | 2021-06-01 | Red Hat, Inc. | System and method for generating container image suggestions |
US10997283B2 (en) * | 2018-01-08 | 2021-05-04 | Aqua Security Software, Ltd. | System for securing software containers with encryption and embedded agent |
US10740132B2 (en) | 2018-01-30 | 2020-08-11 | Veritas Technologies Llc | Systems and methods for updating containers |
US11010185B2 (en) * | 2018-01-30 | 2021-05-18 | Vmware, Inc. | Monitoring applications running on containers |
US10956593B2 (en) | 2018-02-15 | 2021-03-23 | International Business Machines Corporation | Sharing of data among containers running on virtualized operating systems |
US10083059B1 (en) | 2018-03-19 | 2018-09-25 | Capital One Services, Llc | Method and system of hydrating of virtual machines |
US10805192B2 (en) | 2018-03-27 | 2020-10-13 | Nicira, Inc. | Detecting failure of layer 2 service using broadcast messages |
CN108920259B (zh) | 2018-03-30 | 2022-06-24 | 华为云计算技术有限公司 | 深度学习作业调度方法、系统和相关设备 |
US10585714B2 (en) | 2018-04-05 | 2020-03-10 | International Business Machines Corporation | Workload management with data access awareness using an ordered list of hosts in a computing cluster |
US10761891B2 (en) | 2018-04-05 | 2020-09-01 | International Business Machines Corporation | Workload management with data access awareness by aggregating file locality information in a computing cluster |
US10768998B2 (en) | 2018-04-05 | 2020-09-08 | International Business Machines Corporation | Workload management with data access awareness in a computing cluster |
US11132293B2 (en) | 2018-04-10 | 2021-09-28 | Red Hat Israel, Ltd. | Intelligent garbage collector for containers |
US20190317825A1 (en) * | 2018-04-16 | 2019-10-17 | Kazuhm, Inc. | System for managing deployment of distributed computing resources |
US11307980B2 (en) | 2018-04-20 | 2022-04-19 | Seagate Technology Llc | Distributed data storage system with passthrough operations |
US10732903B2 (en) | 2018-04-27 | 2020-08-04 | Hewlett Packard Enterprise Development Lp | Storage controller sub-LUN ownership mapping and alignment |
US11334543B1 (en) | 2018-04-30 | 2022-05-17 | Splunk Inc. | Scalable bucket merging for a data intake and query system |
US11169996B2 (en) | 2018-05-15 | 2021-11-09 | Red Hat, Inc. | Query optimizer injection for dynamically provisioned database containers |
US11132324B2 (en) | 2018-06-18 | 2021-09-28 | Seagate Technology, Llc | Data network with container virtualization |
KR102092458B1 (ko) * | 2018-06-19 | 2020-03-23 | 한국과학기술원 | 서버리스 컴퓨팅 환경에서 가상화된 gpu 자원 지원 방법 및 시스템 |
KR102092459B1 (ko) * | 2018-06-20 | 2020-03-23 | 한국과학기술원 | 컨테이너 기반 가상화 환경에서 gpu 메모리 자원 관리 및 스케줄링 방법 및 시스템 |
CN109062658B (zh) * | 2018-06-29 | 2021-06-04 | 优刻得科技股份有限公司 | 实现计算资源服务化的调度方法、装置、介质、设备及系统 |
CN109067840A (zh) * | 2018-06-29 | 2018-12-21 | 优刻得科技股份有限公司 | 人工智能在线服务的方法、系统和存储介质 |
US11263098B2 (en) * | 2018-07-02 | 2022-03-01 | Pivotal Software, Inc. | Database segment load balancer |
CN108874549B (zh) * | 2018-07-19 | 2021-02-02 | 北京百度网讯科技有限公司 | 资源复用方法、装置、终端和计算机可读存储介质 |
JP7037059B2 (ja) * | 2018-07-23 | 2022-03-16 | 日本電信電話株式会社 | リソース管理システム、および、リソース割当プログラム |
CN110764882B (zh) * | 2018-07-25 | 2024-07-16 | 北京京东尚科信息技术有限公司 | 分布式管理方法、分布式管理系统及装置 |
WO2020036482A1 (en) * | 2018-08-15 | 2020-02-20 | Mimos Berhad | System and method for identifying container image and dynamically creating the container image |
US11057273B2 (en) * | 2018-08-22 | 2021-07-06 | Verizon Media Inc. | Decentralized auto-scaling of network architectures |
US11595250B2 (en) | 2018-09-02 | 2023-02-28 | Vmware, Inc. | Service insertion at logical network gateway |
US11070590B2 (en) * | 2018-09-14 | 2021-07-20 | Northrop Grumman Systems Corporation | System and method for secure multitenant operations of a distributed computing cluster |
CN110955501B (zh) * | 2018-09-27 | 2024-06-14 | 北京京东尚科信息技术有限公司 | 服务请求处理方法、装置、电子设备及可读介质 |
US11146474B2 (en) * | 2018-09-28 | 2021-10-12 | Atlassian Pty Ltd. | Systems and methods for testing resilience of a distributed network |
US10860078B2 (en) * | 2018-10-25 | 2020-12-08 | Dell Products, L.P. | Managing power request during cluster operations |
US11210361B2 (en) * | 2018-11-01 | 2021-12-28 | Bank Of Montreal | Systems and methods for generating a snapshot view of virtual infrastructure |
KR102160119B1 (ko) * | 2018-11-07 | 2020-09-25 | 숭실대학교산학협력단 | 도커 컨테이너 로그 분석 프레임워크 장치 및 이를 이용한 특성 분석 방법 |
CN109491762B (zh) * | 2018-11-09 | 2021-07-09 | 网易(杭州)网络有限公司 | 容器状态控制方法及装置、存储介质、电子设备 |
CN109542600B (zh) * | 2018-11-15 | 2020-12-25 | 口碑(上海)信息技术有限公司 | 分布式任务调度系统及方法 |
US11086908B2 (en) | 2018-11-20 | 2021-08-10 | International Business Machines Corporation | Ontology for working with container images |
KR102650976B1 (ko) * | 2018-11-26 | 2024-03-26 | 삼성전자주식회사 | 전자장치 및 그 제어방법 |
KR101992066B1 (ko) * | 2018-11-30 | 2019-06-21 | 건국대학교 산학협력단 | 컨테이너 관리 방법 및 장치 |
US10841153B2 (en) | 2018-12-04 | 2020-11-17 | Bank Of America Corporation | Distributed ledger technology network provisioner |
US10909740B2 (en) * | 2018-12-07 | 2021-02-02 | Intel Corporation | Apparatus and method for processing telemetry data in a virtualized graphics processor |
US10922123B2 (en) * | 2018-12-12 | 2021-02-16 | Microsoft Technology Licensing, Llc | Container migration in computing systems |
CN109918180A (zh) * | 2018-12-14 | 2019-06-21 | 深圳壹账通智能科技有限公司 | 一种任务调度方法、装置、计算机系统及可读存储介质 |
US11579908B2 (en) | 2018-12-18 | 2023-02-14 | Vmware, Inc. | Containerized workload scheduling |
KR102125354B1 (ko) * | 2018-12-19 | 2020-06-22 | 주식회사 와이즈넛 | 마이크로 서비스 아키텍처를 사용하는 스트리밍 빅데이터 처리 모듈 관리를 위한 수퍼바이저 시스템 및 그 방법 |
KR102032521B1 (ko) * | 2018-12-26 | 2019-10-15 | 래블업(주) | 컨테이너 기반의 gpu 가상화 방법 및 시스템 |
US10831399B2 (en) * | 2019-01-28 | 2020-11-10 | EMC IP Holding Company LLC | Method and system for enabling agentless backup and restore operations on a container orchestration platform |
US10810003B2 (en) * | 2019-01-30 | 2020-10-20 | Salesforce.Com, Inc. | Method and system for optimization of container image layering |
US11726758B2 (en) * | 2019-02-07 | 2023-08-15 | Microsoft Technology Licensing, Llc | Efficient scaling of a container-based application in a distributed computing system |
KR102223141B1 (ko) | 2019-02-12 | 2021-03-04 | 성균관대학교산학협력단 | 컨테이너 환경에서의 스토리지 드라이버의 동작 방법 및 스토리지 드라이버 장치 |
US11354148B2 (en) | 2019-02-22 | 2022-06-07 | Vmware, Inc. | Using service data plane for service control plane messaging |
CN109656723A (zh) * | 2019-03-13 | 2019-04-19 | 联想(北京)有限公司 | 容器资源调度方法及装置 |
KR20200109819A (ko) * | 2019-03-14 | 2020-09-23 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
CN110012087B (zh) * | 2019-03-28 | 2022-02-01 | 中国工商银行股份有限公司 | 数据处理系统及数据处理方法 |
CN111752701B (zh) * | 2019-03-29 | 2024-01-26 | 北京数安鑫云信息技术有限公司 | 一种系统集群及其资源调度方法 |
KR102101602B1 (ko) * | 2019-04-04 | 2020-04-17 | 한국전자통신연구원 | 트래픽 관리 장치 및 방법 |
US20200341789A1 (en) * | 2019-04-25 | 2020-10-29 | Vmware, Inc. | Containerized workload scheduling |
WO2020220216A1 (en) | 2019-04-29 | 2020-11-05 | Splunk Inc. | Search time estimate in data intake and query system |
US11715051B1 (en) | 2019-04-30 | 2023-08-01 | Splunk Inc. | Service provider instance recommendations using machine-learned classifications and reconciliation |
US11836505B2 (en) * | 2019-05-07 | 2023-12-05 | Ab Initio Technology Llc | Dynamic distribution of container images |
WO2020230673A1 (ja) * | 2019-05-10 | 2020-11-19 | 日本電気株式会社 | 環境構築支援システム、装置、方法、プログラム |
DE102019112485A1 (de) * | 2019-05-13 | 2020-11-19 | Eberhard-Karls-Universität Tübingen | Verfahren zum selektiven Ausführen eines Containers |
CN110187869B (zh) * | 2019-05-14 | 2020-09-01 | 上海直真君智科技有限公司 | 一种大数据异构存储计算模型间的统一互操作系统及方法 |
CN110262871B (zh) * | 2019-05-17 | 2024-01-23 | 平安科技(深圳)有限公司 | 容器应用的容器实例启停方法、装置、计算机设备及存储介质 |
CN110134519A (zh) * | 2019-05-21 | 2019-08-16 | 中国太平洋保险(集团)股份有限公司 | 一种基于容器平台实现网站管理的控制方法及装置 |
CN110209380B (zh) * | 2019-05-30 | 2020-11-03 | 上海直真君智科技有限公司 | 一种面向大数据异构模型的统一动态元数据处理方法 |
US11093288B2 (en) * | 2019-06-13 | 2021-08-17 | Vmware, Inc. | Systems and methods for cluster resource balancing in a hyper-converged infrastructure |
US10922125B2 (en) | 2019-06-13 | 2021-02-16 | Micro Focus Llc | Capability liveness of containerized services |
CN110333939B (zh) * | 2019-06-17 | 2023-11-14 | 腾讯科技(成都)有限公司 | 任务混合调度方法、装置、调度服务器及资源服务器 |
CN110347476B (zh) * | 2019-06-27 | 2022-03-22 | 苏州浪潮智能科技有限公司 | 一种信息化系统的耗时任务管理方法和装置 |
CN110311973B (zh) * | 2019-06-28 | 2021-06-01 | 东北大学 | 一种面向多租户的影像云服务系统及方法 |
US11150935B2 (en) * | 2019-07-05 | 2021-10-19 | International Business Machines Corporation | Container-based applications |
WO2021006899A1 (en) * | 2019-07-10 | 2021-01-14 | Hewlett-Packard Development Company, L.P. | Executing containers during idle states |
RU2722576C1 (ru) * | 2019-07-23 | 2020-06-01 | Общество с ограниченной ответственностью "РадиоТех" | Способ автоматизированного беспроводного мониторинга наполнения и очистки мусорного контейнера и устройство для его осуществления |
US11669246B2 (en) * | 2019-08-19 | 2023-06-06 | International Business Machines Corporation | Storage allocation enhancement of microservices |
US11669365B1 (en) | 2019-08-26 | 2023-06-06 | Amazon Technologies, Inc. | Task pool for managed compute instances |
CN110580194A (zh) * | 2019-08-29 | 2019-12-17 | 上海仪电(集团)有限公司中央研究院 | 基于内存热插拔技术的容器调度方法及管理节点调度器 |
US11294733B2 (en) * | 2019-09-12 | 2022-04-05 | Pivotal Software, Inc. | Dynamic autoscaler for cloud platform |
CN110764903B (zh) * | 2019-09-19 | 2023-06-16 | 平安科技(深圳)有限公司 | 弹性执行热容器方法、装置、设备和存储介质 |
US11538287B2 (en) | 2019-09-20 | 2022-12-27 | Sonatus, Inc. | System, method, and apparatus for managing vehicle data collection |
CN114651456A (zh) | 2019-09-20 | 2022-06-21 | 桑纳特斯公司 | 用于交通工具外通信控制的系统、方法和装置 |
CN110602253B (zh) * | 2019-09-30 | 2022-04-26 | 新华三大数据技术有限公司 | 一种任务调度方法、装置及系统 |
CN110838939B (zh) * | 2019-10-11 | 2022-04-08 | 许继集团有限公司 | 一种基于轻量级容器的调度方法及边缘物联管理平台 |
US11436033B2 (en) * | 2019-10-11 | 2022-09-06 | International Business Machines Corporation | Scalable virtual memory metadata management |
US11494380B2 (en) | 2019-10-18 | 2022-11-08 | Splunk Inc. | Management of distributed computing framework components in a data fabric service system |
CN110955490A (zh) * | 2019-10-25 | 2020-04-03 | 北京浪潮数据技术有限公司 | 一种资源的异步创建方法、装置、设备及介质 |
US11140218B2 (en) | 2019-10-30 | 2021-10-05 | Vmware, Inc. | Distributed service chain across multiple clouds |
US11475022B2 (en) * | 2019-11-13 | 2022-10-18 | Nutanix, Inc. | System and method for constructing a compound object in a distributed object storage system |
WO2021167659A1 (en) * | 2019-11-14 | 2021-08-26 | Trideum Corporation | Systems and methods of monitoring and controlling remote assets |
KR20210059229A (ko) * | 2019-11-15 | 2021-05-25 | 한국전자기술연구원 | 클라우드 기반 서버리스 플랫폼에서의 실시간성 서비스 제공 방법 |
US11537809B2 (en) | 2019-11-21 | 2022-12-27 | Kyndryl, Inc. | Dynamic container grouping |
CN111078356A (zh) * | 2019-11-22 | 2020-04-28 | 北京达佳互联信息技术有限公司 | Gpu集群资源控制系统、方法、装置、设备及存储介质 |
US11422844B1 (en) | 2019-11-27 | 2022-08-23 | Amazon Technologies, Inc. | Client-specified network interface configuration for serverless container management service |
US11392422B1 (en) * | 2019-11-27 | 2022-07-19 | Amazon Technologies, Inc. | Service-managed containers for container orchestration service |
CN112882827A (zh) | 2019-11-29 | 2021-06-01 | 伊姆西Ip控股有限责任公司 | 用于负载均衡的方法、电子设备和计算机程序产品 |
CN111176830B (zh) * | 2019-12-03 | 2024-04-26 | 先进新星技术(新加坡)控股有限公司 | 信息流的分配方法、装置及服务器系统 |
KR102090911B1 (ko) * | 2019-12-16 | 2020-03-19 | 주식회사 케이비시스 | 컨테이너 기반의 클라우드 서비스 제공 시스템 |
US11334364B2 (en) | 2019-12-16 | 2022-05-17 | Microsoft Technology Licensing, Llc | Layered composite boot device and file system for operating system booting in file system virtualization environments |
WO2021122675A1 (en) * | 2019-12-19 | 2021-06-24 | Koninklijke Philips N.V. | Dynamic personalized platform generation based on on-the-fly requirements |
KR102318863B1 (ko) * | 2019-12-30 | 2021-10-28 | 주식회사 카카오 | 클라우드 서비스를 제공하는 서버의 동작 방법 |
CN111240822B (zh) * | 2020-01-15 | 2023-11-17 | 华为技术有限公司 | 任务调度方法、装置、系统及存储介质 |
US11659061B2 (en) | 2020-01-20 | 2023-05-23 | Vmware, Inc. | Method of adjusting service function chains to improve network performance |
JP7476541B2 (ja) * | 2020-01-28 | 2024-05-01 | コニカミノルタ株式会社 | 情報処理システム、制御装置、周辺装置制御方法および周辺装置制御プログラム |
US11922222B1 (en) | 2020-01-30 | 2024-03-05 | Splunk Inc. | Generating a modified component for a data intake and query system using an isolated execution environment image |
JP7455601B2 (ja) | 2020-02-05 | 2024-03-26 | キヤノン株式会社 | 情報処理装置とその制御方法、及びプログラム |
CN115443637A (zh) * | 2020-03-06 | 2022-12-06 | 桑纳特斯公司 | 用于管理车辆数据收集的系统、方法和装置 |
US11772583B2 (en) | 2020-03-06 | 2023-10-03 | Sonatus, Inc. | System, method, and apparatus for managing vehicle automation |
KR102209044B1 (ko) * | 2020-03-12 | 2021-01-29 | 주식회사 케이비시스 | 클라우드 네이티브 데이터베이스 구조를 갖는 클라우드 시스템 |
US11487571B2 (en) * | 2020-03-30 | 2022-11-01 | Wipro Limited | Method and system for efficient utilization of resources in containers |
US11528219B2 (en) | 2020-04-06 | 2022-12-13 | Vmware, Inc. | Using applied-to field to identify connection-tracking records for different interfaces |
CN111539198B (zh) * | 2020-04-15 | 2023-07-04 | 北京宝兰德软件股份有限公司 | 一种基于Java的表单验证方法及装置 |
US11632294B2 (en) * | 2020-05-19 | 2023-04-18 | Microsoft Technology Licensing, Llc | Configuration techniques for managed host operating systems and containerized applications instantiated thereby |
US11687379B2 (en) * | 2020-05-27 | 2023-06-27 | Red Hat, Inc. | Management of containerized clusters by virtualization systems |
CN113779517A (zh) * | 2020-06-09 | 2021-12-10 | 武汉斗鱼鱼乐网络科技有限公司 | 一种权限获取方法、装置、设备及存储介质 |
CN113821331A (zh) * | 2020-06-18 | 2021-12-21 | 北京字节跳动网络技术有限公司 | 一种服务获取方法、装置、终端设备及介质 |
US11403150B1 (en) | 2020-06-23 | 2022-08-02 | Amazon Technologies, Inc. | Replenishment-aware resource usage management |
US11573816B1 (en) | 2020-06-26 | 2023-02-07 | Amazon Technologies, Inc. | Prefetching and managing container images using cluster manifest |
US11487591B1 (en) * | 2020-06-29 | 2022-11-01 | Amazon Technologies, Inc. | Automatically configuring execution of a containerized application |
US11748161B1 (en) | 2020-06-30 | 2023-09-05 | Stripe, Inc. | Cluster job submission |
CN111813497A (zh) * | 2020-06-30 | 2020-10-23 | 绿盟科技集团股份有限公司 | 一种容器环境异常检测的方法、装置、介质及计算机设备 |
CN111970240B (zh) * | 2020-07-10 | 2023-03-24 | 北京金山云网络技术有限公司 | 集群纳管方法、装置及电子设备 |
CN111831450B (zh) * | 2020-07-20 | 2023-07-28 | 北京百度网讯科技有限公司 | 用于分配服务器资源的方法、装置、电子设备及存储介质 |
CN111935110B (zh) * | 2020-07-24 | 2022-05-06 | 北京金山云网络技术有限公司 | 一种对租户访问容器实例的权限的控制方法和装置 |
CN111880899B (zh) * | 2020-07-27 | 2022-08-16 | 山东迪特智联信息科技有限责任公司 | 一种基于云原生架构的大数据流处理方法和装置 |
US11336504B2 (en) | 2020-08-24 | 2022-05-17 | Juniper Networks, Inc. | Intent-based distributed alarm service |
US11474873B2 (en) * | 2020-09-22 | 2022-10-18 | Rockwell Automation Technologies, Inc. | Implementing serverless functions using container orchestration systems and operational technology devices |
US11422871B1 (en) | 2020-09-30 | 2022-08-23 | Amazon Technologies, Inc. | Event archiving and replay |
WO2022071945A1 (en) * | 2020-09-30 | 2022-04-07 | Nokia Technologies Oy | Task responsibility coordination |
US11704313B1 (en) | 2020-10-19 | 2023-07-18 | Splunk Inc. | Parallel branch operation using intermediary nodes |
US11836523B2 (en) | 2020-10-28 | 2023-12-05 | Red Hat, Inc. | Introspection of a containerized application in a runtime environment |
US11256493B1 (en) | 2020-11-03 | 2022-02-22 | Bank Of America Corporation | Container image optimizer |
CN112035221B (zh) * | 2020-11-03 | 2021-01-26 | 江苏苏宁银行股份有限公司 | 一种基于定时调度的PaaS平台无效容器清理方法和系统 |
US11762850B2 (en) | 2020-11-09 | 2023-09-19 | International Business Machines Corporation | Content-aware node selection for container creation |
KR102446717B1 (ko) * | 2020-11-12 | 2022-09-27 | 한국과학기술정보연구원 | 컨테이너 처리 방법, 컨테이너 처리 장치 및 컨테이너 처리 시스템 |
US11740936B2 (en) * | 2020-11-16 | 2023-08-29 | Diamanti, Inc. | Method and system for managing cloud resources |
CN112486513B (zh) * | 2020-11-25 | 2022-08-12 | 湖南麒麟信安科技股份有限公司 | 一种基于容器的集群管理方法及系统 |
US20220171646A1 (en) * | 2020-11-30 | 2022-06-02 | Red Hat, Inc. | Scalable visualization of a containerized application in a multiple-cluster environment |
US11853807B1 (en) | 2020-12-01 | 2023-12-26 | Amazon Technologies, Inc. | Cluster scaling based on task state information |
US11366650B1 (en) * | 2020-12-04 | 2022-06-21 | International Business Machines Corporation | Automatic generation of affinity and anti-affinity rules |
US11941453B2 (en) | 2020-12-08 | 2024-03-26 | International Business Machines Corporation | Containerized computing environments |
US11481254B2 (en) * | 2020-12-14 | 2022-10-25 | Adp, Inc. | Payroll data processing server |
US11611625B2 (en) * | 2020-12-15 | 2023-03-21 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11734043B2 (en) | 2020-12-15 | 2023-08-22 | Vmware, Inc. | Providing stateful services in a scalable manner for machines executing on host computers |
US11995350B2 (en) | 2020-12-23 | 2024-05-28 | Red Hat, Inc. | Prefetching container data in a data storage system |
CN112698914B (zh) * | 2020-12-30 | 2022-12-27 | 北京理工大学 | 一种工作流任务容器生成系统及方法 |
CN113010261A (zh) * | 2021-02-20 | 2021-06-22 | 博普乐科技(北京)有限公司 | 一种虚拟编程环境构建方法 |
US11797287B1 (en) | 2021-03-17 | 2023-10-24 | Amazon Technologies, Inc. | Automatically terminating deployment of containerized applications |
CN113342359B (zh) * | 2021-05-13 | 2023-03-24 | 烽火通信科技股份有限公司 | 容器镜像文件智能生成方法、装置、设备及存储介质 |
US20220385532A1 (en) * | 2021-05-26 | 2022-12-01 | Red Hat, Inc. | Adding host systems to existing containerized clusters |
CN113254156B (zh) * | 2021-05-31 | 2024-04-09 | 深信服科技股份有限公司 | 一种容器组部署方法、装置、电子设备及存储介质 |
CN113364706B (zh) * | 2021-06-03 | 2023-01-31 | 上海中通吉网络技术有限公司 | 服务流量集中的方法 |
US11892418B1 (en) | 2021-06-30 | 2024-02-06 | Amazon Technologies, Inc. | Container image inspection and optimization |
US11995466B1 (en) | 2021-06-30 | 2024-05-28 | Amazon Technologies, Inc. | Scaling down computing resource allocations for execution of containerized applications |
US11989586B1 (en) | 2021-06-30 | 2024-05-21 | Amazon Technologies, Inc. | Scaling up computing resource allocations for execution of containerized applications |
US11782764B2 (en) | 2021-07-07 | 2023-10-10 | International Business Machines Corporation | Differentiated workload telemetry |
US11651089B2 (en) * | 2021-07-13 | 2023-05-16 | Graphcore Ltd. | Terminating distributed trusted execution environment via self-isolation |
US11651090B2 (en) * | 2021-07-13 | 2023-05-16 | Graphcore Ltd. | Terminating distributed trusted execution environment via confirmation messages |
CN113467817B (zh) * | 2021-07-14 | 2022-11-15 | 广域铭岛数字科技有限公司 | 一种应用管理方法、系统、介质及电子终端 |
US11947954B2 (en) * | 2021-08-12 | 2024-04-02 | Qnap Systems, Inc. | Electronic apparatus adapted for container and software updating method for running container system |
JP7496807B2 (ja) | 2021-09-28 | 2024-06-07 | Kddi株式会社 | コンテナ実行基盤におけるコンテナネットワーク方式最適化方法およびシステム |
US20230229475A1 (en) * | 2022-01-19 | 2023-07-20 | Vmware, Inc. | Leader selection and revocation for tasks in a virtualized computing system |
CN114615340B (zh) * | 2022-03-08 | 2023-10-20 | 抖音视界有限公司 | 一种请求处理方法、装置、计算机设备和存储装置 |
US11765098B1 (en) * | 2022-03-22 | 2023-09-19 | Amazon Technologies, Inc. | Customized cross-premise resource selection for containerized applications |
US11914637B2 (en) * | 2022-07-25 | 2024-02-27 | Sap Se | Image scaling cloud database |
WO2024123345A1 (en) * | 2022-12-09 | 2024-06-13 | Robin Systems, Inc | Api multiplexing of multiple pod requests |
CN117857158A (zh) * | 2023-12-25 | 2024-04-09 | 慧之安信息技术股份有限公司 | 一种基于容器技术的数据隔离方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040040025A1 (en) * | 2002-06-20 | 2004-02-26 | Pekka Lehtinen | Method and a system for executing application sessions in an electronic device, and an electronic device |
US20060136928A1 (en) * | 2004-12-21 | 2006-06-22 | Crawford Isom L Jr | System and method for associating workload management definitions with computing containers |
US20060168581A1 (en) * | 2005-01-21 | 2006-07-27 | Karl Goger | Software deployment system |
RU2374675C2 (ru) * | 2003-10-14 | 2009-11-27 | Майкрософт Корпорейшн | Системы и способы использования синтезированных команд в виртуальной машине |
RU2502125C2 (ru) * | 2008-01-28 | 2013-12-20 | Майкрософт Корпорейшн | Система и способ описания приложений для обеспечения управляемости и эффективной масштабируемой установки |
Family Cites Families (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5727211A (en) * | 1995-11-09 | 1998-03-10 | Chromatic Research, Inc. | System and method for fast context switching between tasks |
US7007276B1 (en) * | 1999-09-28 | 2006-02-28 | International Business Machines Corporation | Method, system and program products for managing groups of partitions of a computing environment |
US7000230B1 (en) * | 2000-06-21 | 2006-02-14 | Microsoft Corporation | Network-based software extensions |
US7383550B2 (en) * | 2002-12-23 | 2008-06-03 | International Business Machines Corporation | Topology aware grid services scheduler architecture |
US7814491B1 (en) * | 2004-04-14 | 2010-10-12 | Oracle America, Inc. | Method and apparatus for managing system resources using a container model |
US8069443B2 (en) * | 2004-06-29 | 2011-11-29 | Novell, Inc. | Techniques for providing services and establishing processing environments |
US7506338B2 (en) * | 2004-08-30 | 2009-03-17 | International Business Machines Corporation | Method and apparatus for simplifying the deployment and serviceability of commercial software environments |
US8732182B2 (en) | 2004-12-02 | 2014-05-20 | Desktopsites Inc. | System and method for launching a resource in a network |
US20060168575A1 (en) * | 2005-01-21 | 2006-07-27 | Ankur Bhatt | Defining a software deployment |
US7805706B1 (en) * | 2005-06-21 | 2010-09-28 | Unisys Corporation | Process for optimizing software components for an enterprise resource planning (ERP) application SAP on multiprocessor servers |
US20070118657A1 (en) * | 2005-11-22 | 2007-05-24 | Motorola, Inc. | Method and system for sharing podcast information |
US8250559B2 (en) * | 2006-04-12 | 2012-08-21 | Oracle America, Inc. | Supporting per-program classpaths with class sharing in a multi-tasking virtual machine |
RU2419826C2 (ru) * | 2006-08-08 | 2011-05-27 | Сименс Энерджи Энд Отомейшн, Инк. | Устройства, системы и способы, относящиеся к plc |
US8621030B2 (en) * | 2006-09-28 | 2013-12-31 | Intel Corporation | Techniques to copy an operating system |
US8752059B2 (en) * | 2007-03-27 | 2014-06-10 | International Business Machines Corporation | Computer data processing capacity planning using dependency relationships from a configuration management database |
US8219987B1 (en) * | 2007-08-24 | 2012-07-10 | Vmware, Inc. | Optimized virtual machine specification for provisioning application specific runtime environment |
US8156502B1 (en) | 2007-06-08 | 2012-04-10 | Hewlett-Packard Development Company, L.P. | Computer resource allocation as a function of demand type |
US20090100435A1 (en) * | 2007-10-11 | 2009-04-16 | Microsoft Corporation | Hierarchical reservation resource scheduling infrastructure |
US8935692B2 (en) | 2008-05-22 | 2015-01-13 | Red Hat, Inc. | Self-management of virtual machines in cloud-based networks |
US20100153941A1 (en) * | 2008-12-12 | 2010-06-17 | Lazar Borissov | Flexible content update via deployment order template |
US9529636B2 (en) * | 2009-03-26 | 2016-12-27 | Microsoft Technology Licensing, Llc | System and method for adjusting guest memory allocation based on memory pressure in virtual NUMA nodes of a virtual machine |
US8627426B2 (en) * | 2010-04-26 | 2014-01-07 | Vmware, Inc. | Cloud platform architecture |
US8412810B1 (en) | 2010-07-02 | 2013-04-02 | Adobe Systems Incorporated | Provisioning and managing a cluster deployed on a cloud |
US8621069B1 (en) * | 2010-09-03 | 2013-12-31 | Adobe Systems Incorporated | Provisioning a computing application executing on a cloud to a client device |
US8661120B2 (en) * | 2010-09-21 | 2014-02-25 | Amazon Technologies, Inc. | Methods and systems for dynamically managing requests for computing capacity |
US8484353B1 (en) * | 2010-09-28 | 2013-07-09 | Amazon Technologies, Inc. | Resource placement templates for virtual networks |
US9471384B2 (en) * | 2012-03-16 | 2016-10-18 | Rackspace Us, Inc. | Method and system for utilizing spare cloud resources |
US9552215B2 (en) | 2011-03-08 | 2017-01-24 | Rackspace Us, Inc. | Method and system for transferring a virtual machine |
US9015710B2 (en) * | 2011-04-12 | 2015-04-21 | Pivotal Software, Inc. | Deployment system for multi-node applications |
CN103649910A (zh) | 2011-07-11 | 2014-03-19 | 惠普发展公司,有限责任合伙企业 | 虚拟机放置 |
US8788855B2 (en) * | 2011-09-23 | 2014-07-22 | Microsoft Corporation | Cluster computational capacity level switching based on demand prediction and stability constraint and power consumption management |
CN102439564B (zh) * | 2011-10-24 | 2014-03-26 | 华为技术有限公司 | 在Linux容器中启动应用程序的方法和系统 |
US9003141B2 (en) | 2011-11-14 | 2015-04-07 | Ca, Inc. | Enhanced software application platform |
US8930542B2 (en) * | 2012-01-23 | 2015-01-06 | International Business Machines Corporation | Dynamically building a set of compute nodes to host the user's workload |
US9720668B2 (en) | 2012-02-29 | 2017-08-01 | Red Hat, Inc. | Creating and maintaining multi-tenant applications in a platform-as-a-service (PaaS) environment of a cloud computing system |
KR101781063B1 (ko) * | 2012-04-12 | 2017-09-22 | 한국전자통신연구원 | 동적 자원 관리를 위한 2단계 자원 관리 방법 및 장치 |
US8843935B2 (en) * | 2012-05-03 | 2014-09-23 | Vmware, Inc. | Automatically changing a pre-selected datastore associated with a requested host for a virtual machine deployment based on resource availability during deployment of the virtual machine |
SG11201501987UA (en) * | 2012-09-20 | 2015-04-29 | Amazon Tech Inc | Automated profiling of resource usage |
US20140173618A1 (en) * | 2012-10-14 | 2014-06-19 | Xplenty Ltd. | System and method for management of big data sets |
KR101540631B1 (ko) * | 2012-12-28 | 2015-07-30 | 삼성에스디에스 주식회사 | 가상 클러스터의 동적 확장 시스템, 방법 및 그 프로그램이 저장된 기록매체 |
US9703584B2 (en) | 2013-01-08 | 2017-07-11 | Commvault Systems, Inc. | Virtual server agent load balancing |
US10552774B2 (en) | 2013-02-11 | 2020-02-04 | Amazon Technologies, Inc. | Cost-minimizing task scheduler |
CN112134741B (zh) * | 2013-11-25 | 2023-09-05 | 亚马逊科技公司 | 分布式系统中的客户导向的联网限制 |
US9342346B2 (en) * | 2014-07-27 | 2016-05-17 | Strato Scale Ltd. | Live migration of virtual machines that use externalized memory pages |
US9715402B2 (en) | 2014-09-30 | 2017-07-25 | Amazon Technologies, Inc. | Dynamic code deployment and versioning |
US9323556B2 (en) | 2014-09-30 | 2016-04-26 | Amazon Technologies, Inc. | Programmatic event detection and message generation for requests to execute program code |
US9256467B1 (en) | 2014-11-11 | 2016-02-09 | Amazon Technologies, Inc. | System for managing and scheduling containers |
US11340943B2 (en) * | 2014-12-04 | 2022-05-24 | Nokia Solutions And Networks Gmbh & Co. Kg | Steering of virtualized resources |
US10609122B1 (en) * | 2015-06-29 | 2020-03-31 | Amazon Technologies, Inc. | Instance backed building or place |
US10261782B2 (en) * | 2015-12-18 | 2019-04-16 | Amazon Technologies, Inc. | Software container registry service |
US10572226B2 (en) * | 2016-12-21 | 2020-02-25 | Aon Global Operations Ltd (Singapore Branch) | Methods, systems, and portal using software containers for accelerating aspects of data analytics application development and deployment |
US10884790B1 (en) * | 2018-05-02 | 2021-01-05 | Amazon Technologies, Inc. | Eliding redundant copying for virtual machine migration |
-
2014
- 2014-11-11 US US14/538,663 patent/US9256467B1/en active Active
-
2015
- 2015-11-10 KR KR1020197005048A patent/KR102042988B1/ko active IP Right Grant
- 2015-11-10 SG SG10201913839VA patent/SG10201913839VA/en unknown
- 2015-11-10 EP EP15804248.1A patent/EP3218808A1/en not_active Withdrawn
- 2015-11-10 JP JP2017524393A patent/JP6522750B2/ja active Active
- 2015-11-10 AU AU2015346530A patent/AU2015346530C1/en active Active
- 2015-11-10 RU RU2018130629A patent/RU2704734C2/ru active
- 2015-11-10 RU RU2017116433A patent/RU2666475C1/ru active
- 2015-11-10 WO PCT/US2015/059983 patent/WO2016077367A1/en active Application Filing
- 2015-11-10 CN CN201580061134.7A patent/CN107111519A/zh active Pending
- 2015-11-10 KR KR1020177015815A patent/KR101952573B1/ko active IP Right Grant
- 2015-11-10 SG SG11201703680WA patent/SG11201703680WA/en unknown
-
2016
- 2016-01-26 US US15/007,113 patent/US9996380B2/en active Active
-
2018
- 2018-06-08 US US16/004,050 patent/US10838756B2/en active Active
-
2019
- 2019-04-24 JP JP2019082701A patent/JP6856696B2/ja active Active
- 2019-07-04 AU AU2019204805A patent/AU2019204805B2/en active Active
- 2019-10-03 RU RU2019131233A patent/RU2751576C2/ru active
-
2020
- 2020-06-05 US US16/894,395 patent/US11314541B2/en active Active
- 2020-12-16 AU AU2020289775A patent/AU2020289775B2/en active Active
-
2022
- 2022-04-25 US US17/728,830 patent/US11669362B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040040025A1 (en) * | 2002-06-20 | 2004-02-26 | Pekka Lehtinen | Method and a system for executing application sessions in an electronic device, and an electronic device |
RU2374675C2 (ru) * | 2003-10-14 | 2009-11-27 | Майкрософт Корпорейшн | Системы и способы использования синтезированных команд в виртуальной машине |
US20060136928A1 (en) * | 2004-12-21 | 2006-06-22 | Crawford Isom L Jr | System and method for associating workload management definitions with computing containers |
US20060168581A1 (en) * | 2005-01-21 | 2006-07-27 | Karl Goger | Software deployment system |
RU2502125C2 (ru) * | 2008-01-28 | 2013-12-20 | Майкрософт Корпорейшн | Система и способ описания приложений для обеспечения управляемости и эффективной масштабируемой установки |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2704734C2 (ru) | Система управления и диспетчеризации контейнеров | |
US10979436B2 (en) | Versatile autoscaling for containers | |
US10609080B2 (en) | Providing fine-grained access remote command execution for virtual machine instances in a distributed computing environment | |
US10459764B2 (en) | Stateless instance backed mobile devices | |
US11689422B1 (en) | Standby instances for auto-scaling groups | |
US20160323197A1 (en) | Background processes in update load balancers of an auto scaling group | |
US10341426B2 (en) | Managing load balancers associated with auto-scaling groups | |
KR101810755B1 (ko) | 액세스 제어를 위한 자유형식 메타데이터의 사용 | |
US20160323188A1 (en) | Managing state for updates to load balancers of an auto scaling group | |
WO2017200878A1 (en) | Versatile autoscaling | |
US10931741B1 (en) | Usage-sensitive computing instance management |