СПОСОБ И СИСТЕМА АВТОМАТИЗИРОВАННОЙ МИГРАЦИИ ИНФОРМАЦИОННОЙ ИНФРАСТРУКТУРЫ ПРЕДПРИЯТИЯ В ОБЛАЧНЫЙ СЕРВИС
METHOD AND SYSTEM FOR AUTOMATED MIGRATION OF INFORMATION INFRASTRUCTURE OF AN ENTERPRISE TO A CLOUD SERVICE

ОБЛАСТЬ ТЕХНИКИ
[1] Настоящее техническое решение, в общем, относится к так называемым облачным технологиям, т.е. к технологиям распределенной обработки данных, а именно к способу переноса какой-либо ИТ-инфраструктуры в облачный сервис.
УРОВЕНЬ ТЕХНИКИ
[2] Облачные вычисления (англ. cloud computing) - модель обеспечения удобного сетевого доступа по требованию к некоторому общему фонду конфигурируемых вычислительных ресурсов (например, сетям передачи данных, серверам, устройствам хранения данных, приложениям и сервисам - как вместе, так и по отдельности), которые могут быть оперативно предоставлены и освобождены с минимальными эксплуатационными затратами или обращениями к провайдеру.
[3] Потребители облачных вычислений могут значительно уменьшить расходы на инфраструктуру информационных технологий (в краткосрочном и среднесрочном планах) и гибко реагировать на изменения вычислительных потребностей, используя свойства эластичных вычислений (англ. elastic computing) облачных услуг.
[4] С момента появления в 2006 году концепция глубоко проникает в различные ИТ-сферы и занимает все более и более весомую роль в практике: по оценке IDC, рынок публичных облачных вычислений уже к 2009 году составил 17 млрд $ - около 5% от всего рынка информационных технологий, а в 2014 году суммарные затраты организаций на инфраструктуру и услуги, связанные с облачными вычислениями, оцениваются почти в 175 млрд. [5] Как указывается в статье «Миграция в облака» (https://habr.com/ru/company/datafort/blog/462537/) - использование облачных сервисов - это избавление от значительной части собственной ИТ-инфраструктуры, сокращение затрат на ее администрирование и обслуживание, гибкость и способность справляться с пиковыми нагрузками. Сегодня востребованные рынком облачные решения продвигаются большим количеством вендоров: считается, что за облачными технологиями будущее. [6] Можно найти немало кейсов, в том числе и российских, демонстрирующих успешную миграцию ИТ-инфраструктуры в облако провайдера. Компании используют облако в качестве дополнительной площадки для некритичных сервисов, как среду разработки и тестирования ПО (PaaS), либо полностью переносят ИТ-инфраструктуру в облако (по модели IaaS).
[7] Сценарии использования облаков становятся все сложнее, компании все чаще переносят в них критичные системы и сервисы. На облачную платформу нередко переезжают организации с сезонными всплесками активности, либо те, кто ожидает быстрого роста клиентской базы. Это помогает им справляться с пиковыми нагрузками и масштабировать используемые ресурсы. Также в облака мигрируют территориально распределенные компании (например, крупные торговые сети) с собственным ЦОД, крупные компании, которым трудно управлять своим разросшимся ИТ-парком, либо компании сегмента SMB, где ресурсов недостаточно для покупки и содержания серверов и СХД. А начинающим компаниям и новым направлениям бизнеса аренда мощностей ИТ позволяет быстро стартовать.
[8] Предприятия перемещают рабочие нагрузки в облако по разным причинам, будь то ликвидация центров обработки данных, миграция унаследованных рабочих нагрузок или создание и запуск приложений с высокой производительностью в более гибкой среде. Работа традиционных и изначально облачных рабочих приложений в облаке требует стабильно высокой производительности и надежности во всем стеке. [9] Для многих организаций, еще не использующих возможности облачных технологий, важнейшим вопросом становится «миграция в облака» - подготовка к переносу ИТ-инфраструктуры компании в виртуальное пространство с целью повышения качества сервисов и снижения затрат на эксплуатацию. Какие шаги для этого необходимы? Миграция включает разработку плана, развертывание инфраструктуры в облаке, перенос данных, тестирование инфраструктуры и запуск сервисов.
[10] Из уровня техники известно решение, описанное в US 2012/054344 (10.09.2012) "Механизм координации для выбора облака", где описан только способ автоматического выбора между публичными облачными сервисами на основе набора критериев, определенных администраторами. [11] Использование оценки уровня зрелости организации для рекомендаций актуально для многих областей и организаций. Например, в US 8407078B1 (19.01.2010) "Method of and system for managing projects, programs and portfolios throughout the project lifecycle" описывается список проектных/архитектурных активов, влияющий на принятие решений по управлению проектом. В этом списке значатся два важных документа "Maturity Assessment and Design Toolkit" (уровень зрелости и система проектирования), "Maturity model" (модель зрелости), которые используются для формирования системы документооборота. Однако, здесь не описаны шаги автоматизации (организационной стороны и автоматизации разворачивания сред и инструментов) при миграции в облачный сервис.[12] Также известно решение, описанное в TWI498750B (24.06.2013) "Method and system of intelligent cloud migration", где описывается оптимизация очередности задач миграции (перенос баз данных, серверов, хранения данных), но не раскрыты оптимизация организационных и технических задач для изменения уровня зрелости организации, которые являются критически важными при миграции в облачный сервис.
[13] В US 10726366 B2 (14.04.2015) "Scheduling and simulation system" описана система оптимизации и эмулирования задач миграции для составление оптимального расписания миграционного процесса, но не включен первоначальный этап подготовки организации к миграции и нет средств автоматизации задач.
[14] Методы миграции приложений используются различными облачными провайдерами, такими как IBM (IBM Garage methodology), Amazon Web Services (в рамках архитектурного центра - AWS Prescriptive Guidance), Google (Cloud Adoption Method). Данные системы и методы характеризуют общие подходы и сочетают в себе как технические, так и организационные действия для миграции в облачный сервис. Такие подходы не автоматизированы, абстрактны и подвержены влиянию человеческого фактора. Для того, чтобы миграция в облачный сервис прошла успешно, необходима оптимальная последовательность действий по изменению уровня зрелости организации для соответствия современным облачным подходам и автоматизация создания необходимых сред и инструментов.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
[15] Данное техническое решение направлено на устранение недостатков, присущих существующим решениям, известным из уровня техники. [16] Решаемой технической проблемой в данном техническом решении являются достижение оптимальной последовательности действий по изменению уровня зрелости организации для соответствия современным подходам облачных технологий и сервисов и автоматизация создания необходимых сред и инструментов, необходимых для миграции информационной инфраструктуры предприятия в облачный сервис.[17] Основным техническим результатом, проявляющимся при решении вышеуказанной проблемы, является ускорение процесса миграции информационной инфраструктуры предприятия в облачный сервис и уменьшение времени простоя сред для запуска и тестирования. [18] Дополнительным техническим результатом, проявляющимся при решении вышеуказанной проблемы, является повышение точности оценки технологического состояния информационной инфраструктуры предприятия. [19] Указанные технические результаты достигаются благодаря осуществлению способа автоматизированной миграции информационной инфраструктуры предприятия в облачный сервис, реализуемого с помощью процессора и устройства хранения данных, включающего следующие шаги: получают данные о текущем состоянии информационной инфраструктуры предприятия; обрабатывают полученные данные и выделяют из них данные, характеризующие уровень зрелости информационной инфраструктуры предприятия; сравнивают выделенные данные, характеризующие уровень зрелости информационной инфраструктуры предприятия, с аналогичными данными других предприятий, прошедших миграцию информационной инфраструктуры предприятия в облачный сервис, и генерируют граф активностей, необходимых для миграции информационной инфраструктуры предприятия в облачный сервис; проводят поиск оптимального пути по сгенерированному графу активностей; запускают полученный оптимальный путь в тестовой среде и оценивают результат выполнения; на основе результатов выполнения запуска полученного оптимального пути по ранее сгенерированному графу активностей генерируют карту миграции информационной инфраструктуры предприятия в облачный сервис; в соответствии с картой миграции информационной инфраструктуры предприятия в облачный сервис формируют, генерируя их исходный код, шаблоны автоматизации миграции информационной инфраструктуры предприятия в облачный сервис; проводят запуск шаблонов автоматизации, которые отвечают за автоматическое разворачивание инструментов и сред, проводящих миграцию информационной инфраструктуры предприятия в облачный сервис.
[20] В одном из частных примеров осуществления способа поиск оптимального пути по сгенерированному графу активностей проводят с использованием алгоритма Дейкстры.
[21] В другом частном примере осуществления способа поиск оптимального пути по сгенерированному графу активностей проводят с использованием алгоритма А*.
[22] В другом частном примере осуществления способа поиск оптимального пути по сгенерированному графу активностей проводят с использованием алгоритма А* с итеративным углублением.
[23] В другом частном примере осуществления способа поиск оптимального пути по сгенерированному графу активностей проводят с использованием алгоритма поиска в ширину.
[24] В другом частном примере осуществления способа поиск оптимального пути по сгенерированному графу активностей проводят с использованием алгоритма поиска по первому наилучшему совпадению.
[25] В другом частном примере осуществления способа поиск оптимального пути по сгенерированному графу активностей проводят с использованием алгоритма Jump Point Search.
[26] В другом частном примере осуществления способа поиск оптимального пути по сгенерированному графу активностей проводят с использованием алгоритма Флойда-Уоршалла.
[27] В другом частном примере осуществления способа шаблоны автоматизации миграции информационной инфраструктуры предприятия в облачный сервис формируются на универсальных мета языках, которые могут быть применимы как к различным публичным, так и к частным облачным сервисам.
[28] Кроме того, заявленный технический результат достигается за счет системы автоматизированной миграции информационной инфраструктуры предприятия в облачный сервис, содержащей: по меньшей мере одно устройство обработки данных; по меньшей мере одно устройство хранения данных; по меньшей мере одну программу, где одна или более программ хранятся на одном или более устройствах хранения данных и исполняются на одном и более устройствах обработки данных, причем одна или более программ обеспечивает выполнение следующих шагов: получают данные о текущем состоянии информационной инфраструктуры предприятия; обрабатывают полученные данные и выделяют из них данные, характеризующие уровень зрелости информационной инфраструктуры предприятия; сравнивают выделенные данные, характеризующие уровень зрелости информационной инфраструктуры предприятия, с аналогичными данными других предприятий, прошедших миграцию информационной инфраструктуры предприятия в облачный сервис, и генерируют граф активностей, необходимых для миграции информационной инфраструктуры предприятия в облачный сервис; проводят поиск оптимального пути по сгенерированному графу активностей; запускают полученный оптимальный путь в тестовой среде и оценивают результат выполнения; на основе результатов выполнения запуска полученного оптимального пути по ранее сгенерированному графу активностей генерируют карту миграции информационной инфраструктуры предприятия в облачный сервис; в соответствии с картой миграции информационной инфраструктуры предприятия в облачный сервис формируют, генерируя их исходный код, шаблоны автоматизации миграции информационной инфраструктуры предприятия в облачный сервис; проводят запуск шаблонов автоматизации, которые отвечают за автоматическое разворачивание инструментов и сред, проводящих миграцию информационной инфраструктуры предприятия в облачный сервис.
[29] В одном из частных примеров осуществления системы поиск оптимального пути по сгенерированному графу активностей проводят с использованием алгоритма Дейкстры.
[30] В другом частном примере осуществления системы поиск оптимального пути по сгенерированному графу активностей проводят с использованием алгоритма А*.
[31] В другом частном примере осуществления системы поиск оптимального пути по сгенерированному графу активностей проводят с использованием алгоритма А* с итеративным углублением.
[32] В другом частном примере осуществления системы поиск оптимального пути по сгенерированному графу активностей проводят с использованием алгоритма поиска в ширину.
[33] В другом частном примере осуществления системы поиск оптимального пути по сгенерированному графу активностей проводят с использованием алгоритма поиска по первому наилучшему совпадению.
[34] В другом частном примере осуществления системы поиск оптимального пути по сгенерированному графу активностей проводят с использованием алгоритма Jump Point Search.
[35] В другом частном примере осуществления системы поиск оптимального пути по сгенерированному графу активностей проводят с использованием алгоритма Флойда-Уоршалла.
[36] В другом частном примере осуществления системы шаблоны автоматизации миграции информационной инфраструктуры предприятия в облачный сервис формируются на универсальных мета языках, которые могут быть применимы как к различным публичным, так и к частным облачным сервисам.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[37] Признаки и преимущества настоящего технического решения станут очевидными из приводимого ниже подробного описания и прилагаемых чертежей, на которых:
[38] Фиг. 1 иллюстрирует блок-схему одного из возможных вариантов реализации способа автоматизированной миграции информационной инфраструктуры предприятия в облачный сервис.
[39] Фиг. 2 иллюстрирует пример тепловой карты уровня зрелости информационной инфраструктуры предприятия.
[40] Фиг. 3 иллюстрирует схематичное представление графовой задачи.
[41] Фиг. 4 иллюстрирует пример текущей и целевой паутины уровня зрелости информационной инфраструктуры предприятия.
[42] Фиг. 5 иллюстрирует компонентный состав частной реализации описываемого технического решения.
[43] Фиг. 6 иллюстрирует очередность действий при работе с системой в частном варианте реализации описываемого технического решения.
[44] Фиг. 7 иллюстрирует механизм сравнения текущего и целевого состояния для последующего определения организационных и технических действий необходимых для количественного изменения показателей критериев уровня зрелости информационной инфраструктуры предприятия.
[45] Фиг. 8 иллюстрирует пример очередности запуска автоматизации в зависимости от достижения определенных этапов дорожной карты.
[46] Фиг. 9 иллюстрирует систему в общем виде для реализации заявленного способа.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[47] Ниже будут описаны термины и понятия, необходимые для реализации настоящего технического решения.
[48] Граф - математическая абстракция реальной системы любой природы, объекты которой обладают парными связями. Граф как математический объект есть совокупность двух множеств - множества самих объектов, называемого множеством вершин, и множества их парных связей, называемого множеством ребер. Элемент множества ребер есть пара элементов множества вершин. Графы находят широкое применение в современной науке и технике. Они используются и в естественных науках (физике и химии), и в социальных науках (например, социологии), но наибольших масштабов применение графов получило в информатике и сетевых технологиях. В качестве простейшего примера из жизни можно привести схему перелетов определенной авиакомпании, которая моделируется графом, где вершинами графа являются города, а ребрами - рейсы, соединяющие пары городов. Дерево каталогов в компьютере также является графом: диски, папки и файлы являются вершинами, а ребра показывают вложенность файлов и папок в папки и диски.
[49] Terraform - это инструмент от компании Hashicorp, помогающий декларативно управлять инфраструктурой. В данном случае не приходится вручную создавать инстансы, сети и т.д. в консоли вашего облачного провайдера; достаточно написать конфигурацию, в которой будет изложено, как вы видите вашу будущую инфраструктуру. Такая конфигурация создается в человеко-читаемом текстовом формате. Если вы хотите изменить вашу инфраструктуру, то редактируете конфигурацию и запускаете terraform apply. Terraform направит вызовы API к вашему облачному провайдеру, чтобы привести инфраструктуру в соответствие с конфигурацией, указанной в этом файле. Если перенести управление инфраструктурой в текстовые файлы, то открывается возможность вооружиться всеми излюбленными инструментами для управления исходным кодом и процессами, после чего переориентируем их для работы с инфраструктурой. Теперь инфраструктура подчиняется системам контроля версий, точно, как исходный код, ее можно точно так же рецензировать или откатывать к более раннему состоянию, если что-нибудь пойдет неправильно.
[50] Заявленное техническое решение может выполняться, например системой, машиночитаемым носителем, сервером и т.д. В данном техническом решении под системой подразумевается, в том числе компьютерная система, ЭВМ (электронно-вычислительная машина), ЧПУ (числовое программное управление), ПЛК (программируемый логический контроллер), компьютеризированные системы управления и любые другие устройства, способные выполнять заданную, четко определенную последовательность операций (действий, инструкций).
[51] Под устройством обработки команд подразумевается электронный блок либо интегральная схема (микропроцессор), исполняющая машинные инструкции (программы).
[52] Устройство обработки команд считывает и выполняет машинные инструкции (программы) с одного или более устройства хранения данных, например таких устройств, как оперативно запоминающие устройства (ОЗУ) и/или постоянные запоминающие устройства (ПЗУ). В качестве ПЗУ могут выступать, но, не ограничиваясь, жесткие диски (HDD), флеш-память, твердотельные накопители (SSD), оптические носители данных (CD, DVD, BD, MD и т.п.) и др.
[53] Программа - последовательность инструкций, предназначенных для исполнения устройством управления вычислительной машины или устройством обработки команд.
[54] Термин «инструкции», используемый в этой заявке, может относиться, в общем, к программным инструкциям или программным командам, которые написаны на заданном языке программирования для осуществления конкретной функции, такой как, например, получение и обработка данных, формирование профиля пользователя, прием и передача сигналов, анализ принятых данных, идентификация пользователя и т.п.Инструкции могут быть осуществлены множеством способов, включающих в себя, например, объектно-ориентированные методы. Например, инструкции могут быть реализованы, посредством языка программирования С++, Java, Python, различных библиотек (например, "MFC"; Microsoft Foundation Classes) и т.д. Инструкции, осуществляющие процессы, описанные в этом решении, могут передаваться как по проводным, так и по беспроводным каналам передачи данных, например, Wi-Fi, Bluetooth, USB, WLAN, LAN и т.п.
[55] Представленный способ автоматизированной миграции информационной инфраструктуры предприятия в облачный сервис решает задачи достижения оптимальной последовательности действий по изменению уровня зрелости организации для соответствия современным подходам облачных технологий и сервисов и автоматизации создания необходимых сред и инструментов, необходимых для миграции информационной инфраструктуры предприятия в облачный сервис, за счет последовательного выполнения следующих шагов:
- получают данные о текущем состоянии информационной инфраструктуры предприятия;
- обрабатывают полученные данные и выделяют из них данные, характеризующие уровень зрелости информационной инфраструктуры предприятия;
- сравнивают выделенные данные, характеризующие уровень зрелости информационной инфраструктуры предприятия, с аналогичными данными других предприятий, прошедших миграцию информационной инфраструктуры предприятия в облачный сервис, и генерируют граф активностей, необходимых для миграции информационной инфраструктуры предприятия в облачный сервис;
- проводят поиск оптимального пути по сгенерированному графу активностей;
- запускают полученный оптимальный путь в тестовой среде и оценивают результат выполнения;
- на основе результатов выполнения запуска полученного оптимального пути по ранее сгенерированному графу активностей генерируют карту миграции информационной инфраструктуры предприятия в облачный сервис;
- в соответствии с картой миграции информационной инфраструктуры предприятия в облачный сервис формируют, генерируя их исходный код, шаблоны автоматизации миграции информационной инфраструктуры предприятия в облачный сервис;
- проводят запуск шаблонов автоматизации, которые отвечают за автоматическое разворачивание инструментов и сред, проводящих миграцию информационной инфраструктуры предприятия в облачный сервис.
[56] На Фиг. 1 представлена блок-схема одного из возможных вариантов реализации способа автоматизированной миграции информационной инфраструктуры предприятия в облачный сервис.
[57] Данные о текущем состоянии информационной инфраструктуры предприятия позволяют оценить уровень зрелости информационной инфраструктуры предприятия. Критерии оценки уровня зрелости информационной инфраструктуры предприятия заранее определены и описаны различными облачными провайдерами, такими как IBM (IBM Garage methodology, например: https://www.ibm.com/garage/method/), Amazon Web Services (в рамках архитектурного центра - AWS Prescriptive Guidance), Google (Cloud Adoption Method).
[58] Критерии уровня зрелости информационной инфраструктуры предприятия, оцениваемые при миграции в облачный сервис:
1. Культура:
1. Использование Agile практик;
2. Организация;
3. Взаимодействие;
4. Получение и обработка обратной связи.
2. Мышление:
1. Отслеживание;
2. Планирование;
3. Проектирование;
4. Архитектурные подходы.
3. Исходный код:
1. Сборка;
2. Управление исходным кодом;
3. Практики;
4. Тестирование.
4. Среды запуска:
1. Развертывание;
2. Релиз менеджмент и его автоматизация;
3. Автоматическое тестирование;
4. Управление собранными компонентами.
5. Управление и мониторинг:
1. Промежуточное программное обеспечение;
2. Инфраструктура;
3. Платформа;
4. Интеграция.
6. Непрерывная разработка и развертывание:
1. Средства мониторинга;
2. Использование мониторинга;
3. Система оповещений;
4. Реагирование на оповещения.
7. Обучение:
1. Приоритизация;
2. Анализ;
3. Обратная связь;
4. Требования.
[59] Данные критерии можно выразить в количественных показателях на основе различных автоматизированных систем сбора данных (например, опросники на веб-сайте). Пример собираемых данных из опросника для измерения показателей критериев уровня зрелости информационной инфраструктуры предприятия (Таблица 1):
[60] Список вопросов содержит как вопросы для понимания уровня зрелости информационной инфраструктуры предприятия, так и для определения используемых технологий для формирования шаблонов автоматизации. Множество ответов на вопросы формируют тепловую карту зрелости информационной инфраструктуры предприятия. В качестве примера реализации описываемого технического решения возможно использовать следующую формулу расчетов количественных критериев оценки уровня зрелости информационной инфраструктуры предприятия (Формула 1). Формула 1. Формула расчетов количественных критериев оценки уровня зрелости информационной инфраструктуры предприятия:
где
system
M - зрелость инфраструктуры в рамках конкретной практики;
sp
M - зрелость подпрактики;
b
M - зрелость конкретного уровня;
p
K - коэффициент приоритизации;
i
K - коэффициент уровня влияния.
[61] На основе количественных показателей критериев оценки уровня зрелости информационной инфраструктуры предприятия формируется тепловая карта уровня зрелости информационной инфраструктуры предприятия (пример на Фиг. 2). Данная карта изначально отображает начало графа, и в процессе изменения уровня зрелости информационной инфраструктуры предприятия может происходить многократное измерение оценки уровня зрелости информационной инфраструктуры предприятия и соответственно автоматическое формирование тепловой карты уровня зрелости информационной инфраструктуры предприятия.
[62] Кроме изначальной оценки уровня зрелости информационной инфраструктуры предприятия необходимо учитывать целевые показатели уровня зрелости информационной инфраструктуры предприятия. Целевые показатели уровня зрелости информационной инфраструктуры предприятия зависят от целевой платформы предприятия в облачном сервисе (инфраструктура как сервис, платформа как сервис, приложения как сервис) и от предполагаемой стратегии миграции (один в один, изменение платформы, модернизация и т.д.).
[63] Для изменения количественных показателей критериев уровня зрелости информационной инфраструктуры предприятия определены действия (организационные и технические), необходимые для изменения этого показателя. Данные действия собраны в базы данных с использованием опыта работы с различными организациями и предприятиями при миграции информационной инфраструктуры в публичный или частный облачный сервис.
[64] Пример организационных действий, необходимых для количественного изменения показателей критериев уровня зрелости информационной инфраструктуры предприятия (Таблица 2):
[65] Далее необходимо сгенерировать граф активностей, необходимых для миграции информационной инфраструктуры предприятия в облачный сервис, где есть две вершины графа (начальное и целевое состояние уровня зрелости), остальные вершины графа организационные и технические действия для количественного изменения показателей критериев уровня зрелости информационной инфраструктуры предприятия, а ребра графа - необходимые ресурсы (бюджет и время). Выбирается ресурс - время или бюджет, по которому необходимо получить оптимальный путь для повышения уровня зрелости информационной инфраструктуры предприятия.
[66] В связи с тем, что размер ребер не может быть отрицательным (в любом случае потребуется потратить определенное количество человеко-часов) используется алгоритм Дейкстры. Также возможно использование алгоритмов А*, А* с итеративным углублением, алгоритма поиска в ширину, алгоритма поиска по первому наилучшему совпадению, алгоритма Jump Point Search, алгоритма Флойда-Уоршалла. Алгоритм работает пошагово, на каждом шаге он «посещает» одну вершину, вычисляет расстояние до целевой вершины и выбирает кратчайший путь. Работа алгоритма завершается, когда все вершины посещены. В результате генерируется список оптимальных путей - действий. На Фиг. 3 изображено схематичное представление графовой задачи.
[67] Далее необходимо запустить полученный оптимальный путь в тестовой среде (например, с помощью NetLogo, Anylogic или другого инструментария имитационного моделирования) и оценивают результат выполнения; задача имитатора в данном контексте является симулирование запланированных задач миграции в облачную среду. Имитатор запускает процесс и принимает дорожную карту как вводную информацию, а на выходе формирует оптимальное расписание, на подобии диаграммы Ганта.
[68] В результате получаем карту миграции информационной инфраструктуры предприятия в облачный сервис: оптимальную дорожную карту организационных и технический действий, которые необходимо совершить для достижения целевого уровня зрелости информационной инфраструктуры предприятия и соответствия критериям, при которых миграция в приватный или публичный облачный сервис будет возможной. Также получаем текущую и целевую паутину уровня зрелости информационной инфраструктуры предприятия. Пример изображен на Фиг. 4, где зеленой линией изображена текущая паутина уровня зрелости информационной инфраструктуры предприятия, оранжевой - изображена целевая паутина уровня зрелости информационной инфраструктуры предприятия
[69] В частном варианте реализации описываемого технического решения вышеописанный способ работает на вычислительных ресурсах по клиент-серверной архитектуре и имеет следующий компонентный состав решения, изображенный на Фиг. 5.
[70] Входными данными от пользователя являются:
- заполненный опросник для определения текущего уровня зрелости информационной инфраструктуры предприятия;
- целевой показатель уровня зрелости на основе опросника по целевой платформе и методу миграции;
- ресурсы (бюджетные и временные) на миграцию. Выходными данными после обработки являются:
- тепловая карта и паутинка текущего уровня зрелости информационной инфраструктуры предприятия;
- тепловая карта и паутинка целевого уровня зрелости информационной инфраструктуры предприятия;
- дорожная карта организационных и технических действий, необходимых для количественного изменения показателей критериев уровня зрелости информационной инфраструктуры предприятия;
- шаблоны для разворачивания целевой инфраструктуры.
[71] На диаграмме взаимодействия (Фиг. 6) указана очередность действий при работе с системой в частном варианте реализации описываемого технического решения.
[72] На Фиг. 7 отображен механизм сравнения текущего и целевого состояния для последующего определения организационных и технических действий необходимых для количественного изменения показателей критериев уровня зрелости информационной инфраструктуры предприятия.
[73] Одной из технических задач описанного метода является интеллектуальная система создания технических артефактов в облачном сервисе для сопровождения процесса адаптации организации и подготовки инструментария на этапе планирования и до этапа миграции. В результате работы предыдущих шагов системы прошла генерация дорожной карты с организационными и техническими активностями для процесса изменения уровня зрелости информационной инфраструктуры предприятия. Каждая активность должна сопровождаться определенными инструментами и средами в облачной платформе. В связи с тем, что выполнение дорожной карты может быть растянуто во времени, то нецелесообразно разворачивать и расходовать вычислительные ресурсы сразу по завершению формирования дорожной карты. Описываемый способ подразумевает определенную этапность запуска сред в зависимости от скорости прохождения этапов предприятием. Шаблоны автоматизации формируются в зависимости от текущего уровня зрелости информационной инфраструктуры предприятия, набора технологий, используемых предприятием, целевой платформы миграции и стратегии миграции. Все необходимые данные для выбора необходимых шаблонов получаются на первоначальном этапе опросника пользователя и не требуют дополнительной итерации с пользователем. Шаблоны формируются на универсальных мета языках, которые могут быть применимы как к различным публичным и частным облачным сервисам (например, технология Terraform).
[74] На сегодняшний день Terraform оптимальный вариант для развертывания инфраструктуры в облачном сервисе. Выбор остальных инструментов зависит от текущего состояния инфраструктуры. Среди известных инструментов могут быть: Ansible, Chef, Puppet, Helm, Pulumi, Saltstack, CloudFormation, vCenter Configuration Manager, Google cloud deployment manager, Jenkins, Vagrant, Attune.
[75] В результате работы системы генерируется расписание применения шаблонов автоматизации, которые отвечают за разворачивание следующих инструментов и сред:
- Создание сред непрерывной разработки и непрерывного развертывания (CI/CD);
- Создание систем автоматической проверки кода и правил релевантных для организации\предприятия;
- Создание тестовых сред запуска (IaaS, PaaS, Kubernetes) и создание шаблонов для остальных сред (Stage, Prod);
- Развертывание инструментов мониторинга различных уровней приложений (уровень серверов, уровень сети, уровень операционной системы, уровень среды запуска, уровень виртуализации, уровень контейнеризации и кластеризации, уровень приложения и т.д.);
- Развертывание инструментов протоколирования (уровень серверов, уровень сети, уровень операционной системы, уровень среды запуска, уровень виртруализации, уровень контейнеризации и кластеризации, уровень приложения и т.д.);
- Развертывание инструментов хранения артефактов (Docker images, source code management…);
- Развертывание инструментов управления пользователями и паролями;
- Развертывание инструментов хранения секретов;
- Развертывание инструментов непрерывной проверки безопасности;
- Развертывание инструментов тестирования (в том числе нагрузочного).
Для начала процесса миграции из перечисленного, как минимум, необходимо: создание тестовых сред запуска (IaaS, PaaS, Kubernetes) и создание шаблонов для остальных сред (Stage, Prod)
[76] В качестве примера работы описанной системы приведем следующее: в публичный облачный сервис хочет мигрировать компания, у которой есть свой программный продукт.Обрабатывая данные опросника, было определено, что у компании есть проблемы со сложностью развития и поддержания продукта, и компания выбирает целевой уровень зрелости PaaS и готова на стратегию миграции «Модернизация». На текущем уровне зрелости информационной инфраструктуры предприятию крайне тяжело мигрировать целенаправленно в решение PaaS и требуется изменить уровень зрелости своей информационной инфраструктуры.
[77] Система формирует набор активностей, которые необходимы для достижения определенного уровня зрелости информационной инфраструктуры предприятия. Среди прочих показателей система определяет то, что предприятию необходимо изменить свой уровень критерия «Управление и мониторинг», подпрактику «Инфраструктура».
[78] Далее, используя графовую модель и исторические данные успешно мигрировавших предприятий, получаем дорожную карту, текущую паутинку зрелости информационной инфраструктуры предприятия и целевую паутинку зрелости информационной инфраструктуры предприятия.
[79] Далее приведена выжимка активностей из дорожной карты для критерия «Управление и мониторинг», подпрактики «Инфраструктура»:
- Провести обучение по микросервисной архитектуре (Мышление -Архитектурные подходы);
- Провести обучение по контейнерам и Kubernetes (Мышление -Архитектурные подходы);
- Провести обучение по модернизации монолита в микросервисную архитектуру (Мышление - Архитектурные подходы);
- Установить и настроить Kubernetes кластер (Управление и Мониторинг - Инфраструктура);
- Настроить сеть между виртуальными машинами (созданы на предыдущих этапах);
- Настроить доступ для пользователей (созданы на предыдущих этапах).
[80] Одновременно с отправкой всех артефактов система определяет, что для данных активностей необходим запуск автоматизации. С учетом профиля предприятия (название компании, результатов предыдущих этапов) создается автоматизация развертывания Kubernetes (на языке Terraform - пример ниже далее). Данный скрипт сохраняется в базу данных и запускается только после того, как предприятие информирует о завершении предыдущего этапа («Провести обучение по модернизации монолита в микросервисную архитектуру»),
[81] Пример автоматизации развертывания Kubernetes кластера с настройкой сети:
# Создание и настройка сети (ip адреса, DNS, вторичный DNS)
# Указание метаинформации к кластеру, вместо cce-cluster должно быть название приложения предприятия
23
# Создание и настройка сетевой связности с виртуальными машинами
г
# Создание, настройка и подключение внешнего IP адреса кластера
#Указание конфигурации виртуальных машин используемых кластером, способ авторизации и проекта, к которому относится данный кластер
[82] На Фиг. 8 изображен пример очередности запуска автоматизации в зависимости от достижения определенных этапов дорожной карты. Завершение предыдущего этапа организационных активностей регистрируется в системе и является триггером запуска применения шаблона в облачную инфраструктуру, которая создает блок инструментов и сред, необходимых на следующем этапе организационных и технических изменений.
[83] В общем виде (см. Фиг. 9) система автоматизированной миграции информационной инфраструктуры предприятия в облачный сервис (900) содержит объединенные общей шиной информационного обмена один или несколько процессоров (901), средства памяти, такие как ОЗУ (902) и ПЗУ (303) и интерфейсы ввода/вывода (904).
[84] Процессор (901) (или несколько процессоров, многоядерный процессор и т.п.) может выбираться из ассортимента устройств, широко применяемых в настоящее время, например, таких производителей, как: Intel™, AMD™, Apple™, Samsung Exynos™, MediaTEK™, Qualcomm Snapdragon™ и т.п. Под процессором или одним из используемых процессоров в системе (900) также необходимо учитывать графический процессор, например, GPU NVIDIA с программной моделью, совместимой с CUDA, или Graphcore, тип которых также является пригодным для полного или частичного выполнения способа, а также может применяться для обучения и применения моделей машинного обучения в различных информационных системах.
[85] ОЗУ (902) представляет собой оперативную память и предназначено для хранения исполняемых процессором (901) машиночитаемых инструкций для выполнения необходимых операций по логической обработке данных. ОЗУ (902), как правило, содержит исполняемые инструкции операционной системы и соответствующих программных компонент (приложения, программные модули и т.п.). При этом, в качестве ОЗУ (902) может выступать доступный объем памяти графической карты или графического процессора.
[86] ПЗУ (903) представляет собой одно или более устройств постоянного хранения данных, например, жесткий диск (HDD), твердотельный накопитель данных (SSD), флэш-память (EEPROM, NAND и т.п.), оптические носители информации (CD-R/RW, DVD-R/RW, BlueRay Disc, MD) и др.
[87] Для организации работы компонентов устройства (900) и организации работы внешних подключаемых устройств применяются различные виды интерфейсов В/В (904). Выбор соответствующих интерфейсов зависит от конкретного исполнения вычислительного устройства, которые могут представлять собой, не ограничиваясь: PCI, AGP, PS/2, IrDa, Fire Wire, LPT, COM, SATA, IDE, Lightning, USB (2.0, 3.0, 3.1, micro, mini, type C), TRS/Audio jack (2.5, 3.5, 6.35), HDMI, DVI, VGA, Display Port, RJ45, RS232 и т.п.
[88] Для обеспечения взаимодействия пользователя с устройством (900) применяются различные средства (905) В/В информации, например, клавиатура, дисплей (монитор), сенсорный дисплей, тач-пад, джойстик, манипулятор мышь, световое перо, стилус, сенсорная панель, трекбол, динамики, микрофон, средства дополненной реальности, оптические сенсоры, планшет, световые индикаторы, проектор, камера, средства биометрической идентификации (сканер сетчатки глаза, сканер отпечатков пальцев, модуль распознавания голоса) и т.п.
[89] Средство сетевого взаимодействия (906) обеспечивает передачу данных посредством внутренней или внешней вычислительной сети, например, Интранет, Интернет, ЛВС и т.п. В качестве одного или более средств (906) может использоваться, но не ограничиваться: Ethernet карта, GSM модем, GPRS модем, LTE модем, 5G модем, модуль спутниковой связи, NFC модуль, Bluetooth и/или BLE модуль, Wi-Fi модуль и др.
[90] Конкретный выбор элементов устройства (900) для реализации различных программно-аппаратных архитектурных решений может варьироваться с сохранением обеспечиваемого требуемого функционала. В частности, подобная реализация может быть выполнена с помощью электронных компонент, используемых для создания цифровых интегральных схем. Не ограничиваюсь, могут быть использоваться микросхемы, логика работы которых определяется при изготовлении, или программируемые логические интегральные схемы (ПЛИС), логика работы которых задается посредством программирования. Для программирования используются программаторы и отладочные среды, позволяющие задать желаемую структуру цифрового устройства в виде принципиальной электрической схемы или программы на специальных языках описания аппаратуры: Verilog, VHDL, AHDL и др. Альтернативой ПЛИС являются: программируемые логические контроллеры (ПЛК), базовые матричные кристаллы (БМК), требующие заводского производственного процесса для программирования; ASIC - специализированные заказные большие интегральные схемы (БИС), которые при мелкосерийном и единичном производстве существенно дороже. Таким образом, реализация может быть достигнута стандартными средствами, базирующимися на классических принципах реализации основ вычислительной техники.
[91] Представленные материалы заявки раскрывают предпочтительные примеры реализации технического решения и не должны трактоваться как ограничивающие иные, частные примеры его воплощения, не выходящие за пределы испрашиваемой правовой охраны, которые являются очевидными для специалистов соответствующей области техники.