Как контейнеризация может помочь в скорости и эффективности проекта?

Автор: Roger Morrison
Дата создания: 28 Сентябрь 2021
Дата обновления: 17 Июнь 2024
Anonim
Виртуализация и контейнеризация / Docker
Видео: Виртуализация и контейнеризация / Docker

Содержание


Источник: Сашазамараша / Dreamstime.com

вынос:

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

Если вы что-нибудь слышали о виртуализации сети, практике абстрагирования сетей от чистого металла и предоставления им виртуальных ресурсов, вы, вероятно, слышали о контейнерах. Если вы прочитали достаточно, чтобы выяснить, чем отличаются ИТ-контейнеры, скажем, от морских контейнеров, вы немного знакомы с их структурой и составом.

Контейнер - это ресурс виртуализации, который совместно использует ядро ​​клонированной операционной системы с другими контейнерами. Это требует меньше усилий для настройки, чем виртуальная машина в целом, а также имеет некоторые другие ключевые преимущества. Системы, включающие контейнеры Docker и Kubernetes, позволяют компаниям создавать и масштабировать новыми и интересными способами.

Почему контейнеры так популярны, и как они способствуют повышению эффективности и эффективности операций? Вот некоторые идеи некоторых пионеров контейнерных технологий, которые применили эту философию в своих компаниях и организациях. (Подробнее о контейнерах см. Как контейнеры помогают корпоративным приложениям.)


Инкапсуляция, микросервисы и артефакты

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

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

«Мы считаем, что контейнер, или, скорее, изображение контейнера, является новым артефактом доставки программного обеспечения», - говорит Крис Сиборовски, генеральный директор NebulaWorks, который работает с контейнерами с первых дней своего существования в 2000-х годах. «Что я имею в виду и почему? Артефакт доставки - это исполняемая версия приложения разработчика, которая готова к развертыванию. В прошлом это было то, что включало в себя только сам исполняемый код, что оставляло разрешение зависимостей времени выполнения операциям. Используя образ контейнера, разработчики могут включать все свои зависимости, значительно уменьшая вероятность сбоя во время выполнения из-за человеческой ошибки во время развертывания приложения ».


«Контейнеры, которые позволяют организациям легко переносить как приложения, так и их зависимости между компьютерами, имеют большой смысл для организаций, которые занимаются внутренней разработкой программного обеспечения», - говорит Питер Цай, старший технологический аналитик SpiceWorks, отмечая, что контейнеры все еще относительно новая технология. «Сторонние решения для контейнеров не так надежны, как в среде виртуализации. По данным Spiceworks, в 2018 году контейнеры использовали только 19 процентов организаций, хотя ожидается, что это число вырастет до 35 процентов к 2020 году ».

Скотт Бьюкенен, вице-президент по маркетингу в Heptio, объясняет это в форме полезной логистической аналогии.

Нет ошибок, нет стресса - ваше пошаговое руководство по созданию изменяющего жизнь программного обеспечения без разрушения вашей жизни

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

«Подумайте о переезде», - говорит Бьюкенен. «Вам понадобится много картонных коробок. Итак, вы размещаете их по всему дому, а затем заполняете их всем, что важно для вас: приложениями. Вместо того, чтобы заклеить их и потерять доступ к вашим вещам, они остаются открытыми, так что вы можете реорганизовать ваши вещи между коробками по мере необходимости. И когда вам нужно переместить эти ящики, это намного проще, чем поставить свой дом на колеса. Эти картонные коробки являются контейнерами, и они предлагают вам возможность переносить ваши вещи между местами, включая публичные и частные облака ».

Философия DevOps

Контейнеры также помогают компаниям разрабатывать что-то под названием «DevOps», что является своего рода святым Граалем в корпоративных технологиях. Идея заключается в том, что вы связываете отделы разработки и эксплуатации, помогаете командам лучше сотрудничать, и это улучшает конвейер и создает более гибкую систему выпуска. (Хотите узнать больше о DevOps? Посмотрите, как менеджеры DevOps объясняют, что они делают.)

«Разработчики получают не только выгоду, но и операции», - объясняет Сиборовский, описывая некоторые из этих функций DevOps. «Поскольку образ контейнера является переносимым, операционные группы могут запускать образ контейнера на ЛЮБОМ хосте, который имеет совместимую среду выполнения контейнера, например, Docker, и по мере роста его использования использовать инструменты оркестровки, такие как Kubernetes, для почти ЛЮБОГО стека приложений, для ЛЮБЫХ типов инфраструктуры, для Например, локальные и облачные ».

Генеральный директор StackRox Али Голшан (Ali Golshan) далее объясняет некоторые принципы DevOps, заложенные в дизайн контейнеров, и описывает, как контейнеризация может помочь улучшить конвейер.

«Контейнерство позволяет организациям выпускать приложения и внедрять новые функции для клиентов гораздо быстрее», - говорит Гольшан. «Поскольку контейнеры изолируют код на более мелкие единицы, разработчики могут работать более независимо для улучшения функциональности. Контейнерная технология также уменьшает нагрузку на тестирование, что ускоряет внедрение программного обеспечения, поскольку разработчики могут тестировать только новый код, будучи уверенными, что они не «сломали» другую часть приложения ».

Дэн Бартоу из ConDati описывает, как контейнеризация в Kubernetes помогла его компании развиваться.

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

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

Безопасность

В дополнение ко всему, что контейнеры обещают с точки зрения функциональности, у них также есть некоторые важные преимущества безопасности. Гольшан может сказать много о том, как «тонкая поверхность атаки» при развертывании контейнеров снижает риск.

«Поверхность атаки с контейнерами становится как упрощенной, так и сложной», - говорит Гольшан. «С одной стороны, каждый« кусок »кода меньше, что уменьшает поверхность атаки. Кроме того, контейнеры содержат много декларативной информации о том, как их следует настраивать, маркировать и использовать, что может повысить безопасность ».

И, добавляет он, это еще не все.

«С другой стороны, контейнеры вводят новые поверхности атаки двумя способами. Эфемерность - это один из элементов. Поскольку контейнеры обычно приходят и уходят, можно принять радикальные меры безопасности, например, убить контейнер, если он действует «неправильно». Но эта эфемерность также означает, что злоумышленники могут легче скрыть свои следы и помешать криминалистике, запустив атаку, извлекая данные и затем убить контейнер, когда они закончат. Второй элемент более широкой поверхности атаки связан с другими элементами экосистемы, в первую очередь с оркестровщиком. Оркестраторы предоставляют организациям возможность масштабировать создание, развертывание и управление контейнерами, но в отрасли наблюдается множество атак и уязвимостей, связанных с оркестратором. Tesla увидела, что ее инфраструктура в Kubernetes была скомпрометирована таким образом, что злоумышленники могли добывать криптовалюту, и в отчете было подробно описано, как злоумышленник мог скомпрометировать кластеры Shopify Kubernetes ».

В случае с Бартоу фактический сторонний аудит безопасности подтвердил, что меньшая площадь атаки контейнеров является плюсом для ConDati.

«Мы только что завершили тестирование на проникновение третьей стороной… первое, что мы сделали, и они дословно сказали нам, что у нас« небольшая поверхность атаки », - говорит Бартоу. «Кубернетес - огромная часть того, почему это так».

Все вышеперечисленное указывает на большой потенциал контейнеров в завтрашнем мире бизнеса ИТ. Подумайте о том, как эти существенные преимущества могут быть применены к любой современной бизнес-модели.