Управление серверами с телефона: мобильный клиент сервиса RUVDS

в 10:15, , рубрики: ruvds, Блог компании RUVDS.com, мобильное приложение, Серверное администрирование, Софт, хостинг

Контролировать работу VDS со смартфона не всегда удобно. Маленькие экраны не позволяют нормально работать с сайтом хостера и в этом случае на выручку приходит приложение.

Управление серверами с телефона: мобильный клиент сервиса RUVDS - 1

Оптимизация сайта для мобильных телефонов — задача непростая. Небольшая диагональ экрана серьезно ограничивает возможности веб-разработчика, к тому же сценарии использования одного и того же сервиса с разнотипных устройств существенно отличаются между собой. Мы решили развивать сайт с прицелом на браузеры для настольных компьютеров и планшетов, а для смартфонов создать отдельное приложение. Такой подход сейчас популярен и он неплохо себя зарекомендовал. Пока доступна только программа для Android, в которой реализованы самые необходимые клиентам функции — со временем их станет больше. 

Установка и подключение

RuVDS Client можно скачать бесплатно в магазине Google Play. Отметим, что в данный момент программа для работы требует минимум прав на устройстве.

Управление серверами с телефона: мобильный клиент сервиса RUVDS - 2

Для подключения в настройках личного кабинета необходимо разрешить внешнюю авторизацию. Обратите внимание, что двухфакторная аутентификация при работе через API пока недоступна и эта настройка несколько снизит безопасность вашей учетной записи. Пароль от неё не должен использоваться на других сервисах, а хранить его необходимо в надёжном месте. После включения опции на привязанный к аккаунту адрес придёт электронное письмо с уведомлением.

Возможности программы

Пока в RuVDS Client реализована только самая необходимая функциональность. В приложении можно быстро узнать баланс лицевого счёта, посмотреть историю пополнений и списаний, а также проверить состояние серверов и управлять их работой.

Управление серверами с телефона: мобильный клиент сервиса RUVDS - 3

Помимо основных характеристик сервера, в мобильном клиенте RuVDS доступна статистика использования ресурсов процессора, накопителей и сети. С помощью специальной вкладки администратор может увидеть, как чувствуют себя подопечные машины, в какое время с ними возникали проблемы и из-за чего они возникали. Ещё одна вкладка позволяет выполнять основные команды: останавливать и перезапускать сервер, в т.ч. аварийно, если он не откликается. Создание и удаление VPS мы пока добавлять в приложение не стали по соображениям безопасности — это лучше делать в личном кабинете на сайте.

Управление серверами с телефона: мобильный клиент сервиса RUVDS - 4

Стек технологий

В основе RuVDS Client лежит паттерн MVP, реализованный с помощью библиотеки Moxy. Такой подход мы сочли оптимальным, хотя можно также использовать MVVM или MVI — это вопрос личных предпочтений и наличия у корпоративных разработчиков необходимого опыта. Наш продукт построен на Single Activity Application: главный плюс здесь — жизненный цикл приложения равен жизненному циклу activity, а кроме того работать с фрагментами гораздо удобнее. Навигация реализована при помощи Cicerone — это одна из лучших подобных библиотек, пригодная для создания мобильных программ любой сложности. Также важным для нас стал вопрос выбора DI: поскольку приложение написано на Kotlin, рассматривались Dagger2 и Koin. В итоге мы остановились на последнем варианте, поскольку хотелось попробовать что-то более простое.

Перспективы

В нынешней версии нет каких-то сложных решений, но её архитектура позволяет быстро создавать новую функциональность или изменять существующую. Хотелось бы добавить двухфакторную аутентификацию через API, заказ и удаление серверов, изменение их конфигураций, а также доступ к консоли (экран, клавиатура, мышь). Возможно стоит написать версию для планшетов. Чтобы сделать программу удобнее, мы хотим получить фидбек от клиентов и поэтому решили провести небольшой опрос.

Автор: ru_vds

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js