
DataArt выступил спонсором Highload fwdays'19, конференции о высоконагруженных системах, которая прошла в третий раз в Киеве.
С докладами выступили эксперты из Google, StackOverflow, Amazon, Netflix. Обсуждали практические вопросы разработки высоконагруженных проектов, архитектуры, масштабирования, работу с базами данных, DevOps и другое.
Андрей Белик (Project Manager, DataArt) рассказал о докладах, которые запомнились больше всего.
Больше всего меня вдохновил Дмитрий Волошин (Co-founder&CTO at Preply.com) с докладом «100 релизов на день».
Дмитрий рассказал, как за два года компания перешла от коммитов в одну master-ветку всеми разработчиками до полностью автономного процесса, в котором каждый член команды может деплоить напрямую на Production в любой момент.
Что важно:
- Иметь возможность быстро включить/выключить фичу. Даже если что-то пошло не так, всегда можно отключить фичу и пойти разбираться с ней на dev environment.
- Код ревью, и без него никак.
- Тесты, чеки, версионность — без них тоже будет плохо.
- Культура работы и деплоя в команде (как ключевая часть процесса).
Окружение и как это работает сейчас:
- Developer.
- Github.
- Jenkins.
- Cloud environment for testing.
В списке больших достоинств команды — возможность заделиверить фичу в полном цикле за несколько часов. В этом и вся прелесть, что автономный технический процесс позволяет одному человеку достаточно быстро проработать требования, выполнить задачу, протестировать и задеплоить на продакшн.
В практике команда доставляла заказчику до 60–70 фич на день. Не 100, как в названии, но с такими темпами и амбициями скоро это будет реально. Многим командам стоит такому поучиться.
Если подвести черту, хорошо поставленный процесс и слаженная работа команды — ключевые факторы успеха.
Julien Simon из Amazon Web Services в докладе “Scaling ML from 0 to millions of users” рассказал и показал, как можно применить готовый Machine Learning для гибкости и, в то же время, экономии.
Речь шла о контейнерах AWS, которые умеют гибко адаптироваться под нагрузки. Докладчик рассказал о преимуществах и недостатках использования обучаемых контейнеров, их технических возможностях и ценовой эффективности.
На панельную дискуссию "Tech / Team Leads" собрались CTO разных компаний — Илья Селезнев (Team Lead, Playtika), Кирилл Латыш (CTO, Сools Inc), Дмитрий Волошин (Co-founder & CTO, Preply.com), Александр Марченко (СТО, rabota.ua), чтобы обсудить нюансы работы в разных проектах.
Ключевые тезисы:
- Работа команды так или иначе измеряется в деньгах.
- Важно проводить 1-2-1 с командой — работайте над фидбеками и мотивацией.
- Обязательно выделять достаточно времени на качественный подбор.
- Новый участник команды должен быть полезен команде (хотя бы один скил — лучше, чем у других).
Последним в программе был доклад от Jeff Atwood (основатель Stack Overflow) и Michael Krakovskiy (CTO, Modern Guild) “The role of catastrophic failure in software design”.
Эксперты видели в своей практике немало успехов, а вместе с ними — и неудач, поэтому решили поднять важную тему — ошибки при проектировании.
Любая разработка начинается с проектирования и именно ошибка на этом этапе может стать фатальной. Все ошибаются, но важно уметь учиться на своих и чужих ошибках, и еще важнее — научиться признавать ошибки.
Тезисы от докладчиков:
- Не надо бояться делать ошибки.
- Нужно учиться на чужих ошибках.
- Делайте ретроспективы, логирование, постмортем.
- Не важно знать все ответы, важно задавать/иметь вопросы.
Докладчики привели сериал «Чернобыль» от HBO как один из лучших примеров анализа за последние годы. В сериале показано, как один из персонажей все время собирает данные, при этом тщательно записывает все детали в тетрадь. В конце фильма зрители видят поминутную детализацию трагедии и корень причины, благодаря множеству детальных фактов.
Всегда важно анализировать случившейся проблемы, записать все, делать выводы, чтобы в следующий раз не допустить ошибку или, в крайнем случае, устранить ее последствия намного быстрее.
-
16 октября 2019
-
3 июня 2019