Здесь переводится видео в статью Дениса Яковлева из 2ГИС "Автоматизация инфраструктуры. Зачем мы это делаем?.md"
Ссылка на видеодоклад https://www.youtube.com/watch?v=18b-OWRKrO4
Текст сделан из субтитров. Буду очень благодарен в форматировании текста, его вычитки. Для этого достаточно знать русский язык. Присылайте свои pull request или присылайте текст на почту patsev.anton[собака]gmail.com
итак поехали дай о себе я как уже сказал компания 2гис в компании работаю два года команда инфра страха перед на на первый шанс мы занимаемся поддержкой внутренней инфраструктуры в подделал основном недавно к нам еще при засиделись другие команды внутренние продукты мы также отвечаем за эксплуатацию в продуктов компании в продакшене и мы также занимаемся исследованием и разработкой новых инструментов для облегчения своей жизни и для улучшения жизни наших любимых разработчиков от нас всего 9 человек и давайте сначала поймем инфраструктуру вообще почему мы а не говорим да и что это такое и вообще когда мы начинаем а не говорить с первых с первых моментов работы нашей над продуктом и каким-то проектом да у нас возникает вопрос куда мы будем деплоить где проверить результаты тестировать и так далее и сразу же первый же ответ от естественного локально до локально это потому что очень просто разработал тут же на своем ноутбуке там его как-то там запустил проверил все хорошо и сидишь думаешь тогда зачем они вообще что-то еще у меня все работает хорошо а если у нас на ноутбуке одна операционная система в продакшене крутится другая да уже какой-то файл получается или у нас если продукт должен поддерживать несколько операционных систем кейс не покрывается то есть разные операционные системы хорошо если мы имеем возможность такую мы валим принимаем волевое решение говорим что у нас везде linux у нас везде убунта там какая-нибудь как какой-нибудь версии остальное всё от лукавого и кажется нам что мы решили все проблемы свои но простого совпадения же операционной системы недостаточно да то есть нам нужны какие-то пакеты определенной версии либо и так далее прочее мы думаем как решать эту проблему вспоминаем блин у нас же изоляции есть очень кайфовая штука слава богу продуктов есть на рынке очень много мы там берем virtual очку допустим virtualbox и там создаем себе какой берем вирт аллочку virtualbox и там накатываем свой продукт там всякие снапшоты есть все мы короче получили окружении свое виртуальное сидим счастливы опять мы решили все свои проблемы но допустим мы развиваемся да наш продукт становится сложнее это уже не просто короче пхп шичко с базой да она уже как-то там переросло там в какую-то распределенную систему у нас появляются другие продукты компания развивается эти протоны у нас появляются новые кейсы использования да мы все эти продукты хотят как-то интегрироваться как-то уметь работать вместе у нас фичи проходит через несколько продуктов нас постоянно просят покажите пожалуйста чём тут на не wella передайте нам где-нибудь это посмотреть у нас перестает хватать ресурсов на на ручное какие-то кейсы на ручное тестирование дамы спаме узнаем что есть continues in the creation of the test и для этого все нужно дополнительный софт короче и все и мы короче перестань нам и локального окружения там даже со всей изоляция перестает хватать то есть ну какой то кейс девелоперским и покрываем а что дальше дальше ну не понятно что здесь появляется как раз вот инфраструктура которая то какой нам нужно какое-то место куда мы можем за тепло и свои продукты сделать с ними там все что угодно да там показать кому-нибудь и мы должны как-то управлять и дело и должно быть это удобно давайте вернемся посмотрим ну на нашу компанию на 2гис кто не знает что за компания до пользуемся о круто я всегда прикольно задавать на конференциях этот вопрос потому что руки поднимают но приятно да не упускаем возможность это справочник и карты да вот здесь ваш замечательный город представлен да то есть можно посмотреть на карте поискать организации в общем все что угодно у нас в продукты у нас мобайл и приложения у нас десктопное приложение и у нас порядка тридцати пяти команд разных разного вероисповедания разное размеров прочны соответственно примерно 100 из 100 лежит стольки проекта состоит 2гис какие проблемы у нас были с инфраструктурой то есть наконец 2013 года у нас использовался proxmox не знает что такое proximus использовал раз два три вот эта система управления виртуализацией если правильно интерпретировать да с помощью нее можно создавать либо к выемке можно создавать к выемке можно создавать окон в за контейнеры но это делается все ручками через интерфейсы для пол для полноценного функционирования еще нужно зайти там сконфигурировать сеть dns и в общем поэтому у нас какое то время то есть flow наши разработки выглядел следующим образом то есть я там разработал да мне тут понадобилось что-то там инфраструктура какой-то кусочек мне понадобился я завожу как но я как разработчик я завожу ticket админов админы там когда у них там время дойдет руки дойдет они берут форекс макси еду создают эту виртуалку дают мне там айпишник там логин пароль и все и как бы я получаю виртуалку я как бы сделать то особо ну то есть я могу туда за тепло и дано если вдруг еще потом убил там как-то накосячил и проще как-то перри развернуть ее мне это опять надо идти к админам которые уже на меня так подозрительно смотрит говорят ну парень сколько можно в общем и forth in a development у нас состояли из разработку бизнес логики да и плюс потом вот какие то и форт ино на решение вот этих инфраструктурных проблем плюс не было разделения по проектам то есть просто был набор виртуала chic да где вот несколько серверов где админы по своему усмотрению вот этот за ручками и создавали да то есть а шип человеческий ошибка вероятность человеческой ошибки была большая то есть можно было там перепутать айпишник или там удалить нет у virtual очка очень-очень много таких кейсов было они не неприятный иногда смешные конечно бывали вот и непонятно на самом деле и you сочетать то есть созданной виртуалке команда за них ответственность не несет админы особо тоже короче не париться и непонятно виртуалка она уже кому-то нужно или и и про нее все уже давно забыли и и не знают о ней плюс там у славы опять и плагины либо платные либо на перле вот но помимо проблем у нас было еще кое-что полезное да у нас была своя железо было есть свои железо на котором все это крутилось у нас системные администраторы большие молодцы которые умеют это железо готовить за ним ухаживать его правильно закупать и у них какой-то опыт был работы с виртуализацией вот и мы начали думать да то есть какое бы решение нас устроила как должна выглядеть наша инфраструктура чтобы не препятствовать то есть не мешать процессу разработки не увеличивайте forth in a development а как то нам наоборот помогать стать источником радости нежели города то есть какой у нас список требований получился в результате исследования это эффективная утилизация железо да то есть мы не хотим какие-то virtual очки иметь бесхозные то мы не хотим просто греть воздух дата-центре тому прочее мы хотим иметь командные ресурсы чтоб команда взяла на себя ответственность за за те ресурсы которые она использует и как-то более прилежно что ли к ним относилась мы хотим чтобы решение было модульным чтобы набрать только необходимые нам какие-то сервисы там привой при необходимости в дальнейшем развитии как-то расширить взять какие-то новые новые части прочее легко решение должно быть легко дорабатываем оэдо штук если у вас появляются какие-то специфические нужды да мы могли быстренько там ну не быстренько зависит то есть мы должны просто иметь возможность доработать и это решение под наши специфичные нужды чтоб удобно было с ним работать да то есть это нам нужно не только пользовательский интерфейс нам нужен опять какой то что писать связки свои тому управлять инфраструктурой и мы хотим нашей команды у нас много как вы уже видели чтобы их как-то изолировать и особенно команду нагрузочного тестирования хотелось бы чтобы она вообще ну не мешало остальным какие у нас варианты были да то есть мы посмотрели на вот этот вариант сам из то что возникает публичное облако в с digital age на экспресс там и прочее вариант привлекательный до привлекательным тем что беру берут на себя все практически все вопросы связанные с инфраструктурой но отталкивает тем что это оплата в долларах да то есть но ситуацию с долларов объяснять не надо все об этом знает можно было взять и заплатить много денег вот этим обозначенным компаниям но тут тоже опять же ситуация с долларом и опять же и и не очень хотелось какой-нибудь vendor локинг получить и третий вариант который на которой мы посмотрели это посмотреть что у нас есть на рынке open source какие решения у нас предлагается железу у нас есть свое и попробовать что-нибудь из этого конкурса заюзать вот так и в итоге наше все исследования и эксперименты прочее нас привели вот к этой вот софтинка называемый openstack ну я так со стенки сказал конечно это слишком грубо звучит это полноценное программное обеспечение по сути это набор сервисов для построения область публичного или приятного облака это open source решение все сервисы написаны на питоне каждый сервис он отвечает за свою как решать какую-то задачу иметь свой ok и вот я и выглядит это вот так вот да то есть запомнить эту картинку она красивая очень дальше потом к ней вернемся ну вроде как тут все просто да есть жареные сервисы есть сервисы по ну по назначению там компьют networking сторож и наш апликэйшен или юзер работает с этими сервисами решение upon собственный релиз проходит раз полгода в релиз включаются это базовые компоненты там для для обеспечить для того чтобы иметь возможность создать виртуальной машины плюс каждая иди релиз включаются новые компоненты которые изначально появляются от в этом венку bathory они там какое-то время проводят там фиксит баги там как-то их develop это стабилизирует и прочее и в какой-то момент сообщества принимает решение что да теперь там допустим можно этот компонент в гору включите следующим релизом этот компонент выходит также праву много различных рассылок встреч конференций самая большая конференция это openstack саммит проводится по моему каждый код или да помоему каждый года и на последнее на последнем опасных саммите была порядка четырех или пяти тысяч участников очень большой такой ивент классный там много докладов и прочее ну вот contribute от в этот решение очень много народов здесь я привел только список из таких топов да ты достаточно список для того чтобы понять насколько проект jive серьезен и какие компании и сколько ресурсов ну то есть можно только представить сколько ресурсов инвестирует на брак space или red hat в этот в этот проект проект достаточно интим интересный и живой как мы решили наши проблемы с инфраструктурой то есть у нас в один из компонентов openstack это scheduler который выбирает много у него строек тянет можно его тюнить он выбирается хост на которой scheduled создание виртуального января плюс теперь у нас у команды есть свои собственные ресурсы то есть это количество там циpкa количество памяти там количество талой печников и прочее вот то есть мы от этого flow что создать виртуалку потеки то мы избавились как я уже сказал это набор сервисов то есть мы взяли там очень много сервисов если так вот посмотреть world затрудняюсь назвать количеством там ну очень много мы взяли только базовый набор который обеспечивал наши все нужды так как open-source его относительно легко дорабатывать да то есть слава богу нам еще пока не приходилось на визу возможность такая есть наши требования это закрыто опять у каждого сервиса есть опять есть питоновские билдинги то есть достаточно просто с каждым сервисом взаимодействовать и писать свои какие-то вязки ну изоляция мы можем изолировать людей как команд нам по проектам по агрегация зонам по сетям и прочее а что наши разработчики так получили то есть они сделалось с для ниже и чтобы мы хотели чтобы твоим все это было удобно разработчики нашей команды получили такую штуку как инфраструктура по требованиям или как если говорить английская аббревиатура и ac infrastructure за сервис как это выглядит есть два понятия стек и шаблон стэк это набор ресурсов облачных это типа машины там сеть dns рекорда и прочее а шаблон это описание этого стек а вот да ну в случае окон стека это обычная мал файл здесь вот кусочек я привел чтобы пояснить как он выглядит тут написано что вот у нас есть такая сущность как сервер с снуд step с внутренним там типом мой основа сервер для его нормальной работы нужен адрес и dns рекорда и здесь на вход принимает принимаются параметры имя флеймеры это описание ресурсов которые нужно этому этому сервер и серверу здесь мы указываем из какого имиджа даты этому из какой-то сонной системы с какой процент система нам нужен у и какой ключ нам туда положить вот у нас есть все все эти шаблоны у нас лежат в репозитории каждой имеют в ките каждый имеет доступ там каждый может прислать по request ну зависимости от того там что ему надо и создание стыка выглядит следующим образом вот хит эта компонента пластика отвечающий за оркестрацию мы говорит это вот в данном контексте это отличная утилита которую мы там установили себе куда-нибудь и мы говорим дорогой хит пожалуйста создай нам стек с таким именем вот описание ресурсов которые нам нужны для создания этого стека ну и вот те входные данные которые требуют в наш шаблон который описывает наш стек то есть мы это встык хит за загружаем он там шуршит какое-то время создает нам все необходимые ресурсы там у себя внутри связывает и также мы в этом шаблоне вот здесь вот мы можем указать out- тут что при когда ты создал на вот этот стык вот выведенном пожалуйста такую-то информацию ну и там он там возвращает там допустим айпишник какой-то доступ там еще что то есть то что мы попросим там дальше уже можем применять эту информацию дальнейшей какой-то автоматизации вот так вот это выглядит и для того для того чтобы вы не подумали что у п стк то просто и дешево я расскажу как у нас на каком железе какие ресурсы у вас подготовил пластик у нас контрольная панель крутится на 3 инфра нотах так называемые это железные тачки вот с такими от ресурсами сделан ну то есть это как река такая конфигурация усы не не количество ресурсов а такая конфигурация то что и 3-ндфл аноды рекомендовано в документацию по ндс т.к. что сделано для отказоустойчивых чтобы баф отказоустойчивость а также у нас есть две к выемке network ноты которые обслуживают нашу сеть и командные ресурсы у нас крутится вот на 8 компьют на доход достаточно таких жирных и они у нас поделены на 3 агрегация зоны то есть у нас есть зона для нагрузочного тестирования куда выделен там один по моему одна из этих компьютеров выделено и находится в отдельной зоне и она короче то есть туда schedule это только тачки от к от команды нагрузочного тестирования не в общем не мешают остальным у нас есть агрегация зона для нашего внутреннего проекта в мастера проект для автоматизации тестирования гуя там его тоже у него определенные требования он расположен в отдельной зоне и все остальные наши там девелоперская окружении сервера там тестовое окружении они крутятся в третий большой такой агрегация зоне то есть получается на нее у нас уходит 6 компьют нот и мы крутим порядка там там переменная конечно количество например на прошу вас 350 виртуалок на все команды уходит что мы поняли когда мы уже прошли какой-то путь то есть мы думали то же то что там сейчас быстро возьмем за тепло и мы как бы это все будет нормально вот но через какое-то время ему поняли что для тепло и для сопровождения вот этого программного обеспечения нужна команда ну то есть команда в зависимости от ваших ресурсов да то сколько там будет один человек или несколько вот но команды должны быть определенной компетенцией в первую очередь это естественно антипода то есть диплом об инс т.к. весь написано на земле есть проект отдельный называется окон стакан sibl вот у вас по-любому если вы захотите пользоваться вас возникнет желание написать диплом для каких-нибудь компонентов как-нибудь кастом взять под свои нужды до нужно чтобы люди которые будут этим заниматься владели ansi блам естественно опыт виртуализации нужно уметь виртуализацию готовить нужно нужно тюните и понимать как она работает то же самое сетью то же самое с пекин сервисами который использует то пластик для своей работы да эта база моих галера майской и лепит в качестве очереди понимание как работает dns да как его настроить как там искать чё нить и также продукт написан на питоне нужно уметь читать код в идеале как-то ну там у патчить там уметь искать в комьюнити по читам фиксы какие про уметь проносить себе уметь не пожить код этот все и очень полезны было очень полезны если команда имеет такой подход имеет пользовался подходом как инвар страха за кода что она все вину к концу балда не все изменения хранят в коде если они все это пойдут на строят всю инсталляцию ручками да и нигде ничего не запишут то они будут иметь некоторые несколько проблем ну и continues in the great это так вот такой небольшой набор компетенций до которым должна которыми должна владеть команда вот почему continues integrations в набор сервисов монстер хай входит такой сервис как тем тест там все тесты которые написаны на все компоненты то есть если мы как как мы делаем и какую конфигурацию изменяем мы запускаем этот поддельный диплом волн ван инсталляции и прогоняем теперь смотрим там не отвалились 0 и что-нибудь у нас то есть 100 соответственно настроен там чай и команда но должна это понимать во первых что это но и уметь все это настроить потому что помните вот эту картинку до выглядит то все на самом ну как вот прикольная просто и привлекательно данного когда начинаешь больше вникать в нее от понимаешь что на самом деле все выглядит вот так вот это для кого то может быть сюрпризом для кого-то там само собой разумеющийся вот и помимо этого ну внедрение понс т.к. это не только техническое какое-то решение да то есть безусловно к технически компетенций высокий уровень этого нужен помимо этого нужно уметь продать на уметь объяснить командам как они станут мы с чем столкнулись как новую парадигму того как они теперь работают какие бенефиты это приносят там как как правильно с этим работать чтобы получить какой профит до этого соответственно мы писали много документации причем документация такого уровня что ну то есть небольшие какие-то статьи там навеки того прочая документация вида quickstart first steps там то есть что нужно сделать чтобы быстренько вот как-то себе облегчить жизнь не за тратить на это много времени мы проводили этих толки мы рассказывали делали тема мы показывали говорили вот смотрите теперь ваш продукт вы можно получить следующим образом буквально вот пишет шаблончик этом запускаешь вот так вот там проходит нам какое-то время вот пожалуйста онлайн или он пожалуйста в папе все достаточно просто не надо теперь ходить к админам и что-то у них там просить вот ну и в особо таких сложных случаях да когда то на проект сложные там у него куча кейсов на вопросе мы приходили в команды работали непосредственно с командами да то есть как-то попытались им помочь его авто автоматизации процессов и нас настраивали все там как-то заводили там себе какие-то баги понимали что мы мы что-то там не неправильно настроили в общем такая плотная работа с командами было что мы получили в итоге мы получили теперь можно сказать быстрый deploy продуктов раньше чтобы получить там продукты я уже писал да то есть нужно было совершить много ручных действий про взаимодействовать с многими людьми сейчас буквально того one-click мы получаем ну то есть при условии что если того гуно и не у всех проектов есть конечно если у проекта есть deploy написанные хорошо работающий то мы быстренько получаем января мин с установленным продуктом и используем по назначению отсутствие нормальной инфраструктуры было блокером для некоторых команд в плане реализация процесса себя и внутри команды то есть мы проблемы с инфраструктуры и решили они сразу же быстренько там себе тампой подняли по сисси серверу настроили там павел pipeline там у них на в виртуал очки там создаются все прогоняется в общем дали толчок в развитии этих процессов также помогли некоторым внутренним продуктом которые используют инфраструктуру там для автоматизации тестирования я уже помял вы мастер вы мастер продукт который тестирует наш онлайн ему нужно там поднять кучу виртуала чик что вы там с разные с разных браузеров пойти протыкать там но пройти какие-то шаги чтобы понимать что у нас онлайн работает во всех известных браузеров то есть ему очень помогли ну и бонус приятно что мы там был разгрузили сами себя ну то есть отмена в которой у нас есть что потому что ну в какой-то момент вот этот деятельность вам по сознание virtual очки создании виртуалки начал занимать какое-то это космическое время вот и все начали нервничать и прочие сейчас мы занимаемся интересными вещами сложными продуктами и вот от такой рутинная задача мы как бы избавились вот у меня все пожалуйста вопросы я видимо очень быстро да всё рассказал то что я не успел увидеть табличку здравствуйте а гротеска синтагма у меня пара вопросов так как у вас нет интересно сколько времени им помада pupa секунду вопрос сложный потому что я не знаю да потому что у нас был такой процесс который может быть легко там в комедийный сериал вместиться потому что ну то есть не было такого простого что мы вот взяли за использовали внедрили работы у него пару порождение высокий дает компетенции перечислила это все вот у нас где то вот когда а смысле вали на всю нашу инфраструктуру то мы искали решение это у нас где-то там три месяца ушло потом мы за месяц где-то раскатали первую первые столицей у наших загнали туда парочку проектов они нам там пожили потом случился человеческий фактор на монстре лили голову этой инсталляции мы там поняли что процессия отказоустойчивостью по плохо потому что ли железо короче 8 так и так так так что конкрит конкретные цифры я не могу нет мы не пользуемся копать поддержек поддержкой занимается полнота мальтой компания wear on this внутрь сумки серфер здесь в питере где-то или в москве вот и ну пока не было таких текстов и обращались но у них есть свой дистрибутив и своя система тепло я вот а мы из комьюнити ставят порно поддержка не пользовались спасибо сейчас сначала там я для всех скажу что там версия вопрос т.к. они называют словами да то есть он был гризли там exhaust джун of liberty а джуна не помню такой потом liberty песен а сначала был лидер сначала джуна был а потом мы прогрелись до liberty погромче не слышно так и не решился не сейчас управляет которые созданием ритуала нетании создания вертов ну-ка и там горочка в энгельсе может назвать это показывал хит то есть становится может позвать хит и и создать какой-то через так вот так большое спасибо спросить сталкивались ли вы с проблемами шарику ресурсов и вытолкнуть ребенка строго говоря 2 виртуалке физическим лицам отношения одна из них начинает характере на 2 там полоскать интернета треской потому что база совершенно сел karos вы сказали что вручную тестирование пометку видите отдельно прошла в общем со стволом но даже без этого сталкиваться и нет и если да то печаль но с шаре ним диска да и вот такого не было ! у него ничего не знаю вот по поводу того что у нас ну то есть продукты ну нам особо продукты друг друга особо не мешали то есть мы вот так вот разнесли по сценарию да то есть если ты хочешь какой-то тяжелый сценарий для там по роду прогнать нагрузочные там это просто идешь к мату нагрузочного тестирования там гоняешь а они уже как-то по расписанию тому проще решают вот а то что в обычном flow в деревне друг другу особо не мешает понятно и нагрузочная сразу то есть ну естественно да то есть нам пришел человек сказал что я теперь команда нагрузочном отель сначала как сначала приходят к нам люди говорят у вашего план стек тормозит короче выдайте там короче чем другая потому что вы виноваты мы начинаем разбираться показывать появилась команда нагрузочного тестирования которое там что-то делает мы приходим и говорим команде нагрузочного тестирования там один человек не слышит ее давай на друг на друга и у нас мы узнали сколько ему надо что он там у него планы там и продукты там сказали ладно вот теперь деле seo ахматовой туда ну так м спасибо это столкнулся с проблемой speed значит как приходите к к к к к к у нас увидит то есть у нас команда собирается понимает потому что нам нужно столько то ресурсов они нам заводят тикет и мы дел выделяемым ресурс индивидуальные пользователи у нас нет у нас есть команда нет у нас такого кейса нету вот там есть планировщик да то есть пай по ресурсам картам разыгрывают он тест ну как заявляется документации что за можно даже программы программированного логику то строить да и нет у себя как как анзак он конкретно работает я ваша стопа скажу большое спасибо за доклад я такой вопрос вот старая по структурах которые бутылки поднимались . мир забрали и уже поскольку был сложен переезде ставить это был выше веселый процесс да то есть мы естественно этот порог способ мы открываем да там какой-то список virtual очень и чудо понятно кто использует в другие использовали дата была какая-то деятельность сравнимая с это с селективным расследовать когда пишешь сначала письмо на всех его пацаны он весь такой список мир палочек кому надо ответ тишина да то есть ты смотришь там на название какое-то подозрительное название до костяшек неделю никто не прибегает удаляюсь и вот так вот потихонечку dance ну там приходится команда и говорит что он судя по названием там вот эти вот virtual очки относятся к вам обучению про них знаете где вкусно удаляешь здесь ну вот вот так такая вот ручная работа в итоге все это расчистили какие-то вертол очки перечислены пересоздание вам просто и где за железо провести очень интересный день попробуйте при слышать ваш идя по глаз вопрос зачем да да в общем-то об стану я тоже читал поздно литературу досмотрел мне нравится тот вариант что его все-таки идеология идеология направлены на то чтобы как можно быстрее доставлять продукты на пойму какой то в июле стиль наших костях а соответственно все процессы в компании и инструментарий и мышление и взаимодействия между членами команд они должны вокруг этой целью быть выстроены вот это спасибо спасибо