Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Методология DevOps в разработке программного обеспечения

Покупка
Артикул: 830115.01.99
Доступ онлайн
1 000 ₽
В корзину
В курсе дается краткий обзор методологии DevOps, основы Linux, обзор и работа с инструментами, которые необходимы,чтобы начать карьеру DevOps инженера. В курсе рассмотрены такие инструменты, как Git, GitLab, Docker, Terraform и Ansible.
Шуляк, А. В. Методология DevOps в разработке программного обеспечения : краткий курс / А. В. Шуляк. - Москва : ИНТУИТ, 2016. - 57 с. - Текст : электронный. - URL: https://znanium.ru/catalog/product/2146168 (дата обращения: 28.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов

                                    
Методология DevOps в разработке программного
обеспечения

2-е издание, исправленное

В. Шуляк А.

Национальный Открытый Университет “ИНТУИТ”
2016

2

Методология DevOps в разработке программного обеспечения/ А. В. Шуляк - М.: Национальный
Открытый Университет “ИНТУИТ”, 2016

В курсе дается краткий обзор методологии DevOps, основы Linux, обзор и работа с инструментами,
которые необходимы,чтобы начать карьеру DevOps инженера.
В курсе рассмотрены такие инструменты, как Git, GitLab, Docker, Terraform и Ansible.

(c) ООО “ИНТУИТ.РУ”, -2016
(c) В. Шуляк А., -2016

3

Введение в методологию DevOps. Основные определения

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

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

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

Но это не совсем верно. DevOps это не технология и не язык программирования. Сам по
себе DevOps это методология разработки программного обеспечения.

Основные определения:

DevOps (от англ. development and operations) - методология активного
взаимодействия специалистов по разработке со специалистами по
информационно-технологическому обслуживанию и взаимная интеграция их
рабочих процессов друг в друга для обеспечения качества продукта.
Деплой (англ. deploy) - развертывание, - помещение исполняемого кода на сервер,
где он будет работать.
Билд (англ. build) - процесс сборки и/или компиляции программного продукта
Артефакт - готовая для использования сборка продукта
Релиз - версионированный артефакт сборки
Окружение - изолированный набор серверов и/или сервисов
Продакшн - обозначение окружения для клиентов
Тест - среда (песочница, англ sandbox), которая используется для тестирования
приложения.
Стейджинг - это среда для тестирования, которая в точности похожа на
продакшен-окружение.
Конвейер (англ. pipeline) - набор процессов организованный в
последовательность по типу конвейера позволяющий непрерывно производить
программные артефакты.

(Продакшн, тест, стейджинг - эти определения относятся к окружениям окружения )

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

4

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

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

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

Все команды взаимно зависят друг от друга, без их взаимодействия и эффективной
коммуникации продукт разработан не будет.

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

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

Это и предлагает DevOps методология - обеспечить эффективное и быстрое
взаимодействие между командами.

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

DevOps концепции, которые используются чаще всего на практике.

SaaS. PaaS. IaaS.

System(Software) as a Service.

Platform as a Service

Infrastructure as a Service

Эти три понятия приобрели популярность в последние лет десять, и представляют
собой единую концепцию по которой некоторая услуга предоставляет в формате
сервиса, которым вы пользуетесь как функционалом, или API, или любая другая форма.
Достаточно часто эти концепции объясняются на примере пиццы (Рис. 1.1):

5

Рис. 1.1. 

Незакрашенные элементы - ваша зона ответственности, закрашенные элементы - зона
ответственности провайдера

On-premises - вы все настраиваете самостоятельно
В IaaS - вы получает только инфраструктуру приложения
В PaaS - вы получаете инфраструктуру и подготовленное для разработки
приложений программное обеспечение
В SaaS - вы получаете готовое работающее в облаке приложение.

Pet vs Cattle

Концепция, название которой переводится как “Домашние питомцы против рогатого
скота”. Звучит странно, поэтому на русский язык название концепции чаще всего не
переводится. В целом концепция заключается в двух различных подходах к
управлению системами на серверах.

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

Подход Cattle - более свежий, появившийся с распространением виртуальных серверов.
Заключается в том, что система зачастую предварительно настроена уже в самом
образе из которого она разворачивается. Если же система сервера повреждена, система
просто уничтожается и разворачивается новая копия.

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

К примеру подход Cattle используется когда время простоя неприемлемо в силу
невозможности переноса приложения на другой сервер или балансировки

6

Доступ онлайн
1 000 ₽
В корзину