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

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

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


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

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

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

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


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


Читать дальше →
Всего голосов 28: ↑28 и ↓0 +28
Просмотры 8.2K
Комментарии 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.7K
Комментарии 8

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

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

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

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

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

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

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

В этой статье мы заберемся на эту вершину, где в последнее время часто вбивают новые колышки текстовые модели. Мы спроецируем мир текстовых ML-моделей на наш сервис, поговорим про эволюцию и решение задач Почты, связанных с текстами. Запасайтесь кислородом и свободным временем.
Читать дальше →
Всего голосов 20: ↑20 и ↓0 +20
Просмотры 1.5K
Комментарии 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.3K
Комментарии 10

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

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

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

Меня зовут Андрей, я программист в студии IT Territory/My.Games, работаю в команде экспериментальных проектов. И хочу рассказать вам об особенностях нашего прототипирования игр. 
Читать дальше →
Всего голосов 31: ↑30 и ↓1 +29
Просмотры 4.1K
Комментарии 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.8K
Комментарии 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.1K
Комментарии 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.2K
Комментарии 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.5K
Комментарии 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

Как запускать в облаке приложения, требовательные к latency? СУБД Arenadata DB на сверхбыстрых облачных дисках

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

Источник

Arenadata DB — мощная распределенная аналитическая база данных для высоконагруженных проектов. Эта СУБД может в короткие сроки обслуживать огромное количество аналитических запросов к данным, но такой режим работы делает ее требовательной к производительности дисков: она должна быть высокой, чтобы обеспечить быстрый отклик системы. Из-за этого Arenadata DB не так просто развернуть в облаке: «под капотом»‎ должны быть быстрые диски и возможность выбора их типа с учетом нагрузки проекта — для достижения нужной скорости работы.

Обычно облака не гарантируют скорости отклика, подходящей для работы со сверхнагруженными системами. Но на платформе Mail.ru Cloud Solutions запущена полностью управляемая Arenadata DB Cloud и есть быстрые диски для ее работы High IOPS SSD. Их производительности вполне достаточно для большинства приложений. А для систем с особо высокими нагрузками, где критически важно минимизировать время отклика до десятых долей миллисекунды, теперь можно подключить и сверхбыстрые диски Low Latency NVMe — они предназначены для задач, где скорость отклика выходит на первый план.

Меня зовут Дмитрий Яценко, я являюсь преподавателем-исследователем в Южном федеральном университете, тренером по продуктам в Arenadata, а также по совместительству разработчиком и системным интегратором в других организациях. В этой статье я покажу результаты тестирования Arenadata DB c Low Latency NVMe, которые помогли улучшить производительность СУБД при по-настоящему высоких нагрузках.
Читать дальше →
Всего голосов 29: ↑29 и ↓0 +29
Просмотры 1.8K
Комментарии 6

Информация

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