Как стать автором
Обновить

Компания Alawar Entertainment временно не ведёт блог на Хабре

Сначала показывать

Кластерное хранилище в Proxmox. Часть первая. Fencing

Время на прочтение7 мин
Количество просмотров48K
Здравствуйте!

Хочу рассказать о том, как мы используем у себя Proxmox Virtual Environment.

Я не буду описывать установку и первоначальную настройку — Proxmox очень прост и приятен и в установке, и в настройке. Расскажу о том, как мы используем систему в кластерном окружении.

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

Proxmox работает с двумя типами виртуализации: уровня операционной системы, на основе OpenVZ и аппаратной, на основе KVM. В этих двух типах используется разный подход к утилизации дискового пространства. Если в случае с OpenVZ-контейнерами работа с диском виртуальной машины осуществляется на уровне файловой системы хоста, то в случае с KVM-машинами используется образ диска, в котором находится собственная файловая система виртуальной машины. Операционная система хоста не заботится о размещении данных внутри KVM-диска. Этим занимается гипервизор. При организации работы кластера вариант с образами диска реализуется проще, чем работа с файловой системой. Данные KVM-машины с точки зрения операционной системы хоста могут просто находиться "где-то" в хранилище. Эта концепция замечательно ложится на схему работы LVM, когда образ KVM-диска находится внутри логического тома.

В случае же с OpenVZ мы имеем дело с файловой системой, а не просто с областями данных на Shared Storage. Нам нужна полноценная кластерная файловая система.

О кластерной файловой системе речь пойдет не в этой части статьи. О работе с KVM — тоже. Сейчас поговорим о подготовке кластера к работе с общим хранилищем.
Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии29

Анализ статистики во free-to-play играх: инструменты аналитика

Время на прочтение7 мин
Количество просмотров36K
Ключ к успеху при разработке free-to-play игр — анализ поведения игроков и постоянный тюнинг игрового функционала на основе статистики. Собрать статистику — это пол дела. Но как превратить гору сырых данных в информацию?

В моей прошлой статье я перечислила основные показатели, по которым можно отслеживать успешность игры. Во второй части цикла я сделаю обзор основных инструментов, которые помогут превратить данные в руководство к действию.
Читать дальше →
Всего голосов 35: ↑29 и ↓6+23
Комментарии35

Централизованная обработка исключений в Node.JS. Часть 2

Время на прочтение2 мин
Количество просмотров5.3K


Четыре месяца назад я писал о том, как можно удобно ловить исключения в node.js, в том числе и асинхронные, то есть те, которые брошены кодом, который вызван event loop'ом. В той статье я использовал модуль control-block для борьбы с ними, так как стандартный блок try-catch не справлялся.

Как оказалось, примерно в то же время Adam Crabtree выпустил стабильную версию похожего на control-block модуля под названием trycatch.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии20

Реализация Lock’ов на сайтах Alawar

Время на прочтение8 мин
Количество просмотров7.5K

Введение

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

Часто для обеспечения такой блокировки используется схема с созданием специального файла, наличие которого определяет факт занятости того или иного ресурса.

Такой подход достаточно прост в реализации, но имеет ряд недостатков. Среди недостатков можно выделить:
  • отсутствие 100% гарантии блокировки при большом количестве потоков;
  • блокировка работает в рамках одного сервера;
  • и самое неприятное – если процесс, который поставил блокировку почему-то её не снял, то остальные процессы так и не смогут получить доступ к этому ресурсу, пока вручную или каким-то другим способом эта блокировка не будет снята.

Когда нужны блокировки?

Каждый раз потребности разные, в основном они сводятся к исключению одновременных повторных действий, обеспечению последовательной работы с каким-то ресурсом, обеспечению равномерной нагрузки.
Читать дальше →
Всего голосов 20: ↑13 и ↓7+6
Комментарии11

Сбор и анализ статистики во free-to-play играх

Время на прочтение9 мин
Количество просмотров50K
Если вы разрабатываете free-to-play игры, то вам наверняка интересны вопросы, связанные со сбором и анализом статистики. Почему? Потому что статистика – это важная составляющая успеха free-to-play игр.
Цель моего цикла статей – структурировать разношерстную информацию по данному вопросу, пропустить ее через призму нашего опыта и выдать рекомендации по тому,

  • какие показатели стоит отслеживать в играх;
  • какие инструменты анализа могут помочь в работе со статистикой;
  • какие сервисы сбора и анализа статистики существуют с их достоинствами и недостатками.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии6

Как развернуть несколько версий сайтов на одном инстансе YII

Время на прочтение10 мин
Количество просмотров16K
В этой статье мы расскажем, каким образом мы организовали работу наших сайтов в одном проекте на фреймворке yii. В первой части приведем немного теории о том, в каких случаях такое может потребоваться и что для этого нужно. А во второй части приступим к технической реализации.

Часть 1


Введение

Многие компании поддерживают работу нескольких сайтов для продвижения своих товаров на разных рынках. Так делаем и мы. У нас есть сайты для русского, американского, европейского и других рынков, отдельные сайты для mobile-устройств, сайты партнерских программ, которые также различны для разных стран. В разработке мы используем фреймворк yii, на который мы в прошлом году перевели наш главный сайт Alawar.ru, а в этом году также Alawar.com, Alawar.pl и сайты iOS-устройств. Одна из особенностей деплоймента наших сайтов на yii заключается в том, что все они работают на одном инстансе этого замечательного фреймворка.

Проблемы в решении этой задачи нет, мы рассмотрим одну конкретную реализацию.
Читать дальше →
Всего голосов 36: ↑28 и ↓8+20
Комментарии9

Lo-Dash

Время на прочтение2 мин
Количество просмотров33K
Прим. переводчика: underscore.js — одна из самых известных и любимых javascript-библиотек. Но мало кто знает, что есть её более удачный клон. В одном из своих проектов мы без каких-либо проблем перешли на него и теперь решили познакомить с ним других читателей Хабрахабра.

Lo-Dash — это полноценная замена* для Underscore.js. Lo-dash имеет более высокую производительность, избавлен от некоторых багов underscore и даёт некоторые новые возможности.


Читать дальше →
Всего голосов 41: ↑36 и ↓5+31
Комментарии31

Casual Connect Kyiv 2012: тренды геймдева

Время на прочтение3 мин
Количество просмотров5.6K
На прошлой неделе в Киеве прошла конференция Casual Connect, которая традиционно собирает разработчиков, издателей и всех причастных к геймдеву четырежды в год в разных уголках нашей планеты. В Киеве такая конференция проходит уже в седьмой раз, и если раньше здесь встречались в основном PC casual разработчики, то теперь большинство команд специализируется на создании мобильных игр.

image
Фото Саши Палеевой
Читать дальше →
Всего голосов 14: ↑8 и ↓6+2
Комментарии2

Архитектура таймеров в node.js

Время на прочтение5 мин
Количество просмотров20K
Я бы хотел рассказать о таком замечательном и повсеместно используемом в node.js инструменте, как таймеры, и об их использовании в функциях setTimeout, setInterval и в модуле net. В node.js за таймеры отвечает модуль ядра timers.js. setTimeout — всего лишь доступная глобально функция из этого модуля.
Читать дальше →
Всего голосов 32: ↑30 и ↓2+28
Комментарии3

Тегирование EXE файлов без повреждения цифровой подписи

Время на прочтение5 мин
Количество просмотров21K


Всем привет!

Мы хотим рассказать о нашем опыте исследования цифровых подписей Windows PE файлов и возможном варианте использования их особенностей в своих целях. Если вам интересны технические подробности или просто чтиво о, казалось бы, давно известных вещах, добро пожаловать под кат.
Читать дальше →
Всего голосов 60: ↑55 и ↓5+50
Комментарии12

Бесшовная миграция MySQL 5.0 -> Percona Server 5.5 с переразбивкой хранилища

Время на прочтение5 мин
Количество просмотров18K
Здравствуйте.

Хочу поделиться опытом миграции боевой базы данных с MySQL 5.0 на Percona Server 5.5 под нагрузкой почти без отрыва от производства.

Опишу вкратце эволюцию нашей базы до текущего состояния


База у нас древняя, пережила несколько апгрейдов MySQL. Начинали с MySQL 3.x. С ростом нагрузки, уже на MySQL 5.0, настроили репликацию и подключили еще один сервер для чтения. Тогда мы это делали стандартными средствами MySQL, без привлечения xtrabackup — полностью блокировали сервер на время создания мастер-дампа и вывешивали на сайтах заглушки.

Затем встала следующая проблема — на томе с данными стало заканчиваться место. Плюс InnoDB-хранилище исторически располагалось в одном файле. Было рассмотрено много вариантов решения. Начиная от размещения базы на iSCSI-томе и заканчивая перетыканием в рейд более емких дисков, расширением на них volume group / logical volume с последующим расширением файловой системы.

В качестве временного варианта решили подключить iSCSI-том из виртуалки под VMWare vCloud (не реклама, честно!). vCloud стоит у нас под боком.
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии9

Windows 8. Опыт публикации приложений в Windows Store

Время на прочтение6 мин
Количество просмотров15K
Windows Store

Привет всем, эта статья – о нашем опыте публикации десктопных и WinRT приложений в Windows Store. На данный момент опубликовано и доступно в магазине одно WinRT приложение и два обычных. В процессе разработки и публикации находятся ещё несколько.

Читать дальше →
Всего голосов 44: ↑31 и ↓13+18
Комментарии3

Добро пожаловать в блог Alawar

Время на прочтение3 мин
Количество просмотров8.9K
Привет всем хабрапользователям,
Сегодня мы открываем на Хабре корпоративный блог Alawar. Для тех, кто не в курсе, мы занимаемся издательством и дистрибуцией видео игр популярного casual формата.

Издательство – это продюсерская экспертиза, финансирование игрового проекта и упаковка продукта в соответствии со всеми требованиями гейминдустрии. Именно на стороне издателя происходит локализация, тестирование, враппинг игры системой защиты. Сейчас мы издаем игры на 17 платформах, включая PС, Mac, iOS, Android, приставки, соц сети и др. Мы уже создали больше 280 собственных игр, и планируем сделать еще больше.
Читать дальше
Всего голосов 67: ↑39 и ↓28+11
Комментарии14
2