Продолжаем обсуждение не нужных настоящему российскому бизнесу технологий. У клиентов вся консоль в ошибках, а на тестовых машинах тишина и покой? Контрацепция идёт в тряпочку, а деплой - в папочку? Анон поможет.
Вопрос. Зачем мне использовать всякие Terraform или, того хуже, связку Terraform + Serverless, если CloudFormation поддерживает систему макросов (своя и/или SAM) и является более функциональным инструментом?
>>2116900 Ладно, я не заметил, есть там азур. Но в каком-то ебнутом представлении, зачем билд и интегрейшн делать в дженкисах, чтоб потом на азур лить? В чем проблема на азуре и билдить и т.д?
>>2112705 (OP) Сап, девопсы. Есть ли какая-то принципиальная разница между использованием docker compose и kubernetes, если я хочу развернуть приложение на одной машине?
>>2123747 Каэш. Кубернетес - про отказоустойчивость от многонодовости. А ты кубернетесом на одной ноде убъешь к хренам все преимущество куба. И оверхед еще получишь. Для одной ноды юзай докер-композ или докер просто, размазанный ансиблом.
Есть файлы static.Dockerfile и nginx.Dockerfile, но нет самого dockerfile. Не могу разобраться с тем чтобы заставить это работать.
В файле ридми есть команда для билда: "docker build . --tag имя-проекта" Но после этой команды вылазит ошибка: failed to solve with frontend dockerfile.v0: failed to read dockerfile: open /var/lib/docker/tmp/buildkit-mount169807584/Dockerfile: no such file or directory
И я не могу понять - команды неактуальные в ридми? Как добавить проект?
Сейчас задача просто развернуть это добро чтобы протестировать, получилось ли у меня решить проблему или нет. Выручай. К девам лезть совсем не хочется, опять отфутболят и я даже не пойму кто прав, хочу просто закрыть вопрос и не возвращаться к нему
Почти сутки что-то дрючило базу в RDS и ребуты EC2 инстансов, которые с ней работают, не оказывали никакого эффекта. А вот ребут самой базы помог. Может быть такое, что где-то завис ресурсоемкий коннект / запрос, не зависящий напрямую от EC2 (в каком-нибудь SSH шелле, например), который прибило только ребутом базы?
Подскажите аноны. Переделываю локальное окружение тестирования с docker-compose с адовым жонглированием файлами override и yaml anchors... пишу это и чувствую боль на minikube. Скажите, есть ли какой-то стандартный способ как заставить резолвиться все ingress hostnames в ip minikube с хоста системы? Конечно это не великая проблема сделать руками с нуля: все хостнеймы заданы у меня в 1 структурке (helm) 1 раз, засунуть их скопом в СМ и подкинуть их бинду слушающему на node/host port ввиде файла зоны, и отредактировать systemd-resolved на хосте - не так сложно. Но хотелось бы нативно: хуяк-хуяк, ты понимаешь. Явно же я не один такой "умный" с такой очевидной хотелкой.
>>2143415 Хостов около 15. Разработчиков 20. Редактирование файла хост руками - уже пройденый этап. Который генерит кучу совершенно бестолковых вопросов. Таки на самом деле я его сейчас и редактирую, только с помощью https://github.com/nginx-proxy/docker-gen на основе меток на контейнерах. Пожалуй если делать без овер инжиниринга: то во время helm install werf bundle apply надо выгружать все отрендереные hostnames в какойто конфигмап. А после забирать их через kubectl и синхронизировать с /etc/hosts. Благо для интерфейса уже используется makefile, куда в таргет запуска можно просто дописать все костылики. Только вот это (в отличии от ДНС) не покрывает 2,5 машины на винде и (возможно) маке.
>>2155356 Что из CI полезно изучить для саморазвития? Практичного? Если работал или только с велосипедными самопальными системами в статусе пользователя, либо без CI/CD вообще?
Что может быть полезно для небольших проектов на несколько человек? Jenkins как выбор нормально, или лучше что-то ещё?
Антошь можно ли организовать единую точку входа (SSO) на каком-нибудь стандартном протоколе так чтобы её можно было прозрачно применять для некоторых веб приложений? Под прозрачно я имею ввиду таким образом, чтобы не переписывать хеадер Authorization и позволить приложению самому им пользоваться (для всяких review и стендовых окружений смотрящих в интернет). А так же не заниматься допиливанием кода кустомных сервисов для интеграции в SSO. Как должна выглядеть архитектура этого овна?
>>2157683 Походу нужно пердолить примерно такую схему для прозрачного (для приложения) аутентифицирования: LDAP (FreeIPA) -> OIDC provider (keycloak) -> http proxy with OIDC (gogatekeeper) Сложна, сложна... нихуя непонятна.
Анон, ты не поверишь. Пока я тут выдумывал как закрыть свои веб сервисы SSO, нас поломали к хуям (CVE-2021-26084) и слили базу confluence, где было много серетов. да, я блядь знаю что секреты нельзя хранить в такой хуйне, она досталась понаследству, и там было столько говна, что его разгребание никак не вписывалось в рабочие будни состоящие на 90% из файерфайгхтинга...спасибо питуху, теперь вписывается, лел :) Скажи мне анон, как мне назначить нормальные policy в vault: Хочу разбить секреты так: 1) каталоги с проектами 2) подкаталоги с общим функциональным назначением 3) плоское пространство секретов на которые нужно поразному давать доступ в зависимости от членства в группе. Например: Рога_копыта/backend: - qa_token - хуйня для QA - root_password - только для админов Я знаю, что можно в тупую называть все секреты с нужным префиксом (как я сделал выше: qa и root) и назначать соотвествующие полиси их матчащие, а потом полиси назначать на группы. Но не хочется блжджад корячить названия секретов. Плюс ко всему это негибко, можно запросто невписаться в понятные префиксы и начать городить хуйню. Есть еще варианты? Не забудьте обновить мокрописечный конфлюенс, если с 26 августа еще не обновляли
>>2167072 >арбитари экзекьюшн у неавторизованного пользователя Охуенно да. Какого черта для неавторизованого пользователя вообще работают какие-то api методы кроме аутентификации. >а неймспейсов или чего-то подобного там разве нет Незнаю, возможности провести аудит насколько правильно он настроен и используется нет. >>2159421 Зафигачил на префиксах, подругому вроде и нельзя.
Как сейчас принято разворачивать куб-кластер? Нам стэйдж в офис. Стэйдж для стэйджа можно сказать, но мне тоже надо учиться, по-этому полноценный кластер нужен. Найденные хауту двухлетней давности кажутся староватыми. Напрашивается Deckhouse но важна педогогическая ценность, так что всё же склоняюсь к ручному развёртыванию. Разрабы шарят лучше меня, я дед застрявший в 2003ем, стыдно блядь! Наставь же меня на путь, анон!
>всё же склоняюсь к ручному развёртыванию Нахуя? Ты что, дата центр строишь или типа того? Любые твои "ручные развертывания" будут менее производительными, чем готовые сервисы. Потому что у готовых сервисов максимально облегченная ОС, оттюнингованная конкретно под кубернетис.
>>2169830 Ценность образовательная. Кого-то волнует оптимизация и здравый смысл в наше время? Задача получить максимум хайповых строчек в резюме и что бы бизнес это оплатил. Бизнес согласен, так чего же я жду? Перейти в облако я всегда успею, у нас там прод тащем-та
Сап, аноны! Есть дженкинс. В нем есть немного джоб на freestyle project. В них в каждой указаны параметризированные параметры списком. И если что-то в этом списке меняется, то приходится в каждой джобе менять список параметров руками. Вопрос: сделать список параметризованных параметров общим для всего дженкинса, чтобы я только выбирал пункт именем параметра, а уже список для выбора отображался тот, что есть где-то внутри дженкинса?
>>2169803 >Как сейчас принято разворачивать куб-кластер? Через kubespray. Интегрируешь в свой bootstrap playbook и вперед. Если тебе хочется прямо руками позапускать kubeadm, поставить etcd, kube-api балансер, повыпускать сертификаты через openssl и т.д. - кто тебе может помешать, открывай инструкцию и делай. ПИЗДЕЦ КАК ИНТЕРЕСНО >Deckhouse Если ты знаешь про такую штуку. То Дмитрий Столяров, фюрер проекта выпустившего это freemium ненужно, считает что в среднесрочной перспективе установщики кубирнетис будут так же ненужны, как сейчас ненужны установщики систем виртуализации.
>>2170161 но дело не в том, что бы устанавливать ненужно, а в том, что бы чуть глубже чем никак понимать как оно работает или даже это ненужно? а что нужно, как быть нужным чуть далее чем сейчас?
>>2170165 >поставить etcd, kube-api балансер, повыпускать сертификаты через openssl Какие по твоему знания можно извлечь из этого? Сейчас 2021 год, камон. >а что нужно Имхо нужно быстрее переходить к эксплуатации, и решать реальные проблемы эксплуатации, а не придумывать обучение ради обучения. >понимать как оно работает Когда все пизданется на проде ты очень быстро поймешь, базарю. азазазаза
>>2170161 но дело не в том, что бы устанавливать ненужно, а в том, что бы чуть глубже чем никак понимать как оно работает или даже это ненужно? а что нужно, как быть нужным чуть далее чем сейчас?>>2170226
коллектив уже в любом случае решил что стэджовый куб будет в офисе, заднюю включать себе дороже, вопрос только в том, как извлечь из этого максимум пользы лично для себя
Похоже, что тред мёртв, но всё же спрошу. В Кубере HA понятно как делают. Создают несколько мастеров, харткодят в конфиге kubectl их айпишники и клиент сам пробует следующий мастер когда активный падает. А в опенстэке как? Там же вроде у опенстэк клиента нет конфига. Максимум текущий контролер айпи, админский логин и пароль можно через инвайромент переменные настроить. И то не уверен. Но при этом кластер с несколькими контроллерами создать можно. И как тогда узнать айпишник резервного контроллера когда активный упадёт? При условии, что опенстэк на андерклауде где-нибудь на бараметале развёрнут и физического лоадбалансера нет. Архитектура как на пике наприммер. Вот есть ЛБ нода перед контроллерами. А если она упадёт? Как к контролерам достучаться? Или хапрокси на самом контролере. Если вся нода упадёт, то второй контролер со вторым ЛБ включатся и будут ждать реквестов. А как кленту узнать айпишник второго контролера чтобы подключиться и слать реквесты? Не понимаю
>>2176350 Поставь ЛБ на каждую ноду. Несколько мегабайт памяти, тебе жалко чтоли? Если нода упадет... и хуй с ней и её локальным ЛБ. Kubespray подефолту если не ошибаюсь для того же самого ставит на каждую ноду nginx.
>>2176404 Если на каждую ноду поставить ЛБ, то всё равно чтобы подключиться с второму контролеру нужно знать айпишник любой ноды в кластере. Это решение ничуть не отличается от тупо записать на бумажке айпишник второго контролера. Плюс не любая нода доступна из внешней сети.
>>2176418 Во первых так днс сервер станет единой точкой отказа, а во вторых как его в конфиг клиента прописать? И как сделать чтобы dhcp его возвращал, а не какой-нибудь глобальный днс?
>>2176405 >всё равно чтобы подключиться с второму контролеру нужно знать айпишник любой ноды в кластере. Не понял, какое отношение имеют ip-шники всех нод в кластере к ip-шнику 2 контроллера. кто в кого ходит? Бред какой-то. У тебя что control plane разъезжает по всем worker nodes? >Это решение ничуть не отличается от тупо записать на бумажке айпишник второго контролера И в чем по твоему тут проблема? Просто прописать второй контроллер в ЛБ на локалхостах всех нод? Ты что постоянно вводишь и выводить новые master ноды? Зачем? Я щас не троллирую. Может быть ты что-то делаешь неправильно, и как бывает крайне часто, начав с неправильно, приходят за решением как это неправильно "улучшить" добить. Если это действительно прям нужно, я бы поставил сайдкар рядом с локальным ЛБ, который был стучал в kubeapi, спрашивал кто там щас мастер ноды, и релоадил бы балансер с обновленным конфигом. Кстати я посмотрел на твою 2 картинку, там ровно то решение о котором я тебе и говорю - локальный ЛБ.
>>2185070 >Если датасет небольшой и только читать - скопируй в инит контейнере. Вот об этом и вопрос как там его монтировать.
>Если большой или писать - учи приложение работать с s3. Мне надо чтобы крешдампы куда-то сохранялись после того как куберовский под был уничтожен. Некого там учить работать с S3. Тем более что это Google Cloud.
Remote development containers в vscode кто-то используется? Норм штука? Типа чтобы разрабатывать под докер контейнер и автодополнение, конечно же, оттуда тянуло и прочее.
>>2112705 (OP) Сап, дево-псы. Ситуация такая: работаю виндовым эникеем. Есть пара свободных машин (чистых), много времени и желание потратить его с пользой для будущей зряплаты. Чо посоветуете почитать/посмотреть/поразворачивать на тестовых машинах, чтобы вкатиться в этот ваш Dev Ops?
>>2199804 ансибл, докер, системы мониторинга графана+прометей+алертменеджер, системы логгирования elk например. Но все это ты можешь и локально в виртуалках/контейнерах делать
>>2112705 (OP) Скачал образы из dockerhub но при запуске у меня появляются ошибки что внутри контейнера недостаточно прав на доступ к файлам. Из-за чего такая хрень: версия докера/containerd может влиять? Рукожопость создателя образа! И как вообще дебажить подобные проблемы?
>>2200104 >у меня появляются ошибки что внутри контейнера недостаточно прав на доступ к файлам. Каким файлам, внутри какого контейнера, как запускал >как вообще дебажить подобные проблемы? Гуглить научиться, или хотя бы научиться давать вводные данные. Вопрос уровня двач я покакал жидко, почему так может происходить?
Ну что, пацанчики? Собрал свою двухпроцессорную поебень с Алика и Авито, держу в курсе, так сказать! А это значит, что пришло время дикого неистового ПЕРДОЛИНГА Буду обмазываться kvm, k8s, Openshift до посинения нахуй!
Пожелайте удачи в освоении, советы гуру и обучающие материалы приветствуются.
>>2112705 (OP) ДевПопсы тут? Придумал вам тестовое задание, надо написать yml для запуска java maven pipline и тестов на гитлабе. Имя папки с помником: chlen. Если сделайте и я запущу - значит вы готовы. Везде комменты наставьте, что где что означает, комменты через # пишутся. Время до завтра, кто первый напишет, тот и победил.
>>2202358 Молодец! Премию получишь 10% в следующем месяце. И с сегодняшнего дня пайплайны ты писать будешь, раз тебе это интересно и у тебя получается. Кабаныч
>>2112705 (OP) Насколько хорошо знать линупсы надо для нормального вката в девопс? Вроде админю серваки в одной конторе биллинг, веб, несколько бд, днс, дхцп, могу посмотреть там если че то случилось или почему какой то сервис перестал работать, но каких то сверх познаний нет К примеру на собеседовании встрял на вопросе про описание каждого столбца в top С докером и ансимблом чисто для себя ради интереса знакомился, прикольно, хочется с этим работать, но на текуем месте не выйдет. Тут сплошное легаси и монолиты и вообще полный пиздец, хочу немного позадрачивать и укатиться в девопсы
>>2209593 На твоем уровне достаточно, я вообще по сравнению с классическими админами нихуя не знаю.
> К примеру на собеседовании встрял на вопросе про описание каждого столбца в top Какой-то долбоеб был, не обращай внимания. Ну и отвечать надо с достоинством. Правильный ответ: Топ в своей практике не использую. Для скриптов и получения краткой информации есть ps. Если нужно сидеть и караулить процесс, что бывает редко, я использую htop. А вообще, я в состоянии настроить мониторинг и алертинг, чтобы видеть актуальное состояние машин и получать уведомления.
> С докером и ансимблом чисто для себя ради интереса знакомился Технологии надо знать хорошо. Учи гит, докер и ансибл для начала, можно мониторинг поизучать, это будет плюсом: Zabbix-стэк Prometheus + node-explorer + alertmanager + cAdvisor + Grafana, elk-стэк
Jenkins тоже очень желательно. Быстро его не осилишь, но простейший пайплайн надо уметь написать. И знать такие вещи, как webhooks. git-hooks, сборка из разных веток.
Зарегистрируйся в любом облаке, там есть бесплатный период, посмотришь, как это все работает и какие услуги предоставляются. Там же будешь создавать вм-ки и на них все свое учебное говно запускать.
>>2209726 >Какой-то долбоеб был, не обращай внимания. Отнють. Просто этот вопрос на который не ожидают 100% ответа. Это нормально не ответить полностью. Я точно не отвечу за все поля. Но если человек не знает что значит: pid, la, чем отличается virt от res, что такое wa и st метрики CPU, почему всю память сожрал buffer/cache, а available еще больше свободно... то значит у человека мало опыта, и скорее всего он такой NENUJEN. Можно подумать в ps и htop мокрая писька которую надо ставить сбоку, офигенный тащемто заход на собеседование с мокрых писек, что-то другое показывается. Как много намониторит кандидат не могущий инто в top с помощью: >Prometheus + node-explorer + alertmanager + cAdvisor + Grafana, >скачать бесплатно докер-композе графане дашборде стек оверфлоу без регистрации и смс... вопрос конечно риторический. мимо мидол
>>2209821 Во-первых, у него не спросили про метрики, у него спросили про top. Во-вторых, по-твоему, все, что надо "ставить сбоку" это плохо? mc и screen тоже? Высер про "скачать бесплатно" вообще не понял. Ты считаешь, что мониторинг и докер-композ изучать не надо?
Репостну свой пост из воркача, может вы поможете Сап, нюфаг хочет настроить себе CI/CD для своих проектов, поэтому прошу советов мудрых, ибо не знаю с чего начать. Суть такая: есть приложение которое я говнячу, оно запускается в докер контейнере и лежит в единственной ветке в гите - master. Все настройки там для прода (реальный домен в allowed хостах, постгрес как бд, и всё такое) и каждый раз чтобы запустить его локально приходится пердолиться и править некоторое говно, чтобы запустить его на SQLite и с локальным айпишником, к примеру. Хочу узнать как вообще правильно делать dev и production ветки, как настроить автосборку по пушу в гит и всё вот такое. Но не могу даже нагуглить ничего толкового. Если бы вы скинули какой нибудь мануал для совсем тупых, было бы замечательно. С меня как всегда, очевидно
как внутри docker-compose работает? он то виснет то наебывается без объяснения причин, и пре предлагают выгрести все в несколько docker build. не будет ли это то же самое?
>>2209859 >Во-вторых, по-твоему, все, что надо "ставить сбоку" это плохо? mc и screen тоже? В основно да. В контейнерах таких утилит как htop, mc нет. Нужно уметь обходиться без них. mc - ненужно стоит признать что пользуюсь им иногда для копирования файлов по ssh, когда незнаю где они точно лежат и для просмотра архивов screen - переопределяет бинды vim = 146% ненужно. >Высер про "скачать бесплатно" вообще не понял. Если человек не разобрался с более простыми вещами, то мониторинг он сможет настроить при помощи подобного запроса к гуглу. >Ты считаешь, что мониторинг и докер-композ изучать не надо? Всему своё время. >>2209983 Начать неплохо с описания своего приложения в docker-compose. С помощью файла docker-compose.override.yml можно переопределять базовый шаблон. Например описать продовую инсталяцию в базовом docker-compose.yml, но при развертывании на dev подкладывать (подключать опцией) файл override, где ты например можешь заменить postgres на sqlite (очень плохой пример). Все окружения должны конфигурироваться посредством env. Т.е. нужно чтобы твой docker-compose умел кушать переменные окружения и подставлять их в контейнеры, которые в свою очередь их тоже кушают. Ты должен завести 2 файла описывающих переменные окружения: для dev и prod. Для dev - положи в репозиторий, для прод - оставь лежать на сервере, чтобы с репозитория его не спиздили. Про k8s и его серкреты, hashicorp vault почитаешь как с этим разберешься. >Если бы вы скинули какой нибудь мануал для совсем тупых 12 factor app, это не мануал, это как должно быть. How-to сам нагуглишь.
>>2210778 Спасибо, буду дрочить компоузы. Как вообще в реальных проектах работают дев ветки? Там полностью "боевой" сетап с нормальной бд и этим все, которые разработчики у себя поднимают, или нет? >можешь заменить postgres на sqlite (очень плохой пример). И почему вот это плохой пример?
>>2210875 При пуше в ветку, которая матчится как дев ветка, запускается новое дев окружение (важно что именно новое и чистое, мы тестируем не накопленые ошибки, а только новые), запускаются тесты (все которые идут быстро, юнит тесты например) и т.д. Разработчик получает в чатик ссылку с url как получить доступ до развернутого стенда, либо сообщение об ошибке. Если этим развертыванием долго не пользовались, по таймауту, по удалению ветки - оно удаляется. Это хорошо ложится на k8s и gitlab с его абстракцией environments. >И почему вот это плохой пример? Потому что обычные базы как правило слушают сокет, а sqlite линкуется с приложением. Т.е. меняется не просто контейнер который слушает какойто сокет, а меняется конструкция приложения.
>>2209821 >то значит у человека мало опыта, и скорее всего он такой NENUJEN. То значит человек просто не пользовался top. Я, нахуй, top запускал от силу пару раз за 3+ года деятельности девопсером. Нахуй не нужно. Накручиваешь себе метрики и алерты, и живешь спокойно.
Репост из /s/. Рад буду выслушать мнение опытных коллег-админов
Нужно раз и навсегда расставить все точки над i по поводу жестких дисков.
Допустим, у меня на сервере с гипервизором N Терабайт быстрых nvme дисков и 4N Терабайта медленных HDD. Как распределять диски при создании виртуалок?
1. В какие разделы можно подключать медленные жесткие диски? В какие категорически нельзя?
2. По шкале от 0 до 10 что из этого требовательно к скорости дисков: - Статика на nginx - Динамика на php - Бэкенд на Tomcat - База данных - Дженкинс - Гитлаб - Сервер мониторинга
1) Нахуя? Вот читаю статья аля что это для чего нужно. И там везде просто общие фразы: "ну, это, контейнеры запускать". Их же и так можно запустить. Вот просто зачем? Зачем это нужно? Какую проблему эта фигня решает?
2) Почему в одной Worker Node может быть несколько Pod, и в одном Pod несколько Container? Почему нельзя просто сделать 1 Worker Node в нём 1 Pod в нём 1 Container. Ну или хотябы в 1 Pod только 1 Container? К чему вообще эти числа привязаны, зачем разделение, зачем в 1 Pod 100 контейнеров?
>>2244184 1. в Мире Белых Людей очень дорого устраивать заседания, созвоны и тд заебы людей. Выгоднее попросить программистов написать приложение для кубера и потом в облаке запустить.
В России ты просто покупаешь сервера и программисты как-нибудь разворачивают. Все равно им деваться некуда. Время машин дороже времени людей.
2. Рыночная конкуренция. Если будешь ебать вола, то конкурент в кубере быстренько все развернет и обгонит тебя. В России не рыночек решает, а Связи. Спешить никуда не надо.
По поводу остального вообще неебу. Задротские вопросы какие-то. Мимо-кабанчик
>>2244184 > Почему нельзя просто сделать 1 Worker Node в нём 1 Pod в нём 1 Container Ты только что придумал узкоспециализированную виртуальную машину. Или ускоспециализированный сервер.
Котаны, есть гитлабовский пайплайн, тут есть 4 стейджа как видите, дело в том что на 3м стейдже (deploy_models) происходит деплой на несколько разных хостов. В данный момент то, на какие хосты деплоиться, определено в утилитарном файле myhosts - да, как вы могли догадаться, его приходится сцуко редачить вручную, чтобы поменять нужные тебе хосты, и коммитить изменения в общую репу! Как это пофиксить? Можно как-то добавить кнопок на 3й стейдж чтобы вручную нажимать только те, на какие хосты хочешь деплоиться? Или как-то передавать данные о хостах при деплое?
Раздели нахуй CI и СD. Тесты гоняй в одном пайплайне, билди в другом (или расширении первом) и последним степом билда деплой джарник в артефактори или докер в докер репозиторий, че ты там админишь. И отдельно деплой в различные среды.
>>2244184 1) Единообразия доставки любого софта, повторямости конфигурации при смене версий вверх и вниз, оркистрации механизм поиска контейнерами своих "контрагентов", последовательность запуска и обновления сервисов, отказоустойчивость и маштабирование, единообразный мониторинг и логирование, лимиты, права доступа, стандартный интерфейс конфигурации в том смысле, что это как будто бы новый "Linux", который все знаю и ожидают этого знания от других, практически полная абстракция от железа я, например, гоняю один и тот же оче параметризованый чарт от kind на локалхосте до высоко нагруженого прода со всеми промежуточными остановками (а так же: автотестами, "кнопочками понажимать" в CI мапящимися в хуки и т.д.), но это не показательно, я прост ебанутый, да... хуй знает, может чтото забыл. Заебался чот на работке. И самое главное "забыл": все перечисленое выше НЕ идет из коробки. 2) Потому что pod нужен для того чтобы контейнеры запускались в 1 неймспейсе с общими волюмами и на одной ноде. Пример: php-fpm + nginx, мне нафиг не всрался дополнительный service discovery между каждым php и nginx (это не бесплатно), я просто запускаю первый на localhost, а второй находясь с ним в одном сетевом неймспейсе без всяких SD может сразу с ним общаться. >Почему нельзя просто сделать 1 Worker Node в нём 1 Pod в нём 1 Container. Потому что затраты на запуск 1 среднестатистического контейнера гораздо меньше чем затрат на запуск рантайма для запуска 1 контейнера. Смекаешь? Амазон обещал ворваться и все изменить своими микровиртуалками - да что-то не стрельнуло. >К чему вообще эти числа привязаны К архитектуре системы. >зачем в 1 Pod 100 контейнеров Низачем.
>>2244857 Нужно просто скопировать 3 джобу столько раз сколько тебе надо. --- Сложность тут возникает как правильно скопировать. На мой взгляд нужно сделать так: - Если в джобе использовались variables (для канкатенации строк например, которая в этом случае неполноценная) то их нужно вынести в отдельный анчор: как list для script, состоящий из шелового определения переменных, с полноценной канкатенацией и любыми преобразованиями (sed|grep|awk|cut|какими_угодно) и подключать этот анчор (делающий тожесамое но лучше) в script. - Преобразовать джобу чтобы она принимала параметр хоста через переменную из variables. - Всю джобу за исключением variables сделать анчером. - Создавать новые джобы-копии состоящие из анчера выше и 1 (2) строчки задания соответствующего variable (твоего хоста). Тоже самое можно провернуть с environments (gitlab) - вероятно это даже гибче, так же местами можно использовать extends но это если ты пидор и любишь через задний ход
Во время сборки проекта на серваке происходят довольно затраные операции на git pull и dvc pull. Как сделать так чтобы в случае отсутствия каких-то изменений в тех репозиториях мы бы ничего не скачивали и просто шли дальше? Что-то вроде кеша сделать?
>>2245811 Для первого (git) очевидно, нужно не изобретать велосипед, а взять готовую систему CI которая умеет своим агентом это делать. (например gitlab) Для второго честно говоря не ябу как работает dvc, но вангую примерно как lfs или submodules задача сводится к: использовать кешь, сделать так чтобы ключем адресации к кешу был не дайджест (хешь) объемнного контента, а небольшой файлик, исключить возможные гонки (кешь должен быть не обычной директорией на хосте) - Собирать многостадийный докер контейнер - Не пулить dvc до сборки контейнера, пулить изнутри сборки (из собираемого образа), нужные ключи/файлы можно пробросить через buildkit/werf сильно рекомендую последний для такой задачи. - Засунуть манифест со ссылкой на dvc контент в соотвествующую директорию сборки этого контента (если это не делается поумолчанию) и закоммитить (и потом подобающе обновлять). Если его версия вдруг хранится в гите не ябу, как например хранится версия сабмодулей - то извлечь этот манифест из гита и ДОПОЛНИТЕЛЬНО (не ломая обычный сценарий использования) положить в виде файлика в директорию, закоммитить. Если dvc не умеет читать манифест из файла, а читает только из гита - значит создавать на момент сборки временный 1но разовый репозиторий гит, импортировать dvc конфиг туда и загружать dvc контент. (это выглядит костыльно, но по ресурсам это бесплатно) - На каждый отдельно версифицированный dvc контент отдельный Image в Dockerfile. В "сборке" имейджа просто пулится dvc контент (выкрутасы описаны выше) - На этапе сборки собствено софта: копируются загруженые артифакты из слоев выше (а не dvc), запускается сборка. - Можно вытащить артифакт сборки из образа контейнера, если образ не конечная цель. Таким образом: - Собрав 1 раз последний контейнер (т.е софт) мы прогреем кеши скачаным контентом dvc. - Ключем доступа к контенту будет закомиченый маленький файлик. Докер демон во время сборки без скачивания dvc сможет понять, что контент адресуемый этим файликом не изменился, не будет его долго скачивать, а возьмет готовым с локалхоста (контейнера с кешем) Это будет хорошо работать в сценарии редкого изменения dvc контента. --- Но если изменения частые, можно перейти к нескольким уровням кеша. Например импользуя werf можно строго по той же логике собирать предварительно кешированные артифакты и так же их использовать. Но заюзать хитрую особенность werf: он всегда скачивает файлы из гита во 2 слой. В независимости от того хочешь ли ты их там использовать или нет. Таким образом у нас появляется возможность запулить артифакты 2 раза: - 1 раз из 2 слоя подефолту: зафетчить dvс и переключиться на нужную версию файлов. Сделав тем самым базовый слой. - 2 раз в слое выше, когда файл ссылка/ключ на dvс контент изменился, переключиться на необходимую dvс версию на базе уже имеющегося скачаного т.е. загрузив только недостающее. Логика работы остается та же. Только при изменении dvc манифеста загрузка идет с какого-то базового образа. Нужно быть аккуратным: настроить dvc так чтобы не менялся atime и mtime при 2 pull у необновляемых файлов, а то файлы будут скопированны в оверлейной fs (изменение атрибута = изменение файла = его копирование). Если он подефолту меняет - можно какой-нибудь костылик сбоку сделать, типо восстановления атрибутов (не уверен что сработает), или загружать 2 раз в новое временное место и потом синхронизировать только изменения и временное удалять в одном слое. Базовый образ лучше делать от транка, откуда все бренчуется. (но он наверное сам рано или поздно сделается, не уверен). Можно еще кcтати кешь с хоста заюзать для первоначальной монопольной сборки (например ночью/переодически), доведя количество уровней кеша до 3. --- Сам не понял, нахуя я это все тут написал. Ебанутый, хуле.
Аноны, на каких торрентах вы покупаете курсы по сертификатам, в частности сертификаты red hat из пула rhca? Везде есть RHCSA, RHCE и EX-280 (openshift), а остальные никак не могу найти
Почему не работает .dockerignore? Перепробовал все варианты со слешами в начале пути, в конце, вообще без них, но результат один - вся ненужная срань по прежнему оказывается в контейнере.
>>2251235 Ты какими-то не теми категориями мыслишь. Центос какой-то, поддержка за $349, кого это ебет вообще? Сертификаты редхата получают не потому что "редхат круто", а потому что так можно влезть в жирную контору на правах "сертифицированного сеньора-помидора". Тот же опеншифт используется в крупных банках и зарплата у шифтовиков ебанись.
>>2251375 Это ты не теми мыслишь... сертификаты в 2022? Але? Да предметная область меняется быстрее чем придумывают эти сертификаты. Сеньеры с сертификатами? Ты таких сам знаешь? >можно влезть в жирную контору на правах "сертифицированного сеньора-помидора" С таким подходом можно влезть разве что в гос парашу с зарплатой 100 т.р. потолок.
>>2251807 > Сеньеры с сертификатами? Ты таких сам знаешь? Да, знаю. В остальном не стану переубеждать, думай как хочешь. Я написал то, что знаю и вижу.
Деваны, сап. Устроился в одну нефтяную конторку на позицию фуллстека для работы над корпоративными программными продуктами. В штате я пока единственный разработчик, соответственно, отсутствует какая либо инфраструктура для организации процесса разработки и её необходимо создать. Так как до этого я писал только pet-project'ы и опыта корпоративной разработки не имел, то хочу бросить клич помощи анонам, чтобы рассказали что да как должно быть организовано. Пока мысли такие - две машины, prod в качестве боевого сервера (пишу монолит, контейнеры на одном хосте будут крутиться) и dev - с gitlab'ом и CI, там же будет запускаться тестовый инстанс приложения, чтобы пользователи могли потыкать руками.
>>2253945 а зачем отдельный девопс конторе с одним программистом в штате? Я вполне справлюсь с настройкой, заодно новые знания получу. Вот только нужно best practices узнать
>>2253756 Как ты себе представляешь ответ на столь неконкретный вопрос? Но в целом мысль правильная: для проекта из 1 человека хватит 1 статического dev сервера и простейшей ci на баш работающей на хостовых ранерах. >>2254057 >нужно best practices узнать Best practices - это весьма маленькие документы можешь погуглить и почитать. А потом приходить с конкретными вопросами. Читни обязательно: 12 factor app, docker best practice.
>>2255492 По слухам была много лет назад, админом называлась, когда фирмы в своих же зданиях серверные размещали, туда компьютеры покупали, и там нужно было линуксы настраивать.
Сейчас же либо виртуальная машина ориендуется где всё настроено, либо в облако.
>>2264764 А потом будешь на трех созвонах одновременно сидеть. Сычев, что ты там мешкаешься? Письма не приходят еще, я проверял... Алло Сычев, алло, меня слышно, почему ты на звонки в скайпе не отвечаешь? Там у клиентов ничего не работает, страница с задачами не открывается? Вася говорит что инстанс упал, посмотри. Сычев, слышь, я поговорил с твоим начальством, они сказали что ты развернешь приложение, времени нет, таски стоят.
>>2112705 (OP) Хочу чтобы docker-compose, когда у сервиса валится хелсчек ребутал не только этот сервис, но ещё и парочку соседних. Есть какое-то изкоробочное решение или надо костыли пердолить?
>>2265450 Без костылей NIQUAQ. В качестве простого костыля можешь написать wrapper вокруг своего валящегося процесса, и заставить его дергать docker api из контейнера (или прокси для докер апи). Но это говно ебаное, повышается связаность несвязаных кусков, стремно такое поддерживать.
Хочу разбить одну роль ansible на две, но не хочу копипастить файлы, юзающиеся и там и там вроде ресурсов (/defaults) и темплейтов (/templates). Как сделать так чтобы несколько ролей обращались к одним и тем же общим файлам?
Всем привет. много времени не займу. Скажите, куда легче вкатиться, в Java или DevOps ? админил линуксы, эксели с вордом. знаю чуть сети, чуть ансиболь, чуть докера.
Вот Dockerfile: FROM ubuntu:20.04 COPY to-be-copied .
Моя цель, чтобы при создании контейнера для сервера туда помещался скрипт server.sh, расположенный в той же папке, что и докерфайл конкретно в этом примере он копируется из вложенной папки to-be-copied, который бы потом запускался по команде из docker-compose.
Но я вижу, что этого не происходит. Если делать просто docker image, то нужный скрипт в образ попадает:
leva@debian:~/genesys_test/serverbox$ docker build -t sample-image . Sending build context to Docker daemon 3.584kB Step 1/2 : FROM ubuntu:20.04 ---> d13c942271d6 Step 2/2 : COPY to-be-copied . ---> Using cache ---> c687aac09195 Successfully built c687aac09195 Successfully tagged sample-image:latest leva@debian:~/genesys_test/serverbox$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES leva@debian:~/genesys_test/serverbox$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 19ad4c90833f run-testsh_clientbox "bash" About a minute ago Exited (0) About a minute ago run-testsh_clientbox_1 a22fbf23d1cf run-testsh_serverbox "ls" About a minute ago Exited (0) About a minute ago run-testsh_serverbox_1 leva@debian:~/genesys_test/serverbox$ docker run sample-image leva@debian:~/genesys_test/serverbox$ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES leva@debian:~/genesys_test/serverbox$ docker run -it sample-image root@9b16bf0ab321:/# ls bin boot dev etc home lib lib32 lib64 libx32 media mnt opt proc root run sbin server.sh srv sys tmp usr var
А если я делаю то же самое через docker compose, используя этот же докерфайл, его нет:
leva@debian:~/genesys_test$ bash run-test.sh Building serverbox Sending build context to Docker daemon 4.608kB Step 1/2 : FROM ubuntu:20.04 ---> d13c942271d6 Step 2/2 : COPY to-be-copied . ---> Using cache ---> c687aac09195 Successfully built c687aac09195 Successfully tagged compose_test_serverbox:latest Building clientbox Sending build context to Docker daemon 2.048kB Step 1/1 : FROM ubuntu:20.04 ---> d13c942271d6 Successfully built d13c942271d6 Successfully tagged compose_test_clientbox:latest Creating run-testsh_clientbox_1 ... done Creating run-testsh_serverbox_1 ... done Attaching to run-testsh_clientbox_1, run-testsh_serverbox_1 serverbox_1 | total 56 serverbox_1 | drwxr-xr-x 1 root root 4096 Jan 20 11:01 . serverbox_1 | drwxr-xr-x 1 root root 4096 Jan 20 11:01 .. serverbox_1 | -rwxr-xr-x 1 root root 0 Jan 20 11:01 .dockerenv serverbox_1 | lrwxrwxrwx 1 root root 7 Jan 5 16:47 bin -> usr/bin serverbox_1 | drwxr-xr-x 2 root root 4096 Apr 15 2020 boot serverbox_1 | drwxr-xr-x 5 root root 340 Jan 20 11:01 dev serverbox_1 | drwxr-xr-x 1 root root 4096 Jan 20 11:01 etc serverbox_1 | drwxr-xr-x 2 root root 4096 Apr 15 2020 home serverbox_1 | lrwxrwxrwx 1 root root 7 Jan 5 16:47 lib -> usr/lib serverbox_1 | lrwxrwxrwx 1 root root 9 Jan 5 16:47 lib32 -> usr/lib32 serverbox_1 | lrwxrwxrwx 1 root root 9 Jan 5 16:47 lib64 -> usr/lib64 serverbox_1 | lrwxrwxrwx 1 root root 10 Jan 5 16:47 libx32 -> usr/libx32 serverbox_1 | drwxr-xr-x 2 root root 4096 Jan 5 16:47 media serverbox_1 | drwxr-xr-x 2 root root 4096 Jan 5 16:47 mnt serverbox_1 | drwxr-xr-x 2 root root 4096 Jan 5 16:47 opt serverbox_1 | dr-xr-xr-x 310 root root 0 Jan 20 11:01 proc serverbox_1 | drwx------ 2 root root 4096 Jan 5 16:50 root serverbox_1 | drwxr-xr-x 5 root root 4096 Jan 5 16:50 run serverbox_1 | lrwxrwxrwx 1 root root 8 Jan 5 16:47 sbin -> usr/sbin serverbox_1 | drwxr-xr-x 2 root root 4096 Jan 5 16:47 srv serverbox_1 | dr-xr-xr-x 13 root root 0 Jan 20 11:01 sys serverbox_1 | drwxrwxrwt 2 root root 4096 Jan 5 16:50 tmp serverbox_1 | drwxr-xr-x 13 root root 4096 Jan 5 16:47 usr serverbox_1 | drwxr-xr-x 11 root root 4096 Jan 5 16:50 var run-testsh_serverbox_1 exited with code 0 run-testsh_clientbox_1 exited with code 0
Анон подскажи мне, плез. 4 года назад будучи еще зеленым использовал экспортер (на уровне обезьянки: скопировать/отредактировать/вставить на основе чужих правил, поэтому деталей не запомнил) данных получаемых из elasticsearch с помощью lucene query в метрики в формате prometheus. Т.е. например можно было запросить документы удовлетворяющие запросу и сагрегировать их count по нужным полям из elastic и отправить в prom файл, что-то типо (например агригировав по 2 полям/лейблам): - metrika_nah{label1="hui", label2="sosi"} 10 - metrika_nah{label1="hui", label2="tebe"} 5 - metrika_nah{label1="pizda", label2="tebe"} 1 Помню что синтаксис был на yaml. Гуглю но в упор не вижу. Нашел только https://github.com/MaibornWolff/elcep. Вроде похоже, но помоему не совсем то. И какой-то слишком васяновский, непопулярный продукт. Скорее всего не он. Не хочется изобретать велосипед. А чем вы экспортируете из эластика в прометей?
АнонЭ, помоги полному нубу. Я тут решил поупражняться, у меня есть vps. На ruby/sinatra написал helloword. curl 127.0.0.1:4567 отдает то, что нужно. Полез в конфиг апача. Там сейчас все настроено на helloword(не мой) WordPress. Все закомментил, сделал ProxyPass / http://localhost:4567 . В ответ получаю Sinatra doesn’t know this ditty. ЧЯДНТ?
>чтобы рассказали что да как должно быть организовано Если вкратце, то: 1) Всё должно быть автоматизировано, никаких вводов десяток комманд в консоли/тыканий в админке по кнопкам. 2) Создание инфраструктуры должно быть написано кодом, а не тыкать в админке по кнопкам. 3) Бессерверные приложения > Контейнеры > VPS. В первую очередь нужно отдавать предпочтение бессерверным приложениям. Если не получается сделать бессерверным, нужно делать контейнеры. 4) Принцип изоляции - изоливать одно окружения от другого. 5) Принцип минимальных прав - давать только минимально необходимые права сервисами/пользователям. 6) Если сервис упал - он должен автоматически скриптом восстанавливаться. 7) База должна бекапиться - минимум раз в день. И бекапы должны быть зашифрованы, а не лежать открытым текстом. 8) Бекапы должны моментально одним кликом разворачиваться, безо всякого набора длиннющих команд. 9) Предпочтение горизонтальному масштабированию. Вместо одного большого сервера лучше сделать 3 маленьких. 10) Автомасштабирование - сайт должен сам адаптироваться под нагрузку. 11) Сервера нужно тестировать на отказоустойчивость ДО ТОГО как их заддосят. 12) Должен стоять файрволл/настроено VPC/группы безопасности. 13) Шифрование желательно применять везде, где только можно. 14) Принцип постоянных улучшений - собрать данные --> сделать вывод --> улучшить систему. 15) Если что-то бесполезное висит и жрёт деньги, нужно её оптимизировать. 16) Внутренние сервисы не должны выходить наружу. Если есть какой-нибудь абстрактный phpmyadmin, он должен быть доступен только через ssh port forwarding. Если же есть внутренний сервис типа ресайза картинок, он должен общаться с другими сервисами только по внутреннему протоколу типа rabbitmq/aws sqs. А не предоставлять API всему миру. 17) Делай несколько рубежей защиты. Не нужно полагаться что один только cloudflare тебя защитит от дудоса.
>>2281233 Вцелом ок. Но вот это полный крах. >6) Если сервис упал - он должен автоматически скриптом восстанавливаться. Каким блядь скриптом? Сверху IoT, снизу портянки на баше - заебись ты придумал. >7) База должна бекапиться - минимум раз в день. И бекапы должны быть зашифрованы, а не лежать открытым текстом. База должна бекапиться всегда архивацией WAL (wal-g/e и т.п.), так же должны периодически делаться полные копии и проверяться восстановление (я каждый день например проверяю). Реально вероятный кейс проеба данных - обосрались с миграциями. Тут твой ежедневный бекап нафиг не всрался. Что он есть - что его нет.
>>2281259 >Каким блядь скриптом? Сверху IoT, снизу портянки на баше - заебись ты придумал. Ой да куча вариантов. Шо ты как маленький ёпт. Самый наипростейший вариант - restart policy в докерфайле. Вариант посложнее - с откаткой на предыдущий стабильный контейнер. Есть варианты с репликацией, когда в случае отказа одного кластера, переключаются на другой.
Смысл в том, чтобы восстановление происходило без участия человека. Пример: nginx упал --> система мониторинга засекла --> запустился сценарий восстановления --> nginx снова работает. Люди медлительные, компьютер же наоборот может восстановить за считанные секунды.
>База должна бекапиться всегда архивацией WAL (wal-g/e и т.п.) Это уже чисто вкусовщина. Я пользуюсь штатным https://aws.amazon.com/ru/backup/ Потому что он бекапит вообще всё, а не только БД.
>>2281279 >>База должна бекапиться всегда архивацией WAL (wal-g/e и т.п.) >Это уже чисто вкусовщина. Вкусовщина это использование конкретных инструментов. Подход бекапить WAL вместо ежедневных/(еже сколько угодных) снепшотов, это практическая необходимость. Иначе восстановление в произвольную точку по времени (ровно когда обосрались с миграциями) не сделать.
Есть менеджет постгрес база в гуглоклауде. Есть желание сделать прод копию для экспериментов и прочих непотребств. Хочу чтобы раз в сутки, ночью тупо делалась копия прода, а все что было в старом инстансе сносилось к херам. Днем порезвились, а на завтра снова чистая копия прода. Как ручками склонировать инстанс полно мануалов, а вот как это автоматизировать и чтобы перезаписывал старый инстанс - непонятно.
>>2286846 Ты хочешь создать дев сервер в манадже гуглклауда или локально? Обычно делается дамп, можно даже с ограничением на количество строк и вливается в локальный докер. Автоматизируется в виде трёхстрочного скрипта.
Насколько сейчас реально вкатиться в девопсы без опыта в IT? Вроде бы хайпа направление пока не набрало среди петровичей с завода, а перспективы этого направления имеются. Есть вариант попасть на онлайн стажировку в компанию, нужно только по минимальным требованиям подтянуть администрирование линукса (думаю, на ютабе помогут галопом всё понять). Из полезных навыков у меня только знания python на уровне джуна. В разрабы в моей миллионной мухосрани не пробиться. А вот devops (или тестирование) есть варианты онлайн для вкатунов, судя по всему.
>>2287516 Ты не вкатишься в девопс, пока не поадминишь боевые линуксы, не поешь говна, и не напишешь дюжину-вторую-третью скриптов. То есть ты на основе материалов от инфоцыган и сможешь собрать какого-то рабочий хелло ворлд пайплайн, но точно не сможешь решать возникающие проблемы, потому что весь ливер для тебя останется чёрным ящиком. Лучше обрати внимание на тестирование.
>>2287225 Я хочу ещё один инстанс в клауде. Смысл в том чтобы всегда под рукой была база на которой можно подебажить прод проблемы. Просто дамп прода на локальную машину занимает 6-8 часов не пойму почему так долго, там всего-то 16гб.
DevOps - штука, напоминающая смену класса в ММО РПГ: ты можешь стать джуном ДевОпсом только в том случае, если раньше был сеньором админом или мидлом девом. В противном случае ты не вывезешь.
Если хочешь зайти в методологию со стороны админства, то не бойся: необязательно набираться опыта в админстве, начиная с позиции эникея у говнопровайдера за 20-30 косарей. Можешь следовать по такому пути:
>>2288610 > Саппорт инженер L2-L3 (удаленно) -> Админ серверов Чем занимаются инженеры на L2-L3? В чем их отличия от админов? Без подъеба спрашиваю, сам не понимаю.
Гипотетическая ситуация:
Инженер на большом проекте разворачивает с нуля, настраивает кластер опеншифта. Использует в своей работе средства автоматизации и мониторинга, отвечает за его работоспособность. Когда кластер развернут, пиздует на стенд для другого заказчика.
Есть такой же персонаж, который кластера хадупа, кафки и прочей бигдаты разворачивает, настраивает, мониторит, траблшутит, пишет скрипты, плейбуки и пайплайны для развертывания.
Оба доступа к железу не имеют, с заказчиками не общаются. Машины им создают по заранее заготовленному сайзингу для проекта.
Это кто такие? Техпод, админы или девопсы? Используются все девопс-инструменты, но к разработке отношения почти не имеют. Вроде админы, но даже к гипервизору доступа не имеют. Техподдержка? С заказчиком и другой техподдержкой не общаются.
> А как снимать дамп с ограничением по строкам? А это сорян, это я про mysqldump подумал, он умеет заклинание WHERE LIMIT. В пг_дампе только через костыли с созданием временной таблицы.
>>2290054 > DevOps - штука, напоминающая смену класса в ММО РПГ > Это не MMORPG Проиграл. Ну ладно, давай без словоблудия - чем отличается сисадмин от техподдержки l2-l3, кроме отсутствия общения с заказчиком? В общем случае, без рыночков и прочего.
>>2290750 > В общем случае, без рыночков и прочего. А без это не получится объяснить. Ты от главного объяснения отказываешься.
Я под рыночком понимаю весь набор необъяснимых и зашумленных явлений, которые вроде пытаются выстроиться в какой-то порядок, но его нихуя не видно. А всякие умники пытаются свое собственное смещение в наблюдениях выдать за истину.
Никто не устанавливал стандарты и классы. Никто не выпускал брошюру "Зарплатная сетка и обязанности в ММОРПГ Жизнь".
Я не знаю чем отличается сисадмин от техподдержки L2-L3 и мне вообще на это насрать. И тебе советую.
Девопс - это знания о работе ПО и шустрый ум. Будь девопсом и не щелкай клювом.
>>2291062 >Девопс - это знания о работе ПО и шустрый ум Пофиксил тебя. Это серьезные знания в разработке и эксплуатации ПО. Чтобы мог разработчикам (тоже не херам с горы) пояснить (без негативной коннотации): почему здесь будет так. Где проходит линия разумного компромисса, а где неравновесное/не_с_нулевой_сумой перекладывание своих мелких задач на чужие плечи, где они дороги в решении. Само ПО - как и любые инструменты вторично. Вот буквально сегодня пришел ко мне дядька, старше и иерархически выше меня, говорит сделай мне так-то и так-то, у меня таска, и я уже все закодил. Поговорили о том: что ты вообще хочешь сделать? Что это у тебя за абстракции? Дак у тебя же новый класс абстракций, зачем ты их пихаешь в старые сущности и требуешь от меня их подпилить. Посмотрели контекст, как было сделано для прошлых абстракци. После этого он согласился, что вообще не знал о существовании такого класса сущностей (это мапится в инфраструктуру, куда он не ходит) и спокойно пошел переделывать. А можно было просто сделать. наговнякать
>>2291062 > Я не знаю чем отличается сисадмин от техподдержки L2-L3 Да я уже понял, что ты нихуя не знаешь, только про рыночек какую-то чушь несешь. > Будь девопсом и не щелкай клювом. Я и так девопс-инженер хоть и джуниор, а ты лучше сам щелкай поменьше, вон анон нормально ответил >>2290794 с него пример бери
>>2291246 > Высирает стены бессвязного никому не нужного текста > Просят пиздеть поменьше и ближе к делу > Обижается и мелкобуквенно называет собеседника тупеньким Я все про тебя понял, смысла продолжать диалог не вижу.
помогите бля д с мотивацией, мне 31, работал одменом, админил все начиная от сервера линукс до лампочки в офисе, все что питается от электричества и не только, выгорел к хуям. Сейчас пока девушка работает фротном вкатываюсь в девопс, знаю только по верхам сети, протоколы там, разные линукс, ансибль, докер, гит, дженкинс . имею общее представление что за что отвечает. Есть ли шанс вката или это гиблое дело и пойти хуярить гречкой по дереву металлу трубам говна. Сори за двачерский сленг
>>2292462 >знаю только по верхам сети, протоколы там, разные линукс, ансибль, докер, гит, дженкинс >линуксы по хуйне, типа настроить веб сервер томкат, нгинксы и прочее, простые бэкапы (1.2.3), обычный мониторинг древний типа наджиос, qemu-kvm и прочее лоускильное дерьмо Ну хорошая же база, осталось собрать всё в целое. Подними у себя гитлаб, в него засунь простейших хеллоуворлд на ноде/пхп/бидоне/го/чёмугодно и начинай закапываться: 1) напиши ему докерфайл 2) собери композ с аппой/вебсервером 3) напиши пайплайн по сборке/тестированию 4) напиши пайплайн по выкатыванию в прод 5) напиши скрипт для бэкапирования, всунь его в композ 6) подними прометей с графаной, обмажь агентом мониторинга, добавь метрики в саму апу, агент мониторинга тоже всовывай в композ 7) подними эластик, настрой коллектор логов 8) напиши провиженинг прода Твоя цель сделать инфраструктуру по которой эта апа будет подниматься на новом сервере с минимальным количеством усилий. Где-то на этом этапе уже можно будет рассылать резюме.
>>2293391 >Внезано годная штука для мониторинга Пришло время добавить хост в мониторинг. Хост сам себя в мониторинг не добавит. Нужно добавить хосты, прописать жиэмикс, выбрать шаблоны, подправить графики. Я живу активной и полноценной жизнью.
Как задеплоить микрописечные приложения одним конфигом? Есть куча микрописек с зависимостями друг от друга, допустим я могу все руками поднять, а как сделать все декларативно? Пользуюсь Dockerfile и compose, смотрел microk8s, но нихера не понял, там уже ноды, а мне они не нужны.
>>2298325 Ты занимаешься явной хуйней. Переделывай. Даже в обычный SPA фронт вхардкоживать переменные уровня BACKEND_HOST=localhost является зашкваром, их нужно прокидывать в runtime редактируя index.html из entrypoint. Так для бекендов этой проблемы вообще нет, бери и читай переменную из env в момент выполнения.
>>2298608 >переменные уровня BACKEND_HOST=localhost является зашкваром
Я согласен, это чисто моча в голову стукнула "а если попросят на собеседовании передать что-то из docker-compose.yml в build-time", ну и пробую ЧОТО заслать. А хост, ну это просто заметно в терминале(адрес). Пароли вроде так можно засылать(всё лучше чем в коде, еще запушат в репу а потом случайно отопенсорсят...), не?
Я понял суть /b build. Короче я использовал короткую запись а потом продолжал как для длинной, парсер офигивал(он и так придурошный, табы не хочет(в простом редакторе(не IDE которая табы в пробелы конвертирует) - жопа). Теперь могу ARGS только в билд-тайм слать и в ENV чото для уже построенного.
Здравствуйте, девопсы. Я простой бэкендщик - на прошлом проекте пришлось самому запиливать кубернету - затрахался больше не хочу. Сейчас готовится новый проект - у меня выбор либо опять кубернету насиловать, либо уговаривать серверлесс пользовать. Вопрос - а оно мне надо или в серверлесс та-же фигня?
>>2298876 Начнем с того, что нужно выяснить, сможет ли такой криворукий долбоеб написать код, выполнение которого в serverless, не превысит по стоимости работу девопса и аренду классических серверов.
Как я узнал, что ты долбоеб? Так это очень просто : ты спрашиваешь на дваче совета по вопросу, надежный ответ на который знаешь только ты.
>>2298791 >а если попросят на собеседовании передать что-то из docker-compose.yml в build-time Значит надо и им сказать: перестаньте заниматься хуйней. И объяснить почему, может они сами не знают. Например: - Со ссылкой на первоисточники 12 factor app: релиз = скомпилированный код + конфигурация, а никак не код с вхардкожеными параметрами конфигурации. - Расcказать к чему это (build time параметризация) приводит на практике: к дополнительному времени сборки и возможности завезти на прод контейнер который не тестировался (потому что образ с кодом мутабельный). - Можно просто кинуть ссылку https://immutablewebapps.org/. Всегда кидаю её фронтам и проблем с пониманием еще не было.
Подскажите что почитать про внутриности разных технологий? Типа как устроен докер, кубер, сентось, рэбит, кафка, рэдис, моног, постгрес, либвирт, хапрокси, энджинкс, дженкинс и т.д. Всё это есть на проекте, а я как вкатун ничего не понимаю. Все обсуждают детали этих технологий, а я только хэлоуворлд с ними умею делать. Есть книга, которая научит в инфре разбираться для новичков?
>>2300080 >Читай книги по каждой из технологий. Едва ли они затронут внутреннее устройство. Для того, чтобы понять как действительно работает тот же докер под капотом, нужно читать код и понимать как он работает на низком уровне. А то, что ты по верхам нахватаешься из книг и документации и выучишь слова "виртуализация" и "контейнеризация", плюс полтора десятка ключевых слов - это не сделает тебя специалистом в технологии.
>>2300080 Ну не все в моей вебдрисне, а вообще все. Хоть галопом по европам это вообще бывает. Типа вот глава про бд. Читаешь 100 страниц про разнве базы. Потом глава про контенеры. Читаешь 100 строниц про них. И так далее.
>>2299916 Есть принципиально 2 разных окружения: - production like - stage и prod - не production like - dev, stand, review и т.п., называй как хочешь. Таким образом незазорно и обычно нужно, потому что во 2 хочется установить dev tools иметь 2 образа контейнера по 1 на каждый пункт. Если ты собираешься параметризировать в build time, то считай у тебя будет количество образов равное количеству откружений кудо оно выкатывается. Это медленно и затратно по ресурсам. Но хуже всего, что при таком подходе образ окончательно провереный на stage не поедет на прод, а поедет туда совершенно новый образ, нетестированный. С пересборкой мотивированной исключительно параметризацией в build time. Вот что я хотел сказать.
Кстати я нашел тебе книгу, которую я сам пометил как "Pro Docker 2016(быстренько_ставим_пачку приложух)". Наверняка, хуевая, но все как ты хотел. Я ее, конечно же, не читал.
>>2300183 Жизни не хватит, чтобы все это прочитать. Читая плохие книги, ты просто теряешь время зря. Карьера у тебя будет максимум 10-12 лет. Нужно очень тщательно выбирать книги и не ошибаться с выбором, т.к. ты тратишь бесценное время, которое словно песок уходит сквозь пальцы.
>>2300204 вот тебе лайфхак: не обязательно дочитывать книги до конца. я читаю первые главы и по выбору. Вполне достаточно и часто это понятнее документации.
>>2300228 Дело не только в этом. Нужно конспектировать, пробовать прочитанное на практике и регулярно перечитывать нужные главы, чтобы ты не забывал прочитанное на следующее утро.
Посоветуйте распределённый s3 сервер. Что-нибудь молодёжное хипсторское, чтобы в композ засунуть, ключи прописать и жило себе там контент хранило. Поток небольшой - 1000 файлов в час (в среднем по 200 кб каждый) . Цеф мы организационно не тянем, у нас отец один настроил цеф и ушёл в закат, теперь у него клиенты раз в месяц отваливаются.
Я, конечно, сейчас пойду ставить все костыли с гитхаба, но вдруг кто уже в теме.
>>2300426 Рекомендую минио. Ставится легко, с запросами справляется. Поругать особо не за что. Поддержку подписи чанков в хттп режиме они реализовали раньше чем официальный бото клиент. Это максимум за что могу похвалить. Они наверно все одинаковые. Мне сравнивать особо не с чем. Сейчас играюсь с его бенчмарком. Тулза для бенчмарков костыльное говно то что написано на го тут не причём без кастомизации и обсервабилити. Возможно их сервер такой же. Детально не изучал
>>2300442 И тебе спасибо. > Они наверно все одинаковые. Ну я тут поглядел диагонали: чтобы уметь в распределённость, не лезть в модули ядра и быть живым в 2022 - это не так уж и много вариантов остаётся.
В grep идет аутпут в виде строк: /poopa/loopa/ /poopa/loopa/1.txt /poopa/loopa/2.txt /poopa/loopa/1.mp3 /poopa/doopa/ /poopa/doopa/1.txt /poopa/doopa/5.txt /poopa/doopa/4.mp3 /poopa/doopa/7.wav Директории и дальше за ней все файлы в ней.
Мне надо было grepом отделить все строки с путем к mp3 и wav файлам. Я это сделал через grep ".mp3\|.wav"
Теперь нужно отделить все строки которые не .txt файлы. grep -v '.txt' возвращает еще и строки с директориями, что не подходит. Какой паттерн нужно применить чтобы отфильтровать их? Догадываюсь, что нужно исключить все строки со слэшем на конце, а вот как сделать не понимаю.
Привожу в порядок gitlab-ci, пайплайны крутятся, образы в локальный докер реестр складируются. Вопрос: чем всё это теперь деплоить в 2022? То есть docker-compose pull/up я и по ссш могу сделать, а вот как создать/обновить .env из гитлабовских переменных без костылей я пока не придумал.
Аноны помогите начинающему жависту: пытаюсь haproxy и мою приложуху пытаться подружить на докер контейнерах, локально хапрокси подхватывает без проблем. При запуске на контейнерах на localhost:9092 в приложуху заходит, но хапрокси не видит( Скину docker-compose и haproxy.cfg, подскажите советом мудрым https://pastebin.com/6qRPbASS https://pastebin.com/BVvgmcLD конфиги хапрокси цепляет, при запущенном композе в консоли прям пишет server01 DOWN
>>2305147 > server server01 localhost:9092 check (тут пробовал и frontend1:9092 check тоже не подхватывает) > server server02 localhost:9093 check Глубоко не вникал, но скорее всего ты делаешь обычную ошибку новичка, не знаешь что у каждого контейнера свой отдельный локалхост (это тебе не под). Надо переписать на использование в качестве хостов либо имен контейнеров, либо сервисов.
Не удается в докер композе запустить zookeeper (беру ориг контейнер zookeeper:latest) с командой command: bin/zkCli.sh create /election Отдельно сам по себе контейнер запускается и нормально работает и вручную нода добавляется. Но автоматизировать не удается. Пробовал также запускать из скрипта volumes: - ./zooInit.sh:/apache-zookeeper-3.7.0-bin/zooInit.sh command: ./zooInit.sh
>>2309924 также пробовал внедрить эту команду на этапе билда образа Dockerfile: FROM zookeeper ADD zooInit.sh / RUN chmod +x /zooInit.sh CMD ["/zooInit.sh"]
>>2309924 1) Сначала проверь документацию, нода должна добавляться через переменные окружения: https://hub.docker.com/_/zookeeper 2) Команду лучше писать целиком: /usr/bin/sh /apache-zookeeper-3.7.0-bin/zooInit.sh
Есть образ с нодой, нормально билдиться, нормально запускается (пик1 код, пик2 результат запуска), но при попытке после запуска образа получить к нему доступ по localhost:порт указанный в аргументах при запуске получаю пик3, curl тоже не дает ответа, я думал это у меня локальная проблема, запушил на azure, там тоже не работает в чем может быть проблема?
>>2310270 >в чем может быть проблема? В том что ты не показал как запускаешь. Еще: - COPY . . - в общем случае является зашкваром. Причем 2ды. Переустанавливаются модули при изменении кода. Скорее всего ты тащишь в образ дирикторию .git, которая там не то что всралась, а является огромной дырой при нахождении там, и опятьже заставляет качаться модулям на абсолютно любой коммит. - npm install скорее всего надо заменить на npm ci. Почитай бест практис по докеру.
>>2310301 запускаю либо так: docker run -d -p 2000:2000 название образа(без -d тоже пробовал), либо через gui в докер десктоп, указывая порт, еще пробовал кроме порта указывать адрес типа 127.0.0.1:2000:2000, но толку нет насчет COPY . . у меня есть .dockerignore в котором выписано все что не нужно коммитов больше не будет, там уже готовая хуйня которую просто нужно выложить
>>2310316 По пикрилу 2 вангую приложение случает локалхост докер контейнера, а должно слушать 0.0.0.0. В общем случае: - Повешай на езернет порт контейнера tcpdump, посмотри на каком этапе дропается трафик. - Посмотри правила iptables. - Попробуй соединиться на внутрений ip контейнера. - Попробуй установить в контейнер curl/nc и постучать локально.
Пытаюсь задокерить простенький го сервер с одной страницей
Вот докерфайл
FROM golang:1.16-alpine WORKDIR /go/delivery RUN go mod init ex123 COPY go.mod go.mod COPY main.go /go/delivery/ RUN go build CMD [./ex123] EXPOSE 8080
ошибка следующая /bin/sh: [./ex123]: not found
Я уэе весь на говно изошел, понимаю что где то в пути проеб, меня на все возможные варианты. Что не так ?
>>2112705 (OP) А как в композ-файле указать глобальные переменные среды, доступные всем сервисам сразу? Надо указать прямо в файле, потому что я запускаю его через ансибл и передаю там особые переменные
Вот есть у меня node сервер на порте 3001, когда я к нему из клиента обращаюсь то пишу localhost:3001, если так оставить, сделать докер образ и залить в azure, то клиент будет выдавать инфу только если у меня на машине, с которой открыт клиент, запущена нода на порте 3001 если написать вместо localhost:3001 название сайта в azure, то запрос тоже не проходит (на название сайта у меня отзывается json-server) так вот к чему обращаться то, когда контейнер запущен в azure?
Обосрите по фактам эту няшу https://sbercloud.ru/ru - вроде как ХУЙэвейское ПО, которое разрабатывали лет 700 (сам Конфуций начал, неиначе). Вроде как аналогов в РФ не имеет? сам не местный, мнение узнать хочу С меня нихуя анон
>>2320372 Я работаю в сбере и наша команда использует сберклауд. Помнишь ту картинку, где один чел говорит "хохлы" второму и оба начинают дико ржать? Вот у нас так же, только со словом "сберклауд". Ну и начальник еще плакать начинает, ему уже не смешно
>>2322671 С работой совмещать можно. Я вообще сейчас не работаю, ремонт делаю, плюс совмещаю. Дёшево, сердито, люди в чатиках весёлые, постоянно пиздят, все помогут, но вначале хуями обложат, без этого никак. В принципе, советую. У меня знакомый сетевик там пару месяцев отпахал и вкатился девопсером джуном. А теперь вопрос в студию: Какого хуя этому пидору надо? Почему он не хочет работать? Гугление говорит, что нужно прописать строчку в nginx.conf. Я закинул нужный conf. Чё этой паскуде надо?
>>2323017 Вообще без понятия. Сам бросил заебавшее направление, начал изучать линукс и сети с нуля и вкатился по зов сердца. Говорят, если есть некий уровень сисадминства, то можно вкатиться.
>>2323857 Debian, конечно. Между прочим, ты должен был начать суетиться еще летом прошлого года. Твой Центос уже 3 месяца как скомпрометирован!
А я вообще использую Центос как -детектор молоденьких девопсов, которые почему-то считают себя опытными и бородатыми. Когда я выставлял сервер голой жопой в инет 20 лет назад, никаких вариантов кроме Debian по сути и не было. FreeBSD ожидаемо загнулся. А Centos возник непонятно как и не имел твердой базы. Потому и загнулся.
Ребят, такой вопрос. Есть бд на монго, крутится локально. Написал приложение не ноде, хочу все упаковать в контейнер, вопрос - как из контейнерной бд подрубиться к локальной? Я понял что надо делать том, но как в этот том запихнуть существующие данные? Прилагаю скрин композа
>>2324061 > как из контейнерной бд подрубиться к локальной? В общем случае никак. Ты можешь: 1) Цепануться из локальной бд к контерейнерной по прокинутому порту 2) Запустить контейнер в host networking, тогда обе БД у тебя будут жить на локалхосте, проконтролируй только чтобы порты не конфликтовали 3) Если докер фор декстоп, то там можно долбиться в хост по host.docker.internal, но это не комильфо
> надо делать том, но как в этот том запихнуть существующие данные Можно вместо тома монтировать директорию: volumes: - /location/for/dbdata/:/data/db/
>>2324076 Спасибо. То есть чтобы импортнуть данные, мне надо поднять монго контейнер на другом порту, и в эту контейнерную базу импортнуть с локальной, так? А надо ли так делать? Или можно базу не контейнеризировать, а подрубаться к ней с бекенд-контейнера
>>2324061 Мне не понятно зачем вообще помещать базу данных в контейнер. Это просто пиздец как тупо. Ей же где-то нужно хранить данные, а это лишний геморрой. Значит надо подключать внешний (сетевой) носитель, вдобавок докер сам может грохнуть volume с данными. Проще гораздо взять pulumi и любую халявную базу - mongodb atlas например. И поднимать эту базу через пулуми.
Не то чтобы это было невозможно, просто сейчас каждая собака даёт по бесплатной облачной дб - oracle cloud, neo4j aura, datastax astra db, mongodb atlas. Их бесплатных хоть жопой жуй. Тем более, если у тебя продакшн нагрузки.
>>2324091 >>2324158 Я изначально пользовался атласом, потом, но в связи с последними событиями, пользоваться им не могу, они ограничили доступ и сказали что удалят данные россиян). В общем не важно, я решил с контейнера подрубаться к локальному серваку базы, это я уже настроил. Есть другой вопрос. можно ли последовательно описать сборку в докер-композе? У меня есть фронт, написаный на next js (фреймворк, выдающий статику), и он, во время сборки, делает запросы на сервер, для того чтобы наполнить страницы контентом, но во время старта докер-композа, он сначала собирает образы, и только потом стартует. Но во время сборки бекэндская часть недоступна. Придется предварительно отдельно стартовать бекенд, и только потом фронт собирать?
>>2320372 Сбер клауд чуть менее, чем полностью слизан с AWS. Но слизан не полностью, это скорее китайская копия AWS. У сбера в 10 раз меньше сервисов, вся идеология амазона строится на том, что ты платишь за фактическое использование - например было миллион запросов, вот ты за миллион и заплатил. А у сбера в основном оплата по времени. Например, одной из самых ценных фишек AWS была DynamoDB, которой можно пользоваться за копейки и платить только за количество запросов. У сбера есть только "managed"-базы, а значит это МИНИМУМ тысяча рублей в месяц. Другой вопрос - цензура. Нет гарантии, что твой сервис не выпилят, если он будет угоден генеральной линии партии. Серьёзных каких-то фишек сбер клауда я не заметил.
>>2324180 Спасибо анон, канистру чая тебе за отзыв. А еще какие проблемы заметил? И, возможно подскажешь, что стоит просить у поддержки при переезде. Походу наш шеф выберет Сбер все таки
>>2324432 >А еще какие проблемы заметил? Ну лично для меня самый большой минус - это базы данных и цены. Всё. Остальное ещё более-менее терпимо, можно пережить. У aws есть база под что угодно. База под временные ряды. База под графы. База под леджеры. Реляционная. Нереляционная. Какая хочешь короче. А здесь... ну просто обычная RDS. Извини меня, когда Postgresql стоит 3 рубля в час, для хобби-проекта выйдет дороговато. Конечно для интернет-магазина это копейки. Я просто сравниваю с тем же (окуклившимся) oracle cloud, там при регистрации давали две базы бесплатно. И вообще, в облаках это нормально, когда тебе часть функционала предоставляют бесплатно. Например, первый миллион запросов бесплатно. В сбере я не заметил, чтобы хоть что-то давали на халяву. Оплата идёт с первого же запроса. Во времена дикой конкуренции среди облаков это странно. Даже у яндекс облака есть халява. В остальном же, инфа 80%, что переезд плотно посадит инфраструктуру на сбер. То есть, сложно потом будет съехать оттуда. Я бы по максимум использовал попенсоурц - terraform и прочие. Чтобы не сажать себя в кабалу к Грефу. В остальном же, все эти бессерверные функции, объектные хранилища они у есть всех. Короче всё то, что чаще всего используется. Не хватает в основном тонких фишек/деталей под конкретные use case'ы.
>>2324540 Ой, да ну разные в принципе. Я не хочу сейчас сильно лезть в детали. Берём любое финансовое/страховое/логистическое/медицинское приложение. Где нужно вести журнал всех изменений и криптографически подтверждать подлинность записей. Как это сделать на сбере? Да никак, если только на опенсоурс/сторонние сервисы. Или если у тебя сложная логика вызовов микросервисов, цепочка из 4-5 микросервисов например. На aws есть step functions, где можно прямо мышкой лепить логику. На сбере ты будешь как бичара кодом это всё делать. И таких мелочей куча.
Поясните пожалуйста вкатуну в бэк, зачем всё-таки нужен докер, и как его правильно пользовать. Допустим есть у меня тудушка, все туду лежат в бд, кроме туду ещё какая-нибудь стата есть. Зачем мне упаковывать всё это в контейнер? Из всего, что прочитал, понял, что не нужно окружение на сервере настраивать если переезжать/расширяться буду. Есть ли ещё какие-то профиты?
>>2324855 Про докер по-моему разжевали раз 500, не меньше. Очевидно же, всё сводится к автоматизации. Вы судите со своей колокольни (т.е. зачем мне нужен), вам он может и не нужен. Он нужен другим разработчикам, если ты не пишешь код в одну харю. Вот я приду в твой проект, мне придётся с нуля ставить бд и прочие зависимости. Ты не подумал обо мне? Ты просто не застал времена, когда чтобы поднять веб-морду для svn, приходилось конпелять всё - от mail-сервера до днс. А щас одну команду набрал и всё поднялось.
Или допустим у меня серьёзное приложение, команда разработчиков сидит, любой сбой в работе и клиент теряет сотни нефти. Как быть? Организуем тестовое окружение с помощью докера, при каждом деплое пропускаем через тесты --> если тесты проходит --> публикуем изменения в паблик.
Или допустим твоя тудуха стала жутко популярной. Посещаемость валит, нужно размножить твоё приложение на 500 серверов. Что будешь делать? Вручную копировать? Опять же, докером можно хоть на миллион серверов размножить.
Естественно, ты можешь вообще ничего не ставить. Сидеть на голом сервере, но тогда тебя ожидает такая замечательная штука как "configuration drift" (загугли). Одна из самых частых причин, почему сервера косячат. Можно наглядно видеть этот эффект на примере винды. Свежая винда не тормозит. Но чем дольше ты ей пользуешься, тем больше косяков и тем больше она тормозит. В конце концов она заёбывает и ты её переставляешь. Тот же configuration drift по сути, только здесь в роли винды сервер.
>>2324855 буду краток: воспроизводимость. программисты очень любят заявлять "а у меня все работает!". если программиста поставить в четкое воспроизводимое окружение и заставить его настраивать самому, у него просто отмазок не остается.
Ну и кроме того, неплохо бы кодифицировать результаты работы админа. Это нужно чтобы отнять у админов средства производства, по Марксу.
>>2324169 Продолжу диалог сам с собой, решил проблему сборки, появилась проблема с сервером. На рабочем пк установлена шиндовс, и подключение к Монго происходит без проблем. Однако на серваке - убунту, и там, почему то, возникает ошибка (пик 1). БД работает, и я могу к ней подрубиться (пик 2). Запускаю через докер композ (пик 3). Прошу помощи местных анонов.
>>2324158 >Мне не понятно зачем вообще помещать базу данных в контейнер. И что здесь непонятного? Для унификации жизненного цикла ПО: доставки образа, деплоя, обновления, удаления.
>>2325645 Пик 1, настраивай своё приложение лучше. Оно коннектится на локалхост, а должно конектиться в монго. Я уже честно заебался писать в этом ИТТ треде про локалхост и докер. Надо обязательно при перекате добавить это в шапку поста.
Аноны, пролистал тред, есть много воды, есть интересные куски. Короче хочу вкатится в devops, модноже! Есть некоторая база по пинанию виртуалок на своём сервере, питоныча вроде не плохо знаю. Сети более менее, но глубоко не копал, докапаю, если надо. Короче нужен петпроект с максимальным учебным эффектом. Сейчас пишу себе телеграмбота, чтоб анализировал/реагировал на данные из стрима данных(форексхрень, если кому интересно.) Как это всё обмазать с максимальным эфектом и чтобы как можно ближе было к тому, чем девопсы занимаются? Т.е пишу код, он заливается в локальный гит на какой-нить виртуалке. Оттуда автоматом тестируется(тут я пока ноль, что копнуть?), собирается в докер, запускается локально + удалённо AWS, репликация там + бекапы базы, +мониторинг, что ещё сюда накидать? Опытные помогите пожалуйста!
Здрасти, господа девопсеры. Может кто-нибудь помочь? Пытаюсь поднять проект на джанго в докер компоуз и не могу понять, где же я проебался? Выдаёт пикрил 2. В settings.py password нету.
>>2328396 Как не прискорбно, но похоже ты прав. Вероятно в общем случае не стоит им и помогать. А стоит всячески их гнобить и троллить, чтобы не флудили, понимая что на такие вопросы - тут посылают нахуй. Они правда не понимают, что приводят на своих скриншетах. Вот этот кадр >>2331407 например, он английский наверное не знает, а в гугл транслейт его забанили? "no password supplied" не может перевести? И понять что он должен проверить следующим? Еще что приколько, что они сразу лезут в какие-то дремучие абстракции - джанго, например. Сам последние лет 5 постоянно пишу на питоне (как девопс/сре), и никогда не было необходимости погрузиться в джанго, всегда хватало aiohttp для микросервисов и тулзов любой сложности, обрабатывающих порой 500rps на ядро.
>>2330974 Лень подробно разбирать твою писанину. Ты какой-то жуткий оверкилл описываешь. Для телеграмм бота не нужны виртуалки, докер, не нужна репликация, бекапы бд. Твоя хрень выйдет платиновой по стоимости. Там нужна aws lambda/dynamodb/cdk. Ну мож ещё максимум прикрутить kinesis/timestream базу. Сборка через github actions/aws codebuild, не принципиально.
>>2331500 Сука, мне тут на курсах сказали, что надо так сделать для обучения. Ты думаешь, я бы полез сюда, если бы хоть одно решение со stackoverflow сработало?
Сап, инженеры, на проводе джун. Короче, вопрос такой: есть зоопарк в несколько сотен серверов и надо на них как-то контролить версии системы и прикладных приложений, желательно с записью в удобненькую табличку. Есть ли для этого какое-то фриварное решение?
Мне пока в голову пришло только завести скрипты, которые будут раз в неделю писать версии приложений в файлы, и мониторить изменения этих файлов какой-нибудь призмой, или зябликсом. Очевидно это геморройный метод с минимумом автоматизации. Нужно это всё как водится для своевременных апдейтов.
>>2333603 Ну так ты, джун, спроси у выделенного тебе нОрмала, как в этой организации эксплутировали 100 серверов раньше и сделай с помощью той системы, которую там уже используют.
>>2333630 Вот, это прям то, что надо, спасибо, мудрый анон. Раскатал в локальном тестовом окружении, заебался, но уже вижу, что именно то, что надо было. Ну а дальше уже не моя забота пока – про нагрузку думать. >>2333861 Нормал мне и задал эту задачу. Раньше всё ручками было. >>2334902 Посмотрю попозже, как с вышерекомендованной разберусь, но из того что сходу: мой нормал сразу сказал, что ансибл не то и что надо чтобы все эти данные о серваках в красивеньком представлении были в табличках (цитата :"ансибл про развертывание, он скорее всего так не умеет").
Есть всё-таки ещё мысль от соседнего нормала, что всё-таки заббикс это умеет, но опять же хуй знает, как ето делать.
В любом случае спасибо за советы, пойду дальше курить маны.
>>2335395 >Нормал мне и задал эту задачу. Раньше всё ручками было. Хаха.
Эта задача называется "инвентаризация". Все эти Ocsinventory и Ralph хорошо выглядят, да всё упирается в развёртывание их клиентов на сотне этих самых серверов, то есть один хер в орекстровку см >>2334902 Тут она у вас либо есть, и ты берёшь её какую есть. Либо её нет и ты берёшь ансибл, максимум сольстак с косытлями, потому что всем остальным так же надо ставить клиенты. Дальше остаётся написать скрип трёхстрочный который в зависимости от ОС составляет список версий нужных пакетов, деплоить и дёргать его через ансибл. > в красивеньком представлении были в табличках (цитата :"ансибл про развертывание, он скорее всего так не умеет") csv построчно можно и самим скриптом генерить, и ансибл переменные в табличку свести в состоянии https://www.reddit.com/r/ansible/comments/mw8sz8/using_ansible_to_create_csv_files/
> заббикс это умеет У заббикса есть рудиментарная инвентаризация: https://www.zabbix.com/documentation/current/ru/manual/config/hosts/inventory . Всё что больше её - надо настраивать, при том настраивать со стороны клиента, через костыли и раздачу прав, то есть снова приходим к ансиблу. Нагиос к этому больше расположен, но если его у вас нет, то нечего про этого монстра и задумываться.
>>2335395 Тут маленькое политическое резюме. Я бы всё равно свёл всю задачу до пердолинга в скрипты и оркестровку потому что: а) это в принципе полезный навык, на него не жалко потратить время б) это один из самых дешёвых способов решить эту задачу в) это сохраняет свободу действий, если вдруг ваш мутный нормал переобуется и немного скорректирует задачу г) это не оставляет за тобой технического долга в виде админинга сервера/клиентов инвентаризации и латания соответствующих дыр безопасности
>>2112705 (OP) В зависимости от среды (dev/prod) нужно в докерфайле выполнять разные entrypoint, очевидно что тип среды передается через env-переменные но блин как в докере написать if-else clause?
>>2336478 Надо сделать один entrypoint скрипт, который будет вести себя по разному в зависимости от переменных окружения. Можно, конечно в .env целиком команды записать и добывать их как переменные, но имхо это хуёвая идея, потому что может повести себя непредсказуемо.
>>2338171 >Все "годные" курсы - это www.cbtnuggets.com По девопсу там 1100 часов обучения. туда понапихали всякой шняги типа js, salesforce, project management и прочего oracle. пока ты платишь (неизвестно как?) за эту буйню, другой челик подрочит на ютубе видяшки, покрутит дома стандартный девупс-стек, да и вкатится себе
Пацаны, короче, делюсь маняинсайдом. Сейчас после закрытия Епама появилось много резюме от не желающих релоцироваться. Сбер сейчас активно пылесосит рынок и пытается набрать себе сеньоров-помидоров, архитекторов и прочую элиту IT-мира. Что по зарплате предлагают - хз. Но насколько я понял, пытаются собрать сливки, заплатив поменьше. Ну или просто свою сберовскую зп "согласно грейда" предлагают, а там кто согласится.
Как после Епама в Сбере работать, я вообще не представляю. Мне кажется, любой девопс-помидор пулей отсюда вылетит через месяц (из них 3 недели он будет проходить буткемп)
>>2339149 Глазами вкатуна - отличная вакансия, без шуток. Вместо курсов и стажировок идёшь туда работать по вечерам. Через несколько месяцев съебываешь с коммерческим опытом™ и навыками. Серьезно, я бы с удовольствием пошел на такое что-то год назад. Подводных камня только два: 1. Не указан стек. Возможна винда 2. Это скорее всего техподдержка. Чему-то нормальному там не научишься. Но опять же, для вката норм
Господа девопсеры, что светит аутисту со знанием докера, ансибл, гита, куба и тераформа, если не прогер, не сисадминил (только свою залупу), из проганья только писал ботов?
>>2339639 Ну очевидно, позиция джуна. Так-то классический стек, я с таким же вкатился. Если добавишь сюда еще Дженкинс, maven и Postgres, то прям банковский. ЖМУ/Пинус хорошо знаешь? > из проганья только писал ботов Пиши в резюме, что фриланс, чтоб совсем пустое не было. Скажешь, ботов на заказ писал.
Есть некий объект с полем, в которое обычно пихается json (строка), и потом шлется по http. Этот дебил в какой-то момент стал считать, что это поле long, и начал кидать эксепшоны. А потом все снова заработало.. При этом в момент сбоя все логи проебались.
Я вообще не в теме, как понял это что-то связанное с индексацией. Типа когда-то в этом поле пришел long, он посчитал что это long и начал ругаться на строки в виде json'ов или как? Потом индексы обновились и все стало нормально.
Проблема в том, что пока не удается найти того, кто шлёт long'и. Можно как-то проконтролировать/зафиксировать чтобы всегда была строка, например?
>>2340188 Не шарю за graylog. Но могу сказать что в опенсерч/эластик это можно сделать при помощи указания mappings в index template. >>2339447 >> невозможно справиться? >Да Почему? Хуёвые процессы?
Сап, господа вкатившиеся. Вопрос: Как у себя в резюме указать работу эникейщиком? Умудрился в одном месте поработать и верстальщиком, и с сервом покапаться, и сео, и реклама, короче, всё, что с кампухтером и сетями связано в маленькой организации. Как это указать достойно?
>>2344693 > верстальщиком Это dev > и с сервом покапаться > сетями Это Ops > и сео, и реклама Это bizness
Все понятно, ты работал bizdevops'ом
А если серьезно - пиши "системный администратор linux". Если хрюха понимает, что перед ней резюме эникейщика, техподдержки или виндузятника, то сразу его отбраковывает
>>2344693 В резюме укажи только то, что относится к вакансии. Если устраиваешься администратором - указывай только опыт администратора. Остальное не указывай.
Пилю очередной ебаный монолит на ноде. Гитовский ci и докер, докер-композе. Я бы хотел иметь возможность деплоить с кратчайшим даунтаймом. Пока нашёл только такое - https://medium.com/@kartikio/setup-node-ts-local-development-environment-with-docker-and-hot-reloading-922db9016119 но выглядит как ебаная магия. Я бы хотел, чтобы старый контейнер продолжал работать, пока новый собирается, потом хуяк старый прибился, новый тут же поднялся (мне вообще представляется что скажем есть порты 3000 и 3001 и они свопятся через прокси нгинкс который очень быстро релодит конфиг). Куда рыть, чтобы не делать это сш скриптами из говна и палок?
>>2346367 Зачем тебе говно и палки, когда есть балансировщики нагрузки и реверс-прокси, которые для этого и придуманы? Я пользовался traefik, для твоей задачи он подойдет отлично, тк проксирует не только http трафик, но и tcp/udp Один раз с ним разберешься, потом постоянно будешь использовать, тк шаблон один и тот же. Кроме бесшовного переключения он еще может помочь реализовать 10% тесты - там можно выбрать соотношение weight для реплицированного сервиса.
>>2346612 Ты не туда воюешь. Он спрашивает как сделать rolling update и не изобретать велосипед (не поддерживаемые говнопортянки на шелле). Как ему в этом поможет конкретный веб сервер? Не понимаю. Понятно что веб сервер/балансировщих вероятно нужен, но что такого нужного в траефике? Не было необходимости юзать это хипстерское говно, когда есть православный штабильный nginx. >проксирует udp Это конечно полный пиздешь. udp нельзя проксировать. Либо это аппликатион левел прокси, которые понимает конкретный протокол. Или это прокси не работает: постоянно просерает данные. Попробуй своим траефиком попроксировать протокол типа gelf с периодически падающим коллектором, а я поржу. >>2346367 Как бы банально не звучало - кубер. Тебе нужно всего 3 очень простых манифеста: deployment, service и ingress. Можешь запустить все на 1 нодовом "кластере". На локалхосте можешь поиграться через kind (кубер в докере).
>>2347048 > Как ему в этом поможет конкретный веб сервер? Не понимаю. > Понятно что веб сервер/балансировщих вероятно нужен, но что такого нужного в траефике? Можно деплоить контейнеры и траефик их будет подхватывать автоматически. Потом переводить трафик с одного контейнера на другой. При деплое достаточно развернуть контейнер и подкинуть траефику связанный с этим конфиг файл. Точно так же можно реализовать откат на предыдущую версию.
А вообще - ты прав, лучше сразу развернуть кубер. Я просто анона решил пощадить, тк проще поставить траефик с боку. > Это конечно полный пиздешь. udp нельзя проксировать. Я его с udp не использовал. Но его поддержка заявлена. Есть плагин для грейлога. Если ты в себе уверен, можешь им написать на почту, что они пиздоболы, может ответят, потом покажешь. > Не было необходимости юзать это хипстерское говно Рекомендую присмотреться. Отличный инструмент, сейчас много где используется.
Ебанаты, зачем все эти танцы с бубном с куберами/traefik. Есть уже миллионы готовых хостингов под докер-контейнеры. Возьмите готовое и не выёбывайтесь. AWS ECS, AWS EKS, Jelastic cloud, Google run, Alibaba ECS, есть у российских облаков готовые решения типа Yandex serverless containers и другие. Там автоматом версии проставляются и обновляются с нулевым даунтаймом.
Мышкой из админки контейнер на любую версию можно откатить. Ну сделали вы zero downtime deployments... И чё блять дальше. Откатов на предыдущую версию у вас не будет. Автомасштабирования у вас не будет. И многого другого, это всё сделано, зачем эти кривые-косые велосипеды снова переизобретать?
>>2347145 >ты прав, лучше сразу развернуть кубер Дооооо дооооо, лучше сразу развернуть кубер. Конечно, ради одного монолита, обязательно нужно разворачивать ебанный кубер. Там ему всего-то максимум что нужно - автомасштабирование. Типичный пример оверинжиниринга. Гораздо проще можно сделать, без десятка сраных балансеров/проксей и ещё непонятно чего.
>>2347601 Долбоеб, платить за этот весь праздник ты будешь? > Откатов на предыдущую версию у вас не будет Ты ни траефик не знаешь, ни кубер, иди нахуй отсюда. >>2347607 Да, как пример для решения конкретной задачи это оверинжиниринг. Но с архитектурной точки зрения это необходимый шаг вперед.
>>2347660 Дебич, да я давно уже пользуюсь. Тем же Jelastic cloud. Там уже все трафики, куберы, уже настроены. И AWS ECS пользуюсь. По деньгам выходит так же, как и твой задрипанный второсортный деревенский vps-хостер. Но только там есть уже няшные админки, где настраивается всё в два клика. А вы сидите дальше, как бичары, консольные конфиги пердольте.
Мне дали архив с wildcard сертифткатами. В нём три файла: 1) certificate_ca.crt . Публичный серт УЦ с двумя блоками `---BEGIN CERTIFICATE---` 2) certificate.crt . Публичный серт сайта с одним блоком `---BEGIN CERTIFICATE---` 3) certificate.csr . Запрос серта с одним блоком `---BEGIN CERTIFICATE REQUEST---`
Мне нужно из них сгенерить пару cert.pem / key.pem для nginx, открытый сертификат и закрытый ключ. И я не вижу в этом архиве ни одного приватного ключа. Как-то можно проинспектировать содержимое .crt? Может мне что-то недоложили?
Сап. Подскажите какую-нибудь time series db, которую легко к графане прикрутить. У меня данные генерируются очень быстро и экспортер должен раз в секунду примерно сотню интов сохранять и графана должна визуализировать. Прометеус не совсем про это. Не хочу его затачивать под эту задачу. Хочу просто бд куда буду писать данные и смотреть результат в графане.
>>2355044 Попробовал инфлюкс и в первый же день выстрелил в ногу. Сделал норм сервис, который пишет данные и бд из нескольких реплик. И инфлюкс подэфолту нерезаписывает старые данные новыми если 2 реплики решили одновременно разные данные сохранить. А мне надо чтобы как только первый сохранил данные, то второй не может их поменять. У редиса была фича set only if not exists и у sql есть оптимистик локи. А у influxdb что?
>>2355127 Там одна дашборда с селектором на сотню опций каждый из которых только один график истории изменения одного инта показывает. Батчем оно генерируется для оптимизации, но потом может быть что-то поменяется
>>2355525 Не нашёл способа делать это хорошо. Буду писать данные в редис и сделаю отдельный сервис для переброса их в инфлюкс. Но это пиздец, ребятки. Лучше бы сразу норм бд выбрал.
>>2355609 Особенности задачи. Каждай реплика немного мутирует предыдущие данные. Работает в паралель и под капотом сервиса мутации есть рандом. От того реплики и дают разный результат. Но мне не важно какой принять. Главное чтобы графана показывала только один и после того как она этот результат показала он не должен меняться. Думал тэг реплики добавить или просто рандомный тэг и в графане отображать только данные с максимальным значением этого тэга. Так можно выбрать один правильный вар ант даже если несколько реплик в одну секунду несколько результатов напишут. Но преблема в том, что если одна реплика запишет одно значение, но отобра9ится в графане или пойдёт дальше в пайплайн, а потом другая запишет другое значение в эту секунду с большим тэгом, то значение в графане поменяется. Кстати вероятность такого 50 процентов при двух запися0 в одно время. Так что не вариант. Можно внедрить задержку с графану чтобы показывать когда реплики точно больше не станут писать новые данные в эту секунду, но эта задача чувствительеа ко времени и 9адержка не позволительна
>>2355611 Не разбираюсь как это сделать, но погуглю. Спасибо. Но прометеус всё таки инструмент для метрик. Боюсь нарвусь на подводные камни когда начну свои данные туда писать. Плюс скорее всего придётся поменять прометеусу внешний сторадж на какую-нибудь ха бд и сам прометеус закинуть в кубер для больше надёжности, но пока не знаю как и можно ли вообще. Плюс пушгейтвей не видел ни разу. Думаю долго и сложно буду всё это затачивать
>>2355667 >пойдёт дальше в пайплайн Тэк, у тебя получается две реплики считают разные результаты, какой-то один из них случным образом уходит в БД. Затем на основе этого значения из БД реплики должны начать считать новую калькуляцию? Какое время между событиями "реплика посчитала х['12:56:34.904']=0.0024", "реплика добыла из ДБ значение х['12:56:34.904']=0.9864 чтобы начать считать дальше"? Так понимаю, что ты пытаешься скинуть с себя логику принятия решения и отдать её костылям в ТСДБ.
>>2355709 Не совсем понял в чём проблема. Можешь подробней? Если реплика для нужной секунды записала какое-то значение в дб, то прочитать она или любая другая реплика может только это значение. При этом для одного ключа только один раз и только одна реплика может установить значение. Все остальные попытки от любых реплик должны фейлится. Это же просто свойство дб. В редисе оно есть и сейчас пытаюсь заюзать его. Не понимаю какую логику я пытаюсь переложить на дб
>>2355709 >Какое время между событиями "реплика посчитала х['12:56:34.904']=0.0024", "реплика добыла из ДБ значение х['12:56:34.904']=0.9864 чтобы начать считать дальше"? Одна секунда. Ключи всегда целое количество секунд. Данные генерируются в реалтайме. Сначала реплика проверяет текущее время, сверяется со временем последней записи в дб (значение кэшируется в памяти реплики и запрос к дб делается только1 раз) и если данных за эту секунду нет, то отправляет последние данные из последней известно (не предыдущей) секунды в сервис мутации и пытается записать результат в дб. Между действиями слип на 200 милисекунд минус время выполнение раунда (должно быть 5 раундов в секунду примерно). Проблемы должны быть только если дб недоступна больше секунды и в эту секунду реплика не записало значение в дб. Пока у меня нет инструкции как такое хэндлить и нужно ли генерить данные задним числом, но чуть что придётся делать
>>2355737 Всё ломается как только ты делаешь среду распределённой. Когда у тебя появляется несколько инстансов бд - лаг репликации может легко перевалить за несколько секунд, и то что в бд значения не найдётся не будет гарантировать ничего. Может в редисе есть заклинания для форсированной проверки записи на остальных нодах, но в классических сикулях - это очень распространённая трабла.
>>2355759 Логика не основана на отсутствии значения в бд. Если в бд нет значения, то реплика просто пишет туда своё. Если 2 пишут одновременно, то только одно должно сохраниться. Рэдис такое точно позволяет даже распределённы. Я же не дурачок полагаться на значение прочитаное из бд. Ведь может быть ошибка разных time of check и time of use
>>2356180 Это не галера, а иностраный инвестфонд, который создаёт пол процента мирового интердей оборота среди всех hft торгов на nyse. И это софт для тестов. Симуляция неадекватного поведения моделей в реалтайме и анализ поведения бэкенда на подобные данные. Тестирование умной защиты на дурака.
>>2357073 Но это задачу на меня свалили... Это я должен решить... пойду в тимлиду с портотипом на рэдисе на следующей неделе, но у него миллион делов и похуй как внутри работает главное тасочку загрыть и интрумент команде дать
>>2357078 решить блять, что? Это практические нерешаемая проблема. HFT - по сути это борьба с рыночком, с суммированной в одну цифру информацией о мыслях и действиях миллиардов людей. Эти модели не могут вести себя "адекватно" в принципе.
Сваливай все на ученых. Это их модель и их ответственность. А у тебя просто виртуалки должны работать как часты.
>>2357082 Так они и делают модели. Инженеры строят быстрый бэкенд. Тестировщики тестируют. А таперь тэстировщикам нужен стенд для реалтайм симуляций. Тестовые модели они сделают. Мне мок модель уже дали. Надо теперь каждую секунду ей в базе мутировать значения. Потом в девами придумаем как прикрутить что получится к их бэку. Дальше тестеры добавляют функционал, который им нужен, а я просто поддерживаю этот стэнд чтобы там непрерывно паралельно гонялось много тестов. Мне не надо перестраивать процессы в нашей команде. Мне задачу решить надо
Подскажите плес, где загон для нубов вроде эникеев, которые в сетевика хотят? Устанавливать операционки умею, настраивать цискомикроты не умею, куда копать не знаю.
>>2338193 >понапихали всякой шняги типа js, salesforce, project management и прочего oracle Ты так говоришь, как будто это плохое. Мне нравится, я изучаю.
>>2360316 Тебе же выше нарисовали колесо сансары. Иди ходи по кругу и изучай все мокрые письки. --- Каг же у меня горит от картинки выше. Все SaaS писечки бесплатно без СМС но с кредиткой собрали. Какого фига там zabbix есть, но нет prometheus + grafana и opensearch? Поехавшие блядь.
Пацаны, гуманитарное уёбище на связи. Вкатывась в девопс сейлзом, продавать умею, понимать что такое девопс - нихуя. Год отучился на погромиста в нашей белорусской кодерошараге, что, вроде как, оч поверхностное представление в целом о сфере в том ключе, в котором это нужно сейлзу, дало (нет). Дайте плс советов мудрых и накидайте контента для совсем дерева типа меня, что б было понимание что я, блядь, вообще продавать буду. В общих чертах вроде подразобрался, но каждая крупица инфы дается с неебическим боем, минут 20 убил на то, что бы нагуглить таки что такое в девопсе пайплайны и всё в таком духе. Короче буду благодарен за любой совет.
>>2360662 Братюня, это не ракетная наука. Гидродинамику и сопромат учить по книжке с дифурами необязательно. И на начальном этапе совершенно точно что вредно. Лучше получить 80% быстро доступных знаний на практике, а вот на оставшиеся 20% уже можно почитать и книжку. И ты уже сам разберешься какую. Это ремесло знания в котором в основном получаются и передаются практически в процессе работы. Ты близко не получишь такого же скила в лепке глиняных горшков, пусть даже прочитаешь все книги ей посвященные, в сравнении с полуграмотным работягой который слепил свои 1000 горшков. Поэтому если обладаешь знаниями на уровне системного администратора (Linux + сети + простейший скриптинг) устраивайся работать ops'ом и в процессе научишься. 5 лет работаю в сфере разработки ПО (80% что называется "devops" / 20% кодинг). Хочу свичнуться в 80/20 кодинг/devops.
>>2361779 Хз. Я бы на твоём месте гуглил всякие промо статейки по ключевым словам "CI/CD для бизнесса" и потом поверхностно разбирал бы все непонятные слова из этих статей. Продавать ты будешь автоматизацию именно этих процессов.
>>2362218 Атдушы, бро. Канальчиков на ютюбе мб закинешь каких? Скилбокс понравился своей водянистостью, что мне наоборот в плюс, ибо разжевано совсем в труху.
Хочу сделать релизы в гитлабе и прикрутить к дотнет приложухе автоапдейт через https://github.com/ravibpatel/AutoUpdater.NET . ci сделал, благо на 90% нужный есть в доке самого гитлаба как сделать релизы и триггер на тэг. Теперь есть вопрос где хранить .xml который указывает версию для апдейта. Пока из идеи есть вариант создать паблик сниппет и оттуда брать. Ещё какие варианты есть?
У кибера есть какой-нибудь встренный механизма ретрая хттп запросов? Есть 2 сервиса. Один шлёт второму хттп реквест. Второй его принимает, а пока обрабатывает крашится. Первый про это не знает и держит tcp соездинение открытым. По таймауту это соединение рвётся спустя минуту и первый сервис ловит сокет эксепшен. Послу чего пытается снова послать реквест второму сервису. Кубер переписал айпитэйбэлс на подах и теперь маршрут к сервису ведёт к другому поду и всё работает. Но для этого приходится писать дополнительную логику в клиенте. Может можно настроить кубер чтобы он сам эти ретраи делал как например nginx ретраит следующий upstream сервер когда предыдущий таймаутиться.
>>2367539 >канико NENUJNO В werf добавили (помимо всех прочих фишек) сборку через buildah (т.е. без докера) Поддержи отечественного производителя, те чо жалко, да?
Читаю про девопс, и не могу понять, это должность такая чтоли? Просто это звучит как концепт типа эджайл. Есть ещё конкретно должность девопсер? И в чем заключается его работа?
>>2368281 >это должность такая чтоли? Да. Нечто среднее между сисадмином и программистом.
>И в чем заключается его работа? В автоматизации задач и в поддержании нормальной, устойчивой работы сайта/сервиса. С развитием технологий появилась такая штука как IaS ("инфраструктура как код"). Кодом можно за 2 секунды развернуть хоть целый датацентр. Задача девопсера - написать код, который поднимет 100500 сервисов, и потом следить чтобы эти сервисы нормально работали. Чтобы условную базу данных не могли задудосить. Чтобы обновления накатывались и многое другое. Различие с админом в том, что админ больше с железом работает. А девопсер больше с кодом работает.
Возникла проблема с админом-макакой, который ночью чего-то поменял на RDP сервере с десятками пользователей и одного зацепило так, что сбросились настройки (подключение к базе 1c), сменился язык системы и пропали все документы этого пользователя.
Через Shadow Explorer прошерстил теневые копии за последнюю неделю, но у этого пользователя вообще не отображаются никакие личные файлы. Возможно ли, причина в том,что файлы были созданы ранее, а vss создавая инкрементальные копии, не захватила изменений?
Попытки восстановить через Recuva, R.saver помогли восстановить пару файлов из нескольких десятков.
>>2372031 ПРИШЛО ВРЕМЯ ПЕРЕУСТАНАВЛИВАТЬ ШИНДОШС... ШИНДОШС САМ НЕ ПЕРЕУСТАНОВИТСЯ. Ты тредом не ошибся? Спермопитушек? Слетание профиля в винде распространенная проблема (покрайней мере в XP) ищи в гугле как фиксить (переключиться на старый профиль).
пацаны, привет. вопрос за кубернетис. есть один мастер, один воркер. если отключать по одной ноде, то всё поднимается (ноды в состоянии готовы), если вырубить обе, то с воркера мастера не пропинговать (destination unrectable host) и нода в состоянии не готова. чё делать?)))
>>2112705 (OP) Как заставить разные контейнеры в разных docker-compose работать с одной и той же базой? На одной машине запущено 2 докер-компоуза, в каждом из них из сервис database, который работает с базой Postgres, вместе их запускать не получается, т.к. "port laready in use", как это фиксить?
>>2382249 Не непонятно что ты хочешь в конечном итоге: 2 базы или 1. Такое чувство что ты не разобрался, но уже пришел с решением. 1) Чтобы 2 базы - используй разные порты на хосте или не используй их вовсе, если не нужны. 2) Чтобы 1 базу - используй 1 сеть в обоих docker-compose.
Не совсем по теме треда, но не в /s/-линуксаче же спрашивать, да?
Вот есть разработчик, которому приспичило поадминить. Не подевопсить, а именно поадминить, ну там свитер, шредер, ололо. Посоветуйте какой-нибудь максимально полный чеклист навыков, которыми нужно обладать. Чтобы можно было посмотреть и оценить, насколько имеющийся опыт соответствует и где белые пятна.
>>2383156 Какой ИМЕННО администратор? Администраторов несколько. Есть сетевой администратор, системный администратор, администратор баз данных, текоммуникационный администратор. Если системный администратор, то тут опять же какой? Есть системный администратор linux, есть системный администратор windows. Если сисадмин линукса, то там нужно знать его устройство, скрипты, виртуализацию, безопасность и окрестрацию процессов.
>>2383270 >там нужно знать его устройство, скрипты, виртуализацию, безопасность и окрестрацию процессов. Вот конкретнее списком это где-то есть? Чтоб прям по пунктам, по типу: уметь делать то-то, для этого нужно знать то-то, ртфм к таким-то командам, например.
Часто видел маппинг портов в композе. Но везде обычно ставили один и тот же порт как слева так и справа, в некоторых случаях эти порты различны, почитал но че-то все равно не допер, какой из этих портов для чего? Тот что справа это тот, который будет виден снаружи контейнера? А левый тот что будет внутри контейнеров?
>>2386497 О, у меня по немного похожей теме вопрос. На одной машине запускаем 2 разных джанго-сервиса, надо обеспечить внешний доступ в админку каждого из них. Оба работают через нгинкс. Ну допустим мы можем поменять урл для входа в админки, в первой будет /admin-alpha а во второй /admin-beta, но все равно конфликт, ведь оба приложения будут сервиться по 80 порту
Это через субдомены лучше наверно как-то сделать или что? С нгинкс раньше особо не работал
>>2390280 Не нужно на разных портах. Конфигурации должны быть максимально одинаковыми. Запомни это раз и навсегда юный падаван. Если ты ходишь в сервисы через nginx, то нет смысла делать их доступными с хоста (настраивать порт форвардинг). Поэтому: - засуть все 3 сервиса: беки + nginx в одну сеть (не дефолтную в которой не работает резолвинг) - выставь на хост только порт nginx - настрой в nginx роутинг в апстримы беков, где адрес апстрима - имя контейнера или сервиса. server_name можешь использовать 1 или 2, это не имеет значения. Лучше конечно когда одно, чтобы потом еще с корсами не ебстись.
>>2391340 Тебе бинарная совместимость с шапкой так нужна или просто ололомамсмотриэнтерпрайз? Для совместимости шапка разрешает юзать сколько-то там установок. Для энтерпрайза какой-то роки ну ты серьёзно?
Устроился в ставки на спорт админом, там девопс шиза в полный рост - отдельный чувак ставит виртуалку, отдельный туда сеть докидывает, отдельный ансиблом проходится, отдельный пердолит сервис который там будет работать в итоге. Все 250+ получают. Я за полгода делал только тестовые задания и напилил пару вещей в прод, а так двач и саморазвитие 8 часов в день. Это щас везде так или в чём смысл такой санаторий делать? В провайдере я человек-оркестр был и всегда были дела за намного меньшие деньги.
Посоветуйте пожалуйста девопс стэк для ASP Net Core приложения. На ажуре нас забанили потому что мы русские (не шучу). Пока думаю использовать github actions, но для портфолио хотелось бы что-нибудь модное попробовать из опенсорса. Сейчас все руками, из автоматизации только батники для сборки пакетов, у программистов у всех разные версии студии, в общем все печально
>>2394205 >там девопс шиза в полный рост >отдельный чувак ставит виртуалку >отдельный туда сеть докидывает >отдельный ансиблом проходится >отдельный пердолит сервис который там будет работать в итоге. Ты понимаешь что то что ты написал полностью противоречит понятию devops? Devops это про уменьшение границ, а не про их создание. Если бы в организации были devops процессы, то не было бы 4 выделенных на 1 задачу человек. как их блядь заменять если они уйдут в отпуск, уволятся, собьются автобусом и т.д.? А было бы 2 и то только из соображений заменяемости. Но тут надо понимать что devops процессы не обязательно отменяют инженеров которые несравнимо больше про инфраструктуру чем про разработку (куда возможно ты бы и мог/хотел вписаться). Которые например могут подготовит 2 чувакам выше готовые шаблоны раскатывания и в которые последние лишь подставят свои данные и/или минимально их допилят. Такое разделение на уровни происходит чисто организационно, ибо кто-то должен пилить обще проектные сервисы, которые обычно в чистом виде про инфраструктуру, типо: мониторинг, логирование и т.д. Еще из написаного понятно что такие вещи как IaC и CI/CD там не используются. Первые 2 задачи полностью заменяются на terraform. Отдельный запускатор ansible - это так же просто шаг в pipeline. Если кто-то что-то запускает/делает самостоятельно - читай руками, как вообще такое ревьювить? Как понять что он делает это правильно? А когда он уйдет, где останутся знания как правильно запускать?, в .bash_history его собственного ноутбука? Писать на каждый чих инструкции и ебаться с их актуализацией? Нафиг они нужны когда есть "инструкция" из воспроизводимых шагов в CI, названий шагов в ansible, которые принципиально всегда актуальны. Я бы не пошел в компанию с такой организацией процессов.
Терраформ у нас тоже юзается. Я в принципе про мелкое нарезание. В провайдере ~все делали ~всё. Воипщик сам себе vm делает и вланы тащит, вендоадмин хостинг с линуксом пердолит и тд.
И я про то, в крупных конторах вообще такой санаторий это норма?
>>2394573 В крупных не работал. максимум 200 ИТшников (включая манагеров/аналитиков/дизайнеров и т.д.) С точки зрения теории (devops) совсем все делать в одно лицо неправильно, нужна слишком широкая компетенция, такие люди дороги и их замучаешься заменять. А вот делать минимально необходимые вещи из смежных областей это хорошо и правильно. Поэтому, чистое ИМХО, виндузятники и воипщики спавнящие себе виртуалки и настраивающие вланы/нетворкинги - это хорошо, это необходимо для их работы чтобы делать её быстро, это просто и в рамках общей компетенции. Виндузятники лезущие в линукс (мы о крупной компании) - это лишнее, это отдельный объемный мир, разные подходы и инструменты, этим должны заниматься разные люди.
>>2394573 > И я про то, в крупных конторах вообще такой санаторий это норма? В сбертехе, конкретно в нашем департаменте, все так же, как ты описал. Ну и да, с феласафией девопс это не сходится никак.
>>2394326 Нормальная, только большинство девопсов с админским прошлым, они тебя попускать на собеседованиях будут за незнание сетей и админских инструментов.
>>2394901 Но я знаю сети: у меня бакалаврская степень по профилю, связанному с сетями и инфраструктурной залупой...
(Нас, помнится, даже препод ебал материалами, которые обычно юзают для подготовки к сертификации ЦИСКО; а вообще, неудивительно: он-то был начальником сисадмином в одном крупном банке).
Короче, да, ладно, пройду роадмапу по девопсу и вкачусь. Спс
>>2394901 > Нормальная, только большинство девопсов с админским прошлым, они тебя попускать на собеседованиях будут за незнание сетей и админских инструментов. Насколько глубоко нужно знать сети? Я дальше поверхностного понимания протоколов TCP, IP и Ethernet фреймов не погружался. Про IPv6 вообще ничего не знаю, кроме того, что там хер запомнишь адрес. Со всякми цисками тоже дела не имел.
И что подразумевается под админскими инструментами? Можешь привести примеры? Слишком обтекаемо звучит.
>>2394901 >Ну и да, с феласафией девопс это не сходится никак. Давай по пунктам, что конкретно не сходится? Помоему все совершенно сходится. Девопс это про быструю доставку фитчи до маркета и получение обратной связи по каналам мониторинга. Стало быть чтобы это работало на полную этим должны заниматься сами разработчики, т.к. у них значительно большая экспертиза в разрабатываемом продукте (в то время как ci pipeline или мониторинг - это всеголишь простой шаблон, который довольно просто поправить поаналогии с тем как есть без каких-либо глубоких компетенций). Поэтому разработчики нацеленые на результат должны максимально делать все сами, не ждать пол дня когда отдельный "devops" пропишет им 1.5 строчки в prometheus rules например. Отдельный "девопс" может разгребать глобальные легаси говна и тушить прочие пожары, и это не повод для того чтобы фитча задерживалась от выпуска на маркет упираясь в 1.5 тривиальные строчи.
>>2395114 > Насколько глубоко нужно знать сети? Чем глубже, тем лучше. Книжку Олиферов точно лучше прочитать.
> И что подразумевается под админскими инструментами? Можешь привести примеры? Жму/Пинус, как само-собой разумеющееся. Bind, LDAP, реверс-прокси, прокси-сервера, веб-сервера, средства диагностики сети (tcpdump, wireshark, nmap, netstat, dig) - очень важно. KVM, Ceph тоже желательно Kerberos, FreeIPA могут понадобиться.
>>2395333 Девопс это не про пайплайны, а про взаимодействие между членами команды. Подход "сюда ходи, сюда не ходи" это не девопс, еще раз повторяю. Девопс это two pizza team, CALMS и agile.
Билять, никак не могу понять, как работают network в docker-compose. Я запускаю 3 разных проекта каждый в своем в docker-compose. У всех их должен быть единый nginx сервис (единый контейнер для него запущен лишь в одном проекте), также каждый из проектов использует postgres (но разные базы), контейнер для базы есть в каждом проекте. Мне навесить network на все сервисы для нгинкса? Сделал так, оно реально работает, но БД почему-то - нет (говорит что нет коннекшна по указанном урлу). Втф? Как работает network вообще?
Слышал можно как-то "правильно" располагать слои в докер-файле чтоб пр ипересборке лишних действий не было. А то поменял код в проекте, запустил пересборку и он зачем-то снова все зависимости начинает переустанавливать, хотя я их не менял даже. Видал в некоторых проектах он переустановкой не занимался
>>2397912 Или зависимости твоего языка, как верно ответил >>2398062, или из наиболее встречающегося у таких как ты ньюфагов - копирование директории .git. А вообще чтобы еще более минимизировать пересборку образов/инвалидацию кешей между билдерами/и т.д. собирать нужно через werf. Рекомендую.
>>2398064 Хм, работает даже если не объявлять ее как external В каждом из 3 проектов запулил "локальную" сетку которой связал все сервисы. И помимо нее в каждой еще присутствует общая core_backend_network, ей связаны сервисы которым нужен nginx и сам nginx разумеется. Не совсем только ясно как работают эти network - по идее сеть нужна только чтобы связывать сервисы из разных docker-compose, но вот когда я решил убрать одну из локальных сетей, коннекшн к БД начал падать
Призываю на помощь опытнейших тупому стьюденту. В чем цымес 1. в виртуал боксе создаю обычную линюкс машину 2. успешно завершил установку 3. запускаю свежую ось, намертво зависает
Вот в чем может быть проблема а? В настройках ковырялся я ебу, всё перепробовал, так же намертво зависает. Грешу на то что виртуал бокс установлен на диске С а я хочу установить ВМ на другой логический диск Е, который находится физически на другом ссд-шнике
Есть аж 4 проекта запускающихся через docker-compose. Все они запускаться на одной машине. Один из них не будет работать пока не запустятся остальные 3 (сервис нгинкс будет постоянно подыхать и рестартиться). Как это централизованно пускать? По очереди запускать docker-compose up -d - такое себе, однажды уже нарвался на проблему где че-то не то с network было и один из сервисов сдох. Я не девопес поэтому особо не шарю в тулзах для деплоя. Возможно стоит просто небольшой скрипт написать? Какие подводные?
>>2403229 В железе. У меня были похожие проблемы когда пытался поставить на ssd который через usb подключал. Как контрить? Не делать так. Работать с одним диском.
>>2403522 Да какое чсв, я просто заебался с таких вечно логи выпрашивать и рофлю > Ты то сам в дебиане и красношапке разберешься одновременно? А в чем проблема?
>>2403696 Да не доминировала она никогда. Ну, возможно, где-то до 2000 года "доминировала", но я сомневаюсь что тут можно встретить двачера старше меня, чтобы об этом уверенно подискутировать.
>>2403778 RedHat 1.0 вышел в 1995 году. В чем проблема была его использовать? Нет обнов - читаешь рассылку и ставишь пакеты вручную.
Единственное применение - почему-то такой софт как mpd работал на фре лучше (наверное потому его не было на линуксе). В остальных местах хваленую производительность фри еще в нулевые обосывали.
>>2403752 >фряха была дефолтом года до 2010 Она была плюс-минус популярной, но точно не дефолтом. У провов где я чалил практикантом были дебиан и соляра. мимо_вкатился_в_линуксы_в_2005
>>2112705 (OP) > 3 Похоже я шутки не понял. А что такое девопс? Без "хипстерских" штук? Для меня всегда девопс = CI/CD (и возможно +инфраструктура, хотя этим админы должны по хорошему заниматся)
>>2405194 > Для меня всегда девопс = CI/CD Так и есть, но не только. Это изначальное определение, термину уже 10 лет в обед. Грубо говоря, они интегрируют средства разработки, доставки, тестирования и обслуживания, чтобы все разрозненные инструменты стали единой нервной системой. Это интеграция сложных программных решений с целью максимальной оптимизации процесса разработки программного обеспечения.
Изначально это была ниша для недоразработчиков и недоадминов в одном флаконе.
> хотя этим админы должны по хорошему заниматся
Сегодня это ниша для хороших разработчиков и отличных админов. Ну, если ты хочешь, чтобы твой процесс меньше походил на гору костылей, склеенных изолентой.
Есть ли какая-то возможность сохранять данные в Редисе при остановке докер-контейнера? Чтобы они на диске куда-то сохранились и при перезапуске редис бы сначала их проинициализировал?
Я накодил типичную рест хуйню, у неё есть БД в виде постгреса. Хочу реализовать по возможности приближенную к реальности инфраструктуру. И из сказанного у меня вытекают следующие проблемы.
1. В каком виде должен работать постгрес? Мне кажется не правильным если засунуть его в контейнер. Если даже так не делать, то лучше его в соседней ВМ запустить или рядом с докером?
2. Как развернуть прометей? Его экспортеры должны работать в контейнерах а само хранилище в самом ВМ?
3. И что лучше использовать? Compose или Swarm? Что посоветуете? Кубер сразу отбросил так как это уже оверхед получается.
>>2408006 >1. В каком виде должен работать постгрес? Максимально так же как доставляется все остальное приложение. systemd например запускает заметную часть процессов в неймспейсах (читай как докер)... тебя же это не парит? >2. Как развернуть прометей? А какие у тебя есть варианты кроме ВМ? Хранилище на волюме. Мне больше нравится вариация на тему прометея - Thanos. Им можно в s3 хранить. И еще всякие плюшки. >3. И что лучше использовать? Сварм не нужен практически ни для чего. Compose пока приложение как-то адекватно вмещается на 1 (может 2) хоста или кубер.
Смотри, я правильно понимаю что мне будет правильнее поступить следующим образом.
У меня будет три контейнера: 1. Само приложение 2. БД в качестве постгреса 3. Прометей
И для всего это использовать compose.
Кстати такой вопрос. Могу использовать Ansible для выполнения развертки в пару движений, как я понимаю он нужен для автоматизации развертывания инфраструктуры. То есть я пропишу все что нужно и мне останется просто запускать Ansible который сам мне все настроит. Норм будет так сделать?
>>2408144 Бекинг сервисы отдельно, само придожение отдельно. Т.е. 3 докер композа. Скорее всего на данном этапе тебе не нужен ансибл. Пока твоя инфраструктура проста, ты не выкатываешь часто новые сервера, или review окружения из этого же кода (IaC) - он ненужен. Достаточно шелл гитлаб ранера на хостах и вменяемого шелл кода в jobs. (внемяемого - это который просто запускает, а не занимается какой-то ебалой с манипуляцией стейтом на хосте и прочей неидемпотентной хуергой)
Я начал путаться в определениях. Докерфайлы нужны для создания образов, а докер компоузы для запуска много-контейнеров из образов с помощью одного yml файла. А ты предлагаешь три докер компоуз файла (надеюсь не жопой читал твой ответ)
И по поводу прометея, насколько я понимаю. Он состоит из хранилища и экспортеров, И как я понимаю мне нужно при описании образа приложения и БД в докерфайле, ещё и прописать экспортеры, пральна? Ну к примеру node экспортер, postgres exporter.
>>2408006 >В каком виде должен работать постгрес? Мне кажется не правильным если засунуть его в контейнер Я лично против "засовывания" баз данных в контейнеры. Потому что докер был спроектирован для stateless-приложений в основном, а БД по своей сути противоположная докеру субстанция. Ты конечно можешь подключить сетевой диск, но что если какой-нибудь еблан нечаянно сотрёт этот диск? Даже допустим ок, ты сделал масштабирование, размножил PostgreSQL на 10 машин. Ок. Вопрос: а как ты тогда сделаешь репликацию? Как один инстанс узнает о существовании других 9 инстансов?
Короче моё личное ИМХО - БД + Докер = беспонтовая идея. Базы данных не созданы для того, чтобы их запихивали в докеры.
>>2408357 Спасибо анонче за такой развернутый ответ. Тоже так подумал, вот решил с этим вопросом к вам прийти, узнать у опытнейших. Можешь пожалуйста рассказать про stateless и statefull сервисы.
И если ненапряжно то и по остальным моим вопросам пройтись >>2408006
>>2408185 >Можешь пожалуйста рассказать про stateless и statefull сервисы. Да ну а что про них рассказывать? Моё личное мнение, что ты стреляешь по мухам из гаубицы. Один только постгрес отожрёт гиг памяти, плюс прометей. Зачем эта мозгодрочка ради каких-то апи. Я бы взял https://cloud.yandex.ru/services/ydb Где уже будет няшная админка. Зачем эти прометеи, если ты можешь платить яндексу 20 рублей за миллион запросов. И там у тебя уже всё будет на блюдечке. Бекапы. Админка. Само масштабируется. Также снёс бы прометей. Остальное, ноду (или что там у тебя), залил бы в контейнеры, и там дохуищи памяти и ресурсов освободилось бы после сноса ненужной постгри и ненужного прометея.
>>2408370 Вот контейнеры - https://cloud.yandex.ru/services/serverless-containers 16 рублей за миллион вызовов. Для большинства задач этого хватит за глаза. Прикинь, это считай 30 тысяч запросов апи в день. Там есть уже и мониторинг, и автомасштабирование, не нужно никаких swarm, кубернетисов и прочего. Просто берёшь и используешь.
>>2408400 Про chroot я ничего не говорил, читай выше, я писал о том, чтобы выкинуть нахуй бд. И заменить на облачную/managed-решение. Где уже есть бекапы, мониторинг, няшная админка. Вместо того чтобы делать костыли с прометеями и самому костылить бекапы.
Давай тогда постараюсь вообще объяснить зачем я так заморачиваюсь. Если вкратце:
1. Хочу понять про то как вообще работает инфраструктура, как её готовить, в перспективе хочу перекатиться в девопс (сейчас сам занимаюсь перформанс тестированием)
2. У меня на работе новички после стажировки нихрена не умеют и не понимают. А в банке(где я работаю), стек следующий, мониторинг в виде Prometheus + Grafana, для оркестрации Openshift, БД Postgres.
3. Из-за чего я решил что разработаю простой сервис с БД, со стеком из 2 пункта. Что-бы маслята научились работать с мониторингом, поняли какие компоненты нужно мониторить в БД, генерить данные в БД, научиться разворачивать тестовую среду на линухе, я там ещё сваггер добавил (ахуенно получилось).
Вооот, для этого я и ебу вам мозги, да, многим покажется оверхедом, но в перспективе стажеры придя на проект будут мозги поменьше ебать и адаптироваться быстрее.
>>2408425 По мне так, это дрочка ради самой дрочки. Не знаю что сказать. Здесь нет рационального зерна. Я лично когда делаю проект, руководствуюсь той логикой, что мне нужно экономить деньги. Мне какбе не похуй, переплачу ли я лишние 500-1000 рублей в месяц или не переплачу. Если у меня контейнер с БД/прометеусом, это одна цена. А если нет БД/прометеуса, это другая цена. Соответственно, под БД нужно и машинку помощнее заказывать, докупать отдельный инстанс. Если тебе похуй на деньги... ну блять можно хоть суперкомпьютер грей заказать. А я вот скряга, у меня чем больше инстансов крутится, тем больше денег капиталисты высасут из моего кармана. Если у тебя миллион всяких балансировщиков, мониторингов, значит ты и будешь платить миллион!
Смысла повторять за банком я не вижу. Где ты, а где банк. У банка немерянное количество денег, они могут нанять администратора бд, сисадмина, девопсера и всё сделать на опенсоурсе. Если я делаю хобби-проект, то беру как правило всё готовое. Если тебе предлагают ГОТОВУЮ базу данных, настроенную, с админкой за 20 рублей в месяц, то и хуй с ними, с этими двадцатью рублями! Тоже самое с кафкой, опеншифтом, и т.д. Я дал ссылку выше на бессерверные контейнеры, они берут всего 16 рублей за миллион вызовов. Опять, няшная админка! Хуй с ними, с этими шестнадцатью рублями!
Две ссылки выше дал - ВСЁ ГОТОВОЕ! Я этими двумя линками убрал неоходимость в Prometheus, Grafana, Openshift, Postgres. К тому же, банк может быть связан юридическими обязательствами. Например, они возможно обязаны держать данные на российских серверах. У меня же обязательств ни перед кем нет. Я хочу - хостюсь у пиндосов. Моя основная цель:
1) Запустить сайт/стартап как можно раньше. 2) Сэкономить деньги.
На опенсоурсе делать МОЖНО, но выйдет дольше и дороже. Если хочешь, можешь сравнить мой вариант и свой. И потом сравнишь платёжки. Если ты учишься, то учись ради бога. Твой подход имеет право на жизнь, но там много подводных камней. Нужно думать как твою красоту огораживать в VPC, файрволлом, потом костылить бекапы бд, и т.д.
Лично я это вижу так, что ты жил себе не тужил, и вдруг тебе захотелось геморроя на жопу. И теперь костылишь никому не нужные велосипеды.
>>2408515 Да, это обычная дрочка, просто хочу сделать так чтобы все работала на локал хосте. Понимаешь? Именно благодаря этой дрочке я смогу разобраться наконец как работает прометей, в кишках постгреса поковыряюсь. Мне это нужно, я героически сам себе проблем создал и сам же хочу их решить пойми.
Доброго времени суток уважаемые девоПсы. У меня к вам такой вопрос. Есть полтора годичный опыт работы qa макакой, очень хочу вкатиться в вашу секту. Продумываю самый эффективный способ.
1. Взять программу какого-нибудь курса по девопсу и начать учится по ней самостоятельно. Бесплатно, сердито и больно (и долго скорее всего). Нравится программа курса от яндекс практикума https://practicum.yandex.ru/promo/devops-course 2. Просто не ебать мозги и купить курсы, скрины с понравившимися курсами прикрепил. 3. ???? 4. После того отучусь, опытом указать что год (ну или полгода) работал девоПсом и вкатиться без мыла. 5. PROFIT
Как на такое смотрят опытнейшие? Сам заебался от омежной работы клепания тестиков, хочу блять инженером гигачедом стать, который инфрой рулит йобана
Что умею сейчас: 1. Линух на уровне продвинутого юзверя 2. Умение говнокодинга на джабе, питона, баш и го 3. Сети, куда же без них 4. Чуточку в автоматизации на дженкинсе 5. И за докер шарю на уровне compose
1. Есть команда для удаления всех созданных через docker-compose вольюмов: docker-compose down -v 2. С помощью нее удалить конкретный volume нельзя 3. Для удаления конкретного volume используется: docker volume rm <CONTAINER_ID> 4. Но с помощью нее удалить volume созданный через docker-compose невозможно
А теперь, уважаемые знатоки, вопрос: КАКОГО ХУЯ БЛЯТЬ ЭТИ ЖИВОТНЫЕ ДО СИХ ПОР НЕ СУМЕЛИ НАМУТИТЬ НОРМАЛЬНОГО УДАЛЕНИЯ ВОЛЬЮМОВ? ВЫ ЧЕ СУКА СОВСЕМ ТАМ ЕБАНУЛИСЬ? МНЕ СТИРАТЬ ВСЕ ВОЛЬЮМЫ ПРОСТО ПОТМОУ ЧТО ХОЧУ ДРОПНУТЬ 1??
>>2408687 Когда юзаешь docker volume rm он серит что "volume is in use", потому что был создан через docker-compose. В docker-compose средств для удаления конкретного вольюма нет. Гениально нахуй.
>>2408515 >1) Запустить сайт/стартап как можно раньше. А зачем тебе в пынявой федерации стартап? Его же отожмут. Гораздо успешнее устроиться в ГазМясПромСпбБанк
>>2408687 docker-compose работает на уровне ПРОЕКТОВ. Причем, по-прежнему ты можешь с помощью команд docker продолжать управлять ресурсами по-отдельности. docker-compose down -v означает что нужно удалить все volume в проекте.
>>2408754 Выход есть в окно Удалаем шкварной контейнер к которому эта ебола привязана. Затем епты удаляем сам вольюм. Желательно это делать не через консоль по-дедовски а как модный современный чувак, через portainer например
>>2408619 >Обязательно ли знать AWS, Google Cloud, Yandex Cloud? Ну смотри короче... Обязательно ли знать два топовых сервиса, которые в совокупности покрывают половину рынка облачных технологий? Обязательно ли знать компании-лидеры отрасли, у которых по 16 лет опыта, миллионы обучалок, готовых решений и куча преданных фанатов? Обязательно ли знать уникальные фичи, которые предлагаются иногда в десятки или сотни раз дешевле, чем у конкурентов? Ты как думаешь?
>>2409074 Я это к чему писал пчел, просто я в силу своего малого опыта не знаю как такие продукты работают. К примеру говорят "переезд в облака", а что это фуйня означает? Типа у меня есть магаз, я решаю арендовать сервера у (AWS, Google, Yandex, Mail) и туда перевести бизнес. Это чтоль означает "переезд в облака"? Нууу как бэ и в чем соль? И какое тогда к нему отношение имеет кубер? Они предоставляют уже настроеный кубер?
Понимаю что я кашу написал, но я был бы рад обсудить эту тему и впитать опыт у мудрейших повелителей инфры
>>2409084 >Это чтоль означает "переезд в облака"? >Нууу как бэ и в чем соль? Соль в готовых сервисах! Тебе не нужно думать какую операционную систему выбрать, организовывать обновления. Нужна база данных? Бери! Вот URL, вот пароль. Никаких apt-get install и прочего. Нужны очереди сообщений? Одну кнопку нажал - создалось! Оно само собой масштабируется. Не нужно гадать, какие инстансы выбрать. Сколько памяти выбрать. Какой проц подобрать. Нагрузка возросла, дудосят? Он сам добавил мощностей. Облака снимают лишний геморрой с жопы. Я меньше думаю о самом железе, и больше о коде. Я думаю больше в стиле "отправить 100 скраперов в параллели на 100 разных сайтов", а облака сами поднимают 100 серверов и делают то что нужно. Ну и плюс, это надёжно и штабильно. Я спокоен, что мой сервис переживёт хоть ядерную зиму. Чем ты сделаешь DIY, и первый зашедший школьник задудосит твой сайт. Ну и плюс, относительно низкие цены. Отправить 100 тысяч писем стоит 2 доллара! Или например сравни цены у AppFlow и у Zapier. У Zapier за 5,000 тасков в месяц цена $89, у AppFlow тоже самое в 17 раз дешевле - $5. Вот сам и думай.
>>2409139 Ага, вот теперь допираю аноний. То есть все продукты от Amazon, Google, Yandex и т.д. предоставляют готовые платформы которые настраиваются в пару кликов, имеют такие качества как отказоустойчивость, автомасштабирование и т.д. И тебе как владельцу магазина не нужно париться по поводу кубера и другой экзотической ебанины. Все это идет готовым от облачных решений. Так?
>>2409169 >Все это идет готовым от облачных решений. Так? Да, так.
>как владельцу магазина не нужно париться по поводу кубера и другой экзотической ебанины Дело совсем не в куберах. Допустим, у тебя есть популярный детский сайт, где пользователи могут загружать рисунки. Теперь представь, что на этот сайт набегают двачеры и загружают тонны порнухи и расчленёнки, с подписями АЗАЗА, САСАЙТЕ ЛОЛКИ!)) У тебя есть несколько вариантов:
1) Нанять модератора, который будет сидеть и проверять фотографии. 2) Убить кучу времени чтобы сделать микросервис. Обучить нейросеть, которая проверит текст на мат и картинки на наличие порнухи и расчленёнки. При том, она будет ошибаться в 50% случаев и тебе придётся ещё кучу времени доводить нейросеть до ума.
Либо
Заплатить писят рублей облакам за 1,000 картинок, чтобы ты одной строчкой проверил является ли картинка порнухой или не является. Или есть в тексте мат или нету.
Есть такие вещи, которые просто не решаются опенсоурс решениями. Ну например, запили мне сервис который переводит текст в аудио! Или сервис, который распознаёт звук и генерирует субтитры. Вот например, я хочу сделать клон твича. Стриминговый сервис. Как мне сделать так, чтобы видео декодировалось в реальном времени и потоком с буфферизацией раздавалось на тысячу зрителей? Вот для этого и нужны облака.
Собственно, фишка того же амазона и гугл клауда в том, что у них огромный опыт. Являясь data-driven компаниями, через них за 14-16 лет прошли миллионы клиентов. В итоге, они запилили сервисы под каждый чих. Любой сейчас, даже фермер придёт, скажет, мне нужно мониторить комбайны. Амазон скажет - не вопрос, чувак. Вот тебе рецепт - сделай так, так и так.
Настроить кубернетисы и автомасштабирование может любой дурак. Гораздо сложнее именно разбираться в отраслях. Они настолько заморочились, что расписали решение под каждый пук. Под гостиничный бизнес. Под умные дома. Под заводы. Например, как контроллировать качество деталей с помощью компьютерного зрения? А они расписали всё до мелочей.
Яндекс облако более молодая компания. Там больше того, что ты описал. А амазон он всё же технологический гигант. Там есть такие вещи, от которых мозг взрывается. Типа автоматической системы нахождения неполадок. Есть такая хуйня которая следит за логами, и в зависимости от того что происходит в логах, реагирует соотственно. Типа того, что если какой-то пидор пытается хакнуть веб-сайт, она может тебе послать смску/уведомление в слак/телеграм ПИДОРЫ НАС ХАКАЮТ!!!! А потом блокнуть пидора через файрвол или ещё что-то сделать.
>>2112705 (OP) Есть один проектик (веб-сервер + sql + почтовик), который хочу задеплоить в облако. В Докере и пайплайнах не особо шарю, всегда был хардкорным девом без суффикса -опс. Проект пилил на локалке. Поднимаю через docker compose up в папке проекта.
Теперь хочу залить код проекта на Битбакет дабы оттуда пушить изменения на сервак под хостингом AWS, DigitalOcean или Vultr.
У каких сервисов есть поддержка таких задач без лишнего пердолинга? Я так понимаю что пайплайн будет стопарить серваки на машине, переписывать папку докеровского проекта и делать compose up? В 2022-м скрипты для всего этого руками пишутся или уже придумали сервисы для решения таких задачек, где достаточно только конфиги прописать?
>>2409391 Ты охуенно все расписал анон. Крайне благодарен тебе!
Вытекают следующие вопросы, у меня сложилось впечатление что облачные вычисления это голденхаммер и серебряная пуля. Но я уверен у нее есть и свои недостатки. Можешь рассказать про них? К примеру мне кажется продукты типа AWS, Google Cloud, Yandex Cloud не применимы к отраслям где данные жестко контролируются, те же банки, сами сервисы от государства и т.п.
>>2409522 Цена. Вообще-то, отправить 1000 писем стоит 0 рублей, если ты так или иначе арендуешь сервер и знаешь как эта почта работает.
Все тут классно расписано, но это об услугах, которым нет альтернативы или о таких штуках как ALB (automatic load balancer), но вообще-то основная масса услуг - обычные виртуалки да дисковые тома. И они не дешевле.
>>2409522 >у меня сложилось впечатление что облачные вычисления это голденхаммер и серебряная пуля Да, примерно так и есть.
>у нее есть и свои недостатки. Можешь рассказать про них? Ну первый минус как челик выше уже ответил, это цена. Некоторые сервисы стоят просто космос. Особенно RDS, на EC2 цены тоже маленько кусаются (но это только некоторые, большинство сервисов очень дешёвые). Второй минус, vendor lock-in. Облака между собой не совместимы, то есть если ты запилил сайт на aws, но тебя бортанули из-за санкций, то перенести потом на azure/google cloud/alibaba cloud будет затруднительно. С опенсоурсами такой херни не случается. И третий минус, неочевидные затраты. Я вот недавно поднимаю сервис и мне прилетает счёт на $25, открываю страницу затрат, оказывается за то что я поднял vpc с nat gateway, за который $30/месяц дерут. Я такой, ачёвсмысле? Оно было платное? То есть там есть такие хитрожопые сервисы. Ну и в бесконечные циклы лучше не уходить, опять же, по той же самой причине.
А из плюсов - богатейший функционал. Всякие программы, типа поддержки стартапов, тебе дают от $1,000 до $100,000 (я подавал, но меня правда побородили потому что у меня не было сайта компании). Студентам, преподам ВУЗов тоже халявные кредиты дают. Если ты например аспирант и занимаешься научной деятельностью, тебе дают $5,000. Или если ты некоммерческая организация, занимаешься волонтёрством, то там тоже $1,000 дают.
>не применимы к отраслям где данные жестко контролируются, те же банки, сами сервисы от государства и т.п. Не, с сохранностью данных там всё отлично. У них есть программы и для банков и для государственных органов. Там и топовое шифрование есть и мильёны разных сервисов. Robinhood например на AWS хостится.
То есть это по своей сути реально киллер фича. А что делать компаниям у которых нет средств держать свои сервисы в клауде? Нанимать девопсов которые будут пилить "ультра" отказоустойчивую инфру? А те компании у которых денег до жопы, пилять свои клауды по типу SberCloud?
>>2410046 >А что делать компаниям у которых нет средств держать свои сервисы в клауде? Ну вот я и объясняю, что для этого нужно изучать облака. Они могут стоить как охеренно дорого, так и охеренно дешево. Мне например мой мини-блог обходится рублей в 10/месяц, в среднем у меня выходит около $5-10/месяц. Когда у тебя грамотная архитектура, то у тебя и маленькие счета. Но с другой стороны, когда я одному клиенту бота на ec2 делал, у него счёт приходил по $600-$1,000/месяц. Даже вспоминать больно. Хотя там по идее, можно было несколько изменений сделать и счёт с $600 уменьшился бы до $50-60/месяц. Но я тогда был неопытный, с облаками особо дел не имел и вляпался в такую хуйню. Короче говоря, это надо просто чувствовать. Амазон сам подсказывает как сделать лучше и дешевле. Достаточно просто документацию читать и тебе не будут приходить огромные счета.
>>2409522 > К примеру мне кажется продукты типа AWS, Google Cloud, Yandex Cloud не применимы к отраслям где данные жестко контролируются, те же банки, сами сервисы от государства и т.п. Я когда в Oracle работал, там у их клауда было заказчиком государство, для него специально выполняли особые требования, связанные с безопасностью, шифрованием, вот этим всем.
Ну смотри месяц назад я зарегался на амазоне и взял себе на год бесплатный инстанс на котором запустил свое веб какашку. До сих пор работает. Только там нет днс, ssl и прочих ништяков. Если я со всем этим разберусь могу в резюмешку впихнуть что я знаю клауд технолоджис
>>2410081 >взял себе на год бесплатный инстанс Нет, это ошибка. Смотри well-architected framework, они черным по белому говорят, что архитектуру нужно рассматривать так:
Бессерверные функции --> Контейнеры --> Инстансы.
То есть вначале нужно пробовать размещать веб-какаху в lambda. Если лямбда не подходит, тогда fargate/ecs/eks. Если и контейнеры не подходят, тогда в последнюю очередь инстансы. А ты всё наоборот начинаешь с инстансов, потом контейнеры, и т.д. Вот тебе как раз и прилетят счета по сотне баксов, потому что как я уже говорил, ec2 очень дорогие.
>Только там нет днс, ssl и прочих ништяков Я лично route 53 юзаю, полёт нормальный. Единственный минус aws - нужно платить каждый месяц, нельзя заплатить на год вперёд например или сделать предоплату. Только по факту использования.
Спасибо тебе анон большое за такую развернутую дискуссию, крайне признателен!
У меня были и другие вопросы, разреши написать о них, в частности по докеру, а именно:
1. Докер про stateless окружение, правильно? То есть его состояние после завершения работы никак не сохраняется. Но частичку stateful можно принести с помощью docker volume, когда у тебя есть тома и ты в них хранишь данные, которые в свою очередь после завершения работы контейнера не стираются.
2. Compose это про централизованное управление более чем одним контейнером. Но при увеличении их количества разумнее будет ими управлять с помощью инструментов оркестрации Swarm, K8s, Mesos Marathon.
3. Если вкратце описать устройство оркестрации то ты объединяешь несколько компьютеров. И в свою очередь оркестратор решает то как распределять нагрузку между компьютерами (правильнее нодами), так же при нехватке мощности оркестратор может добавить подов. Только вот не понятно про сущности в виде подов, что они из себя представляют?
Но все же я правильно понимаю то как вся эта шняга работает?
>>2410212 1. Да. Тома можно подключать, либо сохранять в S3, сетевом диске или ещё где. Сам контейнер ничего внутри не сохраняет.
2. Compose - это просто синтаксический сахар. Обёртка, чтобы удобнее было пользоваться докером. Docker swarm не нужен. Не слышал, чтобы им кто-то пользовался. Mesos тоже самое. Я больше люблю продукты от hashicorp - nomad/terraform. Либо rancher.
3. В доках об этом есть. Возьми любой курс от acloudguru, там всё увидишь.
>>2411652 Тебе просто надо использовать доменное имя типа http://lib-serv:8080 Но энджинкс в этой ситуации не оче силён и его лучше по возможности заменять на траефик. Он не будет стартовать если lib-serv по какой-то причине прилёг или не успел стартануть, а докерский днс не резолвит имя, приходится городить костыли.
>>2412039 >Но энджинкс в этой ситуации не оче силён и его лучше по возможности заменять на траефик. Ты уже заебал своей пропагандой если честна. Ты случаем не кахол? Пруфы будут? Производительность? Стабильность? Гарантии что оно не кончится вместе со смузями/взрослением нетаких как все? Зачем надо менять эталонную реализацию http... чтобы получить в замен что? В 95% случаев nginx подходит лучше всего. Начинать нужно 100% с него. Переходить на ваши смузи нужно в единичных случаях, когда понимаешь для чего это делаешь: типо например http3 или service mesh.
>>2412146 >имплаин nginx пять лет назад не был смузи Я бля чесслово тут первый раз про него написал. Это ж просто балансировщик с роутами, тут кто угодно справится. Перескочил на него именно из-за такого случая когда энджинкс ушёл в бесконечный луп из-за того что не мог отрезолвить proxy_pass http://appname.
Пытаюсь прогнать обычную команду docker-compose exec <SERVICE_NAME> <COMMAND> на запущщеном композе. Но бля он каждый раз не дает мне никакого output и просто завершается (судя по логам контейнера так и не начавшись).
Если выполнять docker exec <CONTAINER_ID> <COMMAND> то все работает. Чзнх? Я как-то неправильно название сервиса указываю (хотя как бля?)? Почему он не выводит ошибок никаких и просто сдыхает?
>>2416764 Ну как бы тебе пояснить, маленыш... Композ это в принципе ссученая среда. Не для правильных пацанов. Пацан всегда отвечает за базар и говорит как есть. Композ просто тихонько, пряча глаза, подыхает и даже не говорит почему. В твоем кейсе может быть вообще что угодно но ты об этом так и не узнаешь.
Еще композ в последних версиях любит крысить и тайком создавать тебе вольюмы даже если ты об этом его не просил. Кароч подумай еще раз, стоит ли оно того, потом перед честными пацанами отвечать придется.
>>2416764 Пчел, compose это для централизованного управления более чем одного контейнера. Если тебе нужно запустить команду для одного контейнера, согласись идеологически compose не подходит для этого.
>>2417361 >compose это для централизованного управления Ага, централизованного управления на 1 блядь хосте. swarm не считается - он сдох Централизатор 1 хоста - это чтото из разряда абменистраторов локалхоста. >идеологически compose не подходит для этого Конечно подходит. Более того если на проекте уже используется докер композ, то добавлять сбоку отдельную новую сущность в виде запуска обычным докером и следственно копировании всей конфигурации уже указаной в docker compose в докер - это является обрыганством. У меня такая хуйня ревью не пройдет. Сам будешь потом конфигурацию поддерживать в 2 местах. Я за это отвечать не собираюсь. В докер композ (покрайне мери тот что на петоне) есть куча опций для такого запуска: для возврата кода заверщения конкретного сервиса из кучи сервисов запущеных пачкой, для удаления контейнеров после выполнения и т.д. >>2416764 Меньше надо слушать кукоретиков на дваче. А больше читать маны.
>>2417503 Ты ебан или как? Речь за оркестраторы шла чтоль? Compose это сахар чтобы запускать одной командой более чем один контейнер и так же останавливать более чем один контейнер.
Ответь на вопрос конча. Речь про оркестратор шла?
>У меня такая хуйня ревью не пройдет. Сам будешь потом конфигурацию поддерживать в 2 местах. Я за это отвечать не собираюсь. Да кому ты нужен, не дай мог к такому идиоту попасть в команду...
>>2417505 Какие-то ничего незначащие детали обсасываешь. Какое централизованое управление? Если ты говоришь о нем, то ты подефолту подразумеваешь какую-то присутствующую распределенность чегото нуждающегося в управлении. Предметом управления, по твоему же тексту, являются контейнеры. Складываем 2+2, получаем оркистрацию то что получаем. А посуществу коммент о том что ты - молодая неопытная лалка, которая еще не сформировала в своей голове от зубов отскакивающее понимание того, что нельзя лезти в проект с устоявшимся стеком со своими охуительными технологиями. Технологиями не дающими ничего в замен, только пораждающими новые сущности: новые качества и новые конфигурации, увеличивающие необходимый для работы скоуп. В то время как в рамках используемого стека уже существуют необходимые решения. И ты не понимая этого имеешь наглость давать советы космического масштаба и космической же глупости а еще и пиздеть. >Да кому ты нужен, не дай мог к такому идиоту попасть в команду... Тебе же похуй на проект, на его будующее, ты кэннот инту колективное владение кодом. Ты нахуй ненужен. Видел дофига проектов от подобных тебе обрыганов, которым просто насрать. В рамках 1 физического сервера и проекта: тут нахуячим через докер композ, тут запускаем через докер, а вот тут нам пришлось, сам понимаешь, бизопасность, собирать контейнеры на самом сервере, тут у нас сервис на хосте, тут запускаем скрипты в контейнерах, а вот тут неполучилось попростому пришлось на самом хосте, вот эту часть мы деплоит через makefile, а это через 20 sh скриптов вызывающих друг друга мам смари я запили переиспользуемый фреймворк на шеле, вот тут через ансибл, а еще охуеть, прикинь какая годнота!, мы тут недавно узнали что существует тераформ и сбоку насрали еще и на нем... славо богу такие уёбки не могут с наскоку осилить кубер. И вишенкой на торте всегда выступает параметризация всего этого дерьма в кейсе, когда заметная часть конфигураций не ведется в гите, а лежит на хостах. Единый источник правды? Хуй там, радуйся что всего в 20 местах захаркожено и всего на 3 из 20 хостов. Вооружайся grep -r и вперед, пилить фитчи! капец я токсик, даже немного стыдно за себя сталоничего личногорили
Докер-контейнеры вообще сколько на машине хранятся если они не включаются? Вот сблидил я как-то контейнер для одной приложухи, но не запускал его несколько месяцев, контейнер в выключенном состоянии так и будет лежать на диске, пока его в ручную не сотру?
>>2418493 >контейнер в выключенном состоянии так и будет лежать на диске, пока его в ручную не сотру? this Только собрал ты не контейнер, а образ. Разберись в разнице между образом и контейнером.
Аноны, нужна ваша помощь. Хочу вкатиться в эти ваши девопсы, но не знаю, с чего начать. План такой: изучить минимально необходимые инструменты, которые позволят устроиться на работу джуном, и в процессе уже учить все остальное. Есть минимальные знания линукс на базе дебиан. Что посоветуете учить вообще и каким образом? Так же не совсем понятно, на каком уровне нужно владеть линуксом. Как мне понять, когда я выучу все, что нужно?
>>2418700 открываешь линкедин/хх и чекаешь, что требуется в вакансиях в твоем городе (или в городе, в который хочешь) @ учишь @ практикуешь @ вы великолепны
>>2419012 Окей, но как мне понять, когда я уже что-то знаю? Невозможно ведь знать все на сто процентов (наверное). Поэтому я не понимаю, в какой момент нужно останавливаться с изучением. С тем же линуксом например.
>>2418700 >Хочу вкатиться в эти ваши девопсы, но не знаю, с чего начать Начни блять с того, что возьми сраный ноутбук и книги. И езжай в глухую сибирскую деревню, без интернета, без людей, где рядом пасутся только медведи и глухари. Чтобы не заходить на двач каждые 3 ебанных секунды и не задавать тупорылых вопросов в стиле "а правильно ли я делаю"?
И дальше читай книгу за книгой. Курс за курсом. Нехуй спрашивать "правильно ли я делаю", а потом садится за двач, за сериалы, листать соцсети и прочую хуйню.
>>2419083 Ты ещё не понял? Ты не должен останавливаться с изучением, ты должен учиться постоянно! Каждый день, минимум 2 часа после работы. Если не работаешь, то часов 10 в день на обучение надо тратить железно.
>>2419156 Нахуй надо. Я хочу жить по кайфу и прилагать к этому минимум усилий, получая за это максимум профитов. Ну, как у вас в айти заведено — тыкаешь кнопочки, а потом получаешь тыщи доллеров, удалёночку и открытый весь мир. Учить что-то, вы ебанулись что ли?
Сворм при деплое может контейнер закинуть на любую ноду А что делать с волюмом для базы? Меняется нода, а волюм с данными на предыдущей Как такую ситуацию разруливать?
>>2419398 Универсальное простое рабочее решение в духе современных технологий с дешевыми и простыми нодами: - Прибивать гвоздями к конкретной ноде. - Использовать патрони/столон для переключения упавшего мастера. Если нечем заняться и есть отдельная san подключеная к hba каждой ноды: - Можешь попердолиться на тему ремаунта луна с данными на другую ноду. Понастраивать самодельные кворумы, насичет - правдо ли эта нода сдохла, заюзать аппаратный фенсинг через ipmi, обмазать это самодельной логикой... и с результате ты получишь такой же столон/патронни только реализованый на железе которое в 10 раз дороже, но так же теряет данные при переключении мастера/волюма и так же подвисает при тормозах сети.
Я прошу вас о помощи, я нуждаюсь в ней, вы мой последний выход, прошу вас не оставляйте меня одного с этой проблемой а то я от безысходности из окна выкинусь.
В чем цымес:
1. Есть 3 контейнера, в 1 nginx, во 2 nginx-exporter, в 3 prometheus
2. Блять подскажите как их вместе свзять. АААААААААААА
>>2421926 У нас нет полной конфигурации. Заходи в контейнер и проверяй резолвинг, доступность порта, формат ответа курлом... Вы заебали, хули вы как маленькие? И еще бай зе вей. stub_status не нужен ровным счетом ни для чего (он выводит штук 5 недетализованых метрик). Попробуй prometheus vts exporter, если он еще жив. Или vector для получения метрик из логов. Им же логи можешь сохранять в opensearch и/или s3.
Я просто настраивал мониторинг и решил для полной картины ещё и nginx смотреть. Но как то это оказалось слишком геморным. Если нет конкретной цели то не вижу смысла мониторить. Как думаешь?
Я тут часто мозги ебал другим анонам своими вопросами.
Делал я проект для души и набраться знаний. REST хуета, у него есть БД в виде Postgres, все запросы идут через NGINX, мониторинг Prometheus + Grafana, все работает в Docker compose.
Наконец я закончил его (но не факт, как всегда проект кажется каким-то огрызком). Боже, счастья полные штаны. Пока пилил проект сто раз думал выкинуть нахуй все и не вспоминать его. Счастья полные штаны, чувствую себя интеллектом нахуй, мегамозгом и гением мира сего.
У меня проект разворачивает буквально за одну команду, не важно, Ubuntu Server, Fedora Server, RHEL. Сидел, пыхтел над bash скриптами, над compose файлом, над конфигом prometheus. Мониторинг работает, все четко отображается. Все метрики прилетают. Вы просто на виртуалке запускаете скрипт а он все сам выстраивает. Бля я просто гений нахуй.
Крайне благодарен всем ананасам которые мне помогали.
Такой вопрос, вот я разобрался с основными инструментами docker, prometheus, bash. 1. Могу считать себя джуном и куда дальше двигаться? Может сесть за дрочку Jenkins | Gitlab CI/CD | Github Action. 2. Планирую перекатится в западную контору и лутать баксы. Но сука так впадлу учить AWS | Google Cloud. Неужели их нужно учить и в их услугах шарить. Если да, то наберусь сил и пересилю себя.
>>2423180 >Счастья полные штаны Грац. Действительно самое главное чтобы тебе самому доставляло. >Могу считать себя джуном Врятли. Но чуваков которые радеют за дело грех не взять на борт даже если они слегка не дотягивают. >Gitlab CI/CD Обязательно. >Клоуды хуяуды Это тебе самому решать. Если есть сомнения, я бы начал учить terraform - около клоуд тулзу (чаще всего юзается для провизионинга в облаках) которая в отдельных кейсах сильно удобнее Ansible для управления конфигурацией на обычных хостах.
Девопсы, подскажите, пожалста, как в баше получить сетевые интерфейсы скриптом. Нужен универсальный способ, а не через ip, netstat, ifconfig, они не всегда установлены. В линухтреде обсуждают иконки, спрашивать бестолку.
Господа объясните пожалуйста, хочу развернуть заббикс на амазоне чтобы мониторить свое говно, есть два стула: 1. Готовый аплаенс с заббиксом на t2.medium - 25 центов в час "за софт", 4.6 цента за ресурсы 2. Просто аплаенс с убунтой на t2.medium на которую я поставлю заббикс сам - 4.6 цента в час
Вопрос, зачем кому-то платить дополнительные 25 центов за заббикс в час если можно не платить?
>>2430210 >2022 >забих >/@ Он стал окончательно ненужен когда у прометея появилась возможность работать без записи в db, а только форвардить в remote write. >зачем кому-то платить За мокрые писечки.
Сосаны, как кубер выучить побыстрее? Подкиньте хороших материалов по-братски. Докер, докер-компоуз, сети, ансибл знаю. Развернуть кластер не составило труда. Но дальше встает вопрос: а как какать? Как туда что-то деплоить, где научиться все эти конфиги писать, как разобраться во всех компонентах?
>>2444366 >а как какать? Как туда что-то деплоить, где научиться все эти конфиги писать, как разобраться во всех компонентах? Расслабляешь булки и оно само падает. Правила простые как и во всем востальном вайти: чтобы научиться деплоть в кубер - нужно начать деплоить в кубер. Начни с окубернечивания простых изолированных/отдельностоящих/слабосвязаных сервисов. Какие-нибудь асинхронные сервисы, кроны и т.п. самые хорошие кандидаты для того чтобы на них тренироваться. Из тулзов конретно для деплоя в кубы лично мне доставляет werf. Своим подходом к gitops без дополнительного репозитория с закрепленными версиями, а работой на основе content based tagging, полной иммутабельности сборки: отсутствия тупорылых пересборок и пересоздания контейнеров когда не надо.
Но постоянно получаю ошибку: The command '/bin/sh -c cd yggdrasil-go && go build -o ../yggstack cmd/yggstack/main.go && go clean -cache' returned a non-zero code: 1
>>2465885 Dockerfile максимум рука-лицо. Нехватает только в конце сделать chown. Почему ты у нас спрашиваешь? Заходи в последний собраный слои и запускай свои команды по 1.
>>2465945 Ух... Просмотрел. В конце есть chmod, с таким же эффектом тупого копирования файлов. Теперь я спокоен. Dockerfile действительно канонический.
>>2465885 Ну хер с ним с чмодом. Почему ты пытаешься засунуть в один контейнер 4 сервиса сразу? Возьми отдельно yggdrasilnetwork/yggdrasil-go, meeh/i2pd, monokal/tinyproxy да собери в композе.
Господа, как мы из PowerShell запускаем pipeline из Azure DevOps? Не через DevOps CLI, а чтобы автоматом? Я так понимаю, автоматизировать выполнение самой CLI низзя. Вот у меня есть .ps1 файл, и я хочу чтобы он запустил пайп с нужными параметрами.
>>2466948 В общем случае никак. Азуровские пайплайны завязаны на азуровской инфраструктуре и в рамках локального компа он может тупо не выполниться. Так что максимум что можно: парсить ямл @ дёргать команды по очереди.
>>2466948 Ну или более правильный сценарий: выносить все атомарные действия в отдельные .ps1 файлы и дёргать их хоть из пайплайна, хоть из скриптов, хоть из земли.
>>2176350 Просто использовать keepalived+haproxy как вариант. Делаешь три контроллера, на каждом свой адрес и плюс на одном каком-то висит vip адрес. Если один контроллер отъезжает, то keepalived поднимает vip адрес на другом живом и запросы как шли к одному адресу, так и идут