Ваня инженер 🇸🇪
709 subscribers
122 photos
29 videos
114 links
Заметки про IT, развитие и жизнь из Швеции.
Дзен канала: без нравоучений, только моё мнение и опыт.
За оскорбления в комментариях предупреждение, затем бан.

Написать мне t.me/skatromb
Download Telegram
Кубер

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

Дело в том, что у нас чуть меньше сотни разных дата джоб(ов?), и все они работают из под базового докер образа шедулера — Airflow. Это простое и прекрасно подходящее для маленького масштаба решение, however, с ростом разнообразия джобов замечаешь, как файл с зависимостями уже перестаёт помещаться на один пролёт экрана, потом на другой... Затем при обновлении Airflow обнаруживаешь, как автоматом обновляется десяток-другой библиотек, которые требуют тестирования и изменения кода. Потом падает какая-нибудь интеграция из-за депрекейта текущей версии, а чтобы её обновить, приходится обновить весь эйрфлоу с вышеупомянутыми последствиями. В итоге, вместо одного дня это занимает неделю, а всё это время джоба лежит. И вишенка: если нужно заскейлить по памяти или процу воркера, на котором запускается весь этот зоопарк, приходится скейлить всю ноду навсегда, хотя мог бы запустить джобу на on-demand compute на часик и отпустить ресурсы.

Так встал вопрос: что с этим делать? Довольно очевидным стало докеризировать каждую джобу в свой контейнер, собирать её в CI/CD, чтобы перестать растить базовый образ Airflow и иметь гибкость в обновлении отдельных джоб. Но где запускать получившиеся контейнеры? Вариантов на рассмотрение попалось несколько: запускать код на cloud function, перейти на использование всяких proprietary SaaS, типа spark cluster as service или запилить кубер.

Вариант с облачными функциями изначально нравился больше всего из-за простоты, но испугали: небольшой максимальный размер ноды (32 гб оперативки, для данных бывает нужно МНОГО), малые возможности кастомизации (по ресурсам, сети, и т.п.).

SaaS был бы следующим по простоте, но с ним две проблемы: он довольно жёстко биндит к SaaS провайдеру + он специфичен под каждый тип задачи. Под спарк нужно осваивать Spark SaaS, под другой тип задач, нужно осваивать другой SaaS, а в случае необходимости перехода к другому SaaS провайдеру... Suffer.

Кубер больше всего пугал ненужным оверхедом сложности: ведь мне нужно просто шедулить джобы поверх CPU/RAM, а ты в комплекте получаешь весь этот цирк с ямлами с сервисами/деплойментами, ментейном кубер-кластера 🤮... Но! Это оказалось относительно неплохо решаемым в мире GCP и Airflow. Во-первых, у GCP есть Autopilot версия k8s кластера, в которой он скейлится сам, и тебе ничего не нужно для этого делать вообще. Во-вторых, у Airflow есть из коробки k8s-operator'ы, которые позволяют ничего не знать про yml-файлы кубера, а просто описать, какой докер имедж на каких ресурсах ты хочешь запустить, и ОНО РАБОТАЕТ. 3 месяца, полёт нормальный.

Самая трудозатратная часть оказалась написать CI/CD пайплайн, собирающий докер-образы и пушащий их в репозиторий — отчасти потому, что я никогда этого не делал, отчасти потому, что там вылезло много мелких нюансов: от авторизаций, до запуска авто-тестов и матчинга имени докер образа при его билде и потом при вызове в кубере.

Доволен ли я получившимся? И да, и нет. Работает оно хорошо. Однако, времени на CI/CD и проектирование архитектуры ушло много: всё это я пилил несколько месяцев.

Интересно ваше мнение: как бы вы предпочли решать подобную проблему?
🔥142
Год велосипеда в Швеции

Нет, это не астрологи объявили, это я уже год катаю по Швеции на велике: и когда жили в Стокгольме, и в Густавсберге, и сейчас в Нючёпинге. Это было топовым решением, ведь пока я работаю один в семье, машину иметь дороговато, а ходить пешком медленно. Велик же, наоборот, экономит деньги на проезд, тренирует ноги и дарит кайфы и идеи для путешествий.

Велоинфраструктура в Швеции великолепна, причём как в Стокгольме, так и в подстокгольмье и даже в нашем отдалённом Нючёпинге. Куда бы ни поехал (включая путешествия по окружающим деревням), 80-100% дороги будет с велодорожкой. А даже если её нет, с местными водителями ездить по одной дороге куда комфортнее и безопаснее, чем в Москве или Подмосковье.

В нашем пригородном поезде до Стокгольма можно провозить велосипед, благодаря этому я доезжаю от дома до станции, а затем от станции до офиса на велике, потратив по 10-15 минут. Самый же длинный мой трип был на 70 км за день по автомобильной дороге в местную усадьбу Nynäs Slott на сжигание зимы 🙂

А ещё, я впервые прокатался всю зиму. В России как-то все вокруг говорили, что будешь вязнуть в снегу и вообще холодно, а я верил 🥴. Но во-первых, снега почти не было, а если и был, то на короткие дистанции и по снегу норм. Во-вторых, мороза тоже особо не было, максимум -12, и то несколько дней. Никто же боится замёрзнуть на лыжах в –15-20, — хотя по большому счёту это то же самое. И я не один такой: по ощущениям, зимой продолжает кататься процентов 30 велосипедистов.
🔥18👍1😁1
Немного фоточек (и видечек) из велотрипов)
🔥274👍3
Повысили зарплату. Потом догнали и ещё повысили.

Сначала немного экономического контекста. Инфляция в 2022 году в Швеции 8.4%, что много по сравнению с бывшими на протяжении двадцати лет 0-2% (не считая 21 года). Валюта упала на ~10% к евро. В общем, экономический фон грустный, впрочем, как и в большинстве стран неподалёку. Чтобы не разгонять инфляцию, профсоюзы договорились о рекомендуемой индексации зарплаты на 4% в этом и 3% — в следующем году. Эх.

В прошлом году я вовсе не рассчитывал на инексацию — ведь я присоединился к компании только в августе. Известие об индексации на 8% было приятным сюрпризом, ведь я не не ожидал её от слова совсем 🙂

В этом году напротив я очень ждал этого момента — ведь я проработал уже полный год, сильно прокачался, собрал хорошую обратную связь от коллег и руководителей. И... «Поздравляю Иван, 6%, ты счастлив?». Ну как бы вам сказать...

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

Но с Фишбрейном у меня впервые была ситауция, когда мне настолько нравится работа в компании, что я решил переступить свою невротическую скромность и дерзнуть. Тем более, что я был уверен в своём профессионализме и в том, что рынок предлагает больше. И что немаловажно, я подготовился к разговору: подумал, какая сумма меня устроит, какая нет, и что я буду делать, если не получу желаемого.

Я прямо ответил, что я расстроен увеличением. Продолжил с хорошего: что мне очень нравится работать в компании, её культура, моя роль, менеджеры, коллеги и что единственное, что меня расстраивает — это зарплата, и очень не хотелось бы однажды уйти из компании только из-за неё. Затем зашёл со стороны компании, ведь для неё это тоже нерационально, мы оба знаем, как тяжело найти хорошего специалиста, что нанять его займёт полгода, затем минимум полгода он будет выходить на нормальную производительность. И что в итоге ему заплатят рыночную зарплату, которую я и просил, но время будет потеряно! Сказал про рынок, предлагающий больше и мои навыки и ценность, увеличившуюся за прошедший год.

И получилось! Нет, я не получил столько, сколько просил, но по крайней мере 6% превратились в 10%, и это уже была приемлемая для меня сумма. Но самое приятное — что я смог наконец прямо и экологично скоммуницировать своё недовольство, и что оно было услышано. И в этом, конечно, большая заслуга Фишбрейн: я доверяю людям здесь и чувствую, что меня слушают и слышат.

Надеюсь, в следующем году будет больше 😀️️️️️️
👏6020🎉10👍4🔥31😁1
Крипта
Переводы за рубеж или обратно

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

И вот, в самый разгар моих раздумий на тему «Как перевести деньги из России на счёт в Швеции, чтобы мой банк не забанил меня за грязные русские деньги», один парень в шведском чатике вдохновил меня словами «а я вывел деньги из РФ криптой и даже задекларировал их в шведской налоговой и без проблем ваще». Тут я понял — пора.

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

Букв по меркам поста в тележку получилось много, потому что мне хотелось не просто написать пошаговый гайд, но и объяснить, что вообще происходит. Буду рад любым вопросам и уточнениям — они помогут сделать гайд ещё лучше :)

Читайте 👇
skatromb.github.io/sweden-migrant-guide/crypto/transfer.html
28👍13🔥8
Ох-ты как приятно :)
39👏18🍾9🔥6🦄5🐳3
Channel name was changed to «Ваня инженер 🇸🇪»
Чё писать?

Последние месяцы у меня парадоксальная ситуация с бложиком: в загашнике много тем, про что написать, при этом «руки никак не доходят» приоритеты всё время другие. Вроде и написать пост дело не такое долгое, но чувствую, что чего-то не хватает.

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

Напишите в коммент к посту, про что вам было бы интересно прочитать в канале? Это может быть и что-то конкретное, а может быть и просто широкой темой, типа «про айти», «про миграцию», или просто чтобы я поделился великими мыслями великих людей.

И раз уж пошла такая пьянка: вопросы можно не только написать, но и заделать в виде телего-кружочка, чтобы я увидел ваши прекраные лица и услышал голоса :) Это будет вообще 🔥
👍73👏1
Шо за биг дата?

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

Если тема интересует, а маркетинговые видосы с баззвордами надоели — смотрите запись его годного выступления на ютубе!
👍165
Девелоперский туллсет для Python

Наткнулся на классную подборку тулов для разработки на Python, которая дарует с небес приятный и автоматизированный Developer Experience. Из списка я использую всё кроме Nox (я не тестирую на работе код под разные версии питона), и недавно поставил под сомнение авто форматтер black, который иногда уродует списки (но пока не отказался от него).

А если вам мало и хочется настоящего хардкора, предлагаю попробовать лютый линтер wemake-python-styleguide. Его написал крутейший русский питонист-опенсорсер Никита Соболев, мейнтейнер статического тайпчекера mypy, автор курсов по тестированию и типизации в Python. Линтер wps — это по сути огромная коллекция линтеров, усложняющая процесс написания кода до уровня дьяблы на сложности Hell. Как говорится, suffer, bitch 😈.

Если вы продержитесь несколько дней, впитаете с потом и кровью способность писать ультимативно лаконичный код.
🔥13😈41