⚙️ DevOps Введение для начинающих

by itisgood

DevOps стал модным словом, которое означает множество разных вещей.

Сложно понять и определить, что такое DevOps.

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

Происхождение DevOps

DevOps – прекрасный пример гибкой разработки программного обеспечения.

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

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

Вам может быть интересно узнать, что такое agile

Agile разработка – это широкий термин для определения нескольких итерационных и дополнительных методологий разработки программного обеспечения.

Популярными agile методологиями являются Scrum, Kanban, Scaled Agile Framework® (SAFe®), Lean Development и Extreme Programming (XP).

Основные ценности и видение всех этих agile методологий одинаковы, но каждая из них имеет уникальный подход.

Все эти методологии включают в себя итерации и постоянную обратную связь для успешного усовершенствования и предоставления масштабируемого программного обеспечения.

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

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

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

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

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

Проблемы, решаемые DevOps

Процесс развертывания.

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

Это становится более сложным при наличии фермы серверов.

Становится все сложнее выяснить, что, как и где развернуть. Очевидный результат?

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

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

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

Это также создает возможности для более частого совершенствования.

Цели DevOps

Это улучшает взаимодействие между заинтересованными сторонами от планирования до доставки и внедряет автоматизацию процессов:

  • Улучшение частоты развертывания
  • Более быстрого выхода на рынок конечного продукта
  • Уменьшает частоту отказов новых выпусков
  • Это сокращает время между исправлениями
  • Улучшает время восстановления

Общий сценарий DevOps

Все программное обеспечение сводиться к одному месту, прежде чем начинается новый проект программного обеспечения.

Команда состоит из разработчиков, тестировщиков, специалистов по эксплуатации и поддержке.

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

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

Автоматизированная процедура тестирования обеспечивает готовность кода к реализации.

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

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

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

Значительная часть шагов после планирования и разработки выполняется без вмешательства человека.

Различные фазы зрелости DevOps

Существует много разных фаз зрелости DevOps.

Вот ключевые фразы, которые вы должны знать.

Waterfall Development WD

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

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

Внесение этих номеров использованных изменений займет более нескольких месяцев.

Этот процесс не был продуктивным.

Continuous Integration CI

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

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

DevOps не ввел этот термин.

Непрерывная интеграция – это инженерная практика agile, основанная на методологии экстремального программирования.

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

Непрерывная интеграция часто является первой на пути к зрелости DevOps.

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

Continuous Delivery

Это расширение непрерывной интеграции, а также второй этап DevOps.

Непрерывная доставка позволяет добавить дополнительную автоматизацию и тестирование.

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

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

Continuous Deployment

Непрерывное развертывание – это прогрессивная эволюция непрерывной доставки.

Эта практика позволяет нам внедрять все пути в производство без вмешательства человека.

Команда, работающая над непрерывной разработкой, никогда не развертывает код без тестирования.

Весь вновь созданный код проходит автоматизированное тестирование, прежде чем перейти к этапу продакшена.

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

Существует небольшое количество компаний, таких как Netflix, Etsy, Amazon, Pinterest, Flicker, IMVU, Google и т. д., которые ведут постоянную разработку.

Значение

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

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

DevOps Культура

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

Методы Agile всегда были лучшим целостным способом доставки программного обеспечения.

Когда дело доходит до измерения прогресса, команда разработчиков agile делает это с точки зрения рабочего программного обеспечения.

Agile метод культуры DevOps позволяет владельцам продуктов, разработчикам, тестировщикам и UX-сотрудникам тесно сотрудничать с единой целью.

Инструменты DevOps

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

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

Вам нужно будет использовать больше инструментов по мере продвижения по цепочке доставки.

Давайте узнаем некоторые из популярных инструментов и методов.

Репозиторий исходного кода – это место, где разработчики могут зарегистрироваться и изменить код.

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

Git, Apache Subversion, IBM Rational, Artifactory, Nexus, Eclipse и т д. являются одними из популярных инструментов хранилища кода.

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

Некоторые из наиболее часто используемых инструментов сервера сборки – Jenkins, SonarQube, Artifactory.

Управление конфигурацией – Puppet, Chef, Ansible, SaltStack, Run Deck и т. д помогает управлять конфигурацией приложения и инфраструктуры для обеспечения согласованности в разных средах.

Виртуальная инфраструктура – AWS, GCP, Azure входит в тройку крупнейших поставщиков общедоступных облаков и предлагает практически все инфраструктурные услуги.

Они предлагают API, который позволяет вам предоставлять инфраструктуру и управлять им как кодом.

 

You may also like

Leave a Comment