Фильтр По Тегам

Термины глоссария разбиты по категориям. Используйте фильтры для просмотра терминов по тегам.

Bare metal-компьютер

Под компьютером типа bare metal («голое железо») понимается физический компьютер, а точнее — сервер, на котором установлена одна и только одна операционная система. Это различие важно, поскольку многие, если не большинство, серверов являются виртуальными машинами. Физический сервер — это, как правило, достаточно серьезный компьютер с мощным аппаратным обеспечением. Установка операционной системы и запуск приложений непосредственно на физическом оборудовании, без виртуализации, называется работой на «голом железе». Какую проблему решает В вычислительной технике изначально применялся подход, в котором на один компьютер устанавливалась только одна операционная система...

DevOps

DevOps — это методология, в рамках которой команды отвечают за весь процесс от разработки приложения (DEVelopment) его эксплуатации (OPerationS) в production. Отсюда и название DevOps. Методология DevOps выходит за рамки внедрения набора технологий и требует полного пересмотра культуры и процессов. DevOps предполагает наличие групп инженеров, которые работают над небольшими независимыми компонентами, а не над крупным функциональным блоком, в котором такие компоненты были бы тесно связаны, позволяя сократить случаи передачи ответственности за компонент от одной команды к другой — а это нередко влечет за собой появление ошибок...

DevSecOps

Термин DevSecOps означает слияние компетенций в области разработки (DEVelopment), безопасности (SECurity) и эксплуатации (OPerationS) на уровне культуры. Он добавляет в подход DevOps приоритеты в области безопасности — причем так, чтобы минимально вмешиваться в процессы разработки и эксплуатации. Как и DevOps, DevSecOps — это некий культурный сдвиг, который форсируется как самим фактом внедрения новых технологий, так и специфическими методами их внедрения. Какую проблему решает Практики DevOps включают непрерывную интеграцию и непрерывное развертывание...

eBPF

Технология eBPF (англ. extended Berkley Packet Filter — расширенный фильтр пакетов Беркли) позволяет небольшим программам или скриптам запускаться в пространстве ядра ОС Linux без необходимости изменять код ядра или загружать модули ядра. В ОС Linux есть два пространства: пространство ядра (kernel space) и пространство пользователя (user space). Ядро представляет основу операционной системы и имеет неограниченный доступ к аппаратному обеспечению. Приложения находятся в пространстве пользователя. Когда возникает необходимость в привилегированном доступе, приложения отправляют запрос к ядру...

Kubernetes

Kubernetes (часто сокращается до K8s) — это система для управления контейнерами (т. н. оркестратор) с открытым исходным кодом. Kubernetes автоматизирует жизненный цикл контейнеризированных приложений в современных инфраструктурах, выступая в качестве «операционной системы для центров обработки данных», которая управляет приложениями в распределенных системах. Kubernetes планирует (т. е. распределяет) контейнеры по узлам кластера, попутно обеспечивая их различными инфраструктурными ресурсами: например, балансировщиками нагрузки, постоянным хранилищем и т. д., которые необходимы для запуска контейнеризованных приложений...

Абстракция

В контексте вычислительной техники абстракция — это представление, которое скрывает специфику реализации от потребителя сервисов (потребителем является компьютерная программа или человек), делая систему более простой и понятной. Хороший пример — операционная система (ОС) компьютера. Она абстрагирует все тонкости работы компьютера. Пользователю не нужно ничего знать о процессоре, памяти и работе с программами: он просто управляет операционной системой, а та разбирается со всеми нюансами. Все они скрыты за «занавесом» ОС или абстракцией...

Автомасштабирование

Автомасштабирование — это способность системы автоматически масштабироваться, как правило, в контексте вычислительных ресурсов. При автомасштабировании ресурсы по мере необходимости автоматически добавляются — в соответствии с меняющимися потребностями пользователей. Автомасштабирование может производиться на основе различных метрик, таких как память или время выполнения процесса. Автомасштабирование обычно ассоциируется с облачными managed-сервисами, поскольку те предлагают больше опций и реализаций этой функции, чем традиционные «физические» (on-premise) виды инфраструктуры. Ранее инфраструктура и приложения проектировались с учетом пиковой загрузки системы...

Архитектура клиент-сервер

В клиент-серверной архитектуре логика (или код), составляющая приложение, распределяется между двумя или более компонентами: клиентом, запрашивающим выполнение некой работы (например, веб-приложение Gmail, работающее в браузере), и одним или несколькими серверами, удовлетворяющими этот запрос (например, сервис отправки почты, работающий на компьютерах Google в облаке). В этом примере исходящие письма отправляются клиентом (веб-приложением, работающим в браузере) на сервер (компьютеры Gmail, которые пересылают их получателям). Этот подход отличается от автономных приложений (например, десктопных), которые выполняют всю работу в одном месте...

Гибкий подход к разработке программного обеспечения (Agile)

Набор практик, в которых особое внимание уделяется итеративным циклам разработки и самоорганизующимся командам. В отличие от каскадной (waterfall) модели, в которой ценность проявляется только в самом конце проекта, agile-разработка ПО ориентирована на непрерывное и инкрементное получение ценности и эволюционное совершенствование самого процесса. Какую проблему решает Определить, понять и донести требования до всех заинтересованных сторон в программном проекте очень сложно, если вообще возможно. Тем не менее, заказчики хотят, чтобы их программные проекты выполнялись в срок, с хорошим качеством, в рамках бюджета и с соблюдением требований...

Глоссарий Cloud Native

Глоссарий Cloud Native Глоссарий Cloud Native преназначен для того, чтобы в сфере cloud native, сложность которой уже стала притчей во языцех, было легче разобраться не только IT-специалистам, но и представителям бизнеса. Именно поэтому мы делаем упор на простоту (доступный язык, свободный от заковыристых терминов; примеры, которые понятны любому человеку с базовым пониманием технологий; отказ от лишних подробностей). Работа над глоссарием ведется под руководством подкомитета CNCF по деловой ценности (Business Value Subcommittee, BVS)...

Как внести свой вклад

Добро пожаловать Добро пожаловать в руководство по работе над Глоссарием Cloud Native. Благодарим за проявленный интерес! Поучаствовать в развитии проекта можно разными способами: Поработать над существующим Issue Предложить новое определение Дополнить существующее определение Локализовать глоссарий Общие сведения о глоссарии CNCF Цель этого глоссария — упростить знакомство с нативными облачными (cloud native) технологиями, которые печально известны своей сложностью и запутанностью, и сделать их более доступными для пользователей. Материалы Глоссария Cloud Native хранятся в репозитории на GitHub...

Канареечное развертывание

Стратегия канареечных развертываний (canary deployments) начинается с двух окружений: одно из них уже обслуживает пользователей, другое — содержит обновленный код (но пока без трафика). Трафик постепенно переключается с исходной, старой версии приложения на новую. Начинают обычно с минимального процента (например, с 1%) и постепенно увеличивают долю трафика, которая поступает в новую версию, пока та не достигнет 100%. Такая стратегия позволяет протестировать новую версию ПО в production, получить обратную связь, диагностировать ошибки и при необходимости быстро откатиться к старой стабильной версии...

Кластер

Кластер — группа компьютеров или приложений, которые объединены общей целью и работают совместно. В контексте нативных облачных вычислений этот термин чаще всего применяется к Kubernetes. Кластер Kubernetes — это набор сервисов (или рабочих нагрузок), каждый из которых выполняется в собственном контейнере (и обычно на разных машинах). Совокупность всех этих контейнеризованных сервисов, соединенных по сети, представляет собой кластер. Какую проблему решает Программное обеспечение, работающее на одном компьютере, представляет собой единую точку отказа: если этот компьютер сломается или кто-то случайно отключит его питание, критически важная для бизнеса система может быть выведена из строя...

Контейнер

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

Контейнеризация

Контейнеризация — это упаковка приложения и всех необходимых зависимостей в образ контейнера. Процесс сборки контейнера должен соответствовать стандарту Open Container Initiative (OCI). Если на выходе получается образ контейнера, соответствующий этому стандарту, то не важно, какое именно средство контейнеризации использовалось. Какую проблему решает До того как контейнеры получили широкое распространение, для запуска множества приложений на одном «железном» (bare-metal) сервере использовались виртуальные машины. Однако виртуальные машины гораздо «тяжелее» контейнеров, и для их работы необходим гипервизор...

Нативная облачная безопасность

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

Нативная облачная технология

Нативные облачные (cloud native) технологии, также называемые нативным облачным стеком, — это технологии, которые используются для создания нативных облачных приложений. Эти технологии позволяют компаниям создавать и запускать масштабируемые приложения в современных и динамичных средах, таких как публичные, приватные и гибридные облака, максимально используя сильные стороны облачных вычислений. Они изначально разрабатываются для максимального использования преимуществ облачных вычислений. Пример реализации такого подхода — контейнеры, service mesh, микросервисы и неизменяемая (immutable) инфраструктура. Какую проблему решает Нативный облачный стек включает в себя множество различных технологий, призванных дать ответ на самые разные вызовы...

Нативные облачные приложения

Нативные облачные (cloud native) приложения специально спроектированы для того, чтобы извлечь максимальную пользу из достижений в сфере облачных вычислений. Такие приложения легко интегрируются с различными видами облачных архитектур, используя облачные ресурсы и их способность к масштабированию. Также этот термин применяется и по отношению к приложениям, которые используют новейшие наработки в области инфраструктуры, вызванные развитием облачных вычислений. К нативным облачным приложениям относят приложения, которые работают в центрах обработки данных облачных провайдеров и на локальных (on-premise) платформах, предназначенных для работы с облаками...

Непрерывная доставка (CD)

Непрерывная доставка (Continuous Delivery), часто сокращенно называемая CD, — это набор практик, при которых изменения кода автоматически развертываются в приемочное окружение — или, в случае непрерывного развертывания, в production. CD обязательно включает процедуры, обеспечивающие адекватное тестирование программного обеспечения перед развертыванием, и предоставляет возможность отката изменений при необходимости. Непрерывная интеграция — первый шаг на пути к непрерывной доставке: т.е. сначала должен успешно завершиться процесс внесения изменений (merging), и только после этого можно переходить к тестированию и развертыванию...

Непрерывная интеграция (CI)

Непрерывная интеграция (Continuous Integration, CI) — это практика, при которой правки внедряются в код как можно чаще. CI является предварительным условием для непрерывной доставки (CD). Процесс CI традиционно начинается с внесения правок в код в системе контроля исходного кода (Git, Mercurial или Subversion) и заканчивается получением протестированной сборки, готовой к использованию CD-системой. Какую проблему решает Программные системы часто бывают большими и сложными, их поддерживает и обновляет множество разработчиков. Работая параллельно над разными частями системы, эти разработчики могут вносить такие изменения, которые будут приводить к конфликтам, и непреднамеренно «портить» работу смежных команд...

Непрерывное развертывание (CD)

Непрерывное развертывание (Continuous Deployment, CD) развивает идеи непрерывной доставки, позволяя выкладывать готовое программное обеспечение непосредственно в production. Непрерывное развертывание (CD) идет рука об руку с непрерывной интеграцией (CI), поэтому обычно их объединяют в единый процесс CI/CD. CI помогает убедиться, что изменения, внесенные в код приложения, работают как и было задумано, а CD автоматически развертывает приложение в целевые окружения (от тестовых до production). Какую проблему решает Выпуск новых версий программного обеспечения может быть трудоемким процессом и сопровождаться ошибками...

Облачные вычисления

Облачные вычисления (cloud computing) — собирательное название систем, которые предоставляют вычислительные ресурсы (процессорные, сетевые и дисковые) по запросу через сеть Интернет. В результате пользователи получают доступ к вычислительным мощностям, которые физически расположены в совершенно другом, удаленном месте. Обычно облака подразделяются на приватные и публичные в зависимости от того, предназначена ли облачная инфраструктура для одной организации или используется множеством открытых публичных сервисов совместно. Какую проблему решает Классически существовало два способа, которыми организации могли увеличить свои вычислительные мощности...

Оркестрация контейнеров

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

Программный интерфейс приложения (API)

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

Руководство по стилю

Это руководство по стилю поможет вам разобраться в целевой аудитории глоссария, структуре определений, стиле и требуемом уровне детализации. Глоссарий Cloud Native придерживается стандартного руководства по стилю репозитория CNCF. Кроме того, он следует перечисленным ниже правилам: Используйте простой, доступный язык; избегайте технического жаргона и «модных» словечек. Избегайте разговорного стиля. Повествование должно быть последовательным и конкретным. Избегайте сокращений. Старайтесь не использовать страдательный залог. Стремитесь формулировать предложения в позитивной форме. Не используйте восклицательные знаки (допустимы только в цитатах)...

Сине-зеленое развертывание

Сине-зеленое развертывание — стратегия обновления работающих компьютерных систем с минимальным временем простоя. Оператор использует два окружения: «синее» и «зеленое». Одно из них обслуживает production-трафик (в нем работает текущая версия, с которой взаимодействуют пользователи), а другое в это время обновляется. После успешного завершения тестирования «зеленого» окружения (с новой версией) production-трафик переключается на него (часто с помощью балансировщика нагрузки). Отметим, что в этой стратегии окружения обычно переключаются сразу со всеми сервисами. Однако иногда этот термин используется по отношению к отдельным сервисам в системе...

Хаос-инженерия

Хаос-инженерия (chaos engineering, CE) — подход, при котором над распределенной production-системой проводятся различные эксперименты, цель которых — убедиться, что она способна противостоять турбулентным и неожиданным ситуациям. Какую проблему решает Практики SRE и DevOps концентрируются на методах повышения отказоустойчивости и надежности систем. Способность системы выдерживать сбои, обеспечивая при этом надлежащее качество обслуживания, как правило, является одним из требований при разработке программного обеспечения. Перебои в работе (основанного на микросервисах) приложения могут быть связаны с различными аспектами: инфраструктурой, платформой и другими компонентами, которые могут изменяться...

Шлюз API

Шлюз API объединяет уникальные API-интерфейсы различных приложений, делая их доступными в одном месте. Он позволяет перенести ключевые функции, такие как аутентификация, авторизация и лимитирование количества запросов между приложениями, в централизованно управляемое место. Шлюз API выступает единым интерфейсом для (часто внешних) пользователей API. Какую проблему решает Делая API доступными для внешних потребителей, логично позаботиться и о единой точке входа — она облегчит управление и позволит контролировать, кто и когда подключается к API...