Рубрика «контейнер»

ОK, а мне точно нужен Kubernetes? - 1

В большой компании часто очень тяжело согласовывать выделение ресурсов под рабочие задачи. Весь Agile с хрустом разбивается о стену трёхнедельного согласования с ИБ новой инфраструктуры. Поэтому к нам часто приходят запросы на перевод инфраструктуры на контейнеры, чтобы выкатывать изменения не раз в три месяца, а когда нужно бизнесу. Просят при этом настроить/внедрить Kubernetes как самый популярный инструмент оркестрации, хотя, как показывает практика, из 10 проектов он нужен максимум в трёх. А по факту стоит или использовать не Kubernetes, а OpenShift, или работать с ним не в своей инфраструктуре, а в публичном облаке, например. Я попробую рассказать про реальные бизнес-кейсы, которые мы решали, опишу основные различия между Kubernetes и OpenShift. А ещё о том, как мы согласование ИБ до 30 минут урезали, и все остались живы.

У нас было несколько интересных внедрений, в которых мы разгребали накопившиеся проблемы заказчика. Например, к нам пришла розничная компания, которой надо было выкатывать новые фишки непрерывно. Конкуренция дикая! А у них только инфраструктура под разработку каждый раз готовится от шести до десяти дней, из-за чего возникают простои. Решать вопрос с помощью закупки нового железа для тестирования и разработки — дорого и путь в никуда. В итоге мы перевели ИТ-инфраструктуру на контейнерную виртуализацию. В результате благодаря контейнерам нагрузка сократилась на 40 %, а инфраструктура под новую разработку теперь готовится от одного до четырёх часов. Бонус — экономия, так как все процессы можно было продолжать вести на базе имеющихся мощностей без покупки новых.Читать полностью »

Эта статья — продолжение статьи про организацию процессов Continuous Integration / Continuous Delivery, автоматизирующих сборку, тестирование и доставку приложений применимо к решениям на платформе InterSystems.

Рассмотрим такие темы как:

  • Контейнеры 101
  • Контейнеры на разных этапах цикла разработки ПО
  • Continuous Delivery с контейнерамиЧитать полностью »

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

Мы попросили поделится своим кейсом разработки и доставки микросервисов Алексея Баитова, ведущего инженера 2ГИС. Поговорим на тему архитектурных решений, деплоя и возможности масштабирования. Расспросим про трендовые и просто удобные инструменты для работы.

Не бойся микросервиса: Алексей Баитов об использовании микросервисной архитектуры на практике - 1
Читать полностью »

Полное практическое руководство по Docker: с нуля до кластера на AWS - 1

Вопросы и ответы

Что такое Докер?

Определение Докера в Википедии звучит так:

программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы; позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, а также предоставляет среду по управлению контейнерами.

Ого! Как много информации. Читать полностью »

Новый OpenVZ 7.0 является гибридом старого доброго OpenVZ и коммерческого Virtuozzo. Хотелось бы думать, что он взял лучшее от обоих родителей, но это не так. В данном случае под нож попал функционал Shared Folders.

Shared Folders в OpenVZ 7.0 - 1

Ранее в OpenVZ данная задача решалась .mount-файлами (подробнее тут). Но теперь контейнеры называются как-нибудь так «600adc12-0e39-41b3-bf05-c59b7d26dd73» и создание файла 600adc12-0e39-41b3-bf05-c59b7d26dd73.mount проблему не решает, он просто игнорируется при запуске. Конечно, наличие папки /vz/private/600adc12-0e39-41b3-bf05-c59b7d26dd73/scripts намекает, что возможен запуск каких-то скриптов, но найти документацию об этом не удалось.

В Virtuozzo Shared Folders были реализованы через prlctl set, но в OpenVZ этот функционал портирован не был. Не верите — проверка под катом.
Читать полностью »

На Хабре есть много статей о том, что контейнерная виртуализация — это плохо или хорошо, но пошаговой интструкции по ее установке и настройке мне найти не удалось. Постараюсь заполнить этот пробел.

Виртуализация — очень актуальная тема, так как позволяет более рационально использовать ресурсы сервера. И, признаюсь, мне было очень приятно познакомиться с OpenVZ.

OpenVZ — это реализация технологии виртуализации на уровне операционной системы, которая базируется на ядре Linux. OpenVZ позволяет на одном физическом сервере запускать множество изолированных копий операционной системы, так называемых контейнеров (Virtual Environments, VE).

Поскольку OpenVZ базируется на ядре Linux, в роли «гостевых» систем могут выступать только дистрибутивы GNU/Linux. Однако виртуализация на уровне операционной системы в OpenVZ дает также и многие преимущества, а именно: удобство в администрировании, плотное размещения виртуальных контейнеров в хост-системе (это обычно положительно отражается на стоимости VPS-хостинга) и несколько лучшую производительность по сравнению с технологиями полной виртуализации.

Конечно, и недостатков достаточно. Главный из них, что в отличие от KVM, модули OpenVZ не входят в ванильное ядро, поэтому для фунционування последнего необходимо отдельное ядро и версия его далеко не последняя. На момент публикации этой статьи последняя стабильная версия — 2.6.32-042stab084.14. Из этого по сути следует, что хост-системой на OpenVZ может выступать не каждый дистрибутив, а только с ядром 2.6.32 и около версии. Поэтому, скажем, OpenVZ — ядро под Ubuntu 12.04 LTS вряд ли заведется (что я уже попробовал), ведь ядро здесь версии 3.8. Но не все так плохо, так как для RedHat 6 (CentOS 6, Scientific Linux 6) и Debian 7 все просто устанавливается и эти дистрибутивы официально поддеживаются Parallels.

Следующий недостаток в том, что все контейнеры работают под одним ядром (ядром хост-системы) и добавить необходимый модуль ядра уже будет не так просто, как в случае с технологиями полной виртуализации. В результате на OpenVZ-контейнерах не сможет работать NFS-сервер или другие сервисы, которым необходима тесная интегрирация с ядром. О некоторых других недостатках и преимуществах систем виртуализации можно почитать например здесь.

Теория без практики — мертва, поэтому самое время описать установку и настройку хост-системы для OpenVZ. В качестве хост-системы я выбрал CentOS 6.5. Добавляем репозитории для установки ядра OpenVZ и утилит для работы с контейнерами:

# wget -P /etc/yum.repos.d/  http://ftp.openvz.org/openvz.repo
# rpm --import http://ftp.openvz.org/RPM-GPG-Key-OpenVZ

Читать полностью »

Disclaimer

Все, описанное в статье, является личным практическим опытом и не претендует на звание «истины в последней инстанции».

Преамбула

Здравствуйте. Я увлекаюсь созданием компьютерных игр. Моим любимым направлением, в котором я постоянно стараюсь совершенствоваться и узнавать что-то новое, являются браузерные многопользовательские игры.
Для создания прототипа для одной идеи в качестве контейнера сервлетов используется Apache Tomcat. Он общается с клиентской частью по http протоколу. Для такого типа игры схема вполне действующая, причем достаточно простая в реализации.
Но одной из преждевременных оптимизаций(да, это плохо, но тут я решил себе это позволить) стала идея использовать постоянное соединение между сервером и клиентом, т.к. в такой схеме не тратится время на открытиезакрытие соединения в каждом запросе. Для реализации схемы рассматривалось WebSocket API для Tomcat, но стало интересно написать свой велосипед, поэтому, встречайте рассказ о разработке под катом. Читать полностью »

Высокоуровневые API для Linux контейнеров
Компания DotCloud разработала и выложила в открытый доступ систему Docker — высокоуровневые интерфейсы для доступа к Linux-контейнерам (LXC). Это идеальный инструмент для работы с контейнерами на любом сервере x64, для развёртывания крупномасштабных веб-инсталляций, кластеров БД, частных PaaS и т.д.

LXC — система виртуализации на уровне операционной системы для запуска нескольких изолированных экземпляров Linux на одном компьютере. LXC не использует виртуальные машины, а создаёт виртуальное окружение с собственным пространством процессов и сетевым стеком. Все экземпляры LXC используют один экземпляр ядра ОС.

Ключевые особенности Docker

  • Изоляция файловой системы: каждый контейнер процесса работает полностью отдельной корневой файловой системе
  • Изоляция ресурсов: системные ресурсы, как CPU и память, можно выделять по-разному для каждого контейнера процесса, используя cgroups
  • Сетевая изоляция: каждый контейнер процесса работает в своём собственном пространстве имён, с виртуальным интерфейсом и собственным IP-адресом

Читать полностью »


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