====== Лекция 1: Современные тенденции разработки ИС. Введение в DevOps ====== ==== Цель лекции ==== Сформировать понимание эволюции подходов к разработке информационных систем, познакомить с современными тенденциями и дать фундаментальное представление о философии DevOps как ответе на вызовы современной ИТ-индустрии. ==== Ключевые вопросы ==== - Эволюция понятия «Информационная система» - Современные тенденции развития ИС - DevOps: определение, цели, основные принципы - Факторы, влияющие на развитие технологий разработки - Виды требований и показатели эффективности в DevOps-контексте ==== 1. Введение. Эволюция понятия «Информационная система» ==== **Информационная система (ИС)** — система для сбора, хранения, обработки, поиска, передачи и представления информации. **Классический взгляд:** ИС как статичный продукт («монолит»), создаваемый и длительно эксплуатируемый без изменений **Современный взгляд:** ИС как **динамичный сервис**, постоянно эволюционирующий и адаптирующийся под changing business needs ==== 2. Основные современные тенденции развития ИС ==== ===== Микросервисная архитектура ===== - Замена монолитов на набор слабосвязанных сервисов - **Преимущества:** Независимое развертывание и масштабирование - **Вызов:** Рост операционной сложности - ключевая предпосылка DevOps ===== Облачные вычисления ===== - Разработка приложений для облачных сред (AWS, Azure, GCP) - Использование сервисов по требованию (IaaS, PaaS, SaaS) - **Принцип:** «Плати за то, что используешь» ===== Infrastructure as Code ===== - Управление инфраструктурой через конфигурационные файлы - **Инструменты:** Terraform, Ansible - **Цель:** Повторяемость, версионность, предотвращение дрейфа конфигураций ===== Shift-Left ===== - Перенос тестирования и безопасности на ранние этапы ЖЦ - **Цель:** Раннее обнаружение и устранение дефектов ==== 3. DevOps: определение, цели, основные принципы ==== ===== Определение ===== **DevOps** — **культура**, практики и инструменты для повышения скорости доставки приложений и услуг ===== Цели ===== - Увеличить частоту и скорость выпуска релизов - Повысить надежность и стабильность систем - Сократить time-to-market - Улучшить сотрудничество и коммуникацию в командах ===== Бесконечный цикл DevOps ===== {{ :pipeline.png?400 |}} Plan → Code → Build → Test → Release → Deploy → Operate → Monitor → Plan... ===== Три пути DevOps ===== - **Системное мышление (Flow):** Ускорение движения работы - **Обратная связь (Feedback):** Короткие циклы обратной связи - **Непрерывное обучение:** Культура экспериментов ==== 4. Факторы развития технологий разработки ==== ^ Фактор ^ Проблема ^ Ответ DevOps ^ | **Скорость** | Медленный выпуск функций | **CI/CD:** Автоматизация, частые релизы | | **Качество** | Ненадежные релизы | **Автотесты, мониторинг** | | **Стоимость**| Высокие операционные расходы | **Автоматизация (IaC)** | | **Сложность**| Сложность распределенных систем | **Стандартизация и инструменты** | ==== 5. Виды требований и показатели эффективности ==== ===== Сквозные требования ===== - **Надежность (Reliability):** Восстановление после сбоев - **Производительность (Performance):** Время отклика - **Масштабируемость (Scalability):** Увеличение мощности - **Удобство сопровождения (Maintainability):** Легкость изменений ===== Показатели DORA ===== - **Частота развертываний** - как часто выпускается код - **Время выполнения заказа** - от коммита до продакшена - **Среднее время восстановления** - скорость исправления инцидентов - **Частота отказов изменений** - процент неудачных развертываний ==== Заключение ==== DevOps — это не просто инструменты, а **культура** и **методология**, направленная на преодоление барьеров, автоматизацию и короткие циклы обратной связи. Ответ индустрии на потребность бизнеса в скорости, гибкости и надежности. ==== Рекомендуемая литература ==== - Ким, Д. Феникс. Проект по DevOps - Хамбл, Д. Непрерывное развертывание ПО - Ким, Д. Ускоряйтесь. Наука DevOps