Рубрика «Блог компании Mail.Ru Group»

Steal: кто крадёт у виртуалок процессорное время - 1

Привет! Хочу рассказать простым языком о механике возникновения steal внутри виртуальных машин и о некоторых неочевидных артефактах, которые нам удалось выяснить при его исследовании, в которое мне пришлось погрузиться как техдиру облачной платформы Mail.ru Cloud Solutions. Платформа работает на KVM.

CPU steal time — это время, в течение которого виртуальная машина не получает ресурсы процессора для своего выполнения. Это время считается только в гостевых операционных системах в средах виртуализации. Причины, куда деваются эти самые выделенные ресурсы, как и в жизни, весьма туманны. Но мы решили разобраться, даже поставили целый ряд экспериментов. Не то чтобы мы теперь всё знаем о steal, но кое-что интересное сейчас расскажем.
Читать полностью »

image

С 9 по 14 апреля в Копенгагене проходила конференция DjangoCon Europe 2019. Полный надежд и стремлений я прибыл на данное мероприятие, а уезжал в глубоком смятении. В статье я попробую передать мои впечатления от конференции и прокомментировать столь резкую смену отношения к Django.

Disclaimer: в статье присутствует нетолерантность, безаппеляционность суждений и неоправданная критика.

Читать полностью »

С бородой, в тёмных очках и в профиль: трудные ситуации для компьютерного зрения - 1

Технологии и модели для нашей будущей системы компьютерного зрения создавались и совершенствовались постепенно и в разных проектах нашей компании — в Почте, Облаке, Поиске. Вызревали как хороший сыр или коньяк. Однажды мы поняли, что наши нейросети показывают отличные результаты в распознавании, и решили свести их в единый b2b-продукт — Vision, — которым мы теперь пользуемся сами и предлагаем воспользоваться вам.

Сегодня наша технология компьютерного зрения на платформе Mail.Ru Cloud Solutions успешно трудится и решает очень сложные практические задачи. В её основе лежит ряд нейронных сетей, которые обучены на наших дата-сетах и специализируются на решении прикладных задач. Все сервисы крутятся на наших серверных мощностях. Вы можете интегрировать в свои приложения публичный API Vision, через который доступны все возможности сервиса. API быстродействующий — благодаря серверным GPU среднее время отклика внутри нашей сети на уровне 100 мс.

Заходите под кат, там подробный рассказ и много примеров работы Vision.
Читать полностью »

Citymobil — a manual for improving availability amid business growth for startups. Part 1 - 1

In this first part of an article series «Citymobil — a manual for improving availability amid business growth for startups» I’m going to break down the way we managed to dramatically scale up the availability of Citymobil services. The article opens with the story about our business, our task, the reason for this task to increase the availability emerged and limitations. Citymobil is a rapid-growing taxi aggregator. In 2018, it increased by more than 15 times in terms of number of successfully completed trips. Some months showed 50% increase compared with the previous month.

The business grew like a weed in every direction (it still does): there was an increase in server load, team size and number of deployments. At the same time the new threats to service availability emerged. The company faced a task of the most importance – how to increase availability without compromising company growth. In this article, I’ll talk about the way we managed to solve this task in a relatively short time.
Читать полностью »

T+ Conf 2019 не за горами - 1

17 июня (понедельник) в офисе Mail.ru Group пройдёт вторая ежегодная конференция
Tarantool Conference, или коротко — T+ Conf. Она адресована как новичкам, так и опытным разработчикам и архитекторам в корпоративном секторе.

Вас ждут новые доклады и воркшопы по использованию in-memory computing, Tarantool / Redis / Memcached, кооперативной многозадачности и языка Lua для создания высоконагруженных отказоустойчивых сервисов в Digital и Enterprise.
Читать полностью »

Гнев на код: программисты и негатив - 1

Я смотрю на кусок кода. Возможно, это худший код, что мне когда-либо встречался. Чтобы обновить всего одну запись в базе данных, он извлекает все записи в коллекции, а затем отправляет запрос на обновление каждой записи в базе, даже те, которые обновлять не требуется. Тут есть map-функция, которая просто возвращает переданное ей значение. Есть условные проверки переменных с очевидно одинаковым значением, просто поименованных в разных стилях (firstName and first_name). Для каждого UPDATE’а код отправляет сообщение в другую очередь, которая обрабатывается другой serverless-функцией, но которая выполняет всю работу для другой коллекции в той же базе данных. Я не упомянул, что эта serverless-функция из облачной «сервис-ориентированной архитектуры», содержащей более 100 функций в окружении?

Как вообще можно было такое сделать? Я закрываю лицо и явственно всхлипываю сквозь смех. Мои коллеги спрашивают, что случилось, и я в красках пересказываю Worst Hits Of BulkDataImporter.js 2018. Все сочувственно кивают мне и соглашаются: как они могли так с нами поступить?
Читать полностью »

Менеджер по продукту: чем он занимается и как им стать? - 1

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

Поэтому мы сделали своеобразное введение в специальность, решили рассказать о необходимых качествах и решаемых продакт-менеджером задачах. Стать профессионалом в этой сфере очень не просто. Потенциальный продакт-менеджер должен объединять в себе множество качеств, свойственных самым разным профессиям.
Читать полностью »

Как сделать первые шаги в робототехнике? - 1

Роботизация и автоматизация становятся всё востребованнее, и многим хотелось бы научиться создавать подобные системы и устройства. Но с чего начать, как освоить азы? Мы сделали для вас небольшую подборку русскоязычных и англоязычных YouTube-каналов с учебными материалами и методическими пособиями по робототехнике.
Читать полностью »

Конференция mailto:CLOUD — про облака и вокруг - 1

Друзья, приглашаем вас 25 апреля в наш московский офис на конференцию mailto:CLOUD, посвященную российскому облачному рынку. Здесь встретятся бизнес и IT, чтобы обсудить актуальные проблемы и поделиться опытом.

Сегодня многие высокопроизводительные технологии задействуют облака. На mailto:CLOUD мы обсудим актуальные тренды, успешный опыт компаний и трудности, которые встречаются на пути к внедрению новых технологий. А в дискуссионных частях российские и западные провайдеры поделятся своим видением развития облачного рынка.
Читать полностью »

GraphQL Voyager как инструмент для поиска уязвимостей - 1

В настоящее время все больше компаний начинают использовать GraphQL. Это относительно новая технология (если быть более точным, то это язык запросов), которая призвана решить существующие проблемы REST.

Если вы еще не знакомы с GraphQL, то рекомендую начать с ресурсов:

  • https://www.howtographql.com/ — интерактивное обучение с заданиями и контрольными точками. Обучение начинается с нуля и заканчивается разработкой GraphQL-приложения.
  • https://graphql.org/learn/ и https://graphql.github.io/graphql-spec/June2018 — обучение в формате документации. Подходит, если вы хотите изучить конкретную тему.

В этой статье я хочу поделиться одним из инструментов для поиска уязвимостей в GraphQL API. Если вы искали уязвимости в GraphQL API, то наверняка сталкивались с такими проблемами:

  • Вместо документации у вас огромный нечитаемый JSON (GraphQL schema).
  • Веб-приложение использует только часть GraphQL API, поэтому вы не видите все данные и эндпойнты.

В решении этих проблем хорошим помощником является GraphQL Voyager, который визуализирует GraphQL schema. Визуализация значительно облегчает понимание GraphQL API и помогает быстрее найти уязвимости.
Читать полностью »