Если при разработке ПО наиболее сложным принято считать учет культурных различий для разных стран локализации, то на этапе эксплуатации наибольшие трудности сегодня вызывает внедрение технологии Infrastructure as Code (IAC). В особенностях этих трудностей постаралась разобраться Бет Паризье из SearchStorage.
Назначение IAC — дать возможность службам эксплуатации применять для обслуживания ИТ-инфраструктуры такие же подходы, которые давно используются на этапе разработки. Предпосылкой для развития этого направления стало то, что отдельные компоненты инфраструктуры часто повторяются в разных проектах. Это позволяет готовить общие программные блоки управления заранее и легко осуществлять интеграцию таких компонентов в новых проектах, используя уже накопленный опыт.
Технология IAC позволяет изменять код управляющих модулей, исправлять обнаруживаемые ошибки, добавлять новый функционал. При тестировании можно контролировать обратную совместимость нового оборудования с уже готовыми программами управления, что в результате позволяет внедрять новые функциональные возможности в текущих проектах значительно быстрей, чем делалось раньше без средств автоматизации.
На рынке представлены несколько мощных систем для управления конфигурацией, такие как Chef и Puppet, причем эти технологии IAC присутствуют на рынке уже достаточно давно. Однако их практическое использование до сих пор считается среди ИТ-специалистов достаточно сложной задачей.
Практическое внедрение IAC
По мнению Паули Комтуа, вице-президента по разработке в международном медиа-холдинге, пока немного таких, кто готов перейти на управление серверной инфраструктурой с помощью Bash-скриптов, написанных на Ruby.
Появление на рынке инструментов автоматизации IAC сначала вызвало бурный интерес к ним, однако сейчас наблюдается определенное охлаждение в плане их практического внедрения. Особенно явно это наблюдается в отношении задач автоматизации бизнес-процессов на облачной инфраструктуре. Главная причина состоит в том, что несмотря на обилие информации об IAC, непосредственная реализация этой технологии на практике многим дается с большим трудом. Сдерживает то, что разработка используемых корпоративных приложений велась без учета возможности их будущего управления через IAC-инструменты.
«Прикладное ПО сторонних компаний, написанное на Windows, плохо поддается автоматизации через командную строку, — считает Комтуа. — Наибольшие с технической точки зрения сложности возникают при обслуживании критически важного для компаний кода, используемого в основе текущих бизнес-процессов. Вывод части кода из текущей обработки и замена его другим в этих случаях часто затруднен».
«К участию в проектах, связанных с внедрением IAC, необходимо также привлекать ИБ-подразделения, — добавляет Нирмаль Мехта, ведущий разработчик по технологиям в компании Booz Allen Hamilton. — Подтверждение соответствия применяемого ПО действующему законодательству обеспечивается проще, если текущие задачи по управлению конфигурацией и внедрение технологий IAC выполняются вместе. В этом случае задачи, связанные с compliance, перестают быть разовыми ежегодными проектами. Они вплетаются в общий процесс эксплуатации и разработки ПО и позволяют контролировать весь создаваемый программный код».
По мнению Мехта, уже в скором будущем значительная часть рабочего времени специалистов, занятых эксплуатацией ИТ-систем, будет связана с автоматизацией применяемых ныне процессов поддержки; взамен процедур, выполняемых вручную, будут внедряться разработки по технологии IAC. Они будут вестись параллельно с созданием прикладного софта.
По мнению практиков, для решении задач выстраивания автоматизированной ИТ-инфраструктуры на предприятиях альтернативы для IAC не существует.
«Сейчас служба эксплуатации даже не хочет замечать изменений, происходящих в системах, если управляющие команды работают нормально, — рассказывает Кэдман Окли, эксперт по эксплуатации ПО из компании Ooyala. — Но получив возможность создавать задания или скриптовые наборы (кукбуки) для Chef, где можно прописать практически любые команды, служба эксплуатации сможет воочию наблюдать, как в ИТ-системах возникают какие-либо изменения. Это позволяет быстро оценить, что именно меняется в подконтрольных системах и что является причиной для регистрируемых изменений. Эта возможность, которую дает IAC, является самым важным приобретением для службы эксплуатации. Она позволяет управлять инфраструктурой значительно проще, чем раньше».