Anbox Cloud: контейнерный и виртуальный Android на Linux VPS
С выходом версии 1.30 Anbox Cloud появилась возможность запускать полные образы Android не только в контейнерах, но и внутри лёгких виртуальных машин. Это расширяет сценарии использования платформы, сохраняя привычный опыт работы с API и инструментами управления.
Что изменилось в архитектуре
Ранее Anbox Cloud работал исключительно с контейнеризированным Android: образ помещался в контейнер, который сам запускался внутри другого контейнера, управляемого LXD. Теперь добавлен второй режим — полная система Android в виде виртуальной машины, также размещённой внутри контейнера LXD. При этом LXD остаётся базовым слоем изоляции и управления ресурсами независимо от выбранного режима.
Контейнерный vs виртуальный Android
- Контейнерный Android подходит для массового развёртывания приложений, тестирования и автоматизации, где важны быстрый старт, низкое потребление ресурсов и лёгкая горизонтальная масштабируемость.
- Виртуальный Android обеспечивает полный контроль над стеком ОС: собственное ядро, системные сервисы, вендорские компоненты. Он востребован для разработки прошивок, валидации на уровне устройства, работы с кастомными AOSP/AAOS образами и тестирования, требующего точного воспроизведения поведения железа.
Оба подхода сосуществуют в одной платформе, а выбор делается в зависимости от задачи: для приложений — контейнер, для работы с системой — виртуальная машина.
Подготовка VPS к работе с Anbox Cloud
Поскольку Anbox Cloud опирается на LXD, первым шагом является установка и инициализация этого демона на Ubuntu‑based VPS.
# Обновление пакетов и установка LXD с поддержкой ZFS (рекомендованный бэкенд)
sudo apt update && sudo apt upgrade -y
sudo apt install -y lxd zfsutils-linux
# Инициализация LXD (можно принять значения по умолчанию или настроить хранилище)
sudo lxd init
# Добавление текущего пользователя в группу lxd для работы без sudo
sudo usermod -aG lxd $USER
newgrp lxd
# Убедимся, что сервис LXD запущен и будет стартовать при загрузке
sudo systemctl enable --now lxd
После этого LXD готов принимать образы, предоставляемые Anbox Cloud, и управлять их жизненным циклом через знакомые CLI или REST‑API.
Безопасность и изоляция
LXD обеспечивает строгую изоляцию workloads благодаря использованию пространств имён ядра, контрольных групп (cgroups) и, при необходимости, AppArmor профилей. В конфигурации Anbox Cloud каждый экземпляр Android — будь то контейнер или виртуальная машина — получает собственный файловый сетевой стек, что исключает взаимное влияние между workloads. Для дополнительной защиты рекомендуется:
- Ограничить доступ к API Anbox Cloud только доверенными сетями с помощью firewall (ufw или nftables).
- Включить журналирование всех операций через системный журнал (systemd‑journald) и пересылать логи в централизованную систему мониторинга.
- Регулярно обновлять пакеты lxd и ядра, применяя security‑patches вовремя.
Мониторинг и сбор метрик
Поскольку LXD экспортирует метрики через Prometheus‑совместимый endpoint, их можно подключить к существующей стеку мониторинга. Полезные показатели:
- Загрузка CPU и памяти каждого контейнера/VM с Android.
- Количество запущенных экземпляров и их состояние (running, stopped, error).
- Сети‑трафик, связанный с виртуальными интерфейсами lxdbr0.
Для виртуализированного Android особенно вамониторинг работы ядра и загрузки инициализационных сервисов, что можно делать через стандартные инструменты внутри гостя (например, top, dmesg) и собирать их через агенты, установленные в образ.
Когда выбирать виртуализированный Android
Если ваш проект требует:
- Кастомного ядра или модулей, специфичных для оборудования;
- Изменения системных сервисов или добавления вендорских библиотек;
- Тестирования на уровне совместимости с физическими устройствами (например, автомобильные AAOS‑образы);
- Воспроизведения ошибок, связанных с низкоуровневым взаимодействием с hardware.
тогда виртуальный режим будет предпочтительнее. В остальных случаях — массовый запуск приложений, автоматизированное тестирование UI, CI‑pipeline — достаточно контейнерного Android, который обеспечивает более высокую плотность размещения и быстрый старт.
Заключение
Релиз Anbox Cloud 1.30 демонстрирует, как платформа может гибко адаптироваться под разные уровни абстракции Android, оставаясь при этом построенной на надёжных Linux‑технологиях: LXD, systemd, пространства имён и cgroups. Администраторы VPS могут быстро поднять окружение, обеспечить его безопасность и интегрировать в существующие системы мониторинга и резервного копирования, получая при этом возможность запускать как простые приложения, так и полноценные системные образы Android в облачной инфраструктуре.