Рубрики
Uncategorized

5 причин, по которым фреймворки имеют смысл для инфраструктуры в качестве кода

В этом посте я надеюсь указать несколько причин, почему рамки имеют смысл для инфраструктуры в качестве кода, … Tagged with Kubestack, Devops, Terraform, Kubernetes.

В этом посте я надеюсь указать несколько причин, почему рамки имеют смысл для инфраструктуры в качестве кода, пробовал Кубестак Это заставило меня задуматься, должно быть больше этих рамок? И предоставляют ли они ту же ценность, что и традиционная веб -структура, такая как Flask, Express.js или Ruby на рельсах. Теперь вы можете подумать, не такие инструменты, как Terraform , Ansible , Шеф -повар уже существует?

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

Вернуться к основам

Так что же такое структура в контексте разработки программного обеспечения? Быстрый поиск в Google даст вам множество ответов, вот два ответа/аналогии, которые мне действительно нравятся.

От djangostars.com

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

От Hashnode

При выборе веб -структуры для проекта есть несколько вещей, которые нужно рассмотреть.

  • Скорость развития
  • Обслуживание
  • Устранение повторяющегося кода
  • Поддержка/документация сообщества
  • Снизить риск

Как что -то из этого связано с инфраструктурой в качестве кода?

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

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

Kubestack — это структура автоматизации инфраструктуры, построенная на вершине Terraform. Основная цель Kubestack — не изобретать колесо, а способствовать быстрому развитию при использовании Terraform.

От kubestack.com

Kubestack-это рамка Terraform с открытым исходным кодом для команд, которые хотят автоматизировать инфраструктуру, а не заново изобретать автоматизацию.

Теперь можно сказать о создании инфраструктуры, если бы вы раскрутили кластер Kubernetes с помощью Terraform, существует общий процесс получения некоторой шаблон и настройки его в соответствии с вашими потребностями. Теперь это не совсем проблема, однако в сценарии, когда вам нужно создать более одного кластера, вы можете повторить этот процесс еще раз, и именно здесь появляется моя точка зрения на устранение повторяющегося кода. Перейти на что -то вроде Kubestack И этот шаблон генерируется для вас, это было бы эквивалентом работы Django-admin startproject xyz, если вы знакомы с Django. Очевидно, что это недостаточно убедительно, поэтому давайте проведем бок о бок по сравнению с некоторыми причинами для использования регулярной структуры веб-разработки и посмотрим, могут ли они применить к инфраструктуре.

Бок о бок сравнение

Для этого раздела я буду смотреть на следующие моменты:

  • Скорость развития
  • Обслуживание
  • Сокращение повторяющегося кода
  • Поддержка сообщества
  • Снизить риск

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

Скорость развития

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

При создании кластера Kubernetes несколько вещей относительно постоянны по каждому облаку, например (размер/количество узлов, регион), на данный момент вы уже начинаете видеть, как структура может ускорить разработку, абстрагируя эти компоненты, оставив место для вас, чтобы Настраивайте, как вам нравится.

Это что -то Kubestack Предоставляет из коробки, но я не буду подробно рассказать в этой статье. Смотрите Здесь для получения дополнительной информации.

Обслуживание

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

« Хорошие программисты пишут код, который люди могут понять. » — Мартин Фаулер

Я видел, как достаточное количество проектов стало кошмаром из -за отсутствия структуры. Такие рамки, как Django или Ruby on Rails, обеспечивают хороший каркас для строительства ваших проектов, они также импортируют соответствующие модули, которые вы обязаны использовать в какой -то момент. Это не значит, что рамки волшебным образом заставляют все ваши проблемы исчезнуть, но в целом я думаю, что это обеспечивает хороший ступень для того, чтобы ваше приложение поддерживалось.

Это напрямую перемещается в инфраструктуру в качестве кода в определенной степени, при запуске нового проекта с использованием чего -то вроде Terraform трудно предсказать, насколько он будет расти, и это потенциально может структурировать свои модули, имея структуру с соответствующей информацией Предварительно заполненный значительно увеличит развитие. Возвращаясь к модели наследования, Kubestack использует шансы на то, что вы неправильно настроены модуль или неправильно копировать вставку, значительно снижаются.

Ansible на самом деле лучше в этом отношении с Ansible-Galaxy, помогая вам создать довольно разумную структуру папок для ваших книг. Узнайте больше о Ansible-Galaxy Здесь Анкет

Сокращение повторяющегося кода

Сокращение повторяющихся процессов лежит в основе как инфраструктуры в качестве кода, так и использования структур разработки программного обеспечения, но пытаясь автоматизировать, я часто нахожу этот процесс немного повторяющимся и подверженным ошибкам, необходимость использовать один и тот же кусок кода здесь Время от времени снова быстро уменьшает количество усилий, потраченных на такие мелочи. Многие рамки гарантируют, что разработчики следуют Сухой принципы. Terraform использует HCl для конфигурации, которая сама по себе может стать повторяющимся очень ровным, классический пример будет при предоставлении более одного из тех же ресурсов

Вы можете найти свой код самостоятельного копирования или сделать что-то странное, чтобы обойти это, тогда как при использовании Kubestack ваша конфигурация следует за Модель наследования что помогает сохранить вашу конфигурацию СУХОЙ Это означает, что вы определяете один раз и просто наследуете в любом дочернем модуле ты хочешь

Чтобы использовать это в.

Поддержка/документация сообщества

Это, пожалуй, одно из самых больших преимуществ использования структуры, для каждой ошибки, с которой вы сталкиваетесь, используя рамки, есть большая вероятность, что он испытал таковой, и если по какой -то причине это не может быть возможностью получить вовлечен в проект, если вы выберете. Я не могу представить, как научиться использовать колбу без тысяч постов и проблем Stackoverflow на GitHub. Без сомнения, здоровое сообщество способствует росту любого языка или структуры, и я думаю, что то же самое относится и к инфраструктуре, как код, если бы больше людей использовали инструменты IAC с рамочным подходом по гораздо большему количеству вопросов и в конечном итоге приводят к росту.

Снижение риска

При использовании инструментов IAC жизненно важно, чтобы ваш код проверялся должным образом, так как малейшие неправильные сбыты, как правило, оказывают значительное влияние на вашу инфраструктуру, при использовании структуры, которые с меньшей вероятностью будут разорвать, так как большинство функций подвергаются определенному уровню тестирования, прежде чем она может быть Принято, переходите в мир IAC, и большая часть тестирования остается для вас, типичным примером будет инцидент, который произошел в Spotify, более подробная информация о том, что Здесь Анкет Одна общая проблема, которую часто сталкиваются с Terraform, — это то, что я называю «государственным дрейфом» (потому что Я не знаю, как это называется), где ваше состояние и код Terraform не соответствуют, что привело к некоторым нежелательным результатам, которые имели место с Spotify. Возвращаясь к Kubestack, когда он его использует, удаленное состояние автоматически настроено для вас, что означает, что вы можете сосредоточиться на разработке своей инфраструктуры, а не на беспокойстве о своих файлах штата. Это можно думать о том, как Django предоставляет простой интерфейс для настройки подключений для различных типов баз данных. Из всех моментов до сих пор это наиболее важная часть, плохая инфраструктура напрямую влияет на конечных пользователей.

Так какой смысл в этой статье?

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

Если вы хотите узнать больше о Kubestack, вы можете проверить это по сравнению с Здесь Анкет

Оригинал: «https://dev.to/s1ntaxe770r/5-reasons-why-frameworks-make-sense-for-infrastructure-as-code-1epl»