Истории Andrey Pshenichnov
518

Штормовое предупреждение: как методологии разработки предопределили развитие «облака»

В прошлый раз мы говорили о том, как виртуализация завоевала мир серверных технологий. Но это — лишь половина «облачной» формулы.

В закладки
Фото: Marco Verch (Flickr, CC BY)

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

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

1970-1995: Вода камень точит

Традиционная модель разработки программного обеспечения сформировалась в 70-х годах. Она предполагала подход к софту как к самодостаточному продукту. Здесь все походит на строительство дома: сперва закладывают фундамент, и лишь в конце занимаются отделкой.

Так и разработчики софта — двигались из точки «А» в точку «Б» по заранее согласованному плану. По мере завершения задач по программированию — передавали продукт в руки коллег, которые занимались тестированием, и так далее. Эта парадигма получила название «waterfall» (или Каскадная модель), и вплоть до 90-x ей пользовалось большое количество IT-компаний.

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

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

Людям требовалась свобода для маневра и корректировки проектов по мере работы над ними. Это было жизненно необходимо: требования клиентов регулярно менялись вместе с новыми технологиями и задачами бизнесов. Появился запрос на гибкость разработки и обновляемость ПО.

Фото: Queensland State Archives (Flickr, PD)

С другой стороны, на фундаменте пятиэтажки нельзя построить небоскрёб — резкая смена планов при использовании каскадной модели могла полностью обнулить прогресс в разработке продуктов.

1995-2001: Эксперименты с гибкой разработкой

В девяностые начались активные поиски альтернативных подходов к разработке ПО. Появились такие парадигмы, как «Scrum» и «Extreme Programming». В глазах их адептов идеальный «lifecycle» программного проекта был не линейным. Он предполагал постоянные изменения и постоянное тестирование. Такой процесс оперировал на кардинально другом масштабе — каждая итерация приобретала важность конечного релиза.

На первых порах последователей у этих методологий было немного. В конце концов, девяностые были временем быстрого роста IT-индустрии. Руководствуясь принципом «if it ain't broke, don’t fix it», гиганты «бума доткомов» не видели необходимости в фундаментальных изменениях. Только после того, как пузырь лопнул, компании стали избавляться от пережитков прошлого и строить новую культуру разработки.

Лучше всего эту культуру отражает написанный в 2001 году «манифест разработки Agile». Вы наверняка слышали этот термин — он стал общим описанием для различных итеративных методологий. В Agile-манифесте лаконично рассказано о приоритетах новой школы разработки. Среди них — внутренние коммуникации, сотрудничество с клиентом и постоянная готовность к изменениям. Именно эта методология стала толчком больших перемен, знаком того, что индустрия для них созрела.

2001-2009: Agile в серверной

Переход на Agile-методологии вскоре затронул и специалистов, занимавшихся серверным администрированием. Процесс деплоймента, намного более частый благодаря итеративной разработке, стал источником производственных проблем. «Усложнил ситуацию» и успех первого коммерческого гипервизора VMware Server — виртуализация «превратила сервера в код», абстрагировав их от железа, а граница между обязанностями админов и разработчиков оказалась размыта.

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

Фото: Luca Mascaro (Flickr, CC BY-SA)

Одной из первых компаний, которые занялись кооперацией разработчиков и админов, был один из пионеров Web 2.0, фотохостинг Flickr. Десять лет назад в компании начали нанимать «разработчиков, которые думают как админы» и «админов, которые думают как разработчики», и за год смогли разогнаться фактически до серийного развертывания ПО.

После того, как компания представила свой опыт на конференции O’Reilly Velocity 2009, их идеями вдохновились и другие. И первое событие, посвящённое исключительно этой теме, прошло в Бельгии всего несколько месяцев спустя. Именно организаторы этой конференции придумали ныне привычный нам термин DevOps (Developers + Operations). В последующие годы их философия нашла широкую поддержу, стала настоящей методологией и, наконец, отдельной профессией в лице DevOps-инженеров.

2009-наши дни: вклад DevOps

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

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

Чтобы избежать проблем при единовременном развертывании большого количества нового кода, приверженцы Agile-методологий тестируют его на совместимость множество раз в день, каждый раз добавляя что-то новое (CI, Continuous Integration). Многие компании не останавливаются на этом и частично автоматизируют само развертывание (CD, Continuous Delivery).

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

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

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

Предыдущие материалы по теме на vc:

Дополнительное чтение в блоге MCS:

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "Andrey Pshenichnov", "author_type": "self", "tags": [], "comments": 0, "likes": 1, "favorites": 9, "is_advertisement": false, "subsite_label": "story", "id": 52596, "is_wide": false, "is_ugc": true, "date": "Thu, 06 Dec 2018 16:43:46 +0300" }
{ "id": 52596, "author_id": 104213, "diff_limit": 1000, "urls": {"diff":"\/comments\/52596\/get","add":"\/comments\/52596\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/52596"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199131, "possessions": [] }

Комментариев нет 0 комм.

Популярные

По порядку

0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Голосовой помощник выкупил
компанию-создателя
Подписаться на push-уведомления
{ "page_type": "default" }