Выкладываю второй доклад с нашего первого митапа, который провели в сентябре. В прошлый раз можно было почитать (и посмотреть) про использование Consul для масштабирования stateful-сервисов от Ивана Бубнова из BIT.GAMES, а сегодня поговорим про CICD. Точнее расскажет об этом наш системный администратор Егор Панов, который отвечает за доступность инфраструктуры и сервисов в Pixonic. Под катом — расшифровка выступления.
Рубрика «проектирование» - 10
CICD: бесшовный деплой на распределенные кластерные системы без даунтаймов
2018-10-09 в 11:31, admin, рубрики: CICD, Анализ и проектирование систем, архитектура, Блог компании Pixonic, мобильная разработка, проектирование, Проектирование и рефакторинг, разработка игр, сервер, Серверное администрирование, системное администрированиеИспользование Consul для масштабирования stateful-сервисов
2018-09-28 в 15:44, admin, рубрики: архитектура, Блог компании Pixonic, конференции, мобильная разработка, проектирование, Проектирование и рефакторинг, разработка игр, Серверное администрирование, системное администрирование22 сентября провели наш первый нестандартный митап для разработчиков высоконагруженных систем. Было очень круто, много позитивного фидбека по докладам и поэтому решил не только их выложить, но и расшифровать для Хабра. Сегодня публикуем выступление Ивана Бубнова, DevOps из компании BIT.GAMES. Он рассказал о внедрении дискавери-сервиса Consul в уже рабочий высоконагруженный проект для возможности быстрого масштабирования и failover`а stateful-сервисов. А также об организации гибкого пространства имен для бэкэнд-приложения и подводных камнях. Теперь слово Ивану.
Я администрирую продакшн-инфраструктуру в студии BIT.GAMES и расскажу историю внедрения консула от Hashicorp в наш проект «Гильдия Героев» — fantasy RPG с асинхронным pvp для мобильных устройств. Выпускаемся на Google Play, App Store, Samsung, Amazon. DAU около 100 000, online от 10 до 13 тысяч. Игру делаем на Unity, поэтому клиент пишем на С# и используем свой собственный скриптовый язык BHL для игровой логики. Серверную часть пишем на Golang (перешли на него с PHP). Дальше — схематичная архитектура нашего проекта.
Читать полностью »
Как мы отлаживаем в браузере самописный ECS на игровом сервере
2018-09-25 в 8:37, admin, рубрики: android, C#, ecs, Gamedev, iOS, mobile development, multiplayer, online, pvp, unity, unity3d, архитектура, Блог компании Pixonic, геймдев, мобильные игры, мультиплеер, проектирование, Проектирование и рефакторинг, разработка игр, разработка мобильных приложений, управление проектами, шутер
Хочу поделиться механизмами, которые мы используем на сервере для визуальной отладки игровой логики и способами изменения состояний матча в реальном времени.
В предыдущих статьях подробно рассказывали (список сразу под катом) о том, как устроена ECS в нашем новом проекте в разработке и как выбирали готовые решения. Одним из таких решений был Entitas. Он не устроил нас в первую очередь из-за отсутствия хранения истории состояний, но очень понравился тем, что в Unity визуально и наглядно можно посмотреть всю статистику по использованию сущностей, компонентов, систему пулов, производительность каждой системы и т.д.
Это вдохновило нас на создание своих инструментов на игровом сервере, чтобы смотреть, что происходит в матче с игроками, как они играют, как перформит система в целом. На клиенте у нас тоже есть подобные наработки для визуальной отладки игры, но инструменты в клиенте чуть более простые по сравнению с тем, что мы сделали на сервере.
Читать полностью »
Как решить любую программерскую задачу
2018-09-24 в 14:54, admin, рубрики: Блог компании Издательский дом «Питер», Программирование, проектирование, Проектирование и рефакторинг, прототипирование, профессиональный рост, техническое задание, требования заказчикаПривет всем!
Сегодня вашему вниманию предлагается перевод по-своему незаменимой статьи, которая поможет вам правильно подойти даже к самому коварному и нетривиальному ТЗ, которого вы на первый взгляд в упор не понимаете. Главное — не сдаваться и толково формулировать вопросы. Господин Джастин Фуллер из «Бэнк оф Америка» любезно излагает, как это правильно делается.
Приятного чтения!
Читать полностью »
Отечественная САПР-платформа nanoCAD Plus 10: универсальный комплекс для тех, кто проектирует
2018-09-14 в 8:16, admin, рубрики: CAD/CAM, DWG, nanoCAD, анализ, Анализ и проектирование систем, Блог компании Нанософт, Графические оболочки, проектирование, Профессиональная литература, сапр
Весной 2018 года наша компания («Нанософт») выпустила в свет nanoCAD Plus 10 – новую версию российской САПР-платформы, приуроченную к 10-летию компании. Подумать только – 10 лет мы создаем nanoCAD на благо наших пользователей! Что нового появилось в продукте? Несколько месяцев назад я отвечал на этот вопрос в рамках YouTube-трансляции, которую посетили 600 человек. Сам по себе такой формат презентации был для нас нов, технически сложен, но, по-моему, получилось здорово – сама презентация заняла один час, а потом я еще 50 минут отвечал на вопросы слушателей. И в результате мы получили уникальную видеопрезентацию, в которой подробно и наглядно рассказываем о новшествах продукта. На сегодняшний день запись трансляции посмотрели более четырех с половиной тысяч человек, которые в основном ставят лайки. Если вы пропустили трансляцию, смотрите запись – рекомендую.
Но в процессе подготовки презентации я не раз ловил себя на мысли, что, рассказывая о новшествах продукта, упускаю нечто большее – концентрируясь только на новшествах, отсекаю общее позиционирование продукта. Во что превратился nanoCAD за 10 лет разработки? Чем он удобен и почему должен быть полезен нашим пользователям? Какие у него ключевые преимущества? Вообще, в целом, что такое платформа nanoCAD? Поэтому я решил написать статью-обзор нашего программного комплекса для тех, кто не готов собирать новинки, разбросанные по разным версиям, а хочет в рамках одной статьи получить полное представление о nanoCAD. Фактически это будет обзор современного российского САПР-решения и потенциальных направлений развития САПР, а также ответ на вопрос, куда движется nanoCAD как продукт.
Итак, российская платформа nanoCAD Plus глазами разработчика: что это и для чего?Читать полностью »
Почему программист должен уметь хорошо писать
2018-09-03 в 6:44, admin, рубрики: Блог компании Издательский дом «Питер», дизайн, книги, Программирование, проектированиеЗдравствуйте все.
В последнее время у нас получалось публиковать в блоге преимущественно узкоспециальные материалы, сильно связанные с исследованием рынка и формированием издательской политики. Полагаем, что в обозримом будущем пятничные публикации такими и останутся — нам очень интересны ваши комментарии, голосование и замечания по поводу рассматриваемых нами книг и авторов. Но теперь появятся еще и понедельничные публикации, которые гораздо более опосредованно связаны с нашими стратегическими поисками, а (на первом этапе) будут представлять наш «editor's pick» с сайта Medium.
Первая такая статья принадлежит перу Дерека Мея и переведена сегодня
Читать полностью »
От API first на Swagger до Single contract на RAML
2018-08-07 в 12:15, admin, рубрики: api, open source, openapi, RAML 1.0, swagger, Анализ и проектирование систем, идея проекта, Программирование, проектирование, Разработка веб-сайтов
Привет, %username%!
Ты наверняка знаешь, что такое API интерфейсы и то, как много от них зависит в твоем проекте. Более того, я так же полагаю, что ты уже знаком с тем, что такое API first подход и знаешь, что Swagger и его Open API являются одними из самых популярных инструментов, помогающих ему следовать.
Но в этой статье я хочу рассказать про подход к реализации API first, концептуально отличающийся от того, что предлагает Swagger и Apiary. Во главе идеи стоит понятие Single contract и возможность его реализации на базе RAML 1.0.
Под катом:
- Краткое описание принципов API first;
- Single contract – ввод понятия, предпосылки к появлению, рассмотрение возможности его реализации на базе OAS (Swagger);
- RAML + annotations + overlays как база для Single contract, примеры;
- Проблемы RAML, концептуальные разногласия разработчиков;
- Идея SaaS сервиса на базе вышеизложенной идеи (картинка прототипа сверху).
Как Unsplash масштабируется силами небольшой команды
2018-07-12 в 15:01, admin, рубрики: Блог компании Badoo, высокая производительность, Программирование, продуктовая разработка, проектирование, Проектирование и рефакторинг, процесс разработки, процессы, разработка, Разработка веб-сайтов, разработка сервисов, рефакторингФото: Alex Smith | Unsplash
Добрый день!
Меня зовут Виктор Пряжников, я работаю в отделе Features компании Badoo. Основная задача нашего отдела — разработка функционала, который видят пользователи нашего сайта и приложений. Когда мне попалась на глаза статья сооснователя Unsplash Люка Чессера, она заинтриговала меня тем, что им удаётся развивать сравнительно большой проект совсем маленькой командой. Подход автора импонирует мне своей прагматичностью и чем-то напомнил «Вы — не Google», поэтому я решил её перевести.
Одна из самых забавных вещей в разработке Unsplash — большой масштаб и популярность продукта.
В обычный день наш API обрабатывает больше 10 млн. запросов от unsplash.com и тысяч сторонних приложений, через наш пайплайн обработки данных проходят миллионы событий, в наши ленты добавляются 60 млн. обновлений, и мы обслуживаем 60 млн. изображений.
В то же время наша команда сравнительно мала: два дизайнера, три человека, работающих с фронтендом, два — с бекендом и один дата-инженер. У нас нет отдельного DevOps-инженера, и каждый член команды тратит бОльшую часть своего времени на эксперименты и разработку новых фич для обеспечения дальнейшего развития продукта.
Читать полностью »
Масштабирование Unsplash маленькой командой: 8 человек и 10 миллионов запросов в сутки
2018-07-12 в 15:01, admin, рубрики: Блог компании Badoo, высокая производительность, Программирование, продуктовая разработка, проектирование, Проектирование и рефакторинг, процесс разработки, процессы, разработка, Разработка веб-сайтов, разработка сервисов, рефакторингФото: Alex Smith | Unsplash
Добрый день!
Меня зовут Виктор Пряжников, я работаю в отделе Features компании Badoo. Основная задача нашего отдела — разработка функционала, который видят пользователи нашего сайта и приложений. Когда мне попалась на глаза статья сооснователя Unsplash Люка Чессера, она заинтриговала меня тем, что им удаётся развивать сравнительно большой проект совсем маленькой командой. Подход автора импонирует мне своей прагматичностью и чем-то напомнил «Вы — не Google», поэтому я решил её перевести.
Одна из самых забавных вещей в разработке Unsplash — большой масштаб и популярность продукта.
В обычный день наш API обрабатывает больше 10 млн. запросов от unsplash.com и тысяч сторонних приложений, через наш пайплайн обработки данных проходят миллионы событий, в наши ленты добавляются 60 млн. обновлений, и мы обслуживаем 60 млн. изображений.
В то же время наша команда сравнительно мала: два дизайнера, три человека, работающих с фронтендом, два — с бекендом и один дата-инженер. У нас нет отдельного DevOps-инженера, и каждый член команды тратит бОльшую часть своего времени на эксперименты и разработку новых фич для обеспечения дальнейшего развития продукта.
Читать полностью »
Как восемь человек масштабируют highload-проект. Опыт Unsplash
2018-07-12 в 15:01, admin, рубрики: Блог компании Badoo, высокая производительность, Программирование, продуктовая разработка, проектирование, Проектирование и рефакторинг, процесс разработки, процессы, разработка, Разработка веб-сайтов, разработка сервисов, рефакторингФото: Alex Smith | Unsplash
Добрый день!
Меня зовут Виктор Пряжников, я работаю в отделе Features компании Badoo. Основная задача нашего отдела — разработка функционала, который видят пользователи нашего сайта и приложений. Когда мне попалась на глаза статья сооснователя Unsplash Люка Чессера, она заинтриговала меня тем, что им удаётся развивать сравнительно большой проект совсем маленькой командой. Подход автора импонирует мне своей прагматичностью и чем-то напомнил «Вы — не Google», поэтому я решил её перевести.
Одна из самых забавных вещей в разработке Unsplash — большой масштаб и популярность продукта.
В обычный день наш API обрабатывает больше 10 млн. запросов от unsplash.com и тысяч сторонних приложений, через наш пайплайн обработки данных проходят миллионы событий, в наши ленты добавляются 60 млн. обновлений, и мы обслуживаем 60 млн. изображений.
В то же время наша команда сравнительно мала: два дизайнера, три человека, работающих с фронтендом, два — с бекендом и один дата-инженер. У нас нет отдельного DevOps-инженера, и каждый член команды тратит бОльшую часть своего времени на эксперименты и разработку новых фич для обеспечения дальнейшего развития продукта.
Читать полностью »