Что же такое девопы?
September 19, 2011 | Posted by admin under Практики, Статьи |
Stephen Nelson-Smith, a Technical Manager and Devop based in Hampshire, UK and author of Agile Sysadmin.
http://www.jedi.be/blog/2010/02/12/what-is-this-devops-thing-anyway/ .
В последние несколько месяцев движение начало набирать обороты. Это движение людей, которые считают, что пришло время перемен в ИТ индустрии. Пришло время прекратить пустую трату денег. Нужно поставлять хорошее программное обеспечение, строить масштабируемые и выносливые системы. Это движение называется Девопы (Devops). Кто такие девопы ? Откуда пришло это движение? И чего оно достигло? | |
Guest post by : Stephen Nelson-Smith @lordcope a Technical Manager and Devop based in Hampshire, UK and author of Agile Sysadmin |
Какие проблемы мы пытаемся решить?
Давайте разберемся, что у нас сейчас происходит не так. В IT индустрии, в частности в сфере разработки ПО для web -а, бытует мнение, что проекты движутся слишком медленно, и когда они поставляются (если они вообще поставляются), то бывают недоработаны и не соответствуют вложенным инвестициям. Удивительно, что у всех нас вообще есть работа!
Давайте посмотрим на наиболее типичные проблемы, которые испытывает мир разработки ПО сегодня.
Страх изменений
Как только приложение поставлено, заказчики начинают бояться любых изменений. Они считают само приложение и платформу, на которой оно установлено, чем-то хрупким и уязвимым. В дело вступают бюрократические системы управления изменениями (change management systems). В результате требуется очень много времени на внедрение новой фичи (feature) или исправления ошибки в приложении.
Рискованное развертывание системы
Другой симптом дискомфорта – это концепция “рискованного развертывания”. Это ситуация, когда никто на все 100 процентов не уверен, что система будет работать в реальном окружении. Будет ли код работать так, как предполагалось? Справится ли система с нагрузкой? Часто у нас нет ответов на эти вопросы. Мы просто ставим систему в спокойное время, и наблюдаем, чтобы она не упала.
На моей машине это работает!
Часто бывают ситуации, когда проблема проявляется только в реальном окружении. Такими проблемами как правило занимаются системные администраторы или helpdesk. После изучения проблемы (хотя часто и без этого, если быть честными), она передается разработчикам. Разработчики бегло смотрят и отвечают: “На моей машине это работает”.
Однако часто это бессмысленно. В моей работе встречались ситуации, когда код разрабатывался на машинах с Windows 2000, затем система тестировалась на Tomcat под Windows,а разворачивалась на Redhat Linux, c load balancer-ами, и другими версиями Java и Tomcat. Это уже не говоря о том, что properties file-ы на машинах разработчиков совершенно отличались от properties file-ов на машинах в реальной среде.
Siloisation
В большинстве проектов, на которых я работал, проектная команда делится на разработчиков, тестировщиков, релиз менеджеров и системных администраторов. Все они работают в разных отделах (silos). С точки зрения процесса, это ужасно расточительно. К тому же это может привести к философии “перебрасывания мяча через стену” (‘lob it over the wall’ philosophy ). Т.е. проблема перебрасывается между бизнес аналитиками, разработчиками, тестировщиками и системными администраторами. Кроме того, такая структура повторяется и внутри отдела. Например, нередко в группе системных администраторов выделяются люди, которые отвечают только за базу или только за сеть. Часто крупные отделы (silos) находятся в разных офисах, городах или даже странах. В результате происходит деление на “мы и они”. Отделы относятся друг к другу подозрительно и боятся друг друга.
Движение девопов предлагает лучший путь – путь построения команд и приложений, который решает эти проблемы.
Как помогают девопы?
Движение Devops возникло внутри группы людей, которые считают, что комбинация соответствующих технологий и отношения к делу может сделать революцию в мире разработки и поставки ПО.
С точки зрения демографии, это талантливые 30-летние системные администраторы-разработчики, которые четко понимают, что разработка ПО это зарабатывание денег и поставка продукта. И что более важно, эти люди понимают ключевой момент – мы все находимся по одну сторону! Все мы – разработчики, тестировщики, менеджеры, администраторы – все мы стараемся достичь одной цели: поставить качественное, надежное приложение, которое дает бизнес-преимущество заказчику.
Одно из ключевых понятий в движении девопов – это “системный администратор-кодировщик” (‘sysadmin coders’). В последнее время приобрела популярность концепция “программиста-полиглота”. Это разработчики, которые знают много языков, много подходов к программированию, и могут свободно переходить от объектно-ориентированного Ruby к функциональным языкам, таким как Erlang или OCaml. Это является одним из примеров более серьезного наблюдения – нет одного IT навыка, более полезного или мощного, чем другой. Для того чтобы решить проблему хорошо, нужны все навыки. Если вы создаете команду из людей, которые могут быть разработчиками, тестировщиками и системными администраторами, вы строите замечательную команду.
Кроме этого мульти-дисциплинарного подхода, движение девопов стимулирует развитие навыков общения, понимание бизнеса и желание сделать этот бизнес успешным.
Это может показаться очевидным, но общение является одним из ключевых моментов. Девопы – это строители мостов. Дело в том, что создавать качественное ПО действительно сложно. Это чревато ошибками, рискованно и непредсказуемо. В последние десять лет или около того, разработчики программного обеспечения начали понимать это. Появление Agile Manifesto, последовавшие улучшения процесса разработки ПО, а также технологические достижения в тестировании имели огромное влияние.
Тем не менее, существует серьезный пробел, в том, что Крис Рид называет “последней милей”. Дело в том, что понятие “разработка завершена” (‘dev complete’ ) далеко от понятий “живая система, реальное окружение, зарабатывание денег”.
Обычно за установку системы отвечают системные администраторы. Но проблема в том, что они часто даже не знают разработчиков или не доверяют им. Часто бывает, что системный администратор и разработчики работают в разных городах. Каким образом мы надеемся поставить хорошую систему при таких условиях?
Для девопов характерен широкий спектр навыков. Это люди, которые могут заниматься инфраструктурой и конфигурацией системы, тестировать, отлаживать и поставлять новые фичи. Эти люди налаживают связи. Они принадлежат сразу нескольким лагерям, они могут быть послами, несут мир, могут быть посредниками и переговорщиками. Цель движения – найти таких людей, поощрить их, сопоставить их идеи, и начать популяризовать этот способ разработки ПО.
Это имеет огромное влияние на бизнес. Наконец технические команды стали пытаться двигаться вместе, как одно целое. Вся команда чувствует себя вовлеченной и способной помочь во всех областях. Традиционно проблемные области установки и поддержки становятся более понятными. А сражения между разработчиками (“системный администратор построил ненадежную платформу”) и системными администраторами (“разработчики написали ненадежный код”) начинают трансформироваться в междисциплинарный подход, что увеличивает надежность во всех областях. Это дает позитивный эффект на выходе: повышение надежности и доступности, счастливые клиенты, сокращается время выхода на рынок. Появляется больше времени, чтобы сфокусировать энергию команды на основном бизнесе, вместо того, чтобы “тушить пожары”.
Критика движения девопов
У некоторых людей возникает подозрение, т.к. движение выглядит как группка европейских сисадминов, многие из которых знают друг друга. Может это просто элитный клуб? Просто он по-другому называется?
Да, это правда – девопы, как движение, состоит из некоторого числа сисадминов, многие из которых знают друг друга. Но в этом нет ничего удивительного. Мы уже изучили проблемы, которые пытаемся решить. Эти проблемы сконцентрированы вокруг установки приложения, которая с упрощенной позиции, завершает работу над системой. Разработчики давно поняли необходимость перемен. И они предприняли некоторые шаги. В результате чего проблема сдвинулась в сторону сисадминов. Следовательно, это естественно, что большинство людей, которые поняли, что пришло время перемен, занимаются администрированием.
Да, в движении участвуют опытные и талантливые люди. Но здесь нет ничего удивительного. Тот сисадмин, который видит проблему, хочет решить ее, и имеет широкий спектр навыков в областях программирования, администрирования и менеджмента, по определению является высококвалифицированным и способным человеком. Не нужно путать это с элитой. Движение является открытым и дружественным.
Для сравнения, в начале под Agile манифестом подписались известные, опытные люди, разработчики по сути. Можно было бы назвать движение эксклюзивным и элитным, но это не обесценивает идеи, и не мешает движению расти и развиваться.
Движение появилось именно в Северной Европе, благодаря таким факторам, как концентрация хороших Agile групп и первой конференции DevopsDays, которая прошла в Бельгии.
Поэтому если вы относитесь настороженно или боитесь, что вас не примут в движение, не переживайте – если у вас есть желание изменить мир, просим на борт.
Как стать участником
На мой взгляд, чтобы стать девопом, нужен определенный склад ума. Необходимо отношение к делу по следующим принципам: “Я собираюсь изменить ситуацию”, “Я буду сотрудничать и общаться”, и “Я понимаю, что в бизнесе разработки хорошего ПО мы все вместе”. Если вы сисадмин, то это означает, что вы будете проводить время с разработчиками. Вам нужно знать код. Уметь вносить в него изменения. Если вы не программируете, начинайте – есть хорошие учебники по языкам Python и Ruby . Это мощные языки, знание которых сослужит вам хорошую службу. Начинайте думать о управлении системами, как о программной задаче. Используйте Puppet или Chef для управления вашими машинами. И начинайте думать, как тестировать вашу инфраструктуру.
Если вы разработчик, пойдите и подружитесь с вашими сисадминами. Не смотрите на них как на низшие формы жизни, или как на людей, на которых можно сталкивать проблемы. Идите и подружитесь с ними. Если они используют Puppet или Chef, участвуйте, добавляйте свой код. Если вы опытный разработчик, особенно если у вас есть понятие о разработке управляемой тестами (test driven development ), рассмотрите возможность наставничества над сисадминами. Дайте им уверенность, что они могут программировать, пусть они изучат код. Изучите роли в своем отделе (silos ). Постарайтесь понять, какие навыки нужны тестировщикам и как они работают. Посмотрите, можете ли вы помочь. Постарайтесь объединить работу сисадминов, DBA-ев, бизнес-аналитиков, все вы в одной команде.
Если вы менеджер, создайте позицию “Девоп”, не просто “Разработчик” или “Сисадмин”. Поясните, что вы заинтересованы в наборе людей с навыками из нескольких областей. И что вы собираетесь обучать людей этому. Внедряйте системы управления конфигурацией. Пусть код сисадминов тоже попадает по версионный контроль. Пусть команда сисадминов занимается активностями по интеграции и развертыванию системы непрерывно. Если вам нужна консультация, существуют люди, которые занимаются такими вещами каждый день.
Резюме
Движение девопов только зарождается, но оно начинает набирать обороты. Существуют конференции, листы рассылки, irc каналы, блоги и люди, которые занимаются этим. Я убежден, что это не просто дань моде. И мы на грани революции в индустрии программного обеспечения. Движется парадигма, согласно которой разработчики и сисадмины работают вместе, обучают друг друга, что в конечном счете размывает границы между ними. Добро пожаловать в мир девопов.
Об Авторе
Стивен Нельсон-Смит, технический менеджер и девоп в Хэмпшире, Великобритания. Его компания Atalanta Systems специализируется на применении смеси автоматизации, Agile и Lean . Это дает клиентам возможность сконцентрироваться на их ключевом бизнесе, быть более эффективными, и зарабатывать больше денег.Вы можете читать его Twitter, и блог на Agile Sysadmin
Ресурсы
Если вы занимаетесь тем, что написано выше или хотите делать это, существует много ресурсов, которые помогут вам.
Блог
Следующие блоги написаны с точки зрения девопов и предлагают высококачественное, технически богатое содержание.The Build Doctor, Patrick Debois (This One), Agile Sysadmin, RI, Bitfield , Planet Infra, Unix Daemon
Списки рассылки
Есть Google -группа, которая называется Agile System Administration. Там можно найти большинство основателей движения.
IRC
IRC является превосходным ресурсом. Следующие каналы freenode покрывают основные инструменты и подходы движения девопов. На каналах можно найти многих из нынешних членов движения.
##infra-talk , #puppet , #chef
Твиттер
Большинство из членов движения девопов можно найти на Twitter. Вы можете сделать поиск по хэш-тегу #Devops. Вот интересные люди, которых можно читать:
Stephen Nelson-Smith , Julian Simpson , Matthias Marschall , Patrick Debois , Mike Poutney , Paul Nasrat ,Dean Wilson , R.I.Pienaar , Lindsay Holmwood , Chris Read , Branden Faulls , James Turnbull , John Willis,Kris Buytaert , Gildas Lenadan, John Arundel , Andrew Shafer, John Allspaw, Michael Cote ,Damon Edwards, Israel Gat
Инструменты
И наконец, вот некоторые из инструментов, которые вы найдете у девопа.
Hudson , Cucumber , Cucumber Nagios , Puppet , mcollective , cobbler , Chef , Flapjack , Visage , Collectd