amarao (amarao_san) wrote,
amarao
amarao_san

xVM ксенофобия

Вчера во время беседы на Я.Субботнике об эрланге, прозвучала восхитительная метафора, которая объясняет всё.

Скажите, что общего у:
.net
Java
Erlang

Ответ: у них всё своё. Исполняемый файл - не есть исполняемый файл, это гигантская сложная конструкция, в которой есть чему ломаться в рантайме (дохнущие процессы в эрланге без визуального проявления в работе других сервисов - отличный пример), у них свои названия для процессов, они считают, что лучше операционной системы знают, что такое процесс, как выглядит его PID и как управлять системной памятью. Они срали на все системные дефолты и настройки. Они не видят появившейся или исчезнувшей памяти на хосте (балунинг или memory hotplug), они не замечают изменения числа активных процессоров. У них свой уютный мирок, мало отличающийся от операционной системы. Точнее, операционной среды.

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

Причём ОС, работающую на других принципах, подразумевающую набор других знаний и т.д.

Ещё во времена своего виндового детства я это интуитивно ощущал от powershell'а и егойной .net фагготрии. Тогда я не мог сформулировать это и целплялся к частностям. Сейчас могу - адекватное использование powershell требует хорошего знания .net, то есть знания другой операционной среды.

Ну всё равно, как если бы в ферму серверов на линуксе притащили ... ну я даже с ходу не могу найти хорошую аналогию alien'утости... Ну, допустим, IBM S/390. Вот представьте себе, что у вас фронтэнд на linux/nginx, БД на linux/postgresql, а сервер приложения - на S/390. И вот оно ломается. Или вы обнаруживаете боттлнек в производительности и понимаете, что это что-то там "у неё внутрях".

И? Правильно, нужно садиться за мануал S/390.

С всеми этими xVM ровно так же - старательно изучать язык программирования (а все подобные штуки имеют одну такую дурную тенденцию - делать абстракции жутко дырявыми и выходящими за рамки простых объектов), изучаеть типовое поведение, знакомиться с местным инструментарием диагностики, мониторинга, логгирования, проходить типовые грабли и методы решения нетипичных...

Всё это означает только одно: вместо "приложение на линукс" мы получаем "сервер на линукс и приложение на xVM".

Удовольствие, хочу сказать, сильно ниже среднего, ибо это чужой мир, и он сравним с "удовольствием" программистов от изучения тонкостей восстановления ОС при побившейся libc (да-да, единственный статичски слинкованный файл в современной ОС - это ldd).

Отсюда и растут ноги неприятия. Потому что "почитать для общего развития" не катит, нужно вгрызаться в самые основы (если мы хотим быть хорошими админами), а это много-много-много времени, которое тратится на вгрызание в очередную программерскую игру в фреймворки. Оно того стоит?
Tags: философия администрирования
Subscribe

  • systemd-networkd, netlink и arp флуд

    Нереально странный баг пофикшен с помощью eBPF затычки. Для меня большой неожиданностью является реакция на него.…

  • Rust soundness

    Каждый раз, когда я сталкиваюсь с маленькими "но" в Rust'е, это ощущение тщательной продуманности. Например, простейшие fold-функции для итераторов:…

  • still_ntp

    В ходе локального мозгового штурма у меня родилась суперидея. Надо написать ntp сервер, который может отдавать указанную дату. Т.е. сказали при…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 57 comments

  • systemd-networkd, netlink и arp флуд

    Нереально странный баг пофикшен с помощью eBPF затычки. Для меня большой неожиданностью является реакция на него.…

  • Rust soundness

    Каждый раз, когда я сталкиваюсь с маленькими "но" в Rust'е, это ощущение тщательной продуманности. Например, простейшие fold-функции для итераторов:…

  • still_ntp

    В ходе локального мозгового штурма у меня родилась суперидея. Надо написать ntp сервер, который может отдавать указанную дату. Т.е. сказали при…