LINUX.ORG.RU
ФорумAdmin

Развёртывание в суровый научный продакшн

 ,


0

4

(Ломоносовы наших дней, как сказать production по-русски?)

У нашей лаборатории есть сервер. Когда-то его брали, чтобы запустить на нём веб-интерфейс для научного кода, разработанного в нашей же исследовательской группе. Код написан в «лучших» традициях научного программирования, для работы требует FFTW и BLAS, а также базу данных MySQL со строго определённым содержимым. Веб-интерфейс сделан на Perl5, всё это более-менее хорошо работает.

Прошло время. Обстоятельства потребовали разместить на этом же сервере: NextCloud, ещё научный код (Python3, 1,3-гигабайтное виртуальное окружение), MediaWiki для другой исследовательской группы, а сейчас ещё и статический сайт для третьей исследовательской группы.

NextCloud из архива, как ни странно, есть не просит (но им почти не пользуются) и даже может сам себя обновлять без особых проблем. Научный код активно сопротивляется попыткам его опакетить и поэтому живёт прямо в системах контроля версий. (Было хуже. Когда мы начинали, научный код жил в виде папки на общем диске.) Он даже работает в двух экземплярах на разных поддоменах, один - для обкатки новых функций, другой - стабильная версия для всего мира. MediaWiki не простая, а семантическая, поэтому в дистрибутивную копию MW пришлось распаковать zip-архивы с расширениями. Коллегам со статическим сайтом нужен доступ по SFTP, чтобы сайт изредка редактировать. Всему этому нужны свои файлы конфигурации для nginx.

Как это всё разворачивать, чтобы ничего не забыть и не сойти с ума? Читал про Ansible, cdist, Chef, CFEngine, Puppet, но это скорее про организацию целой кучи машин; некоторые из них запускают специальный сервер обновления конфигурации. Для нашего одного VPS это из пушки по воробьям. Мне проще и безопаснее подключиться по SSH с аутентификацией по ключу, чем разбираться, как обезопасить ещё один сервер.

Сейчас всё сделано через пачку sh-скриптов общей длиной менее 500 строк кода, аккуратно написанных так, чтобы они были идемпотентными. Если что-то падает, безопасно исправить ошибку и перезапустить скрипт с самого начала. Чтобы убедиться, что скрипты работоспособны, почти все изменения в состояния сервера я сначала вношу в скрипт, а потом запускаю скрипт, чтобы их применить.

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

★★★★★
Ответ на: комментарий от adn

Я везде писал что документация естественно нужна и докер ее не заменит.

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

Obezyan
()
Ответ на: комментарий от Obezyan

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

Zhbert ★★★★★
()
Ответ на: комментарий от Obezyan

Девопс, признающий необходимость документации это лучик света в нашем пасмурном настоящем.

ты хоть таблетки то поешь. а то совсем плох.

adn ★★★★
()
Ответ на: комментарий от Obezyan

пожалуйста, не мешайте мне троллить девопса.

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

adn ★★★★
()
Ответ на: комментарий от adn

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

У меня действительно 20+ лет опыта в разработке, в том числе в eCommerce сфере с высоконагруженными сайтами которые приносят владельцам миллионы евро годовой выручки. И да, я жалкий обезьян который от скуки троллит бедного девопса (раньше троллил админов, но они закончились). Понедельник, дождь…

Obezyan
()
Ответ на: комментарий от Obezyan

У меня действительно 20+ лет опыта в разработке, в том числе в eCommerce сфере с высоконагруженными сайтами которые приносят владельцам миллионы евро годовой выручки.

Это вот вообще ни о чем не говорит. Дэ вэ по дэ тэ, если ты понимаешь, о чем я.

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

Понимаю, у меня нет цели кому-то что-то доказать тут.

Когда мне скучно я просто беру интеграл от сообщения собеседника и начинаю потихоньку доводить его логикой до прохождения всех стадий от отрицания до принятия. Кто-то конечно сгорит на середине, но к чести @adn он прошёл до конца.

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

У меня нет какого-то предубеждения о девопсах, просто их проще всего прокатить на этом аттракционе. А подход такой потому что ничто лучше не заставит собеседника активно гуглить и писать примеры кода по теме дискуссии как горящая жопка.

Obezyan
()
Последнее исправление: Obezyan (всего исправлений: 1)
Ответ на: комментарий от Zhbert

То что докер автору не нужен я уже написал почти в самом начале темы, когда его предложили (спустя полтора часа после создания темы). Что касается ответов на вопросы автора, то я хотел ему помочь, и даже задал уточняющий вопрос, но он мне не ответил, так что беседы не получилось. И вообще, автор создал тему и с тех пор на лор больше не логинился, уже 3 дня прошло, так что возможно все эти беседы он не прочтёт, зачем что-то доказывать в пустоту?

firkax ★★★★★
()
Ответ на: комментарий от Obezyan

Он не поймёт, не сможет. Девопсу - девопсово.

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

adn ★★★★
()
Ответ на: комментарий от Obezyan

Когда мне скучно я просто беру интеграл от сообщения собеседника и начинаю потихоньку доводить его логикой до прохождения всех стадий от отрицания до принятия. Кто-то конечно сгорит на середине, но к чести @adn он прошёл до конца.

Ты шиз? Что я по-твоему отрицал? нужность документации?

adn ★★★★
()
Ответ на: комментарий от adn

Да я нигде не писал что я против контейнеров, я и сам их использую. Но не мусорный докер, а нормальные, каковыми является freebsd jail. Зачем для указанного списка «системы оркестрации» не знаю.

Кстати, nextcloud (как и практически всё где в названии есть слово cloud) это какое-то ненужно и я бы постарался его вычеркнуть из списка заранее.

И как оцениваете время, которое будет потрачено для развертывания и время на сопровождение/эксплуатацию?

На развёртывание будет потрачено время - надо изучить как оно работает и настраивается. На эксплуатацию и сопровождение - околонулевое, с пунктами 1-6 в первом приближении можно вообще ничего не делать, с 7 посложнее - скорее всего придётся по ходу разработки этой проги что-то донастраивать и на сервере (ну и обновлятор сделать).

firkax ★★★★★
()
Ответ на: комментарий от firkax

Там linux. nextcloud выкинуть нельзя. Опиши кратко как все это будешь поднимать и поддерживать. (типовые задачи там описаны)

adn ★★★★
()
Последнее исправление: adn (всего исправлений: 1)

Production это у них там красиво обзывают простую работу. У них и обычные работяги типа создатели, ну вот эти вот, что трудятся только ради денег. А вот это влияние напыщенных индюков на простые вещи, так как им надо изобразить вид деятельности, что они что-то да производят. На деле около 20% людей производят, другие 80% распределяют. Как соединить это все может подсказать ИИ. Тут недавно задавался человек вопросом открывать ли наработки по большей части написанные ИИ. Ну а вам придется самим решить нафига администрированием заниматься программисту и морочить себе этим мозг. Эти вопросы можете задавать на собеседовании кандидатам на работу. А если ему не в лом из пушки все делать, то какая вам разница?

anonymous
()
Ответ на: комментарий от Obezyan

У меня действительно 20+ лет опыта в разработке, в том числе в eCommerce сфере с высоконагруженными сайтами которые приносят владельцам миллионы евро годовой выручки.

обожаю когда люди путают выслугу лет с опытом работы

и так к слову выручка в миллионы евро в год (даже не десятки) - это очень скромный оборот при котором никаких больших нагрузок нет

adn ★★★★
()
Ответ на: комментарий от adn

Если он это не может и делегирует это нейронкам, то есть много вопросиков про его квалификацию.

Моей квалификации достаточно чтобы самостоятельно обучить сеть которая принимая на вход код функции из контроллера напишет спеку в нужном формате. Чтобы это сделать нужно немного больше чем просто знать как писать эти самые спеки.

Obezyan
()
Ответ на: комментарий от Obezyan

Моей квалификации достаточно чтобы самостоятельно обучить сеть которая принимая на вход код функции из контроллера напишет спеку в нужном формате. Чтобы это сделать нужно немного больше чем просто знать как писать эти самые спеки.

То есть действительно проблемы с выражением мысли, если для тебя проще натренировать нейронку, чем написать своими словами. В принципе это понятно по твоим ответам.

adn ★★★★
()
Ответ на: комментарий от adn

А, я не сразу заметил что ты краткое содержание поста автора написал.

Я повторю вопрос, который автору уже задал - что значит «поднимать» если там уже всё запущено?

А про поддержку повторю что выше писал - кроме самописного софта там поддерживать нечего, оно работает хоть десятками лет без технических вмешательств.

Если «поднимать» это таки про переезд, то я бы рассмотрел переход на фрибсд.

firkax ★★★★★
()
Ответ на: комментарий от adn

и так к слову выручка в миллионы евро в год (даже не десятки) - это очень скромный оборот при котором никаких больших нагрузок нет

Да, вы правы, скромные до 50 млн евро в год при скромных до сотни запросов в секунду. Это все из-за отсутствия докера, с ним бы на порядок больше было бы, наверное.

Obezyan
()
Ответ на: комментарий от Obezyan

Это все из-за отсутствия докера, с ним бы на порядок больше было бы, наверное.

Нет. Просто сотня rps - это совершенно не высокие нагрузки. Очень смешно читать когда «системные архитекторы» таким хвастаются.

btw: У меня пока рекорд проектирования - инфраструктура на 40000 rps. В сотни тысяч пока не умею - знаний и навыков таких нет. Сейчас в основном работаю с проектами на 10-15k rps.

adn ★★★★
()
Ответ на: комментарий от adn

То есть действительно проблемы с выражением мысли, если для тебя проще натренировать нейронку, чем написать своими словами.

Вы бы хоть погуглили что openAPI за спецификация такая и как выглядит документация с её использованием.

Вот пример документации, строки 266-386: https://github.com/jjrom/resto/blob/17c305d2e214e54dd5852a94240e4f3457f70e66/app/resto/core/api/UsersAPI.php#L266

Выражайте свою мысль, пробуйте. Я же просто обучили сеть которая генерит эти спеки за меня.

Obezyan
()
Ответ на: комментарий от firkax

что значит «поднимать» если там уже всё запущено?

disaster recovery plan (что делать когда это все умрет)

оно работает хоть десятками лет без технических вмешательств.

завидую тебе. ты живешь в идеальном мире

adn ★★★★
()
Ответ на: комментарий от Obezyan

Выражайте свою мысль, пробуйте. Я же просто обучили сеть которая генерит эти спеки за меня.

Давай начнем с того, что это нифига не документация - это комментарии в коде. При нормальной документации в код лезть не надо (и он часто недоступен).

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

И мы возвращаемся к компетентности (и наличию навыков) такого программиста.

adn ★★★★
()
Ответ на: комментарий от adn

Нет. Просто сотня rps - это совершенно не высокие нагрузки. Очень смешно читать когда «системные архитекторы» таким хвастаются.

Это офигенный результат, потому что это - чекаут, с вызовом сторонних систем по апи а-ля Klarna, расчётом доставки по адресу (два десятка служб доставки от больших DHL и UPS до маленьких Posti, Postnord и Purolator) и прочее. И ответ до 100мс это повод для гордости.

btw: У меня пока рекорд проектирования - инфраструктура на 40000 rps

И? сферический http 200 ok в вакууме? полезная нагрузка какая? тысячи rps каждый девопс в синтетика набить может, полезная нагрузка какая?

Obezyan
()
Ответ на: комментарий от adn

Давай начнем с того, что это нифига не документация - это комментарии в коде.

Я уже икать от смеха начал. Не останавливайтесь.

И мы возвращаемся к компетентности (и наличию навыков) такого программиста

Девопс и swagger. Холст, масло, 2025 год.

Obezyan
()
Ответ на: комментарий от Obezyan

Это офигенный результат, потому что это - чекаут, с вызовом сторонних систем по апи а-ля Klarna, расчётом доставки по адресу (два десятка служб доставки от больших DHL и UPS до маленьких Posti, Postnord и Purolator) и прочее. И ответ до 100мс это повод для гордости.

гордиться можно чем угодно. но будь аккуратнее когда этим публично хвастаешься - засмеют

И? сферический http 200 ok в вакууме? полезная нагрузка какая? тысячи rps каждый девопс в синтетика набить может, полезная нагрузка какая?

Просто online pvp игра на несколько десятков миллионов активных пользователей по всему миру. Ничего особенного.

adn ★★★★
()
Ответ на: комментарий от adn

если чел уже умеет в докер(советующий например)

а если не умеет ( а чё там уметь - не вариант - какая бы простая тулза не была бы обычно она имеет большую нуля когнитивную цену)

крч если докер сам не решает проблемы (может и решает но и превносит дополнительную сложность которую не видят те которые привыкли к инструменту и видят всё гвоздями)

в данном случае докер излишен т/е архитектурно unsound

по факту 500 строк баша как бы говорят что

qulinxao3 ★☆
()
Ответ на: комментарий от Obezyan

Вы же действительно дупля не отбиваете что это. Изучайте чтобы не быть баттхертом.

Спасибо. Обрати внимание на их документацию, которая ей и является, а не комментариями в коде, сгенеренными нейронкой.

Еще раз: документация пишется людьми для людей. Если без привлечения нейронок ты не можешь с ней работать, то это не документация, а ее саботаж.

adn ★★★★
()
Ответ на: комментарий от adn

гордиться можно чем угодно. но будь аккуратнее когда этим публично хвастаешься - засмеют

Я не хвастаюсь, а пишу о настоящем результате, а не синтетика. И мне не стыдно об этом писать, я понимаю сколько сил необходимо приложить чтобы добиться подобного результата.

Просто online pvp игра на несколько десятков миллионов активных пользователей по всему миру. Ничего особенного.

Именно, местоположение игрока, шмот и эвентхендлеры киллов гонять много ума не надо, это не чекаут.

Подозреваю, что у вас даже ботов нет. Т. е. нет environment queries, behaviour trees и прочих FSM AI states (внезапно, на этом поле я также могу вас погонять :) ).

Obezyan
()
Ответ на: комментарий от Obezyan

Подозреваю, что у вас даже ботов нет.

Боты тоже были. Без них, к сожалению pvp не взлетает.

внезапно, на этом поле я также могу вас погонять

не можешь. даже не пытайся со своим жалким 100 rps. «Системный архитектор» блин.

adn ★★★★
()
Ответ на: комментарий от qulinxao3

если чел уже умеет в докер(советующий например)
а если не умеет ( а чё там уметь - не вариант - какая бы простая тулза не была бы обычно она имеет большую нуля когнитивную цену)

Фактически здесь неявно обсуждается полезность слоя абстракции (а не докеры).

sin_a ★★★★★
()