hitcounter
  • August 4, 2019
  • Iurii Medvedev

Что такое CJE и CCJE

Что такое сертификация я думаю не нужно объяснять, прежде всего сертификация выделяет Вас из толпы претендентов на вакантную позицию, Cloudbees предлагает два сертификата на выбор это:

  • Certified Jenkins Engineer (for proficiency with Jenkins)

  • Certified CloudBees Jenkins Engineer (for proficiency with CloudBees Core)

Для того чтобы понять какая сертификация нужно Вам можно перейти по ссылкам

Что это будет

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

Оглавление

  1. CI/CD и Jenkins

CI/CD и Jenkins

Что такое continuous integration, continuous delivery, continuous deployment

Continuous integration

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

CD или Continuous delivery - это набор практик, направленных на то, чтобы обновления программного обеспечения происходили постоянно и не прерывно. Данные методы гарантируют быстрое развёртывание на продакшене не меняя существующий функционал. Непрерывная доставка осуществима благодаря различным оптимизациям на ранних этапах процесса разработки. Говоря проще, каждая сборка это может быть развернута в любой момент времени

Continuous deployment часто путают с continuous delivery, хотя между ними существуют чёткие различия, которые следует знать и понимать.

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

CI практика

  • Один репозиторий для исходного кода
  • Автоматические сборки
  • Каждая сборка должна тестироваться
  • Каждый разработчик должен комитить изменения ежедневно
  • Каждый коммит должен запускать сборку
  • Каждая проваленая сборка должна быть исправлена незамедлительно
  • Сборка каждого коммита должна проходить как можно быстрее
  • Каждое изменение должно быть протестировано

CD практика

  • Check out
  • Build and unit tests
  • Automated acceptance tests
  • User acceptance test
  • Release

В чем разница между CI и CD

  • CI не требует разворачивание в какой-либо среде

Стадии CI и CD

  • Коммит в систему контроля версия запускает “сборку” которая в себя включает unit tests
  • Запуск тестов направленных на UI тестирова, тестирование безопасности и других
  • Завершающая стадия развертывание на какой-либо из сред

Jenkins jobs

Что такое jobs в Jenkins?

Jobs/Project в Jenkins спецализированные задачи для работы с исходном кодом при реализации концепции CI/CD

Какие типа бывают?

  • Freestyle project
  • Maven project
  • Pipeline И многие другие

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

Freestyle project

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

Maven project

Как видно из названия сборка maven проекта, данный тип сокращает количество настроек для сборки и настройки.

Pipeline

Jenkins Pipeline (или просто “Pipeline” с большой буквы “P”) представляет собой набор плагинов, которые помогат в реализации CI/CD концепции в Jenkins. Pipeline предоставляет расширяемый набор инструментов для создания CI/CD процессов любой сложности с помощью синтаксиса DSL (Pipeline domain-specific language (DSL)). Pipeline Jenkins могут из себя представлять текстовый файл Jenkinsfile либо обычный скрипт который можно править непосредственно в веб интерфейсе Jenkins.

Сборки в Jenkins

Сборка или build в Jenkins это результат выполнении задачи или проекта

Что такое стадии сборки, триггеры, артифакты, репозитории?
  • Стадии сборки(Build step) – единица операции в ходе выполнения задачи
  • Триггеры(Triggers) – Механизм запуска задачи, как от внешнего источника так и по расписани, внешним источником можно считать хук отправленный из система контроля версий
  • Artifact – результат сборки
  • Repository – репозиторий в системе контроля версий, который содержит исходный код
Jenkins changelogs

В разрезе Jenkins это изменения, которые были сделаны в системе контроля версий на момент запуска задачи по сборке

Distributed Builds

Что такое distributed builds?
  • Запус задачи на сервере отличном от Jenkins master, в качестве сервера могут выступать как физические сервера, так и виртуальные машины или docker
Типы
  • Master – Основной, ведущий сервер, доступен сразу после установки Jenkins
  • Slaves – виртуальные машины/физические сервера/облачные провадеры/docker для ваыполнения сборок
Plugins. Что такое plugins?
  • Любой плагин направлен на функциональное расширение возможностей Jenkins, такие дополнения значительно разширяют возможности Jenkins
Управление плагинами?
  • Для управления плагинами, Jenkins предоставляет веб интерфейс под названием pluginManager, с его помощью вы можете управлять плагинами, установкой, удалением, обновлением
Fingerprints
  • MD5 checksum файлов
Как работает Fingerprints
  • При первом запуски задачи на сборку, Jenkins сгенерирует fingerprint.
  • На основании fingerprint вы можете выгрудать артифакты и проверять на основе fingerprint совпадение контрольных сумм.