Модели инфраструктуры в эпоху облачных вычислений

Модели инфраструктуры в эпоху облачных вычислений

Изучите изменяемую инфраструктуру и неизменяемые структуры: узнайте от специалистов компании DST Global, какие из них обеспечивают гибкость обновлений, согласованность, надежность и соответствуют различным потребностям облака.

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

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

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

Ключевые различия между изменяемой и неизменяемой инфраструктурой

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

Вариант использования

Изменяемая инфраструктура

Неизменяемая инфраструктура

Управление изменениями

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

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

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

Устраняет дрейф конфигурации . Каждое развертывание начинается заново с новой среды, гарантируя, что инфраструктура всегда соответствует желаемому состоянию и работает согласованно.
Последовательность Может привести к несогласованности , если вносятся изменения вручную или применяются разные версии обновлений в разных средах. Это может привести к неожиданному поведению, особенно в долгоживущих или часто обновляемых средах. Высокая согласованность, поскольку каждое развертывание использует чистое состояние. Это гарантирует, что все экземпляры инфраструктуры одинаковы, что позволяет избежать непредвиденных проблем, связанных с разными конфигурациями.
Время простоя Может быть обновлено на месте , что часто приводит к сокращению времени простоя или его отсутствию. Это крайне важно для систем, которым требуется высокая доступность и которые не могут позволить себе повторное развертывание. В зависимости от используемой стратегии (например, сине-зеленое или чередующееся развертывание) может возникнуть временный простой во время процесса замены. Однако современные методы, такие как сине-зеленое или канареечное развертывание, могут смягчить эту проблему за счет плавного перехода между старой и новой инфраструктурой.
Сложность отката Откат изменений может быть сложным, поскольку возврат к предыдущей конфигурации может не полностью восстановить инфраструктуру в исходное состояние. В большинстве случаев может потребоваться ручное вмешательство. Откат проще . Поскольку для каждого изменения создается новая инфраструктура, откат осуществляется так же просто, как повторное развертывание предыдущей рабочей версии. Это снижает риск сбоя при возврате к более раннему состоянию.
Безопасность Исправления безопасности применяются непосредственно к работающим системам, что может сделать их уязвимыми для атак, если исправления применяются с задержкой или неправильно. Ручное исправление сопряжено с риском. Более безопасно, поскольку каждое обновление заменяет всю систему новым экземпляром. Это гарантирует полное устранение всех уязвимостей предыдущих конфигураций и последовательное применение исправленных версий.
Операционные накладные расходы Требуется дополнительное обслуживание и мониторинг, чтобы гарантировать правильное применение обновлений и безопасность систем в течение длительного времени. Это может увеличить операционные накладные расходы, особенно при управлении большими и сложными средами. Снижает операционные накладные расходы за счет стандартизации обновлений и развертываний. Поскольку нет необходимости управлять обновлениями на месте, требуется меньше усилий для поддержания согласованности в разных средах.
Ресурсная эффективность В некоторых случаях более эффективно использовать ресурсы , поскольку обновления выполняются в существующих ресурсах без создания новых. Это может сэкономить затраты и время, особенно для обновлений, не требующих полного переразвертывания системы. Требует создания новых ресурсов для каждого обновления, что может привести к увеличению затрат и использования ресурсов, особенно для сред, требующих частых обновлений или масштабирования. Однако инструменты автоматизации могут помочь управлять этим процессом более эффективно.
Варианты использования Подходит для сред, где быстрые обновления на месте необходимы без полного повторного развертывания (например, базы данных, среды разработки и тестирования или устаревшие системы). Это также практично для сред, где необходимо минимизировать затраты за счет повторного использования существующей инфраструктуры. Лучше всего подходит для сред, где согласованность, безопасность и надежность имеют решающее значение, таких как производственные среды, контейнерные приложения и микросервисы. Неизменяемая инфраструктура идеально подходит для организаций, которые отдают приоритет автоматизации, масштабированию и непрерывной доставке.
Срок службы инфраструктуры Часто ассоциируется с долгоживущей инфраструктурой , в которой одни и те же ресурсы поддерживаются и обновляются с течением времени. Эти системы могут развиваться, оставаясь активными, что со временем приводит к дрейфу. Обычно связано с недолговечной инфраструктурой . Ресурсы часто заменяются более новыми версиями, что снижает потребность в постоянном обслуживании одной и той же системы.       


Когда выбирать изменяемую инфраструктуру

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

Вот несколько ключевых ситуаций, в которых следует рассмотреть возможность использования изменяемой инфраструктуры:

- Динамические или развивающиеся среды. В сценариях, где инфраструктуре необходимо часто адаптироваться к изменениям, например в средах разработки или тестирования, изменяемая инфраструктура является преимуществом. Разработчикам может потребоваться быстро обновить конфигурации, изменить код или исправить ресурсы без запуска новых экземпляров.

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

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

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

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

- Системы, требующие минимального времени простоя. Некоторые критически важные системы не могут позволить себе простои, которые могут возникнуть при замене инфраструктуры, особенно в средах с высокой доступностью. Изменяемая инфраструктура позволяет выполнять обновления на месте, что может минимизировать или полностью исключить простои.

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

Когда выбирать неизменяемую инфраструктуру

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

Вот ключевые ситуации, когда выбор неизменяемой инфраструктуры является лучшим выбором:

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

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

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

- CI/CD Конвейеры и автоматизация. Конвейеры непрерывной интеграции и непрерывной доставки (CI/CD) процветают благодаря согласованности и автоматизации. Неизменяемая инфраструктура дополняет конвейеры CI/CD, гарантируя идентичность и повторяемость каждого развертывания, снижая вероятность неудачных сборок или поломки среды.

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

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

- Сине-зеленое или канареечное развертывание. Стратегии сине-зеленого и канареечного развертывания являются идеальными кандидатами для неизменяемой инфраструктуры. Эти методы развертывания основаны на одновременном запуске двух сред (синей и зеленой), в которых новая версия тестируется, прежде чем она полностью заменит старую.

- Облачные и контейнерные приложения. Облачные и контейнерные приложения естественным образом совместимы с неизменяемой инфраструктурой, поскольку они спроектированы так, чтобы не сохранять состояние, масштабироваться и быть одноразовыми. Инструменты «Инфраструктура как код» (IaC), такие как Terraform, в сочетании с платформами оркестрации контейнеров, такими как Kubernetes, значительно выигрывают от неизменяемых практик.

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

Гибридные подходы: объединение изменяемой и неизменяемой инфраструктуры

Хотя неизменяемая инфраструктура обеспечивает надежность и согласованность, а изменяемая инфраструктура обеспечивает гибкость и сохранение состояния, многие организации могут извлечь выгоду из гибридного подхода. Объединив лучшее из обеих моделей, вы можете создать более гибкую инфраструктуру, которая адаптируется к конкретным потребностям различных компонентов в вашей среде. Такой сбалансированный подход позволяет более эффективно удовлетворять различные требования.

Гибридный подход обычно предполагает использование неизменяемой инфраструктуры для сервисов без отслеживания состояния, где важны согласованность и повторяемость, и изменяемой инфраструктуры для сервисов с сохранением состояния или устаревших систем, где сохранение данных и гибкость более важны. Terraform, как мощный инструмент «Инфраструктура как код» (IaC), может управлять обеими моделями одновременно, предоставляя вам гибкость для эффективной реализации гибридного подхода.

Используйте неизменяемую инфраструктуру для компонентов без сохранения состояния

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

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

Используйте изменяемую инфраструктуру для компонентов с отслеживанием состояния

Компонентам с отслеживанием состояния, таким как базы данных, файловые системы или приложения, сохраняющие данные сеанса, требуется изменяемая инфраструктура для сохранения данных при обновлениях. Замена этих компонентов в неизменяемой модели повлечет за собой сложную миграцию данных и может привести к потере данных.

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

Автоматизируйте управление инфраструктурой с помощью Terraform

Способность Terraform определять инфраструктуру как код позволяет автоматизировать как изменяемые, так и неизменяемые развертывания. Благодаря гибридному подходу вы можете использовать Terraform для одновременного управления обоими типами инфраструктуры, обеспечивая согласованность там, где это необходимо, и гибкость там, где это необходимо.

Комментарии
Вам может быть интересно
Тренды CRM-маркетинга вращаются вокруг улучшения качества обслуживания. По данным Smart Insights, более 60% опрошенных рассказывают родственникам, друзьям и подписчикам в социальных сетях именно о нег...
В современной разработке большая часть приложений не создаётся с нуля. Программи...
Эффективное управление взаимоотношениями с клиента...
В этом статей разработчики компании DST Global исс...
Высоконагруженные системы в разработке социальных ...
Нишевые B2B маркетплейсы предоставляют обширные во...
В мире есть много способов программирования. Но од...
В современном мире онлайн-бизнеса сложно переоцени...
Среди предпринимателей бытует мнение, что разработ...
Прежде чем мы узнаем для чего и как придумали объе...
Перейти вверх