что devops-практики могут применяться только в новых проектах, выполняемых в небольших стартапах, и непригодны в крупных компаниях или наследственных системах, которым присущи технические и культурные долги. Тем не менее в отчете 2015 State of DevOps Report (отчет о состоянии devops за 2015 год), подготовленном компанией Puppet Labs, утверждается, что это далеко не так (https://puppet.com/resources/white-paper/2015-state-devops-report).

Высокая производительность достигается за счет контролируемости и развертываемости.

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

Стратегическое расширение или сокращение организаций с помощью devops

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

• расширение клиентской базы;

• увеличение прибыли;

• расширение проекта или команды с целью достижения соответствия определенным требованиям;

• поддержка или улучшение соотношения количества сотрудников и систем либо денежных затрат;

• более быстрый рост по сравнению с конкурентами.

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

Ответ на этот вопрос отрицательный. В дополнение к практикам, рассмотренным в части IV, в 2015 году компания Etsy насчитывала около 800 сотрудников, 1,5 млн активных продавцов и 22,6 млн активных продавцов с годовым объемом продаж 1,93 млрд долларов. Как показывает другой пример, компания Target в 2015 году насчитывала около 347 тыс. сотрудников и имела 72 млрд долларов годового дохода. Несмотря на различия в размерах, обе компании адаптировали принципы и методы, основанные на текущих культурах. В результате были выбраны стратегии, которые являются оптимальными в современных условиях.

Соображения по выполнению масштабирования

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

Дома возводятся на основе чертежей и 3D-моделирования. В основу внешнего и внутреннего проектов зданий архитекторы закладывают существующие культурные традиции и тенденции[54]. Универсального проекта здания, который удовлетворял бы всем требованиям, не существует. То же самое касается и программных проектов и организаций.

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

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

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

Планирование масштабирования

Идентификация поведения системы и основных факторов, влияющих на ее работу, позволит сформировать набор приоритетных систем для текущей среды. Для начала следует сформулировать свои цели. Ставите ли вы своей задачей получение определенного опыта? Как вы будете реагировать на перебои в работе? Будете ли вы стремиться к восстановлению доверительных отношений после устранения бреши в системе безопасности?

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

Организационная структура

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

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

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

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату