Как стать автором
Обновить
10
0
Volodymyr Polishchuk @NorthDakota

PHP Developer

Отправить сообщение

Пережить распродажу на Ozon: хайлоад, сковородки и 38 инфарктов

Время на прочтение9 мин
Количество просмотров12K

Мы нечасто задумываемся о том, как работает тот или иной сервис и какой объём работ скрывается за тем, чтобы товар или услуга прибыли к нам вовремя. Взять, например, «чёрную пятницу» и День холостяка в e-com — дни самых больших распродаж. Казалось бы, что там такого? Со стороны может выглядеть, что главное — прогреть аудиторию предложениями разной степени заманчивости и запастись товарами на складах. Конечно, это не так. На деле нескольким дням распродаж предшествует год активной подготовки: от прогнозирования нагрузки и закупки железок до перестройки архитектуры. О том, на что мы обращали внимание и как готовились к высокому сезону, читайте под катом. 

Читать далее
Всего голосов 54: ↑54 и ↓0+54
Комментарии18

Как мы в hh.ru отправляем пользователям миллиард уведомлений в месяц

Время на прочтение5 мин
Количество просмотров5.2K

В hh.ru много пользователей, а уведомлений мы отправляем еще больше: о регистрации, о восстановлении пароля, об изменении статуса услуг, о новых сообщениях и т.д. Одних только email-уведомлений мы отправляем около 900 миллионов в месяц, а ведь есть еще пуши и смс.

Меня зовут Кирилл, я — тимлид команды Bonjour в hh.ru. Сегодня я расскажу как у нас устроены рассылки.

Читать далее
Всего голосов 18: ↑15 и ↓3+12
Комментарии7

Как работает крупнейший маркетплейс: что у него под капотом

Время на прочтение7 мин
Количество просмотров45K

Всем привет, я — Сергей Бобрецов, CTO в Wildberries. 

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

Стоит начать с того, что основным генератором прогресса в WB с самого начала и по сей день является фактор роста. По бизнес-метрикам мы растем примерно х2 каждый год уже много лет, а по техническим (количестуву запросов / транзакций / трафику / объему данных и т. д.) — рост может быть даже быстрее, и это создает множество вызовов: технических, архитектурных и организационных. 

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

Сегодня я хочу рассказать немного про нашу инфраструктуру.

Читать далее
Всего голосов 69: ↑54 и ↓15+39
Комментарии54

Типовые ошибки менеджера при расширении команды. Гайд – как делать не стоит. Часть II

Время на прочтение8 мин
Количество просмотров5.8K

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

Читать далее
Всего голосов 4: ↑3 и ↓1+2
Комментарии0

История блужданий по документации Haproxy, или на что стоит обратить внимание при его конфигурации

Время на прочтение8 мин
Количество просмотров30K
И снова здравствуйте!

В прошлый раз мы рассказывали о выборе инструмента в Ostrovok.ru для решения задачи проксирования большого количества запросов к внешним сервисам, никого при этом не положив. Статья закончилась выбором Haproxy. Сегодня я поделюсь нюансами, с которыми мне пришлось столкнуться при использовании этого решения.


Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии3

Kubernetes tips & tricks: особенности выполнения graceful shutdown в NGINX и PHP-FPM

Время на прочтение8 мин
Количество просмотров18K
Типовое условие при реализации CI/CD в Kubernetes: приложение должно уметь перед полной остановкой не принимать новые клиентские запросы, а самое главное — успешно завершать уже существующие.



Соблюдение такого условия позволяет достичь нулевого простоя во время деплоя. Однако, даже при использовании очень популярных связок (вроде NGINX и PHP-FPM) можно столкнуться со сложностями, которые приведут к всплеску ошибок при каждом деплое…
Читать дальше →
Всего голосов 45: ↑45 и ↓0+45
Комментарии6

GraphQL и почти все-все-все. Часть 1:)

Время на прочтение4 мин
Количество просмотров9.9K


Введение:


Все чаще слышу об использовании GraphQL, но так как последнее время все рабочее время уходило на Xamarin + GRPC + ASP.NET Core, технология казалась для меня загадочно манящей и очень не известной, потому решил опробовать ее на нескольких языках, чтобы увидеть какие плюсы и минусы в разных подходах. Начать решил с родного и любимого C# + Hot Chocolate, но планирую так же попробовать Typescript + Prisma, Kotlin + graphql-kotlin, и возможно что-то другое.
Поехали
Всего голосов 6: ↑6 и ↓0+6
Комментарии1

Пять проблем неидеального тимлида (и семь спасительных решений). Как тимлиду не пострадать от стокгольмского синдрома

Время на прочтение4 мин
Количество просмотров5.4K

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

Обсудили волнующую многих тему на нашем митапе с Захаром Овчаровым (Respona front-end team-lead, Toptal senior front-end developer). Встреча прошла перед конференцией IT-People Conf в Казани и вызвала интересную дискуссию. Полная версия обсуждений в нашем видео. 

Дисклеймер от Захара: все персонажи выдуманы, все действия нереальны, автор не несет никакой ответственности за ваши действия, поэтому действуйте на свой страх и риск;) 

Внезапно для себя вместо фронтенд-разработчика я стал тимлидом. Казалось бы, ничего страшного. Но как результат — огромная куча проблем.

Я всегда считал себя уравновешенным и мотивированным человеком. Думал, что в моей жизни всё прекрасно, у меня нет проблем со здоровьем и психикой. Но однажды я понял, что не так уж все хорошо: что-то мне спать не хочется, нет аппетита и настроения. Я решил обратиться к главному источнику информации — гуглу. Это было не лучшее решение. Я выяснил, что мёртв. 

Оказалось, что у меня большой список недугов: начиная обсессивно-компульсивным расстройством с депрессией, заканчивая биполярностью с паническим расстройством. Я решил искать корень проблемы и разбираться, почему же это произошло. Я жил тогда на Кипре, за окном светило солнце, шумело море, была работа над интересным проектом. Кажется, что всё должно быть замечательно. Но что-то в голове не давало мне покоя. 

Читать далее
Всего голосов 8: ↑5 и ↓3+2
Комментарии2

Что такое SDLC? Этапы, методология и процессы жизненного цикла программного обеспечения

Время на прочтение7 мин
Количество просмотров245K
Цитируя автора книги Managing Information Technology Projects Джеймса Тейлора, «жизненный цикл проекта охватывает всю деятельность проекта». Задачей же разработки ПО является выполнение требований продукта. Если вы хотите научиться создавать и выпускать высококачественное ПО, вам придется следовать плану. Со слов Тейлора, вашей целью должен стать всесторонний анализ деятельности проекта и контроля каждого этапа его разработки. Вот только с чего именно начать?

Ответить можно так: направить ваш рабочий процесс в верном направлении поможет подходящий фреймворк. В наши дни довольно сильным и популярным фреймворком является SDLC – жизненный цикл программного обеспечения.

Принципы работы SDLC и почему им пользуются


На диаграмме ниже можно ознакомиться с шестью основными этапами SDLC.



В целом, SDLC это такой замкнутый цикл, в котором каждый этап влияет на действия в последующих и дает перспективные указания на будущее. Для получения ответов на конкретные вопросы и обеспечения согласованности вашего процесса разработки все шесть этапов стараются эффективно и последовательно друг на друга влиять.
Читать дальше →
Всего голосов 9: ↑8 и ↓1+7
Комментарии1

PHP Дайджест № 220 (10 – 24 января 2022)

Время на прочтение3 мин
Количество просмотров12K
Картинка Vincent Pontier.

Подборка свежих новостей, инструментов и материалов из мира PHP.

Приятного чтения!
Читать дальше →
Всего голосов 52: ↑52 и ↓0+52
Комментарии10

С чего начинается Elasticsearch

Время на прочтение14 мин
Количество просмотров219K

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


Самое первое и главное заблуждение — "нужен поиск, так бери эластик!". Но в действительности, если вам нужен шустрый поиск для небольшого или даже вполне себе крупного проекта, вам стоит разобраться в теме поподробней и вы откажетесь от использования именно этой системы.

Читать дальше →
Всего голосов 51: ↑50 и ↓1+49
Комментарии44

Девять граблей Elasticsearch, на которые я наступил

Время на прочтение7 мин
Количество просмотров72K
Автор иллюстрации — Anton Gudim


«Подготовленный человек тоже наступает на грабли.
Но с другой стороны — там, где ручка.»


Elasticsearch — прекрасный инструмент, но каждый инструмент требует не только настройки и ухода, но и внимания к мелочам. Некоторые — незначительны и лежат на поверхности, а другие спрятаны так глубоко, что на поиск уйдет не один день, не один десяток кружек кофе и не один километр нервов. В этой статье расскажу про девять замечательных граблей в настройке эластика, на которые я наступил.
Давайте приступим
Всего голосов 59: ↑58 и ↓1+57
Комментарии69

Представляем онлайн-самоучитель по Kubernetes и деплою с werf для разработчиков

Время на прочтение3 мин
Количество просмотров12K

Рады представить новую версию онлайн-самоучителя по werf, нашей CI/CD-утилите с открытым кодом!

Общая идея самоучителя — познакомить разработчиков с Kubernetes, показав на простых приложениях (готовы примеры для Ruby on Rails, Node.js и Laravel), как можно развертывать приложения в K8s с помощью werf. Это отличная возможность быстро освоить практические основы K8s без погружения в его объемную теоретическую базу. Если вы еще не решили, как провести новогодние каникулы с пользой, — вот вам идея.

Читать далее
Всего голосов 53: ↑53 и ↓0+53
Комментарии0

30 сентября: Let's Encrypt и конец срока действия IdenTrust DST Root CA X3

Время на прочтение7 мин
Количество просмотров239K

30 сентября 2021 14:01:15 GMT оканчивается срок действия корневого сертификата IdenTrust DST Root CA X3.

Это событие достойно вашего внимания по той причине, что после наступления этого момента ряд устаревших систем перестанут доверять сертификатам, выпущенным центром сертификации Let’s Encrypt. С учётом того, что на текущий момент Let's Encrypt предоставляет бесплатные криптографические сертификаты примерно для 250 миллионов доменных имен, а "устаревшие системы" - это порой системы возрастом всего 5-6 лет, вряд ли окончание срока действия сертификата DST Root CA X3 пройдёт для всех гладко и незаметно. В чём причина, кого конкретно это затронет, и что можно сделать?

Читать далее
Всего голосов 103: ↑102 и ↓1+101
Комментарии245

Тонкая настройка балансировки нагрузки

Время на прочтение22 мин
Количество просмотров46K
В этой статье речь пойдет о балансировке нагрузки в веб-проектах. Многие считают, что решение этой задачи в распределении нагрузки между серверами — чем точнее, тем лучше. Но мы же знаем, что это не совсем так. Стабильность работы системы куда важнее с точки зрения бизнеса.



Маленький минутрый пик в 84 RPS «пятисоток» — это пять тысяч ошибок, которые получили реальные пользователи. Это много и это очень важно. Необходимо искать причины, проводить работу над ошибками и стараться впредь не допускать подобных ситуаций.

Николай Сивко (NikolaySivko) в своем докладе на RootConf 2018 рассказал о тонких и пока не очень популярных аспектах балансировки нагрузки:

  • когда повторять запрос (retries);
  • как выбрать значения для таймаутов;
  • как не убить нижележащие серверы в момент аварии/перегрузки;
  • нужны ли health checks;
  • как обрабатывать «мерцающие» проблемы.

Под катом расшифровка этого доклада.

Всего голосов 51: ↑49 и ↓2+47
Комментарии17

Apache Kafka: основы технологии

Время на прочтение9 мин
Количество просмотров360K

У Kafka есть множество способов применения, и у каждого способа есть свои особенности. В этой статье разберём, чем Kafka отличается от популярных систем обмена сообщениями; рассмотрим, как Kafka хранит данные и обеспечивает гарантию сохранности; поймём, как записываются и читаются данные.


Статья подготовлена на основе открытого занятия из видеокурса по Apache Kafka. Авторы — Анатолий Солдатов, Lead Engineer в Авито, и Александр Миронов, Infrastructure Engineer в Stripe. Базовые темы курса доступны на Youtube.

Всего голосов 29: ↑29 и ↓0+29
Комментарии10

MikroTik: L2VPN = EoIP + WireGuard (часть 1)

Время на прочтение5 мин
Количество просмотров27K

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

Ну что, давайте протестируем данный протокол на примере Mikrotik. Возьмем версию прошивки Mikrotik RouterOS 7.1rc2 и протестируем.

Сделаем не просто связность, а реализуем схему: центральный офис + 2 удаленных офиса, все это на "серых" адресах, L2VPN (Ethernet over IP over WireGuard – нужно больше over) и подружим с CISCO.

Читать далее
Всего голосов 17: ↑16 и ↓1+15
Комментарии31

Правила умного дома

Время на прочтение7 мин
Количество просмотров37K

Очень часто в статьях про домашнюю автоматизацию на Хабре выкладывают всю техническую подноготную: на каких технологиях сделано, какие программные продукты применены. Но очень мало статей, которые показывают конкретные примеры правил автоматизации. И сегодня я хочу это исправить. 

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

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

Автоматизация на Home Assistant
Всего голосов 22: ↑17 и ↓5+12
Комментарии151

Удобная и долгожданная: поддержка enum в PHP 8.1

Время на прочтение7 мин
Количество просмотров10K

В PHP 8.1 наконец-то добавили встроенную поддержку перечислений — enum. Под катом — перевод статьи блогера и PHP разработчика ​​Брента с обзором новых возможностей, дополнениям и комментариями разработчиков о том, что они думают о поддержке перечислений в PHP 8.1.

Как реализованы перечисления →
Всего голосов 17: ↑13 и ↓4+9
Комментарии8

Создаем Конечный Автомат на PHP

Время на прочтение6 мин
Количество просмотров12K

Конечный Автомат (State Machine), также называемый Automata (да, как и игра), - это концепция для разработки, организации рабочих и технологических процессов с учетом текущего «состояния» какой-то задачи, изменения её состояний и, по возможности, для автоматизации процесса.

Я объясню на примере. Предположим, что я хочу купить молоко, тогда в такая задача будет иметь примерно следующие состояния...

Читать далее
Всего голосов 17: ↑13 и ↓4+9
Комментарии11
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Abazë, Durres, Албания
Дата рождения
Зарегистрирован
Активность