Как написать свою ОС на Go и зачем нужна межсервисная платформа
Доклады GolangConf 2019
Управлять большой кодовой базой нелегко, управлять ей эффективно ещё сложнее. Елена Морозова расскажет, как кодовая база Uber выросла в 1000 раз за последние несколько лет и как Uber справляется с таким стремительным ростом.
На GolangConf Елена рассмотрит такие подходы, как dependency injection, чистая структура кода, монорепозиторий и на примере Uber расскажет, как с их помощью разрабатывать быстро и эффективно.
Хотите написать свою операционную систему? Андрей Смирнов расскажет, как это сделать на Go. Андрей — один из разработчиков операционной системы Talos, которая является нижним слоем в инфраструктуре Kubernetes. Talos использует ядро Linux, а все остальное в user-space написано «с нуля» на Go. Из выступления Андрея узнаем:
- почему писать ОС на Go — это удобно и полезно;
- как строится grpc API и контракт совместимости вместо ssh/shell и команд;
- как собрать операционную систему за 5 минут;
- как оптимизировать время запуска и реакции;
- как проводить юнит-тестирование, интеграционное тестирование и локальное тестирование;
- экосистема — buildkitd, containerd, kubernetes, … — все написано на Go, почему?
Доклады HighLoad++ 2019
Анна Мелехова и Владимир Лапатин расскажут, как построить хороший API для микросервиса. Чтобы вывести API в public, иногда требуются не только масштабные переделки самого интерфейса, но и изменения процессов внутри компании. В своём выступлении Владимир и Анна рассмотрят весь путь разработки API: от контрактных выборов (RAML vs swagger, API first vs code first) до распространения практик на все команды. Мы получим практический чек-лист для оценки зрелости API и получим представление о дизайне REST API для сервисов.
Артемий Рябинков занимается в Авито проектированием многокомпонентных отказоустойчивых систем. На HighLoad++ 2019 он расскажет о платформе межсервисного взаимодействия: что это, кому это нужно и как быстро её построить.
Межсервисная платформа решает проблему сложности поддержки при переезде с монолита на микросервисы, уменьшает объём рутины и снижает time-to-market. Из доклада Артемия узнаем:
- почему gRPC — «не вариант», и с какими проблемами вы столкнетесь, если начнёте его использовать;
- как получить всё то, что так легко давалось в монолите (авторизация запросов, трассировка и логирование, A/B-тестирование, сегментация фич).
Доклад будет интересен как тем, кто только начинает свой путь в SOA, так и тем, кто уже хорошо знаком с инструментами OpenAPI, Swagger, gRPC, protobuf.
А сейчас о статье по следам выступления Артемия на Saint HighLoad++ 2019.
Как работать с Postgres в Go: практики, особенности, нюансы
Минимум, который необходимо знать при работе с любой SQL-подобной БД в Go содержится в документе go-database-sql.org. Но этого недостаточно. Если бы всё было так просто, приложения никогда не выкидывали бы фокусов, а DBA и разработчики не воевали бы друг с другом:
— Ваше приложение роняет базу.
— Но ведь до этого всё работало!
Хуже всего, когда DBA и разработчики не могут помочь друг другу: одни не знают про нюансы работы приложения и драйвера, другие не знают про особенности, связанные с инфраструктурой. Чтобы избежать такой ситуации, лучше вооружиться чужим опытом и разобраться в нюансах работы с Postgres в Go.
Об опыте, добытом потом, кровью и потерянными деньгами, Артемий Рябинков из Авито рассказал на Saint HighLoad 2019. На Хабре смотрите видео этого выступления и читайте статью, существенно переработанную и дополненную самим Артемием.
О дедлайнах
Программный комитет HighLoad++ 2019 продлил Call for Papers до 7 сентября. Если вам есть что сказать о высоконагруженных системах и производительности, пишите тезисы и подавайте заявку. Хотите что-то уточнить? Используйте кнопку «Задать вопрос Программному комитету» на главной странице сайта.
На следующей неделе повышается стоимость билетов на конференции GolangConf (c 12 августа) и ScalaConf (c 13 августа). Чтобы успеть приобрести билеты по старой цене, забронируйте их на этой неделе, и у вас будет ещё несколько дней на покупку.