divmagic Make design
SimpleNowLiveFunMatterSimple
За пределами Ubuntu: инструменты разработки Canonical, обеспечивающие современную веб-разработку
BlogsDevOpsЗа пределами Ubuntu: инструменты разработки Canonical, обеспечивающие современную веб-разработку
DevOps

За пределами Ubuntu: инструменты разработки Canonical, обеспечивающие современную веб-разработку

Компания, стоящая за Ubuntu, также создает эти удивительно полезные инструменты для разработчиков

Когда вы слышите «Canonical», первое, что приходит на ум, — это Ubuntu, самая популярная в мире облачная операционная система. Но лондонская компания незаметно собрала арсенал инструментов с открытым исходным кодом, которые меняют то, как разработчики создают, тестируют и поставляют программное обеспечение. От мгновенных локальных виртуальных машин до Kubernetes производственного уровня — побочные проекты Canonical работают далеко за пределами своей весовой категории. Это глубокое погружение исследует три скрытых жемчужины в портфолио Canonical, которые должны быть в арсенале каждого фронтенд-разработчика, DevOps-инженера и системного архитектора.

Multipass: Мгновенные виртуальные машины Ubuntu на любой платформе

Бич кроссплатформенного разработчика — это единообразие среды. Вы пишете код на macOS, развертываете на Linux и молитесь, чтобы CI-конвейер поймал то, что не заметила ваша локальная машина. Multipass устраняет это трение. Это легковесный менеджер виртуальных машин, который одной командой в терминале запускает свежий экземпляр Ubuntu. Никаких Vagrantfile, никакого GUI VirtualBox, никакой сложной сетевой магии.

Multipass использует родные гипервизоры: Hyper-V на Windows, QEMU на macOS и KVM на Linux, что делает его значительно быстрее альтернатив на основе VirtualBox. Время загрузки на современном оборудовании составляет менее трех секунд.

Как Multipass превосходит Docker для чистых Linux-нагрузок

Контейнеры замечательны, но они разделяют ядро хоста. Когда вам нужна среда с настоящим ядром Linux — для тестирования модулей ядра, запуска snap-пакетов или использования systemd — Multipass предоставляет полноценную ОС, а не наряженный процесс. CLI ощущается родным для современных рабочих процессов:

# Запустить виртуальную машину с именем 'dev-node', 4 ГБ ОЗУ и 2 ЦП
multipass launch --name dev-node --memory 4G --cpus 2

# Выполнить команду напрямую
multipass exec dev-node -- sudo apt update

# Примонтировать директорию хост-проекта внутрь виртуальной машины
multipass mount ~/my-project dev-node:/home/ubuntu/work

Для фронтенд-разработчиков, работающих с серверным рендерингом или бэкендами на Node.js, возможность тестировать на точной копии производственной инфраструктуры локально является преобразующей. Никаких больше споров «работает на моей машине».

Impact of Canonical Developer Tools

LXD: Системные контейнеры, которые ощущаются как виртуальные машины

LXD стирает грань между контейнерами и виртуальными машинами. Это «системные контейнеры»: они запускают полноценную систему инициализации, имеют постоянное хранилище и ведут себя в точности как отдельный Linux-сервер. При этом они потребляют значительно меньше ресурсов, чем традиционная виртуальная машина, поскольку разделяют ядро хоста. LXD — это ответ Canonical на вопрос: «Что, если бы внутри Docker была полноценная ОС?»

laptop, notebook, cellphone, computer, desk, workspace, workplace, wireless technology, codes, coding, data, display, electronics, html, internet, keyboard, monitor, office, pen, screen, smartphone, technology, wireless, working, laptop, computer, coding, coding, coding, coding, coding

Реальный рабочий процесс: локальная микросервисная архитектура

Представьте, что вы создаете современное веб-приложение с фронтендом на React, Python API, кэшем Redis и базой данных PostgreSQL. С помощью LXD вы можете смоделировать всю производственную топологию локально:

# Создать контейнер для базы данных
lxc launch ubuntu:22.04 db-server
lxc exec db-server -- apt install postgresql -y

# Создать контейнер для API
lxc launch ubuntu:22.04 api-server
lxc exec api-server -- apt install python3-pip -y

# Назначить статические IP-адреса и связать их
lxc network attach lxdbr0 db-server eth0
lxc config device set db-server eth0 ipv4.address=10.0.0.10

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

LXD изначально интегрируется с cloud-init, что позволяет подготавливать контейнеры с теми же инструментами управления конфигурацией, которые используются в AWS, Azure и Google Cloud. Ваша локальная тестовая среда соответствует производственной инфраструктуре вплоть до версий пакетов ОС.

Developer Adoption Rate

Juju: Моделирование приложений за пределами YAML-хаоса

Инфраструктура как код обычно означает огромные YAML-файлы и Bash-скрипты, которые становятся неподдерживаемыми в течение нескольких месяцев. Juju использует принципиально иной подход: он моделирует отношения между сервисами, а не только их конфигурации. «Пакет» Juju — это декларация всего вашего стека и того, как компоненты соединяются.

Экосистема Charm автоматизирует операционные знания

«Charm» — это оператор, фрагмент кода, который инкапсулирует операционную мудрость развертывания и управления сервисом. Нужен высокодоступный кластер PostgreSQL с автоматическим переключением при сбое? Для этого есть charm, поддерживаемый экспертами по базам данных. Развернуть его можно одной командой:

juju deploy postgresql --channel 14/stable -n 3
juju deploy my-django-app
juju relate my-django-app postgresql:db

Последняя строка — это магия. juju relate говорит Juju, что вашему Django-приложению нужна база данных. Juju автоматически настраивает PostgreSQL, создает базу данных и пользователя и вставляет строку подключения в переменные окружения вашего Django-приложения. Никакой ручной настройки.

Преодоление разрыва между разработкой и производством

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

code, coding, computer, data, desktop, ethernet, monitor, office, programmer, programming, screen, software, technology, work, working, blue computer, blue office, blue technology, blue laptop, blue work, blue data, blue code, blue coding, blue software, blue programming, code, coding, coding, coding, coding, coding, programmer, programmer, programming, software, software, software

  1. Разрабатывайте локально с помощью виртуальных машин Multipass, соответствующих вашей целевой версии Ubuntu.
  2. Симулируйте полную топологию с помощью контейнеров LXD для каждого сервиса.
  3. Моделируйте развертывание с помощью пакетов Juju, которые определяют отношения и правила масштабирования.
  4. Развертывайте идентично в любом публичном или частном облаке или на «голом железе».

<ComparisonTable headers="

Начните создавать с помощью DivMagic сегодня

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

Get DivMagic for 42% off

Limited time deal for 22:45