3.7/5 - (3 голоса)

Что говорит твой инженер DevOps? Что такое кластер Kubernetes и почему серверы должны быть настроены с использованием манифестов Terraform? Почему вы должны заботиться об агентах Zabbix? Вы просто хотите, чтобы работа была выполнена, и проект был запущен вовремя!

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

DevOps Глоссарий

Это большой список, но далеко не исчерпывающий список терминов DevOps, объясненных простыми словами.

Агент — часть программы «сервер-агент», выполняемая в каком-либо экземпляре или контейнере для предоставления входных данных для приложения централизованного сервера (например, агента мониторинга Zabbix)

Agile (Гибкая разработка программного обеспечения)- методология доставки программного обеспечения, основанная на коротких итерационных этапах разработки, где каждый спринт должен приводить к эксплуатационному продукту. Это позволяет легко корректировать требования проекта в случае необходимости и дает возможность творчества и гибкости в командах разработчиков.

Артефакт — любое описание процесса в конвейере доставки программного обеспечения, на которое можно ссылаться. Наиболее распространенными артефактами являются сценарии использования, диаграммы классов, модели UML и проектные документы.

Amazon AWS — Amazon Web Services — самый популярный поставщик облачных услуг (CSP) согласно отчету о состоянии DevOps за 2017 год, предлагающий широкий спектр услуг облачных вычислений для предприятий любого масштаба.

Ansible — механизм автоматизации для различных ИТ-задач, таких как подготовка и настройка облачной инфраструктуры. Ansible — это инструмент с открытым исходным кодом, который взаимодействует с несколькими программными модулями через соединение SSH, скрипты PowerShell или различные API.

API — интерфейс прикладного программирования, набор четко сформулированных правил взаимодействия между различными программными модулями.

Apache — один из самых популярных веб-серверов с открытым исходным кодом (уступает только NGINX), кроссплатформенный инструмент для запуска веб-сайтов и приложений.

ALB — Балансировка нагрузки приложений — сервис AWS, используемый для разделения входящего трафика между несколькими экземплярами приложений в нескольких зонах доступности для обеспечения бесперебойной работы вашего приложения.

ASG — Auto Scaling Group — сервис AWS, используемый для объединения нескольких экземпляров EC2 в логические группы в целях проектирования инфраструктуры и простоты управления; группа состоит из идентичных экземпляров, которые добавляются или удаляются в соответствии с требованиями рабочей нагрузки.

AWS CLI — интерфейс командной строки AWS — инструмент AWS для управления различными сервисами и продуктами AWS из терминала командной строки.

Автоматизация выпуска приложений или ARA — общий подход к развертыванию нового кода в производстве с минимальными человеческими действиями с помощью автоматизированных конвейеров CI / CD

Amazon Aurora — сервис AWS, предоставляющий облачную реляционную базу данных, ставший самым быстрорастущим сервисом в истории AWS . Эта база данных в 5 раз быстрее, чем MySQL, и в 3 раза быстрее, чем PostgreSQL, не говоря уже о том, что она является базой данных по умолчанию для многих продуктов и сервисов AWS.

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

Bastion host — специальный сервер, используемый для доступа к частным сетям и противостояния хакерским атакам. Обычно размещает одно приложение (например, прокси-сервер) и ключи SSH для доступа и управления базовой облачной инфраструктурой.

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

Bucket — логическая единица в Amazon S3 (Simple Storage Service), используемая для хранения нескольких типов объектов (в основном, различных данных и метаданных, которые их описывают).

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

Back-end — программный движок, к которому у пользователя нет прямого доступа. Этот механизм получает запросы от пользовательского интерфейса и выполняет определенные операции, включая загрузку и сохранение данных в базе данных и т.д.

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

Bare-metal  — случай, когда программное обеспечение установлено на физических устройствах (жестких дисках), пропуская уровень виртуализации.

Canary release — промежуточный сервер, который является точной копией производственной среды. Там запускаются новые сборки программного обеспечения, чтобы обеспечить соответствие существующим функциям и коду перед развертыванием их для всей пользовательской базы.

CD (Непрерывная доставка) — набор методов разработки и эксплуатации программного обеспечения, рабочих процессов и инструментов, направленных на обеспечение автоматизации всех рутинных операций жизненного цикла доставки программного обеспечения (сборки, тестирование, постановка, мониторинг, оповещение, ведение журнала, резервное копирование, восстановление, балансировка нагрузки и т. Д.). Единственное исключение — запуск вручную готового кода в производственной среде. Это основная практика DevOps, наряду с непрерывной интеграцией и инфраструктурой в виде кода.

CI (Непрерывное развертывание) — частный случай непрерывной доставки, когда развертывание нового кода в производстве также выполняется автоматически. Однако в некоторых случаях это не подходит и сильно зависит от конкретных требований вашего продукта и бизнес-модели.

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

CI / CD — Непрерывная интеграция / Непрерывная доставка — основа современной культуры DevOps. CI гарантирует, что новый код передается в централизованное хранилище кода несколько раз в день, чтобы пройти автоматические модульные тесты и ускорить сборку нового программного обеспечения. Если тесты пройдены успешно, CD гарантирует, что новая версия приложения будет автоматически отправлена ​​в промежуточную и производственную среды без простоев службы. Рабочий процесс CI / CD гарантирует, что все ошибки будут найдены и исправлены на ранней стадии, а продукт будет доступен в любое время.

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

Commit  (Комит) — процесс отправки кода в репозиторий Git и полученный фрагмент кода.

Задание Cron — запланированный процесс, который будет запускать определенный сценарий на сервере в определенное время.

Контейнер — программная оболочка, разделяющая приложение и все ресурсы, необходимые для его запуска, и инфраструктуры, в которой оно работает. Благодаря использованию контейнеров Docker любые приложения могут работать в любой ОС с Docker, и любые проблемы с одним контейнером не влияют на остальную часть системы.

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

Configuration drift  (Смещение конфигурации) — нежелательный результат независимого обновления различных серверов, что приводит к различным программным конфигурациям и состояниям. Лучше всего удалить за счет практики развертывания неизменной инфраструктуры в виде кода.

Управление конфигурацией — процесс установки и поддержания требуемых параметров программной экосистемы с помощью инструментов автоматического управления конфигурацией, таких как Kubernetes, Ansible, Puppet, Chef, Saltstack и т. Д.

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

Dark launch  (Темный запуск) — практика выпуска кода в производственную среду без уведомления пользователей о новых доступных функциях. Код запускается в производство для заключительного этапа тестирования, затем объявляется о выпуске новой функции, а сама функция уже доступна.

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

Dockerfile — текстовое описание процесса сборки контейнера Docker, содержащее все необходимые команды. Dockerfiles позволяют легко и эффективно конфигурировать и управлять созданием и запуском контейнеров.

Docker Swarm — движок контейнерной оркестровки, разработанный Docker. Это встроенный в Docker инструмент для кластеризации и планирования контейнеров, способный запускать тысячи контейнеров одновременно. К сожалению, он не может похвастаться той же функциональностью, что и Kubernetes, и практически не используется с середины 2018 года.

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

Фреймворк Django — это высокоуровневый фреймворк Python, ориентированный на чистый дизайн, быструю разработку и высокую производительность приложений. Нашел широкое применение в веб-разработке и обработке больших данных.

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

Среда (Environment) — все ресурсы сервера (ОС, библиотеки, API, инструменты и платформы и т. Д.), Необходимые для запуска программного обеспечения на различных этапах его жизненного цикла (разработка, тестирование, подготовка, производство).

ElasticSearch — RESTful, распределенный движок для поиска и анализа данных, построенный на Apache Lucene. Как ядро ​​стека Elastic, Elasticsearch позволяет хранить и обрабатывать данные из нескольких облачных инструментов мониторинга и ведения журналов.

Envoy — мощный прокси C ++ для обработки трафика между микросервисами.

EC2 — Amazon Elastic Compute Cloud — центральное предложение Amazon Web Services, предоставляющее несколько типов виртуальных серверов для запуска приложений в облаке.

EKS — Amazon Elastic Computer Service для Kubernetes — управляемая служба Amazon, которая позволяет любому человеку развертывать и запускать Kubernetes в инфраструктуре AWS без необходимости разбираться и настраивать кластеры самостоятельно.

FluentD — инструмент для сбора и обработки данных с открытым исходным кодом, написанный на Ruby. Он позволяет вводить данные из огромного количества инструментов, таких как ElasticSearch, и выводить данные на широкий выбор панелей мониторинга, настроенных с использованием нескольких плагинов.

Fargate — Amazon Fargate — это сервис Amazon для запуска контейнеров Docker в управляемой инфраструктуре, такой как EKS, без необходимости что-либо настраивать. Он работает по схеме выставления счетов без сервера — вы указываете, что необходимо сделать, и оплачиваете потребляемые ресурсы без какой-либо ручной настройки кластера.

Fail-fast — стратегия разработки программного обеспечения, в которой идеи быстро проверяются для обеспечения быстрой обратной связи. После применения обратной связи эксперимент повторяется до тех пор, пока не будет достигнут удовлетворительный результат.

Git — распределенная система контроля версий кода. Каждый разработчик, использующий Git, имеет доступ к полной копии кода проекта и истории изменений, чтобы обеспечить совместную работу в командах.

GitHub — самый популярный веб-хостинг для кода, запускающий все функции Git и добавляющий свои собственные функции. GitHub — это сердце разработки открытого программного обеспечения и программного обеспечения с открытым исходным кодом.

GitLab — веб-портал Git с открытым исходным кодом, настроенный на производительность DevOps, благодаря встроенной поддержке инструментов CI / CD, таких как Gitlab CI.

Gitlab CI — это бегунок CI / CD для Gitlab, который позволяет разработчикам автоматически создавать свой код после каждого коммита.

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

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

IaC — Инфраструктура как код — один из базовых принципов DevOps. Это означает, что конфигурация инфраструктуры выполняется с помощью машиночитаемых декларативных файлов, а не вручную или с использованием интерактивных инструментов. Эти файлы (например, манифесты Kubernetes или Terraform ) могут храниться в репозиториях GitHub, настраиваться и корректироваться так же, как и код, что обеспечивает эффективную автоматизацию обеспечения инфраструктуры.

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

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

InfluxDB — база данных с открытым исходным кодом для обработки событий временных рядов. Она написана на Go и используется для мониторинга инфраструктуры, хранения данных высокой доступности и аналитики в реальном времени. Лучше всего он работает с такими инструментами DevOps, как Prometheus и Grafana.

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

Пропускная способность ввода / вывода — количество операций ввода / вывода в секунду, характеристика пропускной способности сети или накопителя.

Ingress controller — программный модуль, используемый для обеспечения балансировки нагрузки в модулях Kubernetes.

Jenkins — Java-сервер с открытым исходным кодом, позволяющий автоматизировать доставку программного обеспечения.

Работа в Jenkins — процесс в Jenkins, необходимый для сборки кода, запуска модульных тестов, генерации метрик качества кода, развертывания новых версий приложений в рабочей среде и т. д.

Kubernetes — платформа управления контейнерами с открытым исходным кодом от Google. Kubernetes и Docker — это основы выполнения современных рабочих нагрузок в облаке.

Kibana — часть стека Elastic, отвечающая за визуализацию данных и навигацию по кластеру ELK.

Logstash — часть стека Elastic, отвечающая за сбор, обработку и передачу данных на сервер. Logstash необходим для создания решений для облачного мониторинга .

Lead time (Время выполнения) — время, необходимое для перемещения нового пакета кода из коммита в релиз.

Микросервисы — пример сервис-ориентированного подхода в архитектуре программного обеспечения (SOA), практика разделения монолитного приложения на набор слабо связанных сервисов, отвечающих за определенный аспект операций. Эти детализированные сервисы взаимодействуют через легкие протоколы и API для обеспечения гибкости и масштабируемости продукта.

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

MTTR — среднее время до восстановления — среднее ожидаемое время, когда отказавший системный компонент снова заработает; основной параметр сценариев восстановления после сбоев, системного стресс-тестирования и проверки производительности.

Node (узел, нода)- физическая или виртуальная машина в кластере Kubernetes, используемая для размещения модулей, которые запускают контейнеры Docker.

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

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

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

Оркестровка — практика автоматизации ИТ-задач (в частности, управления контейнерами и конфигурацией инфраструктуры) в контексте SOA, виртуализации, предоставления среды. Короче говоря, это процесс выполнения предопределенных задач с использованием предопределенных сценариев, выполняемых с помощью интерактивных инструментов, таких как Terraform (который был создан специально для целей оркестровки конфигурации).

Open source  (Открытый исходный код) — парадигма доставки программного обеспечения, в которой правообладатели предоставляют пользователям доступ к исходному коду приложения, а также право читать, настраивать и распространять его среди всех пользователей для любых целей.

OpenStack — платформа с открытым исходным кодом для создания локальных облачных инфраструктур.

OpenShift — платформа управления контейнерами корпоративного уровня для Kubernetes, работающая в локальных облачных инфраструктурах, разработанная Red Hat.

PaaS — платформа как услуга, модель доставки программного обеспечения, когда разработчики получают все необходимые библиотеки, инструменты и сервисы для разработки программного обеспечения со всей базовой инфраструктурой, которая обрабатывается платформой, предоставляющей сервис.

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

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

Python — интерпретируемый язык программирования высокого уровня. Благодаря своей эффективности и скорости Python в настоящее время широко применяется для решения задач от разработки веб-сайтов до аналитики больших данных .

Pod — базовое структурное подразделение Kubernetes, группа контейнеров Docker, развернутых на одном хосте.

Playbook — Ansible playbook — это инструкции по развертыванию инфраструктуры с подробными руководствами по выполнению серии команд для выполнения конкретных задач.

ProxMox — основанная на Debian платформа с открытым исходным кодом для развертывания и управления виртуальными машинами.

Production environment (PROD, Производственная среда)- среда, в которой программный продукт или услуга используется целевой аудиторией.

RDS — сервис реляционных баз данных AWS, облачная база данных, использующая распределенную природу сервисов AWS.

Rolling update (Скользящее обновление) — процесс плавных обновлений для приложения без простоев, выполняемый экземпляр за экземпляром. Он использует Kubernetes для обеспечения бесперебойной доступности приложений и положительного взаимодействия с пользователем.

Rollback  (Откат) — ручное или автоматическое восстановление ранее сохраненного состояния программы или базы данных.

Regression testing (Регрессионное тестирование) — комплексное тестирование обновленной версии продукта, чтобы убедиться, что последняя сборка не оказала негативного влияния на уже имеющуюся функциональность.

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

Source control — система хранения, управления и отслеживания изменений в исходном коде. Наиболее популярными являются GitHub, GitLab и BitBucket.

S3 — Amazon Simple Storage Service — сервис облачных вычислений для хранения любых объектов данных, необходимых для стабильной работы ваших приложений.

Snapshot . Amazon EBS snapshot EBS — это команда для создания статической копии содержимого вашего экземпляра EC2 в целях резервного копирования и восстановления.

Staging environment (Stage, промежуточная среда) — контролируемая копия вашей производственной среды, максимально напоминающая ее. Это позволяет тестировать новые версии программного обеспечения, чтобы находить ошибки перед выпуском в эксплуатацию.

Автоматизация тестирования — процесс использования определенного программного обеспечения для тестирования новых версий программного обеспечения на основе модульных тестов и сравнения фактических результатов тестирования с прогнозируемыми результатами.

Technical debt  (Технический долг) — концепция нежелательного количества работы разработчиков, необходимого для исправления простого кода, используемого для быстрого получения результатов, вместо того, чтобы тратить время на разработку и внедрение наилучшего решения.

Модульное тестирование (Unit testing)- основа CI / CD, модульное тестирование — это практика тестирования кода приложения небольшими блоками на основе кода автоматизированного тестирования перед сборкой приложения, чтобы минимизировать время, необходимое для обнаружения и исправления ошибок, сокращая время выхода на рынок.

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

VPC peering  — AWS VPC — это сервис, который логически изолирует определенное количество общедоступного облака AWS для создания виртуальных частных облаков.  AWS VPC peering позволяет объединить ресурсы нескольких таких облаков в случае необходимости.

Vault — продукт Hashicorp для безопасного хранения таких секретов, как ключи SSH, токены, пароли, ключи API и другие важные элементы инфраструктуры Kubernetes.

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