Наталья Габрух 19 ноября 2020

👨‍🎓️👨‍🔧️50 терминов DevOps: словарь инженера

Чтобы освоить любую специальность, нужно понимать профессиональный жаргон. В небольшом словаре мы собрали основные термины, необходимые инженеру DevOps. Изучить их также стоит начинающим программистам и сисаминам.
👨‍🎓️👨‍🔧️50 терминов DevOps: словарь инженера

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

Совместно с Факультетом DevOps онлайн-университета GeekBrains мы составили список из 50 терминов, часто употребляемых специалистами в работе.

***

Словарь DevOps

A

Agent

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

Agile

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

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

Amazon AWS

(Amazon Web Services)

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

Apache

HTTP-сервер. ПО с открытым исходным кодом, один из самых популярных веб-серверов. Позволяет запускать веб-сайты и приложения.

API

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

Программный посредник, который позволяет двум приложениям взаимодействовать друг с другом.

Artifact

Результат выполнения какого-либо шага в процессе разработки ПО, на который можно ссылаться. Это могут быть диаграммы, требования пользователей, модели UML и прочее.

B

Bastion host

(Узел-бастион)

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

Black Box Testing

(Тестирование по стратегии «черного ящика»)

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

Branching

(Разветвление)

Существует для разделения основного кода на пути развития (ветки) в системе управления версиями (например Git). Каждая ветка может содержать собственную модификацию основного кода.

Build Agent

(Агент сборки)

Тип агента, который используется в непрерывной интеграции и отправляет/получает сообщения об обработке сборки ПО.

Build Artifact

(Артефакты сборки)

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

Build Automation

(Автоматизация сборки)

Автоматизация сборки ПО и связанных с ней процессов (компиляция исходного кода в двоичный, упаковка двоичного кода и выполнение автоматических тестов).

C

Canary Release

(«Канареечный релиз»)

Метод, который используется для постепенного ознакомления с выпуском ПО небольшой подгруппы пользователей. Главная задача – убедиться в безопасности и функциональности ПО перед развертыванием для всей пользовательской базы.

Capacity Test

(Тест емкости)

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

Commit

Операция, которая сохраняет последние изменения исходного кода в репозитории (например, Git).

Configuration Management

(Управление конфигурацией)

Дисциплина постоянного мониторинга и поддержания согласованных настроек системы с помощью инструментов для автоматизации ИТ-инфраструктуры (например, Chef, Puppet, Kubernetes, Ansible).

Container

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

Containers-as-a-Service (CaaS)

(Контейнеры как услуга)

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

Continuous Delivery (CD)

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

Подход к разработке ПО, при котором оно производится короткими итерациями, и может быть передано в эксплуатацию в любое время (передача происходит вручную). Цель – сборка, тестирование и релиз ПО с большей скоростью и частотой.

Continuous Integration (CI)

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

Практика разработки ПО, при которой код часто (несколько раз в день) объединяют в общий репозиторий. Это необходимо для оперативного выявления потенциальных дефектов и решения интеграционных проблем.

Cluster

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

D

Deployment

(Развертывание)

Термин, который объединяет все связанные с запуском нового ПО процессы: установку, настройку, запуск и тестирование.

DevOps

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

DevSecOps

(Операции по обеспечению безопасности доставки)

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

E

Exploratory Testing

(Исследовательское тестирование)

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

F

Fail Fast

(«Быстрый провал»)

Подход к разработке ПО, при котором раннее тестирование и выявление ошибок помогает быстро определить, имеет ли идея ценность.

G

Google Cloud Platform

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

H

Hybrid Cloud

(Гибридное облако)

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

I

Integration Testing

(Интеграционное тестирование)

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

K

Kanban

Инструмент организации производства, который является частью agile-философии и позволяет реализовывать принцип «точно и в срок». Достичь необходимого результата можно с помощью визуализации (виртуальной или реальной доски, на которую прикрепляются стикеры или карточки).

L

Lead Time

(«Время производственного цикла»)

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

M

Machine Learning (ML)

(Машинное обучение)

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

Microservices Architecture

(Микросервисная архитектура)

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

Microsoft Azure

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

N

Nginx

HTTP-сервер. ПО с открытым кодом, совместимое с UNIX-системами. Области его применения – от кэширования HTTP до создания инвертированного прокси-сервера.

O

Open Source

(Открытое программное обеспечение)

ПО с открытым исходным кодом. Если код предоставляется бесплатно и является доступным для изменения и обмена, такая разновидность открытого ПО называется свободным.

P

Pair Programming

(Парное программирование)

Техника разработки ПО, при которой исходный код создают на одном рабочем месте два программиста одновременно. Один из них («ведущий») пишет код, а другой («наблюдатель») просматривает его на наличие ошибок. Время от времени они могут меняться местами.

Platform-as-a-Service (PaaS)

(Платформа как услуга)

Модель самообслуживания для облачных вычислений по которой пользователям предоставляется доступ к промежуточному ПО: операционным системам, системам управления базами данных, бизнес-аналитике и многому другому. Это позволяет создавать и развертывать приложения в облаке, не беспокоясь о базовой инфраструктуре на уровне ОС.

Production

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

R

Rollback

(Откат)

Автоматическая или ручная операция возврата продукта или приложения к предыдущей версии.

S

Self-Service Deployment

(Самостоятельное развертывание)

Автоматизация процессов развертывания, когда одна команда переносит код из среды разработки в релиз. При этом менеджеры проектов и даже клиенты могут напрямую управлять развертыванием.

Software-as-a-Service (SaaS)

(Программное обеспечение как услуга)

Модель самообслуживания для облачных вычислений по которой пользователям предоставляется доступ к прикладному ПО, обслуживаемому провайдером.

Staging Environment

(Промежуточная среда)

Копия производственной среды, используемой для тестирования более новой версии ПО, прежде чем она будет запущена в производство. Это позволяет выявить ошибки и убедиться, что все работает правильно перед выпуском ПО.

T

Test Automation

(Автоматизация тестирования)

Использование отдельного ПО для тестирования. Этапы: запуск, инициализация, выполнение, анализ и автоматическая выдача результата. Используется для контроля выполнения тестов и сравнения фактических результатов с прогнозируемыми.

Technical Debt

(Технический долг)

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

U

User Acceptance Testing (UAT)

(Пользовательское приемочное тестирование)

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

Unit Testing

(Модульное тестирование)

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

V

Virtual Machine (VM)

(Виртуальная машина)

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

W

Waterfall

(Модель «Водопад»)

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

White Box Testing

(Тестирование по стратегии «белого ящика»)

Метод функционального тестирования внутренней структуры, дизайна и кода ПО. Отличается от тестирования по стратегии «черного ящика» тем, что исходный код виден тестировщику.

***

Хочу научиться программировать с нуля, но не знаю, с чего начать. Что делать?

Можно учиться самостоятельно (долго) или пойти на курсы с преподавателями (быстро). Плюс нужно учитывать, что джунов много, конкуренция выше и работодатели повышают порог вхождения при найме на работу. Чтобы получить актуальные знания, мы в proglib.academy запустили курсы:

  • Основы программирования на Python.
  • Профессия Python-разработчик.
  • Алгоритмы и структуры данных.
  • Математика для Data Science.
  • Профессия Data Science.
  • Frontend Basic: принцип работы современного веба.
  • Профессия Фронтенд-разработчик.
  • Обработка естественного языка. Полный курс.

На подходе еще больше 10 курсов для взрослых и детей.

МЕРОПРИЯТИЯ

Комментарии

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ