Меня зовут Леонид Черненко, я программист. Пишу код на PHP.
Этот канал о том, как я создаю свои продукты.
Сейчас у меня нет ни одного продукта, но я не оставляю надежды когда-нибудь создать востребованный пользователями продукт.
Буду рассказывать о своих приключениях на пути к созданию продукта и делиться мыслями.
Этот канал о том, как я создаю свои продукты.
Сейчас у меня нет ни одного продукта, но я не оставляю надежды когда-нибудь создать востребованный пользователями продукт.
Буду рассказывать о своих приключениях на пути к созданию продукта и делиться мыслями.
👍8
У меня есть блог о разработке: https://leonidchernenko.ru/
Раз в неделю выходит пост.
Также есть чат "Сделано программистами", в котором общаемся на любые темы, связанные с разработкой.
https://t.me/leonidchernenko
Чат привязан к каналу для обсуждений, все посты из канала автоматом публикуются в чате.
Раз в неделю выходит пост.
Также есть чат "Сделано программистами", в котором общаемся на любые темы, связанные с разработкой.
https://t.me/leonidchernenko
Чат привязан к каналу для обсуждений, все посты из канала автоматом публикуются в чате.
Telegram
Сделано вайбкодерами
Это группа, посвящённая обсуждению постов из блога https://leonidchernenko.ru/ и всему что связано с разработкой.
Главный принцип группы — взаимное уважение и доброжелательное отношение к участникам.
Новые записи в блоге будут публиковаться здесь.
Главный принцип группы — взаимное уважение и доброжелательное отношение к участникам.
Новые записи в блоге будут публиковаться здесь.
Итак, поехали!
Всю неделю мне хотелось сделать продукт, малюсенький, ультранишевый и связанный с разработкой PHP.
Когда я озвучу в чём заключается идея то вы возможно скажете "ой ну что за фигня! это никому не будет нужно!"
А я отвечу: "ну и что?"
Я всё равно его сделаю, потому что это нужно мне самому. А будут ли им пользоваться... Посмотрим )
Честно говоря надоело быть "сапожником без сапог" и вечно искать готовые решения, особенно когда я уверен что могу решить проблему ничуть не хуже, а местами даже и лучше.
Всю неделю мне хотелось сделать продукт, малюсенький, ультранишевый и связанный с разработкой PHP.
Когда я озвучу в чём заключается идея то вы возможно скажете "ой ну что за фигня! это никому не будет нужно!"
А я отвечу: "ну и что?"
Я всё равно его сделаю, потому что это нужно мне самому. А будут ли им пользоваться... Посмотрим )
Честно говоря надоело быть "сапожником без сапог" и вечно искать готовые решения, особенно когда я уверен что могу решить проблему ничуть не хуже, а местами даже и лучше.
👍1
Предыстория. Мы сделали бэкенд на PHP для многопользовательской онлайн игры, космическая леталка Pulse Online.
Некоторое время назад наш сервер игры стал "тупить" так как сильно выросла нагрузка, игроков стало больше и старый код уже не тянул.
Чтобы разобраться в чём проблема, стали изучать логи, параметры сервера и так далее.
В итоге добавили страницу статуса PHP FPM, отслеживая которую убедились что в проблемах виновата медленная обработка запросов на сервере PHP.
Позже мы ускорили запросы с помощью индексов в БД и кеширования и проблема ушла.
Но в процессе установления причин тормозов, нам очень нехватало классного мониторинга! Обновляли и следили за страницей статуса PHP FPM вручную.
На картинке к посту — как выглядит такая страница сейчас.
Некоторое время назад наш сервер игры стал "тупить" так как сильно выросла нагрузка, игроков стало больше и старый код уже не тянул.
Чтобы разобраться в чём проблема, стали изучать логи, параметры сервера и так далее.
В итоге добавили страницу статуса PHP FPM, отслеживая которую убедились что в проблемах виновата медленная обработка запросов на сервере PHP.
Позже мы ускорили запросы с помощью индексов в БД и кеширования и проблема ушла.
Но в процессе установления причин тормозов, нам очень нехватало классного мониторинга! Обновляли и следили за страницей статуса PHP FPM вручную.
На картинке к посту — как выглядит такая страница сейчас.
👍3
Несмотря на то, что проблема уже решена, остаётся желание смотреть за показателями сервера и дальше, чтобы вовремя поймать подобные проблемы ещё "на подлёте".
А ведь этот проект у нас не единственный с высокой нагрузкой, пригодится и на других.
Поэтому решено: сделаю свой мониторинг, отслеживающий сервер PHP.
Что мониторим
Основные параметры сервера, за которыми нужно следить, это очередь запросов (если всё в порядке тогда в ней 0 ожидающих запросов), а также количество активных процессов.
Если количество активных процессов начинает зашкаливать и упирается в лимит, это означает что сервер уже не справляется с нагрузкой и не успевает обрабатывать запросы.
Пфф... это решается за 15 минут Прометей/Графана/etc
Ну... нет. Ни один из мне сервисов не подключается за 15 минут. Возни везде много и самый минимум подключение займёт несколько часов.
Кто утверждает что такой мониторинг делается без подготовки за 15 минут, либо обманывает себя либо просто врёт.
А толковые APM (глубоко интегрированные системы мониторинга веб-приложений) ещё и стоят капец сколько денег. Например BlackFire стоит 20 000 рублей в месяц.
А ведь этот проект у нас не единственный с высокой нагрузкой, пригодится и на других.
Поэтому решено: сделаю свой мониторинг, отслеживающий сервер PHP.
Что мониторим
Основные параметры сервера, за которыми нужно следить, это очередь запросов (если всё в порядке тогда в ней 0 ожидающих запросов), а также количество активных процессов.
Если количество активных процессов начинает зашкаливать и упирается в лимит, это означает что сервер уже не справляется с нагрузкой и не успевает обрабатывать запросы.
Пфф... это решается за 15 минут Прометей/Графана/etc
Ну... нет. Ни один из мне сервисов не подключается за 15 минут. Возни везде много и самый минимум подключение займёт несколько часов.
Кто утверждает что такой мониторинг делается без подготовки за 15 минут, либо обманывает себя либо просто врёт.
А толковые APM (глубоко интегрированные системы мониторинга веб-приложений) ещё и стоят капец сколько денег. Например BlackFire стоит 20 000 рублей в месяц.
👍5
Анализ рынка
"Перед разработкой решения, делали ли какой-то анализ рынка? Про графану и прометеус вижу обсуждение. Есть ещё laravel pulse и вроде ещё парочку аналогов есть для php"
Конечно, у всех на слуху Графана, Прометей, Сентри, NewRelic, BlackFire.
Но всё это существующие продукты, которые не решают мою задачу так как это нужно мне.
Как мне нужно чтобы они решили задачу? Быстро, просто и дёшево.
Решают они мою задачу быстро, просто и дёшево? Нет.
Большая часть это либо гемор с ковырянием серверов, такие как Графана и Прометей, либо установка "агентов", либо возня с конфигурацией в приложении, а самые мощные решения ещё и стоят кучу денег.
Это всё не подойдёт. Не хочу часами возиться для решения такой задачи.
Мне нужно фигак-фигак и у тебя есть готовый мониторинг, без напрягов.
Получится ли у меня самого создать простое и быстрое решение? Может, и нет. Но я попробую )
P.S. Laravel Pulse у нас есть, но статистику FPM он не показывает.
"Перед разработкой решения, делали ли какой-то анализ рынка? Про графану и прометеус вижу обсуждение. Есть ещё laravel pulse и вроде ещё парочку аналогов есть для php"
Конечно, у всех на слуху Графана, Прометей, Сентри, NewRelic, BlackFire.
Но всё это существующие продукты, которые не решают мою задачу так как это нужно мне.
Как мне нужно чтобы они решили задачу? Быстро, просто и дёшево.
Решают они мою задачу быстро, просто и дёшево? Нет.
Большая часть это либо гемор с ковырянием серверов, такие как Графана и Прометей, либо установка "агентов", либо возня с конфигурацией в приложении, а самые мощные решения ещё и стоят кучу денег.
Это всё не подойдёт. Не хочу часами возиться для решения такой задачи.
Мне нужно фигак-фигак и у тебя есть готовый мониторинг, без напрягов.
Получится ли у меня самого создать простое и быстрое решение? Может, и нет. Но я попробую )
P.S. Laravel Pulse у нас есть, но статистику FPM он не показывает.
"...это решается написанием плейбуков в стиле Infrastructure as a Code. Да, на это уходит очень много времени на старте, зато потом ты разворачиваешь мониторинг одной-двумя командами. Изредка рефакторишь плейбук как обычный код"
Infrastructure as a Code
Сколько раз я пытался осилить эти плейбуки, каждый раз плевал и бросал это занятие.
Сделано как-то калечно, пока въедешь в те концепции что нагородили авторы этих тулов, пока напишешь все скрипты, поседеешь. Ещё и Питон вместо PHP )
Если кайфово превозмогать сложные инструменты, валяйте, но я пас.
В моём случае отлично себя показала самопальная система скриптов на Bash + MakeFile + Docker.
Раньше чем она себя исчерпает я не буду брать ничего сложнее, но уже три года полёт нормальный, так что сами судите.
Infrastructure as a Code
Сколько раз я пытался осилить эти плейбуки, каждый раз плевал и бросал это занятие.
Сделано как-то калечно, пока въедешь в те концепции что нагородили авторы этих тулов, пока напишешь все скрипты, поседеешь. Ещё и Питон вместо PHP )
Если кайфово превозмогать сложные инструменты, валяйте, но я пас.
В моём случае отлично себя показала самопальная система скриптов на Bash + MakeFile + Docker.
Раньше чем она себя исчерпает я не буду брать ничего сложнее, но уже три года полёт нормальный, так что сами судите.
😁1
