Сообщения

Сообщения за 2013

Виртуальная экскурсия в ЦОД университета

Изображение
Вместе с коллегами сделал виртуальную экскурсию в центр обработки данных ПГНИУ.

И его же в виде мобильного приложения под Android:

Зачем запихивать сайт в мобильное приложение, если его и так можно посмотреть в браузере? Просто в Google Play при поиске по слову datacenter мое приложение найдется вторым :).

Есть и вторая причина: хотелось попробовать в деле Apache Cordova на простеньком проекте, который не отнимет много времени. Попробовал. Ничего нового не узнал:
1) Делаешь сайт и приложение разом - это клёво. При этом под Android можно не уметь программировать.
2) Мобильное приложение тормозит, причем сильно.
3) Важно, что часть работы можно доверить коллегам, т.к. заполнить готовый шаблон страницы полезными словами и рисунками может любой коллега, а вот писать приложение под мобильное устройство уже далеко не каждый.

В принципе, можно приложение перенести и на другие платформы и Cordova должна это сильно облегчить, но время которое я выделил для себя под этот проект уже истекло :(.…

Высокодоступная архитектура игрового сервиса: доступность 24/7/365

Изображение
Продолжаем работать над задачей построения высокодоступной архитектуры для игрового сервиса, состоящего из серверов приложений (java), веб-сервера (сайт, форум), баз данных (MySQL, Postgree).

В прошлый раз была решена задача обеспечения катастрофоустойчивости на случай выхода ЦОДа из строя http://arsen-borovinskiy.blogspot.ru/2013/10/blog-post.html

Теперь надо обеспечить доступность 24/7/365.

Ну, первым делом надо оставить предыдущее решение из трех ЦОДов и обеспечить:

1) Предупреждение аварийных ситуаций.
2) Резервное копирование.
3) Быстрое реагирование на аварийную ситуацию.

Более подробно о схеме написано в посте.


Предупреждение аварийных ситуаций В целях упрощения процедуры управления системой, снижения последствий человеческой ошибки и возможности быстрого отката сделанных изменений все сервера должны работать в виде виртуальных машин на хостах VMware ESX под управлением VMware vSphere (как наиболее развитой системы виртуализации).

В качестве стандартной процедуры предшествуюше…

Архитектура катастрофоустойчивого сервиса

Изображение
Продолжаю выполнять ТЗ.

Задача: предложить высокодоступную архитектуру игрового приложения на случай отказа ЦОДа. Приложение использует игровые сервера на Java и БД MySQL и Postgree. Имеется веб-сервер с которого осуществляется вход на сайт. Обеспечить отказоустойчивость или высокую доступность на уровне логики самого приложения нет возможности.
Предисловие Без вмешательства в логику приложения и клиентской части игры обеспечить отказоустойчивость не представляется возможным. Надо ограничиться высокой доступностью.

Высокая доступность при выходе из строя ЦОДа может быть обеспечена только путем размещения приложения в двух разных, географически-разнесенных ЦОДах. Желательно, чтобы эти ЦОДы принадлежали разным компаниям.
Один ip-адрес в двух ЦОДах Основная сложность задачи сводится к тому, как организовать работу сервиса с одним ip-адресом в разных ЦОДах. Замечу, обеспечение миграции ip-адреса в том или ином виде является обязательным, т.к. если клиентское приложение еще можно научить п…

Описание интернет-магазина из тестового задания

Изображение
Опубликовал тестовое задание про интернет-магазин. По условиям задания, авторизация не требуется и пользователи могут добавлять и удалять товары, редактировать каталог и совершать покупки.
Описание программы Общие сведения Программа написана в netbeans 7.3 на базе php-фреймворка symfony2, ORM-фреймворка doctrine2, css-фреймворка bootstrap 3 и javascript-библиотеки jQuery 1.

Тестирование проводилось под Linux (CentOS 6.4) с php 5.3.3, apache 2.2, mysql 5.1.

Исходный код доступен на github.

Поддерживается работа в основных десктопных (ie8+) и мобильных браузерах.
Технологические особенности CRUD-действия с большинством сущностей (пользователи, корзины, товары, категории) можно осуществлять через RESTful-сервисы.
УстановкаУстановка описана на github.

Демо-версия Демо-версия временно доступна на сайте: http://live.psu.ru/shop/app_dev.php/api/catalog/1. Можете добавлять или редактировать контент, покупать что угодно.
Использование программы Каталог Когда пользователь заходит на сайт, он в…

Seclore FileSecure - DRM-защита документов PDF и Office

Изображение
Довелось поучаствовать в запуске проекта, связанного с DRM-защитой документов. Об используемом по и хочется рассказать, закрыв пробел в полном отсутствии вменяемой документации на русском.
Поиск DRM-системы защиты Как это иногда бывает, под конец года внезапно появилась идея прикупить систему DRM-защиты для электронных учебников в библиотеку ВУЗа. Начали искать и из известных систем нашли только Adobe и Microsoft. Под Microsoft были доступны программы снятия защиты, а Adobe за каждую выдачу электронных книг хочет денег. Кроме того, ФСБ не хочет пускать Adobe в Россию из-за слишком стойкой криптографии.

Через некоторое время IBM вывела на индийскую компанию Seclore, разработавшую систему защиты корпоративных документов. Конечно, IBM тоже видело в этом выгоду, предлагая Seclore в качестве надстройки над их аналогом SharePoint, а именно над FileNet. Но, я расскажу именно о Seclore и лишь потом о том, как это интегрируется с FileNet.

Кстати, причина по которой мы не могли найти Seclore и…

Мои проекты

В связи с неспешным поиском работы, решил выписать для собеседования свои проекты и примененные на них технологии.


1) Аналог SlideShare: http://www.campus.psu.ru/docs/
(php, drupal7, ajax, nodejs, socket.io, ghostscript)
Особенность: студенты могут подключиться к презентации лектора и синхронизовать по нему перелистывание слайдов. Подробнее...

2) Аналог YouTube: http://www.campus.psu.ru/myvideo
(php, drupal7, ffmpeg, mysql, nginx, rtmp, erlyvideo)
Особенность: распределенная конвертация и хранение видео. Вычислительные ноды трех разных типов. Автоматические создание видеоканалов на основе тегов. Поддержка мобильных устройств. Подробнее...

3) Онлайн-лекции: http://www.campus.psu.ru/tv/videocam/list
(axis, erlyvideo, rtmp, php, ajax, android, as3, adobe air)
Особенности: зуммирование камерой и получение FullHD фотографий через AJAX (в непубличном доступе), приложение для Android

4) Киоск самообслуживания. Автоматизация заведения учетных записей в LDAP по электронной карте. Репликация д…

Голосовое оповещение для Nagios

Изображение
Типичное использование Nagios предполагает использование одной или нескольких панелей, на которых отображаются все происходящие события и открыты вкладки с наиболее важными показателями. И типичная хотелка к такой системе - а вот бы еще мониторинг все сообщения проговаривал вслух! Ну что, тогда такой задачей и займемся.
Готового решения мне найти не удалось, так что придется велосипедить.
Общая схема следующая: 1. В Nagios происходит событие.
2. Обработка события передается на скрипт  libexec/audio-host-notify.sh или libexec/audio-service-notify.sh.
3. Указанные обработчики частично переводят текст события на русский язык и отправляют  на веб-сервер.
4. Веб-сервер отправляет текст события в браузер пользователя системы мониторинга.
Таким образом мы получили текст события в браузер, но нам надо его озвучить.
5. Браузер вставляет HTML5 тег Audio, в котором в качестве источника звука указывается специальный сервер озвучивания текст. Текст закодирован в URL типа <audio src="http…

Обзор Элетронной библиотечной системы Библиотех.

Изображение
Так получилось, что наш ВУЗ купил себе отечественную элетронную билиотечную систему (ЭБС) БиблиоТех (далее библиотех). Купили ее главным образом из-за контента, который можно докупать к библиотеке, а ее функционал и то как она работает оказались на этапе внедерния для нас полным и не очень приятным сюрпризом.
Постараюсь раскрыть технические аспекты этой системы, поскольку на сайте описание составлено так, что по нему ничего толком не понятно. За некоторые моменты поругаю, за другие похвалю.

Итак, нас запросили подготовить SUSE Linux Enterprise (покупать ОС не обязательно, просто по окончанию триального периода пропадет доступ к обновлениям). Поставили мы систему внутрь нашей виртуальной машины с 8 vCPU, 8 ГБ ОЗУ, 2 ТБ хранилищем на основе SATA-дисков в raid5. Продавцы запросили доступ по сети и всю установку и настройку библиотеха сделали самостоятельно, что довольно здорово. Только после этого мы узнали что мы купили.
Архитектура Библиотех написан на C# с использованием страниц ASP …

Обзор почтового клиента Pronto Pro!

Изображение
Pronto Pro! - почтовый клиент, работающий с почтовым сервером CommunigatePro (сейчас этот сервер позиционируется как система унифицированных коммуникаций).

Программа написана на Adobe Flash и Adobe Air, за счет чего может работать:
1) В браузерах, поддерживающих Adobe Flash.
2) В Mac OS и Windows как инсталлируемая программа, написанная на Adobe Air.
3) В Android как приложение, написанное на Adobe Air.
4) Под Linux уже не работает, так как Adobe прекратила выпускать Air под Linux начиная с версии 3.2.

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

Я буду рассказывать про использование Pronto Pro!, установленного как приложение под Windows, поскольку у нас устаревшая версия CommunigatePro и в нем мобильная в…