Возможно, контроль версий является одним из крупнейших инноваций в разработке программного обеспечения.
Контроль версий или контроль пересмотра, как его называют, дает огромную силу разработчикам при разработке сложных систем. Управление версией позволяет разработчикам сохранять рабочие части системы. Специально управление версиями позволяет критическим возможностям, таким как воспроизводимость , отслеживание Анкет
Воспроизводимость похожа на магическую палочку, которая помогает создавать идентичные системы, независимо от того, насколько сложна сама система.
Отслеживание Помогает разработчикам забрать любую среду и отслеживать ее зависимости. Прослеживаемость также помогает поднять любые две версии окружающей среды и выяснить различия, если таковые имеются.
Преимущества, предлагаемые воспроизводимостью и отслеживаемостью, уже хорошо понятны сообществу разработчиков, такие как: Высококачественное — только сохраняйте тестируемый и рабочий код, Аудит — Уметь отследить до происхождения, где началось изменение со всех деталей, аварийное восстановление — Уметь воспроизводить окружающую среду в детерминированное количество времени, когда что -то идет не так с услугой, Устранение неполадок — иметь возможность точно определить основную причину или возможную причину любых критических проблем с услугой.
Естественно, возникает вопрос, может ли такая успешная практика применить к облаку?
До настоящего времени в этом направлении было дано мало думать, но по мере того, как облако становится более сложным (охватывает несколько учетных записей, нескольких регионов и нескольких команд), и по мере увеличения сотрудничества между разными командами мы должны обратиться к нашим Лучшие инновации еще раз.
Конечно, есть различия, когда мы решаем применить управление версией в облаке. Облако не является однородной сущностью, такой как исходный код. Вместо этого облако можно рассматривать как слоистый лук, где каждый может иметь свою собственную схему версий, а вертикальный срез должен иметь свои собственные.
Контроль версий должен применяться к исходному коду, который обеспечивает облако. Предоставление обычно выполняется через IAC, такой как облачная формация, терраформ или пулуми.
Но только применение контроля версий к исходному коду IAC недостаточно. IAC отвечает за предоставление облачных ресурсов, и эти облачные ресурсы также имеют свою собственную жизнь. Например. Том EBS может занять срок службы EC2, к которому он присоединяется. Это вложение отражено в свойствах ресурсов, и эти свойства продолжают меняться в зависимости от того, какой это облачный ресурс.
Таким образом, начало контроля версий облачных версий требует, чтобы мы защищали как минимум три основных объекта — Подготовка кода , Облачные ресурсы Это подготовлено в ответ и Свойства ресурса который может измениться в течение периода.
Версия, управляющая кодом, проще всего. В конце концов, это зрелое искусство. Хранение этих файлов в GIT или аналогичных инструментах — это то, что необходимо. Поскольку IAC является исходным кодом, он также пользуется другими преимуществами, такими как IDE, обзоры кода и непрерывное развертывание. IAC позволяет разработчикам свое предполагаемое состояние облачной среды, однако существует постоянное состояние потока между тем, что желательно, и тем, что развернуто или работает в облаке.
Чтобы контролировать версию облачных ресурсов, нам нужно работать с API плоскости управления облаком. Эти API должны использоваться для извлечения всех доступных облачных ресурсов, а также их свойств ресурсов на тот момент времени. Контроль версий также должен быть интеллектуальным, чтобы отметить срок службы ресурса как созданные, доступные и удаленные. Мы можем назвать это как снимок Работа облака. Снимок отмечает все облачные ресурсы и их свойства, доступные в то время.
Хотя теоретически это выглядит правдоподобно, нам нужно понять наземную реальность. Облачные ресурсы редко существуют в изоляции. Сложный график взаимоотношений связывает эти ресурсы вместе. Таким образом, любое надежное решение должно иметь полное охват облачных ресурсов. Тем не менее, это огромная задача, учитывая скорость, с которой поставщики облака вводят новые услуги и расширяют существующие услуги. На момент написания примерно 250 (+) облачных сервисов доступны для AWS Cloud. Фактически, с точки зрения IAC, Terraform обладает гораздо лучшим охватом, чем собственная облачная информация и облачная информация AWS, всегда воспринимаются как отстающие.
Итак, были ли какие -либо усилия поставщиков облачных поставщиков для облачного управления версией? В основном это на двух уровнях, где мы видим, что это происходит. Индивидуальные уровни облачных ресурсов и внедрение сервисов для управления конфигурацией облачных ресурсов.
В AWS Cloud мы теперь видим, что версии ресурсов вводятся на уровне ресурсов. Например. Определения задач ECS явно версия, аналогично Шаблоны запуска имеют версии Анкет Хотя эти схемы управления версиями полезны для этих отдельных облачных ресурсов, с общей облачной точки зрения, имея их недостаточно. Вам все еще нужно получить снимку информации обо всех облачных ресурсах. То есть нам нужен целостный подход, который охватывает все облачные сведения о нескольких учетных записях, несколько регионов и почти все облачные ресурсы.
Если вы думаете, что это выглядит сложным, да, это так. И мы до сих пор не обсуждали обнаружение дрейфа и возвращались к предыдущему штату. Он заслуживает своего отдельного поста.
Естественно, когда такая версическая облачная информация будет доступна, будут ли дополнительные преимущества, кроме как мы обсуждали ранее? Может быть несколько, таких как: облачный линтинг , автоматические предложения для облачного ресурса Дрифты (желаемое состояние против фактического состояния), Идентификация уязвимости безопасности (через правила), уведомления в случае Случайный ресурс породится (Наиболее распространенная ошибка для ранних стартапов) и, очевидно, Auto Oflback В случае ошибок. Еще один интересный вариант использования, который может быть подан, — это Облачная визуализация , что, я считаю, станет необходимым в ближайшее время.
Еще один интересный вариант использования, который можно подавать, позволяя запросить облачные ресурсы и их отношения Анкет Опять же, это тема, которая заслуживает своего собственного выделенного поста.
К счастью, в этом пространстве появилось немногие услуги, которые могут быть полезными.
AWS config , который является службой управления конфигурацией облачных ресурсов от самого AWS. Служба AWS работает над понятием Регистратор , который должен быть настроен для записи (снимка) облачных ресурсов. Регистратор может быть настроен, чтобы включить все облачные ресурсы или несколько селективных. Свойства ресурса также записаны. Эти записанные снимки конфигурации могут храниться до 7 лет (что является значением по умолчанию) в S3. По умолчанию регистратор работает только для одной учетной записи и региона. Если вам нужно заставить его работать для нескольких учетных записей и регионов, вам нужно создать агрегаторы специально.
В истинной моде AWS, облачные ресурсы, которые покрывают эту услугу, ограничены, около 100 Типы ресурсов поддерживаются , во время написания. Еще одна проблема с конфигурацией AWS — это ценообразование. Каждая запись конфигурации ресурса занимает ~ 0,003 долл. США/регион. Для средних и больших облаков это может стать очень дорогим очень легко. Особенно когда что -то ломает и продолжает быстро менять свойство ресурса. Из-за своей модели оплаты за использование цены на обслуживание сложны.
Fugue.co , уже известный сервис со своим Регула Инструмент с открытым исходным кодом, и многие из вас уже могут быть знакомы с ним. Вы можете добавить облачные учетные записи в фугу, которая затем будет отсканирована (снимка). Затем вы можете установить базовую линию, которая послужит золотым моментальным снимком, против которого будет определен дрейф. Фуга также имеет работающий визуализатор, который иногда может облегчить управление облаком. Он также поддерживает ~ 190 Типы облачных ресурсов , что намного лучше, чем конфигурация AWS.
Тем не менее, Fugue не поддерживает историю облачных ресурсов, и не может видеть историю ресурсов (свойств), кроме дрейфа. Это также не определяет срок службы ресурса. Фуга, кажется, более сосредоточена на соответствии, и, возможно, это объясняет тег ценообразования (1250 долларов в месяц).
Cloudyali.io , находится в эксклюзивном бесплатном выпуске предварительного просмотра, и вам нужно подписаться на приглашение. Он уже поддерживает ~ 250 типов облачных ресурсов. Можно добавить несколько учетных записей в Сервис, что затем сделает снижение каждой учетной записи. Все облачные ресурсы из разных учетных записей и регионов можно увидеть в одном месте. Таким образом, его можно использовать для комплексного инвентаря ресурсов.
Пользовательский интерфейс облегчает поиск ресурсов определенного типа, которые можно дополнительно сузить вокруг учетных записей, регионов или даже диапазона дат. В отличительной черте Cloudyali четко отмечает время жизни каждого ресурса, идентифицируя тем самым, когда был создан или удален конкретный ресурс. Интересно, что можно просматривать все свойства ресурсов, меняющиеся в одном месте.
В ближайшее время я думаю, что мы увидим более зрелые сервисы для облачных версий. Пожалуйста, поделитесь своими мыслями.
Спасибо за чтение!
Оригинал: «https://dev.to/heldsteel7/do-you-version-control-cloud-28ah»