Методология 'Infrastructure as Code' в эксплуатации ИТ-инфраструктуры

  • Вид работы:
    Статья
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    89,58 Кб
  • Опубликовано:
    2016-12-10
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Методология 'Infrastructure as Code' в эксплуатации ИТ-инфраструктуры














МЕТОДОЛОГИЯ «INFRASTRUCTURE AS CODE» В ЭКСПЛУАТАЦИИ IT-ИНФРАСТРУКТУРЫ

Чинков М.Ю.

Введение

Требования к IT-инфраструктуре, ее производительности и отказоустойчивости растут одновременно растут с потребностями бизнеса. Это происходит как в сфере целевой разработки программного обеспечения (приложения под мобильные платформы и веб), так и в больших корпорациях, инфраструктуру которых принято называть Enterprise-системами. Количество как физических, так и виртуальных серверов стремительно растет и проблема обслуживания и эксплуатации инфраструктуры заметно усложняется. Ручные процессы становятся еще более рутинными, работа по системному администрированию становится более нудной и менее продуктивной, в поддерживаемых сервисах возникает все больше проблем и все меньше времени остается на их решение.

Данную проблему можно искоренить, внедрив в процесс эксплуатации инфраструктуры методологии «Infrastructure as Code» (IAC). Данная методология рассматривает управление IT-инфраструктурой посредством написания программного кода, пригодного для машинной обработки вместо стандартной ручной конфигурации.

1.      Основная концепция методологии «Infrastructure as Code»

Данная методология предполагает базирование целевой инфраструктуре на облачных вычислениях (cloud computing), где несколько серверов связаны в единый кластер с возможностью быстрого развертывания и миграции на другие аппаратные ресурсы. Это могут быть не только облачные провайдеры, такие, как Amazon, Google и Microsoft, но и инфраструктура локального датацентра, в которой используются полноценные системы виртуализации (VMware vSphere, Openstack). Также принцип «Infrastructure as Code» рассматривает гибкое управление программным кодом с помощью системы контроля версий (CVS). Данная система позволяет разбивать конфигурацию инфраструктуры на несколько версий и дает возможность быстрого отката изменений путем возвращения на старую версию. Наиболее популярной CVS на данный момент является система контроля версий Git.

Данный подход в управлении крупными IT-системами имеет несколько преимуществ:

)        Возможность быстрого масштабирования инфраструктуры, позволяя не отвлекаться на технические детали, сконцентрировавшись на вопросах проектирования существующей архитектуры;

)        Гарантия надежности и консистентности управляемой инфраструктуры, идентичность конфигурации ПО на всех поддерживаемых серверах;

)        Сокращение временных затрат на эксплуатацию инфраструктуры, повышение продуктивности администрирования, тем самым принося огромный вклад в развитие целевой организации;

)        Снижение вероятности ошибки и отказа в инфраструктуре посредством подавления влияния человеческого фактора;

)        Отсутствие необходимости набора дополнительной рабочей силы для управления инфраструктуры, тем самым сокращая финансовые расходы на поддержку целевого сервиса.

2.      Использование систем управления конфигурации

Наболевшей проблемой является управление парком серверов инфраструктуры, а именно настройка и конфигурация множества экземпляров операционных систем. Возникают ситуации, когда необходимо применять одни и те же настройки на десятках или даже сотнях систем, на которых работает одно и то же программное обеспечение.

Данная проблема рассматривается системами управления конфигурации (CM). Подобные системы позволяют описать программным кодом общее состояние систем, находящихся в едином кластере. В качестве программного кода выступают DSL-языки - доменно-специфичные языки программирования, применяемые в узком кругу задач.

Наиболее популярным примером является система управления конфигурации Ansible, позволяющая описать конфигурацию операционных систем на языке, доступном даже для тех, кто не имеет базового уровня компетенции в информационных технологиях. На рисунке 1 показан запуск Ansible для конфигурации утилиты Filebeat на нескольких серверах одновременно.

Рисунок 1 - запуск системы управления конфигурацией Ansible

Несмотря на решение проблемы конфигурации операционных систем, проблема низкоуровневой настройки серверов по-прежнему остается открытой. В системе, основанной на облачных вычислениях, постоянно возникает потребность в создании виртуальных машин. Данная процедура в свою очередь является простой, однако требует ручной конфигурации и ожидания востребованных ресурсов, что занимает достаточно много времени, отведенного на управление инфраструктурой. Дополнительно необходимо учитывать потребность в формировании окружения виртуализации, настраивая такие ресурсы, как хранилища данных и сети доставки контента, сетевые шлюзы и подсети и т.д..

В данном вопросе наиболее популярным решением на практике является использование системы управления конфигурации Terraform. Данная система представляет облачную инфраструктуру в виде списка ресурсов, связанных друг с другом и сгруппированных на несколько модулей, соответствующих предметной области ресурса. На рисунке 2 показан результат запуска системы Terraform для проверки идентичности состояния ресурсов инфраструктуры описанному плану.

Рисунок 2 - запуск системы управления конфигурацией Terraform

3.      Роль программирования в эксплуатации IT-инфраструктуры

Пропуская вопросы управления системой виртуализации и программным обеспечением, в процессе эксплуатации IT-инфраструктуры по-прежнему остается проблема решения задач, имеющих итеративный характер. В каждой инфраструктуре существует перечень процедур, которые постоянно необходимо повторять, и чаще всего повторять несколько раз, работая с несколькими ресурсами. Усиливается влияние человеческого фактора на состояние инфраструктуры, увеличиваются временные затраты специалиста на решение задач.

Данную проблему можно решить посредством реализации полноценного парка программных скриптов, управляемых системой контроля версий. Реализуемый программный код позволяет проводить одни и те же операции несколько раз с идентичным результатом, сокращая время на их выполнения и освобождая умственные ресурсы специалиста для более полезной информации. В данном случае парк программных скриптов может содержать реализации на нескольких языках программирования. Однако на данный момент в системном администрировании возникает тенденция к разработке на скриптовых языках программирования. Среди них находятся как языки командной оболочки операционной системы (Bash, Powershell), так и высокоуровневые языки, описывающие логику операций в виде сценариев (Python, Ruby, Perl).

Заключение

Все вышеперечисленные инструменты, реализующие методологию «Infrastructure as Code», успешно внедрены на практике. Целевой инфраструктурой являлась инфраструктура веб-сервиса, состоящего из нескольких небольших сервисов, работающих на отдельных машинах. Также необходимо тот факт, что инфраструктура основана на облачных вычислениях, базируясь на ресурсах провайдера Amazon Web Services. Результатом внедрения описываемого подхода можно считать отсутствие потребности в решении задач посредством рутинных операций, а также декларативное описание работы инфраструктуры и безболезненная смена участников проекта веб-приложения.

Таким образом, в данной статье описана проблема рутины как одна из наиболее актуальных проблем в эксплуатации современной IT-инфраструктуры. Также в статье наиболее подробно рассмотрено одно из решений проблемы в виде внедрения в рабочий процесс методологии «Infrastructure as Code». В частности, описано применение на практике инструментов, позволяющих описывать конфигурацию, впоследствии запускаемую для машинной обработки.

автоматизация управление сервер системный

Литература

1. Morris K. Infrastructure as Code: Managing Servers in the Cloud [Текст] // - 2016.

. Limoncelli T. The Practice of Cloud System Administration: Designing and Operating Large Distributed Systems, Volume 2 [Текст] // - 2015. - С. 243-275.

. Немет Э., Снайдер Г., Хейн Т.Р., Уэйли Б. Unix и Linux. Руководство системного администратора [Текст] // Вильямс. - 2012. - С. 1157-1180.

. Лутц М. Изучаем Python (5-е издание) [Текст] // Символ-Плюс. - 2011.

. Лимончелли Т. Тайм-менеджмент для системных администраторов [Текст] // Вильямс. - 2007. - С. 183-219.

Похожие работы на - Методология 'Infrastructure as Code' в эксплуатации ИТ-инфраструктуры

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!