Pull to refresh
2K+
39
Немировский Лев@Apokalepsis

Руководитель направления

1,1
Rating
32
Subscribers
Send message

NAS, который стал сервером: почему я отказался от DIY и купил Minisforum

Level of difficultyEasy
Reading time4 min
Reach and readers21K

Я долго хотел собрать NAS сам, но в итоге выбрал готовое решение. Рассказываю, где ломается идея «сделаю дешевле», почему роутер с Docker — это не сервер, и как я пришёл к устройству, которое закрывает сразу всё: хранение, сервисы и эксперименты.

Читать далее

Минимальный набор практик для микросервиса

Level of difficultyEasy
Reading time12 min
Reach and readers14K

Я собрал минимальный набор практик, без которых микросервис очень быстро превращается в «чёрный ящик»: логи, трассировка, метрики, конфигурация, feature flags, тестирование и чуть-чуть документации. Это не теория — это вещи, которые я выстрадал, пока делал Go-шаблон для коллег, переходящих после Ruby/PHP, и пытался сделать так, чтобы сервис было реально удобно запускать, отлаживать и поддерживать.

Внутри — простые объяснения, почему эти штуки окупаются, и примеры на Go: как разделить логи и связать их с trace_id, как руками добавить span, какие метрики имеет смысл считать, как организовать конфиг, зачем OpenFeature, почему testcontainers — это не боль, и почему Makefile иногда экономит больше времени, чем очередной «идеальный рефакторинг».

Читать далее

Практический гайд по авторизации и аутентификации в микросервисах с Ory и Apache APISIX

Level of difficultyMedium
Reading time25 min
Reach and readers12K

Мне кажется, что уже есть сотни разных статей на эту тему, но каждый раз мне чего-то не хватало. Поэтому я решил написать свою статью, в которой покажу, как я реализую авторизацию и аутентификацию в своих проектах. Это именно гайд: вы можете взять готовый код и адаптировать его под свои нужды. В рамках статьи будут использоваться Ory Hydra и Ory Kratos, Apache APISIX в качестве API Gateway и несколько микросервисов на Golang. Всё это будет работать в Docker, чтобы вы могли легко запустить и поиграться.

Читать далее

Как я создавал Observability для своих pet-проектов. Часть 2

Level of difficultyMedium
Reading time10 min
Reach and readers9.1K

В первой части мы развернули базовый стек для сбора метрик, логов и трейсов и интегрировали его с приложением на Laravel. Теперь покажу настройку Observability на примере простого Golang-приложения — настроим в нём структурированные логи, распределённый трейсинг и метрики, а также интегрируем с нашим стеком.

Читать далее

Как я создавал Observability для своих pet-проектов. Часть 1

Level of difficultyMedium
Reading time11 min
Reach and readers24K

Это в какой-то степени продолжение моей статьи — История создания идеального Docker для Laravel. В ней я рассказывал о том, как собрал идеальный Docker-образ для Laravel с Nginx Unit. Это был один из первых шагов по оптимизации моей инфраструктуры. Как я уже упоминал, у меня есть несколько pet-проектов, запущенных на VPS в docker-compose, и я хотел не только отслеживать их состояние, но и прокачать навыки в области Observability.

Читать далее

История создания идеального Docker для Laravel

Level of difficultyEasy
Reading time13 min
Reach and readers23K

Казалось бы, упаковать PHP в контейнер и настроить GitHub Actions - дело пяти минут. Но как часто бывает, реальность оказалась сложнее. Это история о том, как я вернулся к разработке на PHP и решал накопившиеся проблемы с деплоем Laravel-проекта. О том, как готовил Docker-образ, несколько раз переписывал процесс деплоя, находил компромиссы там, где это было возможно, и полностью перестраивал архитектуру там, где компромиссы были неприемлемы.

Читать далее

Проектирование serverless функций

Level of difficultyMedium
Reading time6 min
Reach and readers6.8K

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

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

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

Читать далее

Разработка и управление едиными контрактами API

Level of difficultyEasy
Reading time15 min
Reach and readers16K

Привет, Хабр! Пол года назад на AnalystDays #18 я рассказывал про API-контракты, и доклад вызвал большой интерес у аудитории. Пока видео не опубликовали, решил адаптировать материал в формат статьи.

Читать далее

От живых гайдлайнов к Documentation as Code. Как изменилась документация во фронтенд-разработке

Level of difficultyEasy
Reading time4 min
Reach and readers8.1K

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

Читать далее

Тестирование производительности Docker клиентов для Mac

Level of difficultyEasy
Reading time11 min
Reach and readers9.5K

Недавно я опубликовал статью OrbStack: Почему я забыл про Docker Desktop, которая вызвала оживленную дискуссию в комментариях. Основные вопросы возникли вокруг производительности различных Docker-подобных решений. Мои аргументы, основанные в первую очередь на личном опыте использования, оказались недостаточно убедительными.

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

Читать далее

OrbStack: Почему я забыл про Docker Desktop

Level of difficultyEasy
Reading time4 min
Reach and readers76K

Работая на MacBook с Docker Desktop, я часто сталкивался с тем, что система становилась менее отзывчивой, особенно при запуске нескольких контейнеров одновременно. Высокая нагрузка на CPU и память заметно влияла на время автономной работы.

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

Читать далее

Composer 2: Что нового?

Reading time4 min
Reach and readers14K

Composer, менеджер зависимостей для PHP, был выпущен около 8 лет назад, а сегодня опубликовали новую версию, 2.0. За эти годы Composer получил множество новых функций и не отставал от стандартов PHP. Вторая версия совместима со старыми проектами, но привнесет еще несколько замечательных новых функций. В этой статье расскажу о них подробнее.

Читать далее

Программист должен решать проблемы бизнеса

Reading time4 min
Reach and readers46K

image


Недавно вышла статья, мимо которой я не мог пройти — "Программист не должен решать задачи бизнеса". Неожиданно мой комментарий вырос до мини-статьи. Я не согласен с мнением автора статьи, все сказано ниже ИМХО, с удовольствием подискутирую в комментариях. Сразу замечу, что я веб-разработчик, и все примеры я привожу в контексте своего опыта.

Читать дальше →

Живые гайдлайны — MDX и другие фреймворки

Reading time5 min
Reach and readers19K

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

Читать дальше →

Information

Rating
1,878-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Chief Technology Officer (CTO), Software Architect
Lead
PHP
Ruby
Golang
Linux
Database
Software development
Designing application architecture
Development management
Building a team
Project management