Здесь переводится видео в статью Ильи Сауленко из Avito "Legacy в коробочке. Dev-среда на базе Kubernetes"
Ссылка на видеодоклад https://www.youtube.com/watch?v=ZobBZjqH36Y
Текст сделан из субтитров. Буду очень благодарен в форматировании текста, его вычитки. Для этого достаточно знать русский язык. Присылайте свои pull request или присылайте текст на почту patsev.anton[собака]gmail.com
я привет меня зовут илья сегодня раз два три 4 5 6 7 ok а сегодня я расскажу как менялась наша дев среда 1 раз вот так вот да как как менялась наша дев среда при переходе на микро сервис и собственно начать хочется с вопроса кто как представляет себе микро сервисную архитектуру поднимите руку кто считает что она выглядит как то вот так несколько рук или может быть она выглядит вот так окей нет на самом деле чаще всего она выглядит вот как то так мы имеем исторически сложившийся монолит мы пилим новые фичи в сервисах мы вытаскиваем старый кот из монолита в новые сервисы по немножку потихоньку но как бы суровой реальность что смотри там надо жить монолит надо разрабатывать потому что продакт-менеджер и они как бы тоже люди они хотят разрабатывать продукт приносить пользу пользователям зарабатывать деньги им неважно где находится вот этот ваш код не за этом в метро сервисе или где-нибудь в дебрях дебрях старого legacy кода поэтому fitch надо разрабатывать завязать старый кот тестировать и даже если мы пилим какой-то новый сервис то чаще всего основным потребителем этого сервиса все равно будет монолит и надо как-то тестировать вместе друг с другом поэтому вот эта суровая реальность как как дело обстояло у нас да вот этих всех изменений для дев окружения у нас использовался в гранд там внутри него был шеф для там про вижу никого софта все вот это вот на тестовых тестами среды были развернуты на linux контейнерах и софт там праве женился через память исторически сложилось тестовой среды больше похоже на продакшен но вот и не вы там там шеф тут побед и тут однажды ко мне приходят ко мне мой начальник виталий говорит нам нужны новые среды что они так есть много много нюансов собственно любой кто хоть сколько долго работал с по грантам знает что но он на колени могут быть хрупкими в пятницу vagrant pro-vision работал в понедельник сек что-то отвалилось собственно шеф конфигурации для развертывания софта которые используются для дев сред они сильно отличаются от тестовых они сильно отличаются от продакшн и чем больше кода чем больше fish team тем больше эта разница разрастается и и все сложнее поддерживать тесты порой могут там ради каких-то оптимизации ходить в одну общую большую с реплицировали базу данных то есть запускаете два теста они все оба пишут изменяют один одну строчку в таблице и там терский зап на отвалился вроде ничего не сломалось но вот и ступали и всякие проще подобные проблемы собственно мы решили глянуть что же мы на тот момент использовали для микро сервисов которые мы начали зарабатывать до капли контейнеризации к убирают для регистрации я надеюсь что большинство здесь присутствующих слышали о том что это такое но если что контекст на там потом до объясню собственно кей мы взяли докер cabernet и как раз вот тот переходный момент мы добавили к этой связке чехол ну в том что мы теперь я за него для микро сервисов но кем это это вероятно менее известная вещь чем докер cabernet это менеджер ресурсов кажется у меня там есть дальше слайде по подробнее на это чему поэтому сейчас не будем заостряться какие можно можно сказать что блин убирается это сложно зачем current использовать для там локальный дев разработки там надо настраивать сеять там не знаю ставить от сиди там сертификаты прокидывать систем обивки blitz туда-сюда-обратно у тебя слишком сложно вообще нужно ли это для локальной разработки а это не так сложно есть конечно камень и кьюб пакет это приложение которое позволяет локально развернуть в виртуальной машине на ваш выбор кластер из одной но доминике бы который но будет иметь 99 процентов фич и для разработки вполне и вполне достаточным либо еще есть скрипке в адам который там можно использовать для разворачивания кроме с кластер в облаке если если вы предпочитаете это дело ну в общем смысл в том что является это несложно ног обернитесь это это перебор то есть на черта нам регистрация контейнеров если мы разрабатываем одно а там пусть и большое конечно но то есть одно приложение на одном локальном сервере зачем нам оркестрация дайте код писать нравится вот этот вид типа человеке смотрите я выложил мой блог в интернете очень очень удобно это тоже на самом деле не совсем правда потому что интернете с из коробки представляет вам ряд фич которые в другой ситуации пришлось бы либо решать самому там как ты за велосипедом настройками там победными шефами либо использовать какие-то сторонние решение вот купюрницы очень много комитет из коробки просто просто работает и не надо заморачиваться поэтому это тоже плюс поэтому вот взяв вот все эти мысли о том что надо ривере юзать технологии там и прочим решили посмотреть как там выглядит наш микро сервис на тот момент и как выглядит вот монолит который мы разворачивать в кластере какие их различия там и как можно те же технологии переиспользовать очень арци и график такой собственно приложение состоит из слова какого-то кода приложения из описания сборки в виде таких файла из описания диплом в виде charm черт ямале тот файл для фильм который по которой тоже чуть попозже и и у сервиса могут быть какие-то внешние данные там 0 до источников и он может ходить в от 0 до n сторонних сервисов вот если так грубо грубо описывать что насчет монолита а там обычно больше источников данных там обычно больше сторонних сервисов приложение сама больше ok неважно чаще всего там есть какие-нибудь большие такие источники данных которые очень очень упорно не хотят влезать в локальный среды разработки или там были все виды тестирования и и тепло и сборка но чаще опять же эволюционной архитектура все вот это вот deploy сборка чаще представляет собой какой-нибудь здоровенный python баш фабрик что-нибудь о скрипт который делает не только сборку и дипломе который делает прям все то есть незанятым в жир упасть это он слег постит там за и мониторинге настраивает все вместе делает хотя мог бы ну в общем собственно две основные проблемы это тогда мы и вот со сборкой и диполь на что сделать давайте представим что вот каждый квадратик все все источники данных и приложений и там опционально сторонние сервисы мы допустим возьмем завернем в отдельный дует докер-образ будем отдельно и поднимать но постараемся сделать так чтобы отдельно их поднимать ручками не нужно было потому что мы хотим legacy в коробке мы хотим чтобы это все в одну команду разворачивалась поэтому окей а будем разворачивать это дело в отдельных докер в контейнерах но сначала нам надо что-то сделать с данными из разборка диплом давайте возьмем мы берем вот не знает большую базу или что это там и подумаем что с ним можно сделать ну во первых не знаю скептики могут сказать что блин засовывать докер базы в контейнер это не очень кошерная и вообще типа отчасти они будут правы засовывать production базу в докер-контейнер вероятно я бы наверное не стал из-за там по производительности из-за там стабильности secure насти еще чего-нибудь но когда дело идет div разработки и и вести и тестовых средах то на самом деле там есть очень важный большой плюс это то что докер образы из базами данных они нас убьют обл то есть мы можем поднять 10 копий базы для 10 разных сред прогнать на них тесты убить и всем поднять заново но обычно декор образы ограничены по размеру там начиная от физического размера образы которые там с 10 гигабайт подняли до 100 гигабайт и заканчивая там всякими практическими штуками достиг эти образы с базами надо все равно как ты себе локальной качать чтобы запускать либо там качать их на штыках на которых мы запускаем тестовый среды чтобы запускать их там и духи обновлять поэтому если не буду очень большими ну это это вызовет проблемы поэтому как быть большими базами 1 вполне неплохой вариант не как и происходить в продакшен самом деле мы тут хотим не знаю сделать изолированные среды и все прочее но в некоторых случаях это вполне такое как бы нормальный вариант но с одной оговоркой то есть если эти данные у нас readonly и по хорошему если они считаются не из реально там мастер продакшна хотя бы счастлива если рядом ли данный это вообще все о почему бы нет второй вариант опять никак но поднимать то есть пустой сервер баз данных со схемой без данных всех для опять же многих случаев там не знаю там сбор статистики или что-нить еще это тоже неплохой вариант мы просто поднимаем базу данных которые можно писать нужные данные при разработке или тестирования начинаем писать данные можем прочитать новые данные и все опять же на прост смотреть уже инна you space 3 вариант это почти как второй вариант но мы поднимаем сервер и закатами туда какой-нибудь тестовый стаб который нас там отдельно подготовлен в диске или файл или что такое порой тоже неплохой вариант но единстве минус этого то что этот тестовый стаб надо как-то поддерживать обновлять если там что то что-то изменится 4 самые такой жизнеспособный это сэмплировать часть боевых данных допустим у нас там есть 3 терабайта айтемов из которых 99 процентов неактивны потому что они там у них время жизни закончилась лежат в архиве и один процент который нам нужен для разработки и тестирования можем просто брать этот один процент и заливать себе и можем брать ни один процент можем брать там 0 2 процента и нам все равно будет этого хватать единстве нюанс сэмплирование несет за собой такую большую цену это в плане поддержки то есть если мы хотим если у нас есть таблици юзеров который мы хотим за центрировать то нам надо консистенции центрировать связанные данные из таблицы лидеров и все вот это вот и тут уже надо выбирать трейдов и но лично я на практике не видел ни одной нормальной штуки которая была бы достаточно универсальным сэмплером который по декоративному описание мог бы сделать маленькую копию базы поэтому если кто нибудь знает скажи расскажите мне я буду очень рад и 5 такое типа домашние задания вариант со звездочкой сделать пульт серверов нас на фотах файловых систем типа не задеть один сервер большой с базой данных там с репликой какой нибудь какой нибудь за tfs который практически бесплатно предоставляет копи он райт и поднимать там 50 копий базы данных на одном сервере микро изменениями которые генерируют дев где в тестовой среды там чуть чуть чуть чуть чуть нагружать диск и и все да собственно так как мы собрались все таки класть базой в дакар образ то вот здесь сейчас мы поподробнее остановимся немножко на вариантах 34 потому что 1 не подразумевает докер образы 2 это просто поднять базу данных а вот 3 4 это нам нужно поднять база данных загрузить туда какие-то данные и по хорошему сделать новый образ из без этого контейнера чтобы не накатывать данные каждый раз и не то там центрировать данные каждый раз собственно здесь некоторых случаях можно ограничится обычным джокером джокер билдом простите но но зачастую приходится применять докер commit если кто не в курсе toker commit эта штука которая принудительно делает из текущего состояния файловой системой новый новый образ новый слой в доки в образе как будто бы это просто очередная строчка в в докер файле собственно использует этот подход мы можем например сделать образ с дисковыми индексами сафин search из базы данных запущенный в отдельным соседнем контейнере и закомитить это дело в готовый образ тут не знаю там вкладка кода который потом лучше посмотреть отдельно в слайдах если вкратце то мы поднимаем контейнер с базой из образа с базой поднимаем контейнер со сфинксом при при ленкова им к нему сеть и там экзо крем переиндексацию с топовым контейнер коми ким изменения в новый сфинксы матч еще интересного у этого подхода есть некоторые такие более пенсии высокоуровневые альтернативы у ланси был есть контейнер который позволяет там типа хитро собирать докер образы и пакир тоже примерно подобный функционал использует поэтому если вы не любите писать на баш это возможно один из этих вариантов он подойдет окей сданные мы разобрались у нас теперь все образы маленький и быстро качаются или вообще пустые теперь пора взяться за большой кусок по 5 питона и баша собственно для чего нам нужен по 5 все вот эти люди чтобы проверить софт надев среды на тестовые среды ну и чтобы версии софта были актуальны и нужные уснули там где надо собственно не знаю да у нас там по гарантии одна версия но да и там все разрабатывается нормально тестовых средах старый сборка отвалилась и что такое докер бинт обычно эту проблему решает поэтому особо останавливаться на этом моменте мы не будем просто один раз собираем образ и отрезаем нужную нам версию софта везде то есть все ок однако опять же да кирби не всегда хватает и и вот эта штука она очень похожим на docker commit на самом деле но есть случаи собственно когда какие-нибудь есть надуманные или не очень ограничение но вот за кто собирал докер-образ не знаешь с папой но джесс это мне знание собирал в нем что-нибудь вот а весил ли этот образ итоговый меньше гигабайта возможно немножко то есть но и там было много вещей которые нам нужны обычно исключительно для сборки вот вот этой статике там не знаю для сборки приложения и решили что не такого для запуска все эти зависимости нам нужны но тем не менее мы там гоняем через а и мы их запускаем в кластере качаем эти образом в кластере там много вверх и да и прочее вот хотя нам нужно разный набор для сборки для запуска и еще похожий пример со сфинксом но например у нас при сборке чтобы в продакшене ходить там словарные таблички на каждый запрос мы при сборке берем делаем статические php джесс файлы с этими словарными данными и просто потом уязвимых соответственно для того чтобы идти словарные файлики сделать в момент сборки нам нужно какой-то баз данных и да это опять же похожи на случай со сфинксом но энивей на помощь приходит паттерн build контейнер у нас есть build имидж который не apple конечный матч в котором там операционная система в котором зависимости нужные нам для для сборки мы добавляем исходные коды запускаем этот образ запускаем контейнер из этого образа получаем собранные приложения собранное приложение и потом уберем апликэйшен имидж в котором есть операционная система и зависимости на нужные нам только для запуска мы берем собранные положение добавляем этот образ и у нас получается маленький образ его успех тут опять там пример drucker файла сборка лучше уж потом сайтики посмотрите подобные штуки есть в некоторых других проектах есть проекта рокер это такой проект который который старается поддерживать быть обратно поддерживают эти файлы собирать такие файлы но добавляется дакар файл несколько новых инструкций его сделали ребята из говерле собственно там там можно определить в одном дико файле несколько образов из первого образа экспортировать какие-то данные а потому 2 образа импортировать эти данные есть есть приложение доп от ребята с флант которые там сидят он сходите к ним а ли они клёвые которые тоже помогают решать подобные проблемы но ценой такое сложно высокоуровневый dsl который мы не хотели заморачиваться и самое клёвое что вот весь этот документ я не знаю то ли уже не актуален то ли то ли вот-вот будет не актуально потому что в дакар 1705 эту штуку реализовали нативно и она называется больше стоишь build поэтому осталось осталось обновиться на него нет на самом деле больших builds они позволят сделать вот штуку когда надо сходить в стороне базу насколько я помню но build контейнер с разным набором софта это позволит сделать окей со сборкой собаками разобрались у нас получился такой файлик там немножко баша моих файл чуть-чуть ну понимаете теперь мы можем собирать наше приложение предсказуемую иметь один выходной artifacts виде такер образы и переиспользовать его но однако побед питон ой бож остались для диплома надо с этим что-то сделать фильм та самая штука которая говорил чуть раньше менеджер релизов почему фильм собственными то менеджер релизов он позволяет реализовать тот подход который нам навязывают 12 факторные приложения все какая это разделение приложения и конфигурации собственно у нас есть 11 докер-образ с приложением и мы хотим его переиспользовать с разными конфигурациями чтобы например выкладывать штука локально для разработки и выкладывать на тестовые стенды и притом разные настраиваемые тестовые стенды но и широко и собственно позволить решить эту задачу нам как раз позволяет фильм что клёво в фильм относительно некоторых альтернатив про которые я расскажу чуть позже это то что он не выдумывает замены существующим хорошо работающим кабины с примитивом то есть он их эффективно юзает позволяет их шаблоне zero вать но не без проблем ну и собственно предоставляет возможность в котомке релизы параметризирована с настраивать ну и в общем этот как раз то что мною для диплом у фильма есть ряд альтернатив it up контроллер от мир on this который мы не взяли потому что он на мутно лично мой взгляд немножко противоречит принципам ударница в плане того что он добавляет там зависимости между частями приложения там порядок тепло и все вот это вот и этот момент когда мы на него смотрели там было там не было практически документации и мы мы были очень ленивые решили подождать еще есть честь flags ее спинакер это штук и от вы works и netflix насколько я помню соответственно но они они позволяют решить эту проблему но вот как раз они предоставляют значительно больше больше fitch которых которые нам особо не нужны и ну такие прям массивные штуки у них стоит посмотреть но нам они не подошли и четвертый самый лучший вариант мы на самом долго думали они на писатель нам велосипед потому что на первый взгляд количество работы которые фильм делал оказалось не таким большим но во первых с течением времени обрастал фичами полезными порой во вторых но все-таки блин если если если ты можешь фиксить пол request и там кому-нибудь на равнине знаешь еще 20 людьми это лучше чем чем фиксить свой велосипед в одиночку поэтому поэтому фильм для следующих слайдов здесь немножко кратенько введения сущности которым фильм оперирует под капотом фильм чарты то это описание того как должен выглядеть релиз он состоит из метаданных в чарт я он содержит кудрявится ресурсы который мы хотим за деплоить в минимальном таком рабочем варианте мы просто берем существующие наши cabernet с ресурсы которые мы доплыли до этого через скрипт теплой и складываем их park place и все работает это можно уже на природе площадь в разные на нем space и или что не такая хотя коктейля тоже позволяет но минимальный работающий вариант это вот папочки тимплей цска с ресурсами но так как я не поддерживаю шаблонизация то эти ресурсы можно планировать с помощью template и есть файлик вирус ямале который ну такой содержит публичный интерфейс chart по сути это единстве место через которое нужно настраивать конфигурацию релиза из этого chart ну и соответственно если мы хотим выполнить разные версии приложения или там с разными параметрами то это все делается через через в лес и у часто могут быть сложные чарты и у чартов могут быть еще важные черты helm позволяет нам делать декларативный deploy мы говорим как должно выглядеть наше приложение говорим там с какими параметрами 3d шаблон и фильм бренди решаффл шаблоны и скармливает их в купер нить из интернете с такой простенькой схеме делает из них подали обычно не напрямую также для простоты понимания и cabernet свою очередь обеспечивает чтобы у кодов были контейнеры мы просто говорим нам нужно вот эту вот штуку зарелизить все остальное дальше по цепочке делается за нас но у такого декларативного подхода есть небольшой минус если бы дефолту скажем что вот нам надо диплом такой релиз steep кабинете с выложить это дело он создаст сразу же все необходимые ресурсы и они будут запускаться асинхронно то есть кто как кто как успеет параллельно там кому-то надо сначала большой образ скачать кому-то надо как-то кто-то уже запустился дасти синхронное типа неконтролируемая обычно при первом знакомстве собирается эта штука вызывает такое типа блин как я я не могу управлять процессом деплоя но но в итоге больше плюсов чем минусов но тем не менее когда мы диплом фильм чарт мы хотим знать успешно он выложился или нет собственно здесь в дело вступает еще один маленький примитив к вернется который который маленький отлично работает и перри используется это райден из проф 1с проб это параметр у контейнеров на трипода который позволяет указать проверочку которую cabernet должен сделать чтобы посчитать контейнер рабочим или нерабочим насколько я помню сейчас из таких нормальных вариантов там есть два это он делает и как внутри контейнера какой-то и смотрит на экзит код не знаю там можно файл проверить или там были еще что-нибудь и он может сделать этот пакет на интерфейс внутри контейнера и ну тоже соответственно если 200 код ток если если 400 плюс это то что то что то сломалось собственно get help z200 gipfel лет пятьсот что клёво а под капотом купюрница использует эту штуку в том числе для того чтобы например добавлять или удалять под ее слот балансиров и одновременно фильм может использовать эту штуку чтобы определить успешно раскатился у нас релиз или нет мы запускаем там фильмов great минус минус он стал и теперь в обратном направлении от того как мы декоративную тепло или нашего наше приложение у нас идет такая агрегация статусов то есть это 1 фото все три контейнера стартанули успешно у последнего пода с контейнером что-то случилось это единственный контейнер у этого кода соответственно этот под тоже тоже полечился как файл об этом узнал каберне this сообщил фильма и фильм фильм нам вернула дидкот один говорит что все плохо это без или штуки никуда там все ну и даже привез deploy локально потому что мы хотим знать успешно нас или нет поэтому за счет вот этой к 0 возможности гранулярный описывать ради нас props это позволяет нам маленькими усилиями и получить такой overview все состояние нашего приложения во время тепло и конечно же у фильма есть проблемы самая большая проблема это то что он очень молодой и очень быстро развивающейся за если кто-то говорит что интернете с быстро развивающейся ну окей возможно это правда потому что там больше контрибьютором но если без и нормировать на людей это мне кажется фильм значительно быстрее развивается и поэтому зачастую раз с ним общение такое типа что-то не работает или чего-то нет идем вышью смотрим статус проблемы ok ребята решают на своей стороне как-нибудь поверх костылем так чтобы это была совместима с тем что собирается в еще сделать ждем пока закроют еще утром костыль в том числе вот тот вейдер один из пробуем долго времени очень хорошо работал но сейчас сек а очень большая проблема с которой не знаю прям хочется речка вид мач порой но нет когда запускаешь фильм install он просто сидит и вот и молчит то есть он под капотом проверяет ради нас пробы всех контейнеров там он теоретически может за событиями наблюдать но в тюрьме он не будет вообще ничего то есть это если хочется понять что происходит просто открываешь отдельную консольку и там идешь уже в кабинете через киттель там есть был request и там есть два связанных пола request и которые эту проблему решат я надеюсь скоро пока пока нет и третья проблема которая на такой за возможно уже опять моя личная проверена не чувства но лично я очень неловко себя чувствую когда мне приходится строковом шаблонизатор нгау template какой там тексте plate чтобы они зиру и тем ли файл который потом станет структурированными данными то есть ты не за не за немножко там ошибся с переносом строки и все эти не валидный него линиям ли это не то чтобы там дел breaker но пора неприятно но из коробки фильме поддерживается возможность делать настраиваемые шаблонизатор и пока это никто не использует но там он еще ссылочка который тоже в слайдах можно нажать там есть реализация и с использованием джейсон это такой язык который джейсон генерирует или баффи лица либо генерирует поэтому вот окей мы поправили deploy теперь у нас у это тоже есть черт ям и теперь например у нас есть ситуация что мы хотим поднять монолит частью зависимости и счастью сторонних сервисов с частью данных ну конечно сделать такую костяную сборочку потому что например не знаю я вот хочу тестовый среду который будет своя база локальный поднятый сервиса и б сервис cs3 jing или там я вот разрабатывает там что-то мне новый сервис интегрировать с монолитом оставленные очень интересным для этого дела тоже на помощь приходит helm его шаблонизация у нас помимо дефолтного листья были есть еще такие типы пред заготовлены вылез для разных окружений которые там обычно не знаю оказываются джек места и джунг для сервисов там или поднимать базы ли не понимать базу собственных файлов можно этом с да кстати базовые опять же из-за того что фильм очень очень очень быстро развивается то сейчас вероятно вот такой подход использовать не стоит тот который будет на следующем слайде но потому что когда мы начинали зависимости между между чертами не очень работали мы позаимствовали там кого-то подход с параметром локэйшн мы говорим там сервисы и локейшн внутри кластером ignite просто берем оборачиваем купер нет шаблон в в условия и просто рисуем его или нет если вновь кластер то вероятно там ему перед какой-то адрес который точно также шаблоны можно подставить и получить какой-то настроенный конфиг который вместо вместо локальной базы ходят в продакшен предложили базу например или что такое но да а сейчас есть зависимость между чертами они немножко странноватые такие в своем поведении но в большинстве случаев лучше использовать их хоккей обрезали приложение срок и теперь самая главная часть экспириенс чем чем счастливее разработчик тем лучше он код пишет там где-то исследовании были всякой дедом это очевидно то есть приходишь на работу грустный это и код плохой получается поэтому но но этот раздел они атома на самом деле о том какие у вас проблемы все-таки остались после переезда на вот все это дело и которые мы планируем решить и как мы их планируем решить так как мы при переезде с vagrant для локальной разработки все еще остались наверху боксе там есть проблемы с в боксов с в бокс с с него медленно читать он не поддерживает смену прав внутри дерева то есть мы не можем там примонтировать под рутом а потом сменить внутри нового дата отдельную папочку ну и так как это не полноценная система там не очень работает и найти файл и вот египте который официальный инструмент для работы с вернет запись консоли он клёвый но он слишком слишком низкоуровневый как бы он по сути консольный доступ к пили и когда у тебя ну когда хоть и монолитно у тебя уже с роботом база в отдельном контейнере приложение в отдельном флюенс в отдельном еще что-нибудь у тебя уже получается не за этом 1020 кодов и я чтобы понять посмотреть что с ним происходит ну типа тель слишком низкоуровневый и много возиться приходится а еще клип телек зайка это не терминал это экзо поэтому если кто-нибудь катается не за этом запустить топ и он говорит что не известный тип терминалы лишь нибудь еще это просто из-за того что китай лик , как собственно нас у нас в планах частично парализована всякую рутинную работу skip теле мы хотим завернуть в там скриптик централизованный очень клево было бы сделать даже борт который бы показывал самое важное самаре состоянии ковром с кластером не кажется ты в продакшене было бы удобные вообще поэтому если кто не хочет сделать дашборд клешни то там пишите еще мы планируем выкинуть в бокс-офисе заюзать что-нибудь типа lcd для синхронизации файлов внутрь виртуальные машины или внутрь класть кластер и собственно зарезать кластер слышь наша персональный облака вместо вошел бокса чтобы ну не все любят virtualbox локально поднимать когда мы начинали эту затею все думали что при наконец-то нашел бокс нужно будет поднимать нет пока нужно и еще ребята из который раньше работали в ds который там microsoft мигрировали что такое буквально вот на прошлой неделе выпустили инструмент драфт который типо вот про разработку под cabernet локальном поэтому надо его посмотреть поизучать идеи стырить или там по request и сделать вот собственно что у нас получилось у нас получилось решение на докере cabernet совершил бог сам имени кибом для локальной разработки мы используем образы разработки и тестирования везде и у нас то самое лезете в коробочке получилось которая с минимальными телодвижениями максимально предсказуемо можно поднимать в разных окружениях и получать консистенции результатами вот спасибо вопросам спасибо иллиан спасибо за доп от вопрос следующий вы сказали что для девелопмента у вас есть докер-контейнер который начинено у словаря дампом базы какого-то там объемы может быть неполной production да и соответственно в этом же контейнер и может крутиться там сервер базы но необязательно не то есть мы просто загружаем в базу данных делаем стоп чтобы ну чтобы база восстановилась нормальную и просто делаем snapshot файловой системы то есть как базовых хранит это дело так это и попадает дикобраз мы не храним там сэмпл отдельный ним не накатываем его как раз чтобы ну чтобы быстро и время старта получить и прочее а как вы решили бы проблему когда приходит бах у вас это не полная база и вот именно баг случился именно эту и поттер пользу той или с этими данными у вас их нет девелопменте ну вот если данный конкретный случай то я бы на самом деле лучше reporting ошибок лучше бы делала то есть на мой взгляд когда не знаю ошибка приходит куда-нибудь там в центре или или что нибудь такое если у тебя недостаточно данных в самой ошибки чтобы пойти и погиба жить перри повторить то можно что-нибудь улучшить понятно то есть не пытаться затаскивать данные из базы тому же данных может быть гипер многое лучше reporting и логин развивать чтобы понять ошибку из них нет данных ну да я могу представить какие нибудь другие случаи когда хочется вот не какой-нибудь рандомный сэмпл получить что-нибудь конкретное но берёшься можно тогда просто пойти договориться с ребятами у которых есть доступ для до продакшен слоев и и там понятно спасибо мне счет вопрос вы используете наверно свой только приватная регистре до от большие ли бывают контейнеры и долго ли приводит приходится ждать разработчику чтобы скачался новый образ новые базы для винта на данный момент у нас самый самый большой образ с базой весь что-то типа 3 гигабайта но у нас достаточно быстро и сеть поэтому обычно это не очень заметно докер регистре он в локальной сети находится дам а в продакшен собственно как как это заливается тот же докер регистре использовать или другой нет здесь у нас у нас там общий общая сеть там к продакшном и пересекается с дата-центром вот и поэтому достаточно быстро да дам а вот если у докера регистре зеркало чтобы например докер регистре который крутится там тебя в облаке easier коллировал сна локаль если нет общей сети с то есть ли дуете крутится сайт я если честно не задавался этим вопросом в плане если такое зеркало но я задавался вопросом что этом порой может быть нужно как раз чтобы например ускорить старт за и новых приложений на отдельных модах то есть у нас есть registry а можно было бы сделать штуку которая там покрыть маски докер образы скачивала бы прямо при при их появлении на локальные в локальных докеров докер д каждый из нот как где они могут понадобиться поэтому надо будет изучить этот вопрос спасибо расцвет вы уже частично ответили на вопрос который хотел задать по поводу заполнения данными образы докеры на базу данных как вы актуализировать данные со временем ведь структуры меняются и сами данные где-то там новый появляется это вас как то автоматически но да это это это хороший вопрос то есть я как раз в докладе говорил что если вы собираетесь идти по пути сэмплирование то много проблем в пути встретится ну собственно у нас самым клевым решением было бы не заветам какой-нибудь декларативное описание в в коде кто куда ходит все это дело парсить и там не делать полную схему связей не на уровне уже базы данных именно на уровне логике приложения но у нас к сожалению там есть конфиге что как сэмплировать у нас там есть регламент что типа ребята если вы делаете что-нибудь конкретные новые не забывайте всем прива добавить иногда забывают всякое бывает но то есть вот час мы стараемся это пока административной решить какие-то скрипты которые наполняют данным у нас даня у нас да у нас есть скрипт для сэмплирования ли у него есть там конфиг откуда что брать с какими зависимостями и там типа какой процент сэмплировать вот и советском у нас там в комплексе написано что вот ребята если делаете что-нибудь новые там функциональность то не забывайте обновлять конфиг темпера это не идеальный вариант но как бы типа сойдет понятно и еще вы не пробовали докер компост для разработки нет да мы пробовали decker компот для разработки но во первых так как нам нужно было не только для разработки на еще для тестирования у нас уже есть нормальный работающий купирует кластер и cabernet сделает все что делает докер компост только чуть-чуть лучше и чуть больше функционала поэтому у нас у нас был там небольшой небольшая фаза когда мы экспериментировали с 2 каком пазом для этого но в итоге все скаталась потому что дублировались конфиги и делаю еще одно и то же для разных окружений что по сути шило на мыло как раз то чего хотели мы утиный спасибо большое за интересный доклад у меня вопрос по той части доклада которая была про удобство разработчиков я так понимаю что разработчикам удобно работать войны есть чтобы они могли локальные редактировать файлы вот в боксов с не самый хороший вариант вы сказали у нее много недостатков а что мешает все таки вот и что вы делаете в том направлении может быть уже какие-то наработки есть чтобы все-таки избавиться от virtualbox и использовать тот же самый кластер cabernet развертывание локальных это в планах собственно так как для разработки исходные файлы надо как-то доставлять хоть в виртуальные машины хоть в кластер сначала решим этот вопрос у меня был опыт работы с sing диета это клевая штука которая позволяет писать слов скрипты и не знаю делающие слежения за изменение файлов и там запускающий росинка всякое такое ну и собственно если это сделать в общем если это сделать достаточно масштабируемое универсально то это можно будет использовать как и для синхронизации внутрь вошел бокса в обход в боксов с так и в принципе для синхронизации внутрь кластера ну то есть там придется чуть-чуть там где-нибудь там приемниками для этого arsenka что-нибудь придумать но то есть это ближайших планах как то как то так будем делать спасибо давайте ещё два вопроса вот я вижу двое людей а вы выбирая тур нету сравнивали его с ранчо равно суар вам там с почему решением томатного да потому что я вот в мае начал как бы смотреть и мне кажется что купе red на самом деле справляется свои задачи регистрации потому что есть что тот самый вот фильме и steel pan shift то есть он слишком сложный задача кастрация животных раз простой какие-то минусы вот раньше ракетка убираться нет собственно как я уже говорил когда мы начали вот этот данный конкретный проект и которым презентации у нас уже был работающий повернет кластер у нас уже были сервисы которые там тепло велись и как бы ну в большинстве случаев всех это устраивало поэтому там то он сидит женя которого можно будет поспрашивать жене помахай рукой вот же ли можно будет спрашивать почему мы выбрали именно кубер нить из вот хельма мы из выбирать сам есть такая проблема которую я как-то видел там мы мин тренеры в некоторых ти китах обсуждали то что изначально вот этот вот я синтаксис всего этого дела он подрался как такой быстрый вариант чтобы дать возможность загружать что-то в к первой цепи чтобы начать разрабатывать и прочее но он слышит слишком низкоуровневой поэтому но тут дай есть есть куда стремиться но вот вот вот вот вот вторая ссылочка внизу кейса над это проект который предоставляет библиотечку для джейсона для более высокого уровня в описании к убираются ресурсов которые лично мне нравится надо чем вот только всяких разнообразных библиотек то есть раньше не кажется все решает этот момент камера и локализации также на окружение какого срач вала и куда red из коробки не встает у ему там нужен притчи и я начал с проблемой она будет как решаемая но я задался зачем ты и решать если и как бы раньше как только контейнер просто ставится и работает есть сеть мониторинг можно получить контейнер уже начинается дискуссия с евгением пообщаетесь пожалуйста доводить последний вопрос давайте последний вопрос а надо готовить следующего докладчика извиняюсь вы можете пообщаться еще спасибо за клад здесь и вопрос такой как вы делаете ся и то есть они только приложение которое работает внутри кубер не то со мной и seo и всего инженерного кода который нужен для работы cabernet это скажем если вы на своем железе опускаетесь а вы скорее всего нас окружили запускаетесь вам нужны тесто лот балансиров ingress контроллеров и вот этого в село то есть вы же его развиваете этот код как-то то есть миссия и всего подряд как вы делаете ну у нас для всего общего варит и затем сити и как бы мы вся и разворачиваем тестовой среды там для в то тестов все прочего и у нас есть отдельные проекты которые при обновлении выкатывают просто для для теста новую версию вот этой среды и по большей части как раз ориентируются вот на на there один из проб и которые я говорил то есть если релиз успешный прошел то значит скорее всего все ок то есть у нас мы используем один из проб мы там проверяем базу там сфинкс все вот это вот потом еще отдельно дергаем снаружи чтобы действительно проверить что ингрос контроллер сработал ну и вот то есть это больше смог тестирование то есть такое коротенькое но самое основное проверяет вот спасибо давайте еще раз поговорим о льюса glade