TGViewer
Channel Public Channel
Техлидошная | Golang Infra Dev | Project Leading

Техлидошная | Golang Infra Dev | Project Leading

@devlead

Про платформенную (инфраструктурную) разработку, golang, техлидерство проектов, профессиональному росту и всему остальному, что связано с IT.
Автор: Антон Губарев (https://antgubarev.tech/ru/) @antgubarev. Инеженер Авито PaaS, архитектор и техлид
Subscribers
519
Photos
25
Videos
0
Links
159

Showing posts older than #113 · Back to latest

Older Posts 20 shown
Post #112 405
Решил я тут значится недавно походить по собесам, на мир посмотреть, себя показать. Узнаю думаю сколько предлагают на рынке, чего хотят, кого ищут. Времени жалко было много тратить на это поэтому выбрал две очень известные компании из тех, что писали мне и согласился пройти интервью. Ну и закончилось все тем, что я теперь в команде архитектуры Авито. Неожиданно даже для самого себя.

Я нашел тут ту самую нишу, которая мне всегда была близка и интересна - платформенная разработка https://habr.com/ru/company/avito/blog/527400. Никакого больше бизнесового фиче-конвеера. Только кубер, service mesh, инфраструктура, golang и вот это все. Ну и контент будущий от меня тоже будет с этими темами чаще всего связан )

В мире полно интересных задач и даже в рамках только нашей страны. Желаю каждому найти рыбу своей мечты, наиболее подходящие под себя. Главное не ждать пока эта рыба найдет вас сама.
Хабр Платформа как сервис в Авито: как это устроено Привет, Хабр! Меня зовут Александр Лукьянченко, я тимлид команды, которая занимается платформой в Авито. В этой статье я расскажу о проблемах, которые возникали у нас...
Post #111 450
Век живи - век учись. На собеседовании узнал от кандидата о существовании двух школ тестирования. Детройтской и Лондонской. Если не углубляться в подробности, то первая школа выступает за тестирование интеграционное, когда мы в первую очередь проверяем что наше приложение рабочее. Вторые выступают за юнит тесты, с моками всех зависимостей и проверкой в первую очередь работоспособности каждого элемента приложения.

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

На картинке, которую я так долго искал, как раз мой взгляд на юнит тесты.

Они тоже конечно нужны и никто не призывает от них отказываться, ни в коем случае. Вопрос только в приоритезации.
Post #107 513
За последний месяц прошёл несколько собеседований. Хотел изучить рынок, узнать чего хотят, сколько платят. Пробежался по компаниям, о которых слышали не только вы но и ваши родители и знакомые. Получил кучу полезной информации, которой поделюсь в понедельник на стриме. Приходите) https://youtu.be/_7qEgYQWF9Q
YouTube Фронтенд Кухня - Неудачные собеседования Поделимся своими историями о неудачных собеседованиях, ответим на частые вопросы и просто пообщаемся.
Post #104 457
Строим веб сервис в новом выпуске отсобеседования. Никаких теорий, только практические задачки из реальной (почти) жизни.
Выпуск выдет на youtube завтра, сегдня для патронов.
Post #101 434

Forwarded from Ви.Tech

Наш коллега Денис Черносов записал видео "Принцип подстановки Барбары Лисков геометрическая интерпретация" https://www.youtube.com/watch?v=BwuiNEyegTc , который попал в свежий PHPDigest.
Для многих по отзывам этот самый непонятный приниц стал теперь более понятным. Спасибо!
YouTube 2021 06 22 Принцип подстановки Барбары Лисков геометрическая интерпретация SOLID Принцип подстановки Барбары Лисков. https://habr.com/ru/post/559724/ - исходная статья, которая вдохновила меня на это видео.
Post #100 381
Очередная архитектурная полезняшка от Дениса
Post #99 409
https://healthchecks.io/ Хелсчеки по push модели. Ваше приложение отправляет хелсчеки на этот сервис, а он контролирует что они приходят с нужной периодичностью. Например, по окончании работы вашей крон утилиты отправляете что все прошло ок. Как только "ок" не придет вы получите уведомление об этом. А если ваш чек все же отработал, но с ошибкой, то можно отправить в сервис информацию что случилась ошибка.

Проект открытый и можно поставить себе и пользовать без ограничений, либо за небольшую плату использовать "облачную" версию (есть бесплатный тарифный план). Есть куча интеграций с телегой, слаком, ватсапом и прочими каналами уведомлений, включая смс и телефонные звонки. Можно даже отправлять в OpsGenie, где уже настроить эскалирование инцидента.
А еще автор на странице about выкладывает информацию сколько приносит денег его проект, сколько пользователей, сколько платящих. Но главное в этом то, что ему удалось сделать то, что несколько раз пытался сделать я. Он свой хобби проект превратил в способ заработка. Белая зависть 🙂
Healthchecks.io Healthchecks.io – Cron Job Monitoring Simple and efficient cron job monitoring. Get instant alerts when your cron jobs, background workers, scheduled tasks don't run on time.
Post #98 1.11K
Сегодня вышел очередной выпуск отсобеседования https://www.youtube.com/watch?v=wOe0UF_5S7k В этот раз очень харизматичный и активный разработчик с широким кругозором. Когда занимаюсь наймом в команду, то всегда учитываю фактор увлеченности работой для миддлов и джунов. Нанимая такого человека всегда очень высокий шанс получить сеньора через полгода-год и кучу интересных предложений по рабочим задачам (конечно всему есть разумная граница 🙂 )
YouTube #15 Full-stack безопасник на собеседовании Backend Middle В данном выпуске Никита пройдет собеседование на middle backend разработчика. Поддержать проект: https://www.patreon.com/otsobes Подкаст Сергея: https://soundcloud.com/between-braces О буднях веб-разработки, архитектуре и развитии от Антона: https://t.me/devlead…
Post #97 330

Forwarded from Ви.Tech

Как перенести 3Тб файлового хранилища с локальной ФС сервера на S3? При этом у вас легаси проект на ~4 млн строк кода. По всему репозиторию раскиданы многочисленные fopen(), fwrite(), file_exists() и тд. Вся логика много лет строилась на работе с локальным хранилищем и отрефакторить займет возможно неделя или месяцы.

Первый рассмотренный вариант был примаунтить S3 как локальную ФС и жить дальше не меня кода. Готовое решение [https://github.com/s3fs-fuse/s3fs-fuse](https://github.com/s3fs-fuse/s3fs-fuse) Заманчиво. Но коллеги админы, которые успели хапнуть горя с подобным подходом, отговорили от этого. Есть серьезные проблемы с fuse, которые приводят даже к зависанию ноды и необходимости ее ребута, что скорее всего будет равно недоступности проекта. Рисковать так не хотелось. конечно же

Второй вариант. Реализовать на коленке watching файлов. Любой появившийся в локальной ФС новый файл или измененный сразу попадает в S3 с помощью дополнительной утилитки. На golang это делается буквально за несколько часов. Благо готовых решений хватает, например [https://github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify). Но это подразумевает дополнительный контейнер в каждом поде с приложением. Усложняет систему. Еще одна точка отказа. Вариант, но можно подумать еще.

Третий вариант. Самый "в лоб". пишем аналоги php функций для работы с файлами. Вместо fopen - fopens3(), которая файлик стягивает с S3 и кладет в локальную ФС контейнера а потом уже выполняет fopen(). Для fwrite пишем fwrites3 который копирует файл в хранилище. И так далее для всех остальных используемых функций. После чего поиском и заменой заменяем нативные функции на аналоги для s3. Заливаем все хранилище в S3 как есть, какой-нибудь утилитой вроде [https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html](https://docs.aws.amazon.com/cli/latest/reference/s3/sync.html). При этом почти не трогаем код, риски поломать что-то минимальны, не усложняем систему, не завязываемся на еще одно стороннее решение как в первом варианте.

В итоге третий вариант был успешно реализован. Возможно существуют еще и другие способы решения проблемы, предлагайте идеи в комментариях.
GitHub GitHub - s3fs-fuse/s3fs-fuse: FUSE-based file system backed by Amazon S3 FUSE-based file system backed by Amazon S3. Contribute to s3fs-fuse/s3fs-fuse development by creating an account on GitHub.
Post #96 297
Еще один челендж, который прошел на работе с текущим проектом. Перевоз хранения файлов с NFS на S3 не поломав ничего.
Post #95 483
Post #94 436
История из жизни коллеги, пример как можно красиво отшить 🙂 Уже как только не мониторят кандидатов. Скоро ситуация будет как с банками, запустят холодный обзвон роботами.
Post #93 434
Вчера на Highload Олег Бартунов рассказывал про будущее jsonb в postgres. Доклад получился очень углубленным и обязателен для тех кто использует jsonb. Но главное что стало понятно - проделана огромная работа и предстоит проделать ещё больше.
Post #92 484
Еще одна статья от автора разбора кишков array_merge. На этот раз пережовывается один из способов управлением памятью в PHP. В статье приводятся примеры и объяснения, что такое copy-on-write https://zualex.com/posts/copy-on-write-php/
Zualex Copy-on-write в PHP Copy-on-write или копирование при записи — один из способов управлением памятью. Но перед тем как давать какие-то определения, предлагаю рассмотреть пример: function handle(array $array) { $result = []; // ... return $result; } $largeArray = getLargeArray();…
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →