Как развивается DevOps, это помогает знать о том, как это работает. Одно из больших вещей в DevOps — инфраструктура как код. Это означает, что вы относитесь к вашей инфраструктуре точно такой же, как и вы относитесь к вашему приложению. Таким образом, вы проверяете его на управление версиями, пишите тесты для него и убедитесь, что он не расходится от того, что у вас есть в нескольких средах.
Работающая инфраструктура в качестве кода предотвращает проблемы, такие как неожиданные изменения кода, и расхождение конфигурации между средами, такими как производство и развитие. Это также гарантирует, что каждое развертывание вы делаете, то же самое. Вам не нужно беспокоиться о тех странных отличиях, которые случаются с ручным развертыванием, когда это правильно реализовано.
Что-то еще рассмотреть, что вам не нужно использовать различные языки программирования, например, Python или GO. Там будет какой-то конкретные языки инструмента, но обычно просты и имеют отличную документацию вокруг них. Главное, что вы меняете с инфраструктурой, поскольку код, как вы обрабатываете свои системы.
Вместо входа в сервер и вручную внести изменения, вы будете использовать подход для разработки к работе по этим задачам. Это означает, что вам не придется иметь дело с большим количеством вопросов, о которых только один человек в компании знает о. Таким образом, у каждого есть возможность обновлять и развертывать изменения в инфраструктуре, и изменения сохранены, так же, как и код, когда вы проверяете его в управление версиями.
В то время как инфраструктура поскольку код помогает со многими аспектами получения и сохранения надежной версии вашего приложения на производстве, он действительно добавляет значение при добавлении автоматизации к нему.
Автоматизация вашей инфраструктуры
Одна из первых вещей, на которых вы хотите посмотреть, — это то, как вы берете свой код и делаете его в артефакт. Артефакт — это любой развертываемый элемент, который производится вашим процессом сборки. Например, когда вы работаете с приложением, встроенным в реакции, вы знаете, что NPM Build Команда производит построить каталог в корне вашего проекта. Все в этом каталоге — это то, что развернуто на сервере.
В случае инфраструктуры в качестве кода артефакты — такие вещи, как Docker Images или VM-изображения. Вы должны знать, какие артефакты вы должны ожидать от вашего инфраструктурного кода, потому что они будут вердать и тестировать, так же, как ваше приложение Reaction будет. Некоторые примеры артефактов инфраструктуры включают пакеты ОС, RPMS и DEBS.
С помощью ваших артефактов построится, вам нужно проверить их так же, как и с кодом. После завершения сборки вы можете запустить модуль и тесты интеграции. Вы также можете сделать некоторые проверки безопасности, чтобы убедиться, что никакой конфиденциальной информации не пропускается на протяжении всего процесса.
Несколько инструментов вы можете написать автоматизацию инфраструктуры с помощью шеф-повара или неизбежного. Оба из них могут быть установленными устройствами для любых синтаксических ошибок или наилучших нарушений практики, не обеспечивая целую систему. Проверка Linter и Fixtatter Ошибки рано, может сэкономить вам много ненужных проблем позже, потому что он сохраняет его последовательным, независимо от того, сколько разработчиков вносит изменения. Вы также можете написать фактические тесты, чтобы убедиться, что правильные серверные платформы используются в правильной среде. Вы также можете проверить, что ваши пакеты устанавливаются, как вы ожидаете, что они будут.
Вы можете взять его на следующий уровень и запустить интеграционные тесты, чтобы увидеть, будет ли ваша система обеспечена и правильно развернута. Вы сможете проверить, чтобы убедиться, что правильные пакеты устанавливаются и что необходимые вами услуги работают на правильных портах.
Другой тип тестирования Вы можете добавить в ваш инфраструктурный код, это тестирование безопасности. Это включает в себя уверенность в том, что вы соблюдаете отраслевые правила и убедитесь, что у вас нет дополнительных портов, которые могут дать злоумышленникам. Как вы пишете тесты, во многом зависят от инструментов, которые вы решаете использовать, и мы охватим несколько из них в следующем разделе.
Тестирование — это огромная часть автоматизирующей инфраструктуры в качестве кода, потому что она экономит вам много времени отладки на молчаливых ошибках. Вы сможете отслеживать и исправить все, что может вызвать проблемы, когда вы готовитесь к развертыванию вашей инфраструктуры и использовать его, чтобы получить обновления вашего приложения для получения добычи.
Используемые вами инструменты помогут вам построить код инфраструктуры, который вам нужен для ваших трубопроводов. Есть несколько открытых источников и запатентованных инструментов, доступных только для любой инфраструктуры.
Обычно используемые инструменты
Некоторые из инструментов, которые вы увидите, обычно используемые в инфраструктуре, поскольку код включает в себя:
Шеф-повар Марионетка Террафом Дириу Cfengine AWS CloudFormation Azure Resource Manager Диспетчер облачных развертываний SaltStack Неизбежный Juju Докер Бродяга Р? Бывший Nixos.
Конкретный инструмент, который вы решаете пойти с, будут зависеть от инфраструктуры и кода заявки, с которыми вам уже есть, а другие услуги, с которыми вам нужно работать. Вы можете даже обнаружить, что комбинация этих инструментов работает лучше для вас. Самое главное с инфраструктурой в качестве кода — понять все, что идет в него. Таким образом, вы можете вносить лучшие решения, на которые используются инструменты и как структурировать свои системы.
Все за получением ваших приложений к производству
Когда вы слышите, как люди говорят о предоставлении, это означает, что они получают сервер, готовый запускать то, что вы хотите развернуть к нему. Это означает, что вы получаете ОС и системные услуги, готовые к использованию. Вы также проверяете такие вещи, как сетевое подключение и доступность порта, чтобы убедиться, что все связано с тем, что им нужно.
Развертывание означает, что есть автоматический процесс, который обрабатывает развертывание приложений и обновления приложений на сервере. Еще один термин, который вы услышите, что многие — это оркестровка. Орхестровка помогает координировать операции по нескольким системам. Поэтому, как только вы закончите первоначальное обеспечение, оркестровка обязана обновлять и запустить систему, и что у вас есть контроль над беговой системой.
Тогда есть управление конфигурацией. Он гарантирует, что приложения и пакеты поддерживаются и обновлены по мере необходимости. Это также обрабатывает изменение контроля конфигурации системы после того, как происходит начальное обеспечение. Есть несколько важных правил управления конфигурацией.
- Системы должны сойти в желаемое состояние. Системы, которые работают против сервера и против новых версий модели для получения в соответствии с существующей моделью, называются конвергентными.
- Системные команды и конфиги должны быть идентичными. Это означает, что вы сможете выполнить процедуру управления конфигурацией несколько раз и в конечном итоге с тем же состоянием.
- Системы должны быть неизменными. Это означает, что развертывание нельзя изменить после того, как они были развернуты. Таким образом, вам нужно будет восстановить всю систему, если потребуется изменение.
- Системы должны быть самообслуживания. Любой пользователь должен иметь возможность начать процесс без помощи никому другому. Не должно быть ни одного человека с магическими знаниями о том, как обрабатываются оказание и развертывание.
Более сложная ваша инфраструктура становится, тем важнее для этих основных правил следует соблюдать эти основные правила.
Другие мысли
Если вам интересно, как вы используете эти инструменты, чтобы сделать что-то полезное, это зависит от того, с каких систем вы работаете. Если вы работаете с простыми приложениями, возможно, стоит поиграть в настройках AWS CloudFormation. Если вы думаете о работе с микросервисами, Docker может быть хорошим инструментом для использования вместе с Kubernetes для Orchestrate их.
Если вы работаете с огромной распределенной средой, как корпоративная сеть, которая имеет пользовательские приложения, вы можете рассмотреть возможность использования Марионетка , Дириу или Шеф-повар Отказ Если у вас есть сайт с очень высокими требованиями Uptime, вы можете использовать инструмент Orchestration, как Неизбежный или Дирижер Отказ
Это не сложные правила, вы должны следовать, потому что все эти инструменты могут использоваться несколькими способами. Использование использования, которые я упомянул здесь, являются лишь некоторые из обычных способов инфраструктуры, поскольку используются кодовые инструменты. Надеюсь, что эти случаи использования дают вам лучшее представление о том, как может быть полезная инфраструктура.
Убедитесь, что вы следуете за мной на Twitter @flaphedCoding Действительно Я всегда публикую полезные, случайные технологии там.
Оригинал: «https://dev.to/flippedcoding/what-is-infrastructure-as-code-iac-461c»