SysAdmin Anywhere Облачный сервис для удаленного администрирования рабочих станций Игорь Маркин / Андрей Калганов /
Идея Создать сервис для удаленного управления компьютерами: Доступ к компьютеру, в целях безопасности, не должен быть открыт из интернета Управление компьютером должно быть возможно из любого места Компьютер должен быть доступен в режиме онлайн
Реализация Для реализации необходим посредник, который: Поддерживает постоянный защищенный канал с удаленным компьютером Обеспечивает доступ к консоли управления Пересылает запросы и ответы
Windows Azure Почему Windows Azure? Знакомая платформа Легкое масштабирование Балансировщик нагрузки Разделение ролей Хранилище SQL Azure
Архитектура Worker Role SQL Azure Storage Silverlight WP7 Web Role WPF, Win32
Worker Role SQL Azure Storage Клиенты Администраторы Регистрация Биллинг
Worker Role Клиенты Администраторы WCF: ConcurrencyMode = Multiple, InstanceContextMode = Single Client Id Session Id Customer Id Session Key Callback Channel Admin Id Session Id Customer Id Session Key Callback Channel
Передача данных Сериализация JSON Сжатие(ZIP) Шифрование (AES) Обмен ассиметричными ключами(RSA) Передача симметричного ключа(AES) Авторизация (SHA256) Авторизация Передача данных
Что не подошло? Очереди (queues) Ответ может превысить максимальный размер для сообщения Можно служебную информацию оставить в сообщении, а текст ответа записать в BLOB. В сообщении указать ссылку на BLOB При ссылке на BLOB, если сообщение удалено по тайм-ауту, BLOB остается
Что не подошло? Очереди (queues)
Что не подошло? Таблицы (tables) Только три ключевых поля (PrimaryKey, RowKey и Timestamp) При использовании в запросе других полей, большее время на запрос Может оказаться, что этих полей пока еще нет и из-за этого происходит исключение Трудно привыкнуть после опыта работы с SQL
Спасибо за внимание! Идеи и предложения по реализации SysAdmin Anywhere: