Читаем Terraform: инфраструктура на уровне кода полностью

6. Код Terraform промышленного уровня

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

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

• Если вы хотите развернуть сервис, который будет полностью управляться третьим лицом (например, запустить MySQL в AWS Relational Database Service (RDS)), на его подготовку к промышленному использованию может уйти от одной до двух недель.

• Если вы хотите сами запускать свое распределенное приложение, которое не хранит состояние, как в случае с кластером Node.js без каких-либо локальных данных (например, данные могут храниться в RDS), запущенным поверх группы автомасштабирования AWS (ASG), для его подготовки к промышленному использованию понадобится где-то вдвое больше времени, или около четырех недель.

• Если вы хотите сами запускать свое распределенное приложение с сохранением состояния, как в случае с кластером Amazon Elasticsearch (Amazon ES) поверх ASG, который хранит данные на локальных дисках, вам потребуется на порядок больше времени — от двух до четырех месяцев.

• Если вы хотите разработать целую архитектуру, включая все свои приложения, хранилища данных, балансировщики нагрузки, мониторинг, механизм оповещения, безопасность и т. д., необходимое время увеличивается еще на 1–2 порядка — примерно от 6 до 36 месяцев работы. В случае с мелкими компаниями этот срок приближается к шести месяцам, а у крупных организаций на это обычно уходят годы.

Эти данные собраны в табл. 6.1.

Таблица 6.1. Сколько займет построение инфраструктуры промышленного уровня с нуля

Тип инфраструктуры

Пример

Примерные сроки

Управляемый сервис

Amazon RDS

1–2 недели

Распределенная система с самостоя­тельным размещением (без состояния)

Кластер приложений Node.js

2–4 недели

Распределенная система с самостоятельным размещением (с состоянием)

Amazon ES

2–4 месяца

Целая архитектура

Приложения, хранилища данных, балансировщики нагрузки, мониторинг и т. д.

6–36 месяцев

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

• «Так долго? Как такое возможно?»

• «Я могу развернуть сервер на <облако> за пару минут. На то, чтобы сделать все остальное, точно не могут уйти месяцы!»

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

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

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

• Почему построение инфраструктуры промышленного уровня требует так много времени.

• В чем состоят требования к инфраструктуре промышленного уровня.

Мы также рассмотрим инфраструктурные модули промышленного уровня:

• мелкие модули;

• компонуемые модули;

• тестируемые модули;

• модули, готовые к выпуску;

• модули вне Terraform.

Примеры кода

Напоминаю: все примеры кода для этой книги можно найти по адресу github.com/brikis98/terraform-up-and-running-code.

Почему построение инфраструктуры промышленного уровня требует так много времени

Перейти на страницу:

Все книги серии Бестселлеры O'Reilly

Искусство управления IT-проектами
Искусство управления IT-проектами

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

Скотт Беркун

Деловая литература
iOS. Приемы программирования
iOS. Приемы программирования

Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

Вандад Нахавандипур

Программирование, программы, базы данных / Программирование / Книги по IT

Похожие книги