вторник, 12 декабря 2017 г.

Kubernetes. Часть 1

Kubernetes - популярная платформа оркестрации контейнеров с открытым исходным кодом, автоматизирующая развёртывание и масштабирование приложений. Вам могут встретиться термины Kube или k8s.

С момента появления,  она постепенно стала модной темой статей и обсуждений не только в кругах разработчиков, в том числе и по той причине, что несет реальные выгоды для бизнеса. Поддерживает основные технологии контейнеризации, включая Docker, rkt, также возможна поддержка технологий аппаратной виртуализации.

Оригинальная версия была разработана компанией Google для внутренних нужд, впоследствии система передана под управление Cloud Native Computing Foundation. Используются рядом крупных организаций и интернет-проектов, в частности, инфраструктура фонда Wikimedia Foundation перенесена с самостоятельно разработанного программного обеспечения для организации кластеров на Kubernetes.

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

Основные разработчики первых версий внутренней системы Google - были программисты Джо Беда (Joe Beda), Брендан Бёрнс (Brendan Burns) и Крэйг Маклаки (Craig McLuckie), в дальнейшем к проекту присоединились их коллеги Брайан Грант (Brian Grant) и Тим Хокин (Tim Hockin). Основной язык программирования системы - Go. На разработку и внутреннюю идеологию Kubernetes серьёзно повлиял другой продукт Google, оставшийся внутренней разработкой - система управления кластерами Google Borg, над которым ранее работал ряд ключевых разработчиков Kubernetes.

Оригинальное наименование проекта — Project Seven (осылка к героине сериала Star Trek, возвращённой в индивидуальное и дружественное к людям состояние из статуса члена нечеловеческого роевого кибернетического разума Коллектива Боргов); семь ручек на штурвале логотипа проекта — аллюзия на этот художественный образ.

В 2014 года опубликованы исходные коды проекта, а 21 июля 2015 года выпущена версия 1.0; после чего Google в партнёрстве с Linux Foundation организовал специальный фонд Cloud Native Computing Foundation (CNCF), которому корпорация передала Kubernetes в качестве начального технологического вклада.

Все начиналось с монолитных приложений, Они работали как единый процесс или же как несколько мелких процессов, распределенных по разным серверам. Все компоненты в них были взаимосвязаны и, когда требовалось изменить один из элементов, разработчикам приходилось заново выкладывать приложение. Жизнь разработчика должна была стать проще, но это не так: компонентов много, система разрастается. Управлять ею становится труднее. Но самое сложное — понять, где расположить элементы, чтобы инфраструктура работала максимально эффективно, но при этом не увеличить затраты на оборудование. Вручную это делать долго и тяжело: требовалась автоматизация.

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

Комментариев нет:

Отправить комментарий