Архив метки: работа

Бэкенд ВКонтакте — от разработки до продакшена

PHP — очень простой язык, тупой как пробка, идеальный язык для бизнес-логики и прототипов!

ВКонтакте — по сути классическое приложение на PHP. Есть frontend, есть backend, есть база данных и т.п. Но во всех этих частях свои нюансы. В качестве базы данных использются свои внутренние «движки», в качестве основного языка для backend — KPHP. Логи собираются в ClickHouse. В ряде мест вместо HTTP используется QUIC. Весь php-backend — один огромный монолит, возможно, самый большой в мире ) Примерно 25К php-файлов, 9 млн. строк php-кода, около 800К коммитов в git-репозитории! Для ускорения работы KPHP переводит весь пхп-код в 200К C++ файлов, а далее компилирует в бинарник размером 1,5 ГБ. В итоге получаем прирост производительности в 10 раз! Весь backend компилируется за 3-5 минут, статика собирается до полу часа +) Полученный бинарь раскатывается сначала на стейджинг (1 % пользователей ~ около миллиона человек!), далее на 10К production-серверов. Сборка и деплой осуществляется через TeamCity. Раскатка происходит по протоколу Gossip.

Разработчик имеет свою полную копию vk.com, развернутую в контейнере. Правим обычный php-код и после обновления странички видим результат. При необходимости на этом же контейнере можно собрать полноценную kphp-версию. Однако в большом проекте разработчик не только пишет код, точнее даже не столько.

  • 5 % времени — пишешь код
  • 50 % — читаешь свой и чужой код
  • % — думаешь как безпроблемно выкатить правки, как мониторить и следить

Любой проект через два года превращается в легаси или умирает.

Цифры: 1,5 млн rps, 160 ms latency, 99.96 % availability, > 70 % resource utilization, 87 млн MAU, 9 млрд. просмотров контента.

Работа и сайд-проекты

На хабре пофвился отличный перевод

https://habr.com/ru/company/macloud/blog/553580/

Хочется для себя запомнить несколько мыслей из этого поста.

Дело в том, чтобы иметь занятость, которая не является твоей работой.

Важна игра вдолгую: наработка сети контактов и репутации, которая будет долговечнее любого работодателя.

Да, постоянная работа — это отлично, но мне нравится рост, который дают успешные сайд-проекты. Дело отнюдь не только в деньгах — бывают успешные сайд-проекты, которые НЕ ДАЮТ денег сразу.

Во-вторых, нужно наконец-то засучить рукава и найти время. Говорить легко, но только ваши дела реально демонстрируют, кем вы себя видите. Если вы говорите, что хотите творить в нерабочее время, но почти по 40 часов в неделю тратите на Youtube/Netflix, то на самом деле вы Фултаймовый Потребитель. Выделите время

Работа прокачивает шабашку, шабашка прокачивает работу.

Про собеседование

Интересный пост на хабре, но еще более интересны, как и ожидалось, комментарии.

А если в бизнесе вас начинает волновать, в курсе ли человек в первую очередь про то, когда умер 5,2 и что такое разница abstract и interface, а не то, что его зарабатывающую деньги страничку или терминал видят только 10 человек из 100, по причине «facially yours, nginx», то у меня для вас плохие новости.

Подработка

Из-за наличия огромного количества свободного времени (шучу конечно, просто денежки очень нужны) ищу подработку на 10-12 часов в неделю.
Идеальным был бы вот такой вариант: по 2-2.5 часа в будни (понедельник, среда, пятница) + 4-5 часов в один из выходных дней (и я отдохнуть тоже хочу), но рассмотрю и Ваши варианты. Предпочтительно долгосрочное сотрудничество, но короткие и интересные задачки тоже подойдут.
Понимаю, что большой проект при таком графике будет строиться долго, но исправление ошибок и добавление новых фишек (иными словами «поддержка») в готовые/почти готовые проекты никто не отменял. Вот это умею готовить
Что касается оплаты — пишите, договоримся =)

Правила хорошего тона для веб-приложений

Некоторые моменты интересны, некоторые спорны, но просмотреть слайды рекомендую.

Источник http://tonsky.livejournal.com/241759.html