Как стать автором
Обновить
Сначала показывать
  • Новые
  • Лучшие

Тестовая ферма из Android-устройств: как собрать, отладить и не взорвать офис

Блог компании Mail.ru Group Разработка мобильных приложений *Разработка под Android *Тестирование мобильных приложений *


У нас был небольшой бюджет и большие проблемы с рутинным тестированием в match3-игре, у которой накопилось более 1500 уровней. А вот чего у нас не было, так это идеально подходящего коробочного решения, работающего на лету и без пересборок. Поэтому мы нагородили собственную ферму с высаженной грядкой из десятка Xiaomi, отправкой статистики, отчетами в Slack, блекджеком и коровой.

Я Павел Щеваев, CTO студии BIT.GAMES, которая является частью международного игрового бренда MY.GAMES. Вы можете знать нас по RPG «Гильдия Героев», а ваши мамы — по «Домовятам» в Одноклассниках. Да, это были мы. :) Но сегодня речь пойдет о нашем новом проекте Storyngton Hall. Это головоломка «три в ряд» с сюжетом, по которому красивые леди разгадывают загадки, декорируют комнаты, примеряют платья, устраивают балы, и, в конце концов, выходят замуж.
Читать дальше →
Всего голосов 13: ↑13 и ↓0 +13
Просмотры 3K
Комментарии 12

Core Web Vitals: с чего начать?

Блог компании Mail.ru Group Разработка веб-сайтов *JavaScript *SvelteJS *


Согласно web.dev, улучшение качества взаимодействия с пользователем — ключ к долгосрочному успеху любого сайта. Понимая, насколько важен для развития интернета качественный пользовательский опыт, компания Google в 2020 году представила инициативу Web Vitals. Это единое руководство по метрикам качества, которые необходимы для обеспечения удобного взаимодействия с пользователем. Хотя за прошедшие годы Google создала ряд инструментов для измерения эффективности взаимодействия и составления отчетов (Lighthouse, PageSpeed Insights и Measure), Web Vitals должна упростить измерение производительности и помогает разработчикам сайтов сосредоточиться на самых важных показателях — Core Web Vitals.
Читать дальше →
Всего голосов 28: ↑28 и ↓0 +28
Просмотры 3.5K
Комментарии 0

Grafana as code, или как я перестал кликать мышкой в UI и полюбил grafonnet

Блог компании Mail.ru Group DevOps *Tarantool *
Tutorial

Когда мы в Tarantool столкнулись с задачей настройки мониторинга для сдачи проекта заказчику, мы решили её с помощью grafonnet. Это библиотека для написания дашбордов Grafana с помощью кода на языке jsonnet, которая заметно облегчила нам жизнь.


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


Читать дальше →
Всего голосов 35: ↑35 и ↓0 +35
Просмотры 8.9K
Комментарии 6

Как работать с Tarantool на Golang вместо Lua

Блог компании Mail.ru Group Python *NoSQL *Go *Tarantool *


Ядро Tarantool-а написано на C, а вся бизнес-логика создаётся на Lua. Это не самый сложный язык, но и не самый популярный. Поэтому сегодня я расскажу, как начать работать с Tarantool, написав всего три строчки кода на Lua. А всё остальное приложение написано на Golang. Чтобы было еще интереснее, я даю альтернативный вариант на Python. Что за проект? Делаем приложение, которое позволяет ставить метки на карте: дом, работа, первое свидание, первый Hello World, первый "too long wal write" Tarantool.


Поехали!

Читать дальше →
Всего голосов 36: ↑34 и ↓2 +32
Просмотры 4.9K
Комментарии 8

Разбор алгоритмов генерации псевдослучайных чисел

Блог компании Mail.ru Group Программирование *Алгоритмы *Математика *

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

Читать далее
Всего голосов 29: ↑29 и ↓0 +29
Просмотры 5.7K
Комментарии 25

NLP At Scale: вся правда о предобученных моделях в Почте Mail.ru (часть 1)

Блог компании Mail.ru Group Спам и антиспам Информационная безопасность *Машинное обучение *

Антиспам Почты Mail.ru — это симбиоз продуктовой логики и инфраструктурных технологий, про который мы решили более подробно рассказать. В основе конечно же лежит инфраструктура, с помощью которой мы получаем возможности для развития моделей машинного обучения, а также платформа ядра, которая обеспечивает работу антиспама в онлайне. Продуктовая логика представлена в виде большого количества эвристик (куда без них) и ручных правил. На вершине продуктовой пирамиды пребывает стек моделей машинного обучения, хотя положение на вершине в данном случае достаточно условно.

В этой статье мы заберемся на эту вершину, где в последнее время часто вбивают новые колышки текстовые модели. Мы спроецируем мир текстовых ML-моделей на наш сервис, поговорим про эволюцию и решение задач Почты, связанных с текстами. Запасайтесь кислородом и свободным временем.
Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Просмотры 1.6K
Комментарии 8

Архитектура распределенной очереди в Mail.ru Cloud Solutions

Блог компании Mail.ru Group Облачные сервисы Tarantool *


Вряд ли сейчас можно встретить разработчика, который ничего не слышал об очередях сообщений. Самые известные брокеры сообщений это: Apache Kafka, RabbitMQ и IBM MQ. Все также наверняка знают об облачных решениях, предлагаемых Amazon. Есть у них и стандартизованные API для работы с очередями.

Одно из них, Simple Queue Service, мы взяли за основу и разработали распределенную очередь для запуска в облаке Mail.ru. SQS это стандартный API для облаков, его широко используют многие компании, от BMW до NASA.

В статье описано, что такое распределенные очереди и зачем они могут понадобиться, какие в них есть особенности, и о том, какое у нас получилось распределенное решение на базе Tarantool.
Читать дальше →
Всего голосов 33: ↑33 и ↓0 +33
Просмотры 3.4K
Комментарии 10

Особенности прототипирования игр

Блог компании Mail.ru Group Разработка игр *Тестирование игр *Прототипирование *

Думаю, во многих компаниях есть свои R&D-команды, которые ищут новые продукты. Такую решили организовать и в нашей студии, и меня туда пригласили. Конечно же, поначалу мы все были окрылены идеей, что сейчас мы в команде экспериментальных проектов и будем писать ПРОТОТИПЫ. Звучит-то как! Мы будем экспериментировать с новыми библиотеками, так сказать «щупать» новые технологии и вообще делать что-то новое почти каждый месяц! Значит, нам не только не надоест какой-то проект, но и можно не заботиться о долгосрочной поддержке кода. Ведь это начальство разрешает забить на качество написания кода в угоду скорости разработки, ведь всё потом полетит в мусорку и будет переписываться с нуля. Но так ли всё радужно? 

Меня зовут Андрей, я программист в студии IT Territory/My.Games, работаю в команде экспериментальных проектов. И хочу рассказать вам об особенностях нашего прототипирования игр. 
Читать дальше →
Всего голосов 31: ↑30 и ↓1 +29
Просмотры 4.2K
Комментарии 0

Наш опыт использования Jira: cоздание подзадач по шаблонам

Блог компании Mail.ru Group JavaScript *Groovy & Grails *Atlassian *


В предыдущей статье "Несколько примеров успешного изобретения велосипеда" мы поделились рядом решений, полученных путем комбинирования наших плагинов для Atlassian, таких как MyGroovy, JSIncluder и MyCalendar. На этот раз мы рассмотрим еще один плагин из нашей коллекции — Custom Select List.

Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Просмотры 2.9K
Комментарии 1

Нагрузочное тестирование игровых серверов

Блог компании Mail.ru Group Серверная оптимизация *Тестирование игр *Kotlin *

image


Меня зовут Дмитрий, я специалист по тестированию в студии IT Territory. За 17 лет мы выпустили более 15 успешных игровых проектов с общей аудиторией около 100 млн игроков по всему миру. Вы можете быть знакомы с нами по таким проектам, как Аллоды Онлайн, Hawk, Space Justice, World Above, Rush Royale. И в этом посте я расскажу о том, как мы проводим нагрузочное тестирование игровых серверов.

Читать дальше →
Всего голосов 26: ↑24 и ↓2 +22
Просмотры 2.9K
Комментарии 1

Как оформить серию коммитов Git, чтобы её приняли в любой проект

Блог компании Mail.ru Group Git *GitHub Управление разработкой *Разработка под Linux *

Добрый день, коллеги! Доказывать, что нужно использовать систему контроля версий, уже давно не нужно. И Git занял тут лидирующую позицию, стремительно вытеснив SVN. Но это инструмент, а инструментом нужно уметь пользоваться, чтобы добиться лучших результатов. Как топором, один человек сможет просто срубить дерево а другой из этого дерева сможет сделать великолепную скульптуру. Так и с помощью Git, один человек сможет просто не потерять результаты своего труда за день, а другие смогут организовать совместную работу над проектом нескольких сотен человек. Да так, что о любой строчке кода можно будет и через пять лет сказать, откуда она взялась и для чего нужна.

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

Читать далее
Всего голосов 59: ↑56 и ↓3 +53
Просмотры 17K
Комментарии 30

Управляем кластером на Tarantool из командной строки

Блог компании Mail.ru Group Высокая производительность *Администрирование баз данных *Lua *Tarantool *
Tutorial


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

Я расскажу вам, как можно использовать Cartridge CLI для эффективного использования ваших локальных приложений, и об интересных фичах самого CLI. Статья больше ориентирована на тех, кто уже использует Cartridge или хочет начать им пользоваться. Поехали!
Читать дальше →
Всего голосов 32: ↑28 и ↓4 +24
Просмотры 1.4K
Комментарии 10

Как настроить мониторинг событий в Kubernetes: 4 бесплатных инструмента

Блог компании Mail.ru Group Облачные вычисления *DevOps *Облачные сервисы Kubernetes *
Перевод

Flying Ships Harbour by annewipf

Отсутствие встроенного инструмента наблюдаемости — один из наиболее серьезных недостатков Kubernetes. Команда Kubernetes aaS Mail.ru Cloud Solutions перевела статью о четырех инструментах с открытым исходным кодом, которые подойдут для мониторинга событий.

Kubernetes — платформа с открытым исходным кодом, с ее помощью удобно управлять процессами контейнеризации и автоматизации. Но есть оборотная сторона медали: хотя в Kubernetes встречаются разные проблемы, одна из самых распространенных — наблюдаемость.

События Kubernetes показывают, что происходит в кластере при изменении состояния или ошибках, вызванных другими ресурсами системы. Благодаря событиям вы поймете, почему система не может вытянуть Docker-образ или почему некоторые поды были выселены из кластера. События — это тип ресурса, который автоматически создается всеми основными компонентами и расширениями в кластере через API-сервер.
Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Просмотры 4.2K
Комментарии 0

Разработка системы аутентификации на Java+Tarantool

Блог компании Mail.ru Group Java *Lua *Tarantool *
Tutorial
Системы аутентификации есть везде. Пока вы скучаете в лифте по пути с седьмого этажа на первый, можно успеть проверить баланс в приложении банка, поставить пару лайков в Instagram, а потом проверить почту. Это минимум три системы аутентификации.

Меня зовут Александр, я программист в отделе архитектуры и пресейла в Mail.ru Group. Я расскажу, как построить систему аутентификации на основе Tarantool и Java. Нам в пресейле очень часто приходится делать именно такие системы. Способов аутентификации очень много: по паролю, биометрическим данным, SMS и т.п. Для наглядности я покажу, как сделать аутентификацию по паролю.

Статья будет полезна тем, кто хочет разобраться в устройстве систем аутентификации. На доступном примере я покажу все основные части архитектуры, как они связаны между собой и как работают в целом.
Читать дальше →
Всего голосов 27: ↑27 и ↓0 +27
Просмотры 3.5K
Комментарии 5

Как мигрировать на Managed Kubernetes без боли

Блог компании Mail.ru Group Облачные вычисления *DevOps *Облачные сервисы Kubernetes *

Concept Art: Airship Acres by ExitMothership

Недавно мы рассказывали, что Kubernetes в формате self-hosted — не всегда самая лучшая идея. Альтернатива — Managed-решения типа Kubernetes as a Service (KaaS), которые помогают запускать контейнерные рабочие нагрузки без необходимости погружаться во все тонкости управления кластером и беспокоиться об обновлениях и патчах K8s.

Но вот сам переход на Managed Kubernetes неизбежно ставит клиентов перед вопросом: как организовать переход с текущего технологического стека правильно, с наименьшими затратами и влиянием на пользователей?

Я Павел Селиванов, ведущий DevOps-инженер платформы Mail.ru Cloud Solutions, которая как раз-таки является провайдером Managed Kubernetes :)

В статье расскажу:

  • какие стратегии миграции на Managed Kubernetes существуют,
  • от чего зависит сложность и длительность миграции,
  • из каких этапов она состоит,
  • какие проблемы могут возникнуть в ходе миграции и как с ними справиться.

Читать дальше →
Всего голосов 25: ↑25 и ↓0 +25
Просмотры 2.2K
Комментарии 0

База данных как сервис: когда, зачем и как использовать DBaaS в облаке

Блог компании Mail.ru Group Облачные вычисления *Администрирование баз данных *Хранение данных *


Database by Julian-Faylona


Многие облачные платформы предлагают базы данных как сервис (Database as a Service, DBaaS). Базу можно создать в облаке в несколько кликов, не тратя время на настройку и поддержку. Но не всем приложениям облачные базы данных подходят.


Мы расскажем, как на старте проекта не ошибиться с выбором облачной СУБД. Эта статья — вольная переработка нашего вебинара (видео тут).


Мы разберем, когда стоит и не стоит использовать DBaaS, какие особенности нужно учесть при работе с ними и как выбрать подходящую базу данных с учетом особенностей ИТ-инфраструктуры, объема и специфики задач. В конце посмотрим, как устроено создание базы данных в облаке и какие операции с ней доступны, на примере DBaaS Mail.ru Cloud Solutions.

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

Лучшие практики написания комментариев к коду

Блог компании Mail.ru Group Программирование *Анализ и проектирование систем *Проектирование и рефакторинг *
Перевод
Tutorial

Известный профессор МТИ Гарольд Абельсон сказал: «Программы нужно писать для того, чтобы их читали люди, и лишь случайно — чтобы их исполняли машины». Хотя он намеренно преуменьшил важность исполнения кода, однако подчёркивает, что у программ две важные аудитории. Компиляторы и интерпретаторы игнорируют комментарии и с одинаковой лёгкостью воспринимают все синтаксически корректные программы. У людей всё иначе. Одни программы нам воспринимать легче, чем другие, и мы ищем комментарии, которые помогут нам разобраться.

Есть множество источников информации, помогающих программистам писать более качественный код — книги, сайты, статические анализаторы. Но гораздо меньше источников посвящено повышению качества комментариев. Легко измерить их количество в программе, но качество оценить сложно, и два этих параметра не обязательно взаимосвязаны. Плохой комментарий хуже отсутствия комментария. Вот несколько правил, которые помогут вам найти золотую середину.
Читать дальше →
Всего голосов 34: ↑31 и ↓3 +28
Просмотры 6.2K
Комментарии 6

Устранение неполадок в Kubernetes: в каком направлении двигаться, если что-то идет не так

Блог компании Mail.ru Group DevOps *Kubernetes *
Перевод

Источник


Команда Kubernetes as a Service в Mail.ru Cloud Solutions перевела статью, в которой автор помогает найти причины ошибок в Kubernetes, если вы совсем не понимаете, куда нужно смотреть. Далее текст от лица автора.


Kubernetes — непростая платформа, особенно когда что-то пошло не так и нужно срочно найти и устранить возникшую проблему. В основном трудности объясняются сложностью самой системы и отсутствием подробных сообщений об ошибках. Ситуация усугубляется еще и огромным количеством «шестеренок» в потоке оркестрации контейнеров — при том что для представления этого потока используется всего лишь несколько состояний. Например, есть как минимум шесть возможных причин, по которым под может зависнуть в состоянии ContainerCreating или CrashLoppBackOff.


Мы активно работаем с Kubernetes уже более трех лет и за это время составили длинный список сложных и в то же время трудно диагностируемых проблем. Большинство из них можно отнести к одной из трех категорий:


  1. Зависание пода в состоянии ContainerCreating.
  2. Ошибка CrashLoopBackOff и периодический перезапуск контейнера.
  3. Проблемы с сетью.
Читать дальше →
Всего голосов 28: ↑28 и ↓0 +28
Просмотры 5.3K
Комментарии 0

Запуск проекта в Kubernetes за 60 минут

Блог компании Mail.ru Group Облачные вычисления *DevOps *Облачные сервисы Kubernetes *


У Kubernetes высокий порог входа, не все готовы использовать его в своих проектах. Это достаточно сложная для внедрения технология, особенно если конфигурированием кластера заниматься самостоятельно. Но я попробую упростить для вас эту задачу.


Я Павел Селиванов, ведущий DevOps-инженер облачной платформы Mail.ru Cloud Solutions. Я расскажу про альтернативный способ развертывания Kubernetes — использование Managed-варианта от облачного провайдера. Мы запустим реальный API-сервис на примере нашего облака и пройдем основные шаги развертывания приложений в K8s, включая подготовку инфраструктуры, настройку CI/CD-конвейера и всех необходимых объектов Kubernetes: Deployment, Service, Ingress и так далее.


В результате попробуем убедиться, что 60 минут — вполне достаточное время для освоения азов работы с K8s при условии использования его в виде aaS.


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


Практикум в видеоформате можно посмотреть по ссылке.

Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Просмотры 7.6K
Комментарии 10

DRS как средство оптимизации размещения виртуальных машин в облаке Mail.ru Cloud Solutions

Блог компании Mail.ru Group Системное администрирование *DevOps *Облачные сервисы Распределённые системы *


Source


Планировщик распределенных ресурсов (Distributed Resource Scheduler, DRS) — необходимый компонент любой виртуализированной среды, за исключением редких случаев с небольшой и ненагруженной инфраструктурой. Основная цель DRS — выровнять нагрузку на хостах, находящихся внутри вычислительного кластера, таким образом, чтобы виртуальные машины (ВМ) и развернутые на них приложения всегда получали ресурсы в нужном объеме и работали с максимальной эффективностью, а количество задействованных физических серверов при этом оставалось минимальным.


В облаке Mail.ru Cloud Solutions используется собственная реализация механизма DRS. Я Артем Карамышев, руководитель команды системного администрирования, расскажу о базовых принципах, на которых строится работа DRS у нас в облаке.

Читать дальше →
Всего голосов 23: ↑23 и ↓0 +23
Просмотры 1.2K
Комментарии 2

Информация

Дата основания
Местоположение
Россия
Сайт
team.mail.ru
Численность
5 001–10 000 человек
Дата регистрации
Представитель
Павел Круглов