Что такое DevOps? Разъяснение методологии, принципов и этапов DevOps



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

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

10 главных причин изучить DevOps





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



Что такое DevOps?

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

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

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



Итак, раз уж, что такое DevOps, давайте посмотрим на историю DevOps.

История DevOps

До DevOps у нас было два подхода к разработке программного обеспечения: Waterfall и Agile.

Модель водопада

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

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

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

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

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

  • После завершения всех тестов приложение развертывается на рабочих серверах.

  • Наконец наступает Обслуживание фаза. На этом этапе выполняется мониторинг производительности приложения. На этом этапе решаются любые проблемы, связанные с производительностью приложения.

    как сделать кучу в java

Преимущества модели водопада:

  • Просто понять и использовать

  • Позволяет легко тестировать и анализировать

  • Экономит много времени и денег

  • Подходит для небольших проектов, если все требования четко определены

  • Позволяет разделить и управленческий контроль

Недостатки модели водопада:

  • Рискованно и неопределенно

  • Отсутствие видимости текущего прогресса

  • Не подходит, когда требования постоянно меняются

  • Сложно внести изменения в продукт, когда он находится на стадии тестирования.

  • Конечный продукт доступен только в конце цикла

  • Не подходит для больших и сложных проектов

Гибкая методология

Гибкая методология - это итеративный подход к разработке программного обеспечения, при котором программный проект разбивается на различные итерации или спринты. Каждая итерация имеет такие фазы, как водопадная модель, например сбор требований, проектирование, разработка, тестирование и сопровождение. Продолжительность каждой итерации обычно составляет 2-8 недель.

Гибкий процесс

  • В Agile компания выпускает приложение с некоторыми высокоприоритетными функциями на первой итерации.

  • После его выпуска конечные пользователи или клиенты оставляют отзывы о производительности приложения.

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

  • Вы повторяете всю эту процедуру, пока не достигнете желаемого качества программного обеспечения.

Преимущества гибкой модели

  • Адаптивно реагирует на изменения требований благоприятно

  • Исправление ошибок на раннем этапе разработки делает этот процесс более экономичным.

  • Повышает качество продукта и делает его безошибочным

  • Позволяет напрямую общаться между людьми, участвующими в программном проекте

  • Идеально подходит для крупных и долгосрочных проектов

  • Минимальные требования к ресурсам и простота управления

Недостатки Agile Model

  • Сильно зависит от четких требований клиентов

  • Довольно сложно предсказать время и усилия для более крупных проектов

  • Не подходит для сложных проектов

  • Недостаток оперативности документации

  • Повышенные риски ремонтопригодности

Теперь давайте продолжим и обсудим этапы и инструменты DevOps.

Этапы и инструменты DevOps

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

Этап - 1: Непрерывное развитие

Используемые инструменты: Git, SVN, Mercurial, CVS

Технологический процесс:

  • Это этап, который включает «планирование» и «кодирование» программного обеспечения. Вы определяете видение проекта на этапе планирования, и разработчики начинают разработку кода для приложения.

  • Нет Инструменты DevOps которые требуются для планирования, но есть ряд инструментов для поддержки кода.

  • Код может быть на любом языке, но вы поддерживаете его с помощью инструментов контроля версий. Этот процесс поддержки кода известен как Управление исходным кодом.

  • После разработки кода вы переходите к этапу непрерывной интеграции.

Этап - 2: Непрерывная интеграция

Инструменты: Jenkins, TeamCity, Travis

Технологический процесс:

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

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

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

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

Этап - 3: Непрерывное тестирование

Инструменты: Jenkins, Selenium TestNG, JUnit

Технологический процесс:

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

  • Селен используется для автоматизации тестирования, а отчеты генерируются TestNG . Вы можете автоматизировать весь этап тестирования с помощью инструмента непрерывной интеграции Jenkins.

  • Предположим, вы написали код селена на Java для тестирования своего приложения. Теперь вы можете собрать этот код с помощью ant или maven. После создания кода вы затем тестируете его для пользовательского приемочного тестирования (UAT). Весь этот процесс можно автоматизировать с помощью Дженкинс .

Этап - 4: Непрерывное развертывание

Используемые инструменты:

Управление конфигурацией - Chef, Puppet, Ansible

Контейнеризация - Docker, Vagrant

Технологический процесс:

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

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

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

Этап - 5: Непрерывный мониторинг

Используемые инструменты: Splunk, ELK Stack, Nagios, New Relic.

Технологический процесс:

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

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

Наконец, мы обсудим, кто именно такой DevOps-инженер.

Кто такой DevOps-инженер?

DevOps Engineer - это тот, кто разбирается в жизненном цикле разработки программного обеспечения и прекрасно разбирается в различных инструментах автоматизации для разработки цифровых конвейеров (конвейеры CI / CD).

DevOps Engineer работает с разработчиками и ИТ-персоналом над выпуском кода. Это либо разработчики, которые интересуются развертыванием и сетевыми операциями, либо системные администраторы, увлеченные написанием сценариев и кодированием, и переходящие на сторону разработки, где они могут улучшить планирование тестирования и развертывания.

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

Ниже приводится список блогов, которые могут вас заинтересовать:

  1. Учебное пособие по непрерывной доставке
  2. Руководство по контейнеру Docker
  3. Учебник по куклам

Теперь, когда вы поняли Что такое DevOps , посмотрите от Edureka, надежной компании по онлайн-обучению с сетью из более чем 250 000 довольных учащихся по всему миру. Курс Edureka DevOps Certification Training помогает учащимся понять, что такое DevOps, и получить опыт работы с различными процессами и инструментами DevOps, такими как Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack и GIT для автоматизации нескольких шагов в SDLC.

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