CDS-это платформа автоматизации непрерывной доставки и DevOps, написанную в GO (LANG).
Этот проект находится в активной разработке
Документация
CDS предоставляет интуитивно понятный пользовательский интерфейс, который позволяет вам создавать сложные рабочие процессы, запускать их и копать в журналах при необходимости.
Создайте и запустите рабочий процесс с помощью CDS UI.
CDSCTL - это командная строка CDS - вы можете скрепить все вместе с ней, CDSCTL также предоставляет несколько классных команд, таких как cdsctl shell для просмотра ваших проектов и рабочих процессов без необходимости открыть браузер.
Смотрите все команды CDSCTL
Создайте рабочий процесс как код с командной строкой CDS.
Docker-Compose-ваш друг, см. Готовые к управлению учебными пособиями
Большинство инструментов CI/CD играют с заданиями внутри трубопровода. CDS представляет новую концепцию под названием CDS Workflows . Рабочий процесс компакт -дисков позволяет цепным трубопроводам с триггерами. Трубопровод структурирован на последовательных этапах, содержащих одну или несколько параллельных заданий.
Да! CDS используется в производстве с 2015 года @OVH, и запускает более 7 млн. КДС -работников в год. Вы можете установить официальный релиз, доступный на https://github.com/ovh/cds/releases
CDS предоставляет все необходимое для мониторинга и измерения производственной деятельности (журналы, метрики, мониторинг)
Все данные хранятся в базе данных - ничего в файловой системе. Просто резервную копию базы данных регулярно, и вы будете в безопасности.
Основная команда доступна на GitHub
Способность выполнять несколько заданий одновременно, сохраняя при этом изоляцию между ними. Посмотрите на Док о этапах и рабочих местах внутри трубопровода. Трубопровод запускается с контекстом: 0 или 1 применение, 0 или 1 среда.
Рабочий процесс позволяет цепорить трубопроводы. Это ключевая особенность компакт -дисков. Вы можете создавать рабочие процессы, используя один или несколько трубопроводов, трубопроводы, которые могут быть связаны вместе с соединениями или вилками.
Вы можете себе представить, чтобы иметь только один строитель рабочих процессов и развернуть весь свой стек микросервиса. Тот же трубопровод может использоваться несколько раз в рабочем процессе, вы можете связать приложение или среду. У вас будет только один конвейер развертывания и один конвейер сборки, даже если у вас есть сотни приложений.
Шаблон рабочего процесса позволяет вам делиться и повторно использовать рабочие процессы в нескольких командах. Любой пользователь может создать шаблон рабочего процесса, поддерживать его как код или из пользовательского интерфейса, а также объемный обновление набора рабочих процессов с одним действием.
Как компания, вы можете предложить предопределенный каталог рабочих процессов, позволяющий стандартизировать методы тестирования и развертывания во всех ваших командах.
Это также уменьшает усилия по обслуживанию, поскольку шаблоны позволяют масштабируемому централизованному управлению.
Вы можете настроить все с помощью веб -интерфейса. Даже если у вас есть сложные варианты использования, обычно легче создать ваши рабочие процессы графически.
Конвейер как код является хорошо известной концепцией инструментов CI / CD. CDS идет еще дальше и предлагает рабочий процесс в качестве кода. Это делается с помощью GIT-Pushing с использованием файлов конфигурации YAML вашего рабочего процесса ( + Pipeline, + Applications, + среда). Это особенно полезно, так как вы можете проверить свой новый рабочий процесс на филиале Dev, прежде чем объединить изменения в главной ветви.
Вы можете изменить свой рабочий процесс с помощью пользовательского интерфейса, вы также можете изменить конфигурацию, редактируя файл YAML непосредственно в пользовательском интерфейсе, если хотите. Это отличный способ научиться использовать функцию рабочего процесса как код.
Возможность запуска сборки на основе рисунка филиала. Это позволяет, например, развернуть филиалы Dev/* для «постановки» и развернуть основную филиал для «Prod».
Обратите внимание, что поведение по умолчанию CDS заключается в том, чтобы запустить весь рабочий процесс на каждом коммите GIT. Такое поведение может быть изменено с использованием «условий прогона».
Двухсторонняя интеграция с самыми популярными продуктами на основе GIT.
CDS Nangy поддерживает Github, Gitlab, Bitbucket Server и Gerrit. Связь между вашим GIT Repo и CDS находится через приложение CDS: 1 git Repository == Приложение CDS. Благодаря этой интеграции CDS будет продвигать статус сборки ваших коммитов: строительство, успех или провал.
CDS дает вам возможность клона из разных репозиториев GIT в течение одного рабочего процесса. Рабочий процесс CDS может включать несколько различных приложений - или нет, если вы не хотите иметь связь с репозитором GIT.
Возможность запускать эфемерные службы (база данных, веб -сервер и т. Д.) Для поддержки вашей работы. Это особенно удобно при тестировании вашего кода.
В компакт -дисках эти услуги называются услугами предпосылками. Вам просто нужно указать соответствующее изображение Docker и запустить параметры.
Возьмите простой пример: у вас есть конвейер, который создает изображение Docker, содержащее ваше приложение. Ваше приложение нуждается в Redis и PostgreSQL для работы. Вы можете в работе CDS поместить три обязательные услуги: Redis, PostgreSQL и ваше заявление. CDS позаботится о создании частной сети между его услугами, чтобы они могли общаться друг с другом. Таким образом, ваше задание CDS может выполнять интеграционные тесты в вашем приложении, начиная с реальной базы данных и реального кеша.
Пожалуйста, прочитайте: https://ovh.github.io/cds/docs/concepts/requirement/requirement_service/
Удаленный кэш используется командой разработчиков и/или системой непрерывной интеграции (CI) для обмена выходами сборки. Если ваша сборка воспроизводима, выходы с одной машины могут быть безопасно повторно использованы на другой машине, что может значительно быстрее сделать сборки.
DOC: https://ovh.github.io/cds/docs/components/worker/cache/
Как платформа предприятия, CDS может отправить широкий спектр своих внутренних событий (например, сборка сборки) в автобусе событий. Затем этот поток событий может питать другие услуги (отчетность, уведомления и т. Д.).
Способность запустить рабочий процесс вручную или с помощью GIT -толчка, или через планировщик или через веб -крючок. В дополнение к вышесказанному, CDS также можно запустить с использованием шины событий (KAFKA или RabbitMQ).
Возможность управлять несколькими средами (например, Dev/Prod/Patging) безопасным способом с отдельными правами доступа. На практике среда - это набор переменных, которые вы можете использовать в своих рабочих процессах.
С помощью компакт -дисков вы можете использовать конвейер развертывания в своей среде предварительной протокол и использовать тот же самый трубопровод развертывания в своей производственной среде. Возможность развертывания в производстве может быть ограничена заранее установленной группой пользователей.
Пользователи могут свободно создавать группы и управлять пользователями в своих группах. Группа может иметь право читать, писать и выполнять свои проекты и свои рабочие процессы. Вы также можете ограничить выполнение некоторых трубопроводов некоторыми группами, если хотите.
Если вы используете CDS в качестве инструмента CI / CD, у вас, вероятно, будут созданы артефакты. Работа с компакт -дисками изолирована друг от друга, но вы можете передавать артефакты с одной работы к другой, используя действия по загрузке артефакта и загрузку артефактов. В конце работы CDS все файлы удалены от работников. Для постоянных артефактов CDS может использовать Swift Storage или данную файловую систему (хотя не рекомендуется).
CDS четко отображает результаты модульных тестов и уязвимостей, обнаруженных во время сборки.
Проект CDS похож на арендатор. Все пользователи могут создавать проект CDS, этот проект объединит приложения, среды, трубопроводы и, конечно, рабочие процессы.
Проекты CDS изолированы друг от друга, но у одной и той же группы могут быть права доступа к нескольким проектам, если вы хотите.
Модель работника - это контекст выполнения работника. Допустим, вам нужно запустить работу, которая требует Golang v1.11.5. В компакт -дисках вам просто нужно создать модель GO Worker, содержащую версию 1.11.5. Рабочая модель может быть изображением Docker, изображением OpenStack или изображением vSphere. Хотя администраторы CDS могут предлагать модели общих работников, пользователи могут создавать своих собственных работников шаблонов, если они пожелают.
В проекте CDS вы можете добавить интеграции, такие как OpenStack, Kubernetes и т. Д. ... Это предложит вам функции в ваших рабочих процессах. Например, благодаря интеграции Kubernetes вы можете добавить свой собственный кластер в свой проект CDS и, таким образом, иметь возможность использовать действие приложения развертывания для развертывания вашего недавно созданного приложения в вашем кластере, в формате руля, если вы хотите. Вы, конечно, можете разработать свои собственные интеграции.
Прочитав предыдущие моменты, вы поняли: самообслуживание везде. Все пользователи могут создавать свои проектные/рабочие процессы/рабочие модели/шаблоны/действия рабочего процесса ... и выполнять задания в полностью изолированной среде. Проекты CDS - это строители, на которых вы можете добавить интеграции. Все это позволяет вам иметь только один экземпляр CD для всей вашей компании.
Все, что вы можете сделать с пользовательским интерфейсом, доступно через интерфейс командной строки (CLI) с именем «CDSCTL». CDSCTL доступен во всей ОС: Darwin, FreeBSD, Linux, OpenBSD ... CDSCTL позволит вам создавать, запускать, экспортировать, импортировать ваши рабочие процессы, контролировать свои компакт -диски и ориентироваться в ваших проектах и рабочих процессах. Не нужно перейти в пользовательский интерфейс CDS или вашего менеджера репозитория, чтобы проверить статус вашего коммита, git push && cdsctl workflow --track отобразит ваш рабочий процесс в вашей командной строке.
Есть ли у вас еще более усовершенствованные потребности в автоматизации или желание разработать приложение, которое запрашивает CD? REST API и SDK позволят вам легко разработать ваше программное обеспечение.
CDS является открытым исходным кодом с октября 2016 года. Вы можете свободно установить его в свою компанию или дома. Некоторые учебники доступны, чтобы помочь вам запустить компакт-диски, докеров, установить с двоичными файлами.
Высокая доступность является очень важной точкой для инструмента CI / CD. CDS не содержит хранения, в файловой системе ничего не хранится. Это позволяет запустить несколько API CDS за балансировщиком нагрузки. Таким образом, вы можете масштабировать API компакт -дисков в соответствии с вашими потребностями. Это также позволяет модернизировать CDS в целый день без влияния на пользователей. В производстве @OVH CDS можно обновлять несколько раз в день, не влияя на пользователей или останавливая работников компакт -дисков. Попросить ваших пользователей прекратить работать во время обновления инструмента непрерывной доставки было бы ироничным, не так ли? ;-)
CDS изначально раскрывает данные мониторинга. Вы сможете накормить свой экземпляр Prometheus или Warp10 с помощью Beamium.
Работа CDS состоит из шагов. Каждый шаг представляет собой встроенное действие типа (скрипт, проверка проверки, загрузка артефакта/загрузка ...). Вы можете создавать свои действия, используя существующие действия - или разработать свои действия в качестве плагина. Все языки поддерживаются, пока язык поддерживает GRPC.
CDS является агностическим для языков и платформ. Пользователи могут запустить задание на Linux, Windows, FreeBSD, OS X, Raspberry ... в виртуальной машине, нерестившемся по требованию, в контейнере Docker, на выделенном хосте.
Таким образом, если ваша компания использует несколько технологий, CDS не будет блокировщиком для создания и развертывания вашего внутреннего программного обеспечения.
Одна из первоначальных целей CD в OVH: построить и развернуть 150 приложений в качестве контейнера менее чем за 7 минут. Это стало реальностью с 2015 года. Что такое секретный ключ? Автомасштабные по требованию!
Таким образом, вы можете иметь сотни рабочих моделей, и при необходимости, CD запустит работников, используя инкубаторные.
Инкубатор похож на инкубатор, он рожает работников компакт -дисков и право на жизнь и смерть над ними.
Доступно несколько типов инкубатория:
Так что да, модные слова или нет, много облака автоматического масштаба-это реальность с компакт-дисками :-)
3-й оформление BSD