Изучите изменяемую инфраструктуру и неизменяемые структуры: узнайте от специалистов компании DST Global, какие из них обеспечивают гибкость обновлений, согласованность, надежность и соответствуют различным потребностям облака.
В мире управления инфраструктурой два фундаментальных подхода определяют, как развертываются и обслуживаются ресурсы: изменяемая и неизменяемая инфраструктура. Эти подходы влияют на то, как производятся обновления, как развивается инфраструктура и как обеспечивается согласованность в различных средах.
Изменяемая инфраструктура — это системы, которые можно изменять или обновлять после первоначального развертывания. Это означает, что изменения конфигурации, обновления программного обеспечения или исправления можно применять непосредственно к существующим ресурсам инфраструктуры, не заменяя их полностью. Например, сервер можно обновить, установив новое программное обеспечение, изменив его настройки или увеличив его ресурсы. Хотя сам сервер остается прежним, его конфигурация со временем меняется.
Неизменяемая инфраструктура работает по-другому. После развертывания его нельзя изменить или обновить. Вместо изменения того, что уже существует, любые обновления или изменения требуют замены существующей инфраструктуры новой версией, включающей эти обновления. Например, если необходимо развернуть новую версию приложения, новые серверы создаются с обновленными настройками, а старые серверы отключаются или удаляются. Такой подход обеспечивает согласованность при каждом развертывании и позволяет избежать непредвиденных проблем, связанных с затянувшимися изменениями.
Ключевые различия между изменяемой и неизменяемой инфраструктурой
При сравнении изменяемой и неизменяемой инфраструктуры можно выделить несколько ключевых различий, подчеркивающих сильные стороны и недостатки каждого подхода. Эти различия связаны с тем, как обрабатываются изменения, как поддерживается согласованность инфраструктуры и общее влияние на операции.
Когда выбирать изменяемую инфраструктуру
Хотя неизменяемая инфраструктура часто предпочтительнее в современных средах из-за ее согласованности и надежности, все же существует несколько сценариев, в которых выбор изменяемой инфраструктуры более практичен и выгоден. Изменяемая инфраструктура обеспечивает гибкость для определенных случаев использования, когда необходимы изменения на месте, экономическая эффективность или поддержание долгоживущих систем.
Вот несколько ключевых ситуаций, в которых следует рассмотреть возможность использования изменяемой инфраструктуры:
- Динамические или развивающиеся среды. В сценариях, где инфраструктуре необходимо часто адаптироваться к изменениям, например в средах разработки или тестирования, изменяемая инфраструктура является преимуществом. Разработчикам может потребоваться быстро обновить конфигурации, изменить код или исправить ресурсы без запуска новых экземпляров.
- Среды, чувствительные к затратам. Неизменяемая инфраструктура может увеличить эксплуатационные расходы, особенно в облачных средах, где развертывание новых экземпляров для каждого обновления влечет за собой дополнительные расходы. Для чувствительных к затратам сред, таких как стартапы или организации с ограниченным бюджетом, изменяемая инфраструктура может быть более экономичной.
- Приложения с отслеживанием состояния. Приложения или службы, поддерживающие состояние (например, базы данных, файловые системы или службы, ориентированные на сеансы), извлекают выгоду из изменяемой инфраструктуры. В этих случаях снос и замена инфраструктуры может привести к потере данных или значительным сложностям в сохранении состояния.
- Устаревшие системы. Устаревшие системы часто полагаются на изменяемую инфраструктуру из-за своей архитектуры и того факта, что они не были разработаны с учетом современных неизменяемых практик. Переписывание или миграция устаревших приложений в неизменяемую инфраструктуру может быть непрактичным, дорогостоящим или рискованным, поэтому изменяемая инфраструктура является лучшим выбором.
- Приложения с нечастыми обновлениями. Для сред или приложений, где обновления происходят нечасто и риск изменения конфигурации невелик, изменяемая инфраструктура может быть простым и эффективным решением. Если система не требует постоянной настройки или масштабирования, может быть достаточно поддержания долгоживущей инфраструктуры.
- Системы, требующие минимального времени простоя. Некоторые критически важные системы не могут позволить себе простои, которые могут возникнуть при замене инфраструктуры, особенно в средах с высокой доступностью. Изменяемая инфраструктура позволяет выполнять обновления на месте, что может минимизировать или полностью исключить простои.
- Системы со сложными взаимозависимостями. В средах, где службы или приложения имеют сложные взаимозависимости, управление неизменяемой инфраструктурой может стать затруднительным. Когда многочисленные компоненты полагаются друг на друга, внесение изменений на месте гарантирует, что эти соединения останутся нетронутыми без необходимости повторного развертывания всей инфраструктуры.
Когда выбирать неизменяемую инфраструктуру
Неизменяемая инфраструктура стала популярным подходом в современном ИТ-мире, особенно в облачных средах и средах DevOps. Это помогает предотвратить дрейф конфигурации и гарантирует согласованное и надежное развертывание. Однако не всегда он лучше всего подходит для каждой ситуации. Бывают случаи, когда выбор неизменяемой инфраструктуры очень выгоден, особенно когда решающими приоритетами являются согласованность, безопасность и масштабируемость.
Вот ключевые ситуации, когда выбор неизменяемой инфраструктуры является лучшим выбором:
- Производственные среды. Неизменяемая инфраструктура исключительно хорошо работает в производственных средах, где стабильность и надежность являются ключевыми факторами. Избегая изменений на месте, он поддерживает согласованность производственной среды и сводит к минимуму риск непредвиденных ошибок из-за ручных обновлений или изменения конфигурации. Это делает его надежным выбором, когда поддержание надежной системы имеет важное значение.
- Среды, ориентированные на безопасность. В средах, где безопасность является главным приоритетом, неизменяемая инфраструктура является более безопасным вариантом. Поскольку после развертывания инфраструктуры никакие изменения вручную не применяются, риск появления уязвимостей из-за неотслеживаемых или небезопасных изменений снижается.
- Архитектуры микросервисов. Архитектуры микросервисов построены по модульному принципу, что позволяет легко заменять отдельные компоненты. В этих конфигурациях неизменяемая инфраструктура играет ключевую роль, обеспечивая последовательное и независимое развертывание каждой службы, помогая избежать риска неправильной конфигурации. Такой подход повышает надежность всей системы.
- CI/CD Конвейеры и автоматизация. Конвейеры непрерывной интеграции и непрерывной доставки (CI/CD) процветают благодаря согласованности и автоматизации. Неизменяемая инфраструктура дополняет конвейеры CI/CD, гарантируя идентичность и повторяемость каждого развертывания, снижая вероятность неудачных сборок или поломки среды.
- Аварийное восстановление и откат. Неизменяемая инфраструктура упрощает аварийное восстановление и откат. Поскольку инфраструктура не изменяется после развертывания, откат к предыдущей версии так же прост, как повторное развертывание последней известной рабочей конфигурации. Это сокращает время простоя и делает восстановление более быстрым и надежным.
- Масштабируемость и автоматическое масштабирование. В средах, где масштабируемость является ключевым требованием, неизменяемая инфраструктура поддерживает автоматическое масштабирование путем создания новых экземпляров по мере необходимости, а не изменения существующих. Это особенно полезно для облачных приложений или контейнерных сред, где динамическое масштабирование является общим требованием.
- Сине-зеленое или канареечное развертывание. Стратегии сине-зеленого и канареечного развертывания являются идеальными кандидатами для неизменяемой инфраструктуры. Эти методы развертывания основаны на одновременном запуске двух сред (синей и зеленой), в которых новая версия тестируется, прежде чем она полностью заменит старую.
- Облачные и контейнерные приложения. Облачные и контейнерные приложения естественным образом совместимы с неизменяемой инфраструктурой, поскольку они спроектированы так, чтобы не сохранять состояние, масштабироваться и быть одноразовыми. Инструменты «Инфраструктура как код» (IaC), такие как Terraform, в сочетании с платформами оркестрации контейнеров, такими как Kubernetes, значительно выигрывают от неизменяемых практик.
- Системы высокой доступности. Системы высокой доступности, которые не терпят простоев, могут извлечь выгоду из неизменяемой инфраструктуры. При последовательном или сине-зеленом развертывании обновления применяются беспрепятственно, гарантируя отсутствие помех для конечного пользователя.
Гибридные подходы: объединение изменяемой и неизменяемой инфраструктуры
Хотя неизменяемая инфраструктура обеспечивает надежность и согласованность, а изменяемая инфраструктура обеспечивает гибкость и сохранение состояния, многие организации могут извлечь выгоду из гибридного подхода. Объединив лучшее из обеих моделей, вы можете создать более гибкую инфраструктуру, которая адаптируется к конкретным потребностям различных компонентов в вашей среде. Такой сбалансированный подход позволяет более эффективно удовлетворять различные требования.
Гибридный подход обычно предполагает использование неизменяемой инфраструктуры для сервисов без отслеживания состояния, где важны согласованность и повторяемость, и изменяемой инфраструктуры для сервисов с сохранением состояния или устаревших систем, где сохранение данных и гибкость более важны. Terraform, как мощный инструмент «Инфраструктура как код» (IaC), может управлять обеими моделями одновременно, предоставляя вам гибкость для эффективной реализации гибридного подхода.
Используйте неизменяемую инфраструктуру для компонентов без сохранения состояния
Службы и приложения без сохранения состояния, которые не полагаются на поддержание внутреннего состояния между сеансами, идеально подходят для неизменяемой инфраструктуры. Эти службы можно заменить или масштабировать без необходимости обновлений на месте.
- Пример. С помощью Terraform вы можете легко управлять развертыванием веб-серверов с помощью балансировщика нагрузки. При каждом обновлении приложения развертываются новые экземпляры, а старые удаляются. Это гарантирует, что на веб-серверах всегда будет использоваться последняя версия приложения без риска изменения конфигурации.
Используйте изменяемую инфраструктуру для компонентов с отслеживанием состояния
Компонентам с отслеживанием состояния, таким как базы данных, файловые системы или приложения, сохраняющие данные сеанса, требуется изменяемая инфраструктура для сохранения данных при обновлениях. Замена этих компонентов в неизменяемой модели повлечет за собой сложную миграцию данных и может привести к потере данных.
- Пример. Управляйте реляционной базой данных, такой как PostgreSQL, с помощью Terraform, где вам необходимо обновить емкость хранилища или применить исправления безопасности без замены экземпляра базы данных. Это гарантирует, что данные останутся нетронутыми при изменении инфраструктуры.
Автоматизируйте управление инфраструктурой с помощью Terraform
Способность Terraform определять инфраструктуру как код позволяет автоматизировать как изменяемые, так и неизменяемые развертывания. Благодаря гибридному подходу вы можете использовать Terraform для одновременного управления обоими типами инфраструктуры, обеспечивая согласованность там, где это необходимо, и гибкость там, где это необходимо.
#dst #dstglobal #дст #дстглобал #Модели #инфраструктуры #облачныевычисления #вычисления #инфраструктура #веб #сервер #Terraform #PostgreSQL #CICD #Конвейеры #Аварийноевосстановление
Источник: https://dstglobal.ru/club/933-modeli-infrastruktury-v-epohu-oblachnyh-vychislenii
Присоединяйтесь — мы покажем вам много интересного
Присоединяйтесь к ОК, чтобы подписаться на группу и комментировать публикации.
Нет комментариев