Методология "Infrastructure as Code" в эксплуатации ИТ-инфраструктуры
Характеристика особенностей автоматизации управлением IT-инфраструктуры из нескольких серверов путем внедрения в процесс системного администрирования методологии "Infrastructure as Code". Подробное описание инструментов, которые используются на практике.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | русский |
Дата добавления | 10.12.2016 |
Размер файла | 196,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МЕТОДОЛОГИЯ «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-системами имеет несколько преимуществ:
1) Возможность быстрого масштабирования инфраструктуры, позволяя не отвлекаться на технические детали, сконцентрировавшись на вопросах проектирования существующей архитектуры;
2) Гарантия надежности и консистентности управляемой инфраструктуры, идентичность конфигурации ПО на всех поддерживаемых серверах;
3) Сокращение временных затрат на эксплуатацию инфраструктуры, повышение продуктивности администрирования, тем самым принося огромный вклад в развитие целевой организации;
4) Снижение вероятности ошибки и отказа в инфраструктуре посредством подавления влияния человеческого фактора;
5) Отсутствие необходимости набора дополнительной рабочей силы для управления инфраструктуры, тем самым сокращая финансовые расходы на поддержку целевого сервиса.
2. Использование систем управления конфигурации
Наболевшей проблемой является управление парком серверов инфраструктуры, а именно настройка и конфигурация множества экземпляров операционных систем. Возникают ситуации, когда необходимо применять одни и те же настройки на десятках или даже сотнях систем, на которых работает одно и то же программное обеспечение.
Данная проблема рассматривается системами управления конфигурации (CM). Подобные системы позволяют описать программным кодом общее состояние систем, находящихся в едином кластере. В качестве программного кода выступают DSL-языки - доменно-специфичные языки программирования, применяемые в узком кругу задач.
Наиболее популярным примером является система управления конфигурации Ansible, позволяющая описать конфигурацию операционных систем на языке, доступном даже для тех, кто не имеет базового уровня компетенции в информационных технологиях. На рисунке 1 показан запуск Ansible для конфигурации утилиты Filebeat на нескольких серверах одновременно.
Рисунок 1 - запуск системы управления конфигурацией Ansible
Несмотря на решение проблемы конфигурации операционных систем, проблема низкоуровневой настройки серверов по-прежнему остается открытой. В системе, основанной на облачных вычислениях, постоянно возникает потребность в создании виртуальных машин. Данная процедура в свою очередь является простой, однако требует ручной конфигурации и ожидания востребованных ресурсов, что занимает достаточно много времени, отведенного на управление инфраструктурой. Дополнительно необходимо учитывать потребность в формировании окружения виртуализации, настраивая такие ресурсы, как хранилища данных и сети доставки контента, сетевые шлюзы и подсети и т.д..
Решением данной проблемы также является использование системы управления конфигурации. Однако используемая система будет иметь подход, отличный от того, что используется при конфигурации ОС. В данном случае система будет описывать парк ресурсов облачной инфраструктуры, ее базовые настройки, конфигурацию и зависимости от других ресурсов. Таким образом, создать новую виртуальную машину можно с помощью объявления нового ресурса на DSL-языке, который впоследствии трансформируется в API-вызов к системе виртуализации.
В данном вопросе наиболее популярным решением на практике является использование системы управления конфигурации 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.
2. Limoncelli T. The Practice of Cloud System Administration: Designing and Operating Large Distributed Systems, Volume 2 [Текст] // - 2015. - С. 243-275.
3. Немет Э., Снайдер Г., Хейн Т.Р., Уэйли Б. Unix и Linux. Руководство системного администратора [Текст] // Вильямс. - 2012. - С. 1157-1180.
4. Лутц М. Изучаем Python (5-е издание) [Текст] // Символ-Плюс. - 2011.
5. Лимончелли Т. Тайм-менеджмент для системных администраторов [Текст] // Вильямс. - 2007. - С. 183-219.
Размещено на Allbest.ru
Подобные документы
Developed the principles that a corpus of texts containing code-mixing should have and built a working prototype of Udmurt/Russian Code-Mixing Corpus. Discussed different approaches to studying code-mixing and various classifications of code-mixing.
дипломная работа [1,7 M], добавлен 30.12.2015Теоретические аспекты использования Infrastructure Library информационных технологий. Планирование процессов, ролей и видов деятельности. Определение связей и необходимых видов взаимодействий в организации. Проблемы внедрения Infrastructure Library.
курсовая работа [69,9 K], добавлен 22.05.2017The solving of the equation bose-chaudhuri-hocquenghem code, multiple errors correcting code, not excessive block length. Code symbol and error location in the same field, shifts out and fed into feedback shift register for the residue computation.
презентация [111,0 K], добавлен 04.02.2011Особенности современной инфраструктуры веб-приложения как одного из трендов в области разработки программного обеспечения. Использование систем управления конфигурациями (Configuration Management) при эксплуатации IT-инфраструктуры на примере "Ansible".
статья [238,7 K], добавлен 10.12.2016Program of Audio recorder on visual basic. Text of source code for program functions. This code can be used as freeware. View of interface in action, starting position for play and recording files. Setting format in milliseconds and finding position.
лабораторная работа [87,3 K], добавлен 05.07.2009Автоматизация рабочего места оператора, принимающего звонки от населения. Описание информационной инфраструктуры. Характеристика комплекса задач, подлежащих автоматизации для более комфортной работы оператора. Структурный состав программного продукта.
отчет по практике [36,7 K], добавлен 04.04.2015Современные методологические проблемы разработки и внедрения программного обеспечения ERP систем. Основные концептуальные подходы к методологии разработки и внедрения программного обеспечения. Исследование методологии ASAP: ее сильные и слабые стороны.
дипломная работа [4,3 M], добавлен 29.04.2011История развития операционных систем семейства Windows и основные понятия системного администрирования. Определение востребованности операционных систем Windows, сравнительная характеристика их функции и возможностей, особенности применения на практике.
курсовая работа [38,5 K], добавлен 08.05.2011Системы и задачи их анализа. Методы системного анализа: аналитические; математические. Сущность автоматизации управления в сложных системах. Структура системы с управлением, пути совершенствования. Цель автоматизации управления. Этапы приятия решений.
реферат [324,3 K], добавлен 25.07.2010Области применения и принципы работы компьютерных сетей. Характеристика сетевых операционных систем, оптимизированных для роли серверов. Основные задачи специализированных серверов. Особенности реализации процедур в сетях с централизованным управлением.
реферат [16,5 K], добавлен 06.04.2012