Книга: Философия DevOps. Искусство управления IT

Концепции, относящиеся к инфраструктуре

Концепции, относящиеся к инфраструктуре

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

Управление конфигурацией

В 1950-х годах Министерство обороны США в качестве технической дисциплины менеджмента разработало методологию управления конфигурацией (Configuration Management; CM). Позднее эта методология была принята во многих других областях. Управление конфигурацией – это процесс установления и поддержки согласованности между функциональными и физическими атрибутами, а также управление производительностью на протяжении всего жизненного цикла. Эта методология включает политики, процессы, документацию и инструменты, требуемые для реализации согласованной производительности, функциональности и атрибутов.

Различные организации и органы по стандартизации, такие как ITIL, IEEE (Institute of Electrical and Electronics Engineers, Институт инженеров по электротехнике и электронике), ISO (International Organization for Standardization, Международная организация по стандартизации) и SEI (Software Engineering Institute, Институт программной инженерии) предложили стандарт управления конфигурированием, который используется в индустрии разработки программного обеспечения. Как и в случае с другими народными моделями, появление подобного стандарта привело к некоторой путанице с применяемыми ранее определениями.

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

Облачные вычисления

Облачные вычисления, которые часто называют просто «облако», – это совместно выполняемые интернет-вычисления. Заказчики могут приобретать и использовать общие компьютерные ресурсы, предлагаемые разными провайдерами облачных вычислений. Облачные вычисления и хранилища позволят организациям сэкономить на приобретении, установке и поддержке своего собственного оборудования.

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

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

Автоматизация инфраструктуры

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

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

Управление артефактами

Артефакты создаются в результате выполнения любого этапа в процессе разработки программного обеспечения. В зависимости от используемого языка под артефактами могут подразумеваться разные объекты, включая файлы JAR (архивные файлы Java), WAR (архивные файлы веб-приложений), библиотеки, ресурсы и приложения. Управление артефактами может быть столь же простым, как управление веб-сервером с контролем доступа, обеспечивающим управление файлами вручную. Управление файлами также может быть сложным и предусматривать использование разных расширенных средств. Как и в случае с рассмотренным раньше контролем версий для исходного кода, управление артефактами может выполняться разными способами, с учетом возможностей вашего бюджета.

В общем случае хранилище артефактов может выступать в качестве:

• центрального пункта управления бинарными файлами и зависимостями;

• настраиваемого прокси-сервера, установленного между организацией и общественными хранилищами;

• интегрированного хранилища, предназначенного для продвижения разработанного в организации программного обеспечения.

Контейнеры

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

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

Оглавление книги


Генерация: 0.102. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз