Продолжая нашу серию статей о полезных приложениях для предпринимателей, теперь очередь контейнеров. Хотя эта технология используется в основном в области информационных технологий, в отличие от всех других, которые мы обсуждали, я на собственном горьком опыте убедился, что мой отец был прав, когда сказал мне, что нужно знать все. Учитывая, что программное обеспечение сегодня является ключевым компонентом любого стартапа, неплохо иметь базовое представление о том, как оно работает.
Я начну с извинений за банальность использования транспортных контейнеров для иллюстрации статьи (что делают все, кто пишет по этой теме). Но, поскольку это лучшая аналогия, объясняющая, что такое контейнеры и для чего они нужны в вычислениях, я ухожу в отставку. к любой видимости оригинальности.
Так же, как транспортные контейнеры возникли, чтобы адаптироваться к различиям в конфигурации средств передвижения, чтобы избежать потери времени на размещение груза, его цифровая версия служит для того, чтобы программистам не приходилось адаптировать свои приложения ко всем возможным конфигурациям.
Что такое контейнеры
Контейнер состоит из всего необходимого для выполнения программы: приложение, а также все его зависимости, библиотеки и другие двоичные файлы, а также файлы конфигурации, необходимые для его запуска, размещены в одном пакете. Благодаря тому, что он содержит все необходимое для его выполнения, различия между различными операционными системами становятся несущественными.
Со всеми из нас случалось, что нам нравится определенная программа, но обновление операционной системы делает необходимую зависимость больше недоступной. Если мы знаем, как это сделать, мы можем создать контейнер с необходимыми зависимостями и программой и запустить его без проблем.
Еще одна концепция, связанная с контейнерами, - это микросервисы. Вместо упаковки всего приложения вы можете создать контейнер, который выполняет функцию, которая нужна нескольким программам. Допустим, у вас есть платное онлайн-издание. Функция доступа к публикации и функция биллинга будут использовать информацию из одной базы данных. Поэтому у вас может быть отдельный контейнер для последнего.
Отличия от виртуальных машин и автономных пакетов
Основное отличие виртуальных машин в том, что они имитируют оборудование, то есть на практике это похоже на использование операционной системы на обычном компьютере.
Для автономных форматов пакетов, таких как Snap, FlatPak или Appimage, Хотя они содержат все зависимости для функционирования, они по-прежнему используют компоненты из операционной системы хоста.
Преимущества контейнеров
- Подход с использованием микросервисов: благодаря контейнерам можно разделить приложения на их функции-компоненты и повторно использовать их.
- Последовательность: поскольку программа, установленная в контейнере, включает в себя все необходимое для ее выполнения, ее поведение будет одинаковым независимо от того, когда и где она выполняется.
- Переносимость. Пока для создания и запуска контейнеров используется одна и та же платформа, программа будет работать независимо от того, работает ли она в Windows, Linux или Mac.
Контейнерные технологии
Некоторые из технологий, доступных для развертывания контейнеров:
Docker
Es Платформа наиболее известен созданием и запуском контейнеров.
Docker позволяет упаковывать, доставлять и запускать приложения в любой публичной или частной облачной или настольной операционной системе.
Контейнеры Red Hat CodeReady
Es инструмент от Red Hat Он используется с виртуальной машины и может использоваться для разработки и тестирования контейнеров.
LXD
Разработано Canonical, эта система управления Из контейнеров это дает нам опыт, очень похожий на использование виртуальной машины. У нас есть ряд предварительно сконфигурированных образов дистрибутивов Linux, и мы можем создать свои собственные.
Kubernetes
Поскольку управление несколькими контейнерами может быть довольно сложным. Kубернеты иЭто инструмент, который позволяет нам легко вносить изменения и обновления во все используемые контейнеры. Если что-то пойдет не так, Kubernetes позволяет вам вернуться к предыдущему состоянию, перезапустить контейнеры, в которых произошел сбой, удалить их и заменить.
Сингулярность
Это решение создания и исполнения контейнеров для ученых. Контейнеры, созданные с помощью Singularity, можно использовать для упаковки полных научных рабочих процессов, программного обеспечения и библиотек и даже данных.
Вы также можете импортировать образы, созданные с помощью Docker, без необходимости его установки.
Singularity может импортировать ваши образы Docker без необходимости устанавливать Docker или быть суперпользователем.