Целью изучения дисциплины является ознакомление студентов с основными практиками внедрения и поддержки инфраструктуры разработки программного обеспечения (DevOps). Будут рассмотрены различные инструментальные средства, такие как системы сборки, системы контроля версий, средства модульного тестирования и непрерывной интеграции, редства доставки и управления конфигурациями. В ходе курса предусмотрено также множество практических задач, ориентированных на различные аспекты жизненного цикла продукта.
Цель освоения дисциплины
Ознакомление студентов с основными практиками внедрения и поддержки инфраструктуры разработки программного обеспечения (DevOps)
Планируемые результаты обучения
Умеет работать в ОС Linux.
Умеет писать скрипты для построения базовых конвейеров управления ОС Linux.
Знает различие терминов DevOps и devops.
Умеет выбрать паттерн devops для внедрения в процесс разработки в компании.
Владеет Git для разработки на базовом и продвинутом уровне.
Умеет проектировать API для микросервисной архитектуры.
Умеет проводить диагностику и решать проблемы, связанные с сетевой инфраструктурой.
Знает отличие понятий «образ» и «контейнер».
Умеет использовать Docker как основной инструмент контейнеризации ресурсов.
Имеет навыки тестирования ПО.
Использует автоматическое тестирование ПО на разных уровнях тестирования.
Знает понятие «Инфраструктура как код».
Умеет масштабировать решение по настройке окружения разработчика.
Умеет настраивать конвейеры непрерывной интеграции и поставки ПО.
Умеет использовать протокол SSH для удаленного доступа к серверам.
Умеет управлять облачной инфраструктурой посредства кода.
Умеет отличать понятия Stateful и Stateless.
Умеет разворачивать проекты в Kubernetes-кластере.
Содержание учебной дисциплины
ОС Linux
Принципы devops
Системы контроля версий
Сетевой стек
Инструменты контейнеризации и виртуализации
Тестирование ПО
Настройка инфраструктуры
Непрерывная разработка ПО
Облачная инфраструктура
Оркестрация ПО на основе Kubernetes
Элементы контроля
Домашнее задание №1
Домашнее задание №4
Домашнее задание №5
Домашнее задание №6
Активность
Работа на семинарах
Домашнее задание №2
Домашнее задание №3
Экзамен
На экзамене будут даны 2 вопроса из программы курса. Каждый вопрос оценивается из 5 баллов.
Gene Kim, Jez Humble, Patrick Debois, & John Willis. (2016). The DevOps Handbook : How to Create World-Class Agility, Reliability, and Security in Technology Organizations. IT Revolution Press.
Humble, J., & Farley, D. (2011). Continuous Delivery : Reliable Software Releases Through Build, Test, and Deployment Automation. Upper Saddle River, NJ: Addison-Wesley Professional. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsebk&AN=1599336
Scott Chacon, & Ben Straub. (2014). Pro Git (Second Edition). Web server without geographic relation, Web server without geographic relation (org): Apress. Retrieved from http://search.ebscohost.com/login.aspx?direct=true&site=eds-live&db=edsbas&AN=edsbas.E86D0407
Yevgeniy Brikman. (2019). Terraform: Up & Running : Writing Infrastructure As Code: Vol. Second edition. O’Reilly Media.
Рекомендуемая дополнительная литература
Gene Kim, Kevin Behr, & George Spafford. (2018). The Phoenix Project : A Novel About IT, DevOps, and Helping Your Business Win. IT Revolution Press.
Hochstein, L., & Moser, R. (2017). Ansible: Up and Running : Automating Configuration Management and Deployment the Easy Way: Vol. 2nd ed. Reilly - O’Reilly Media.
Newham, C., & Rosenblatt, B. (2005). Learning the Bash Shell : Unix Shell Programming: Vol. 3rd ed. O’Reilly Media.
Преподаватель
Ахтямов Павел Ибрагимович
Программа дисциплины
Аннотация
Цель освоения дисциплины
Планируемые результаты обучения
Содержание учебной дисциплины
Элементы контроля
Промежуточная аттестация
Список литературы
Рекомендуемая основная литература
Рекомендуемая дополнительная литература
Авторы