![Search icon](https://hackernoon.imgix.net/search-new.png?w=19&h=19)
За время работы в Palantir я потратил значительное время на развертывание нашего программного обеспечения в облачных средах, а также значительную часть времени на развертывание нашего программного обеспечения в локальных (on-prem) средах (включая создание команды, которая именно этим и занимается). Я заметил, что, несмотря на общее предпочтение облачного развертывания, у развертывания on-prem все еще есть свои преимущества.
Переход от локальных к облачным вычислениям
За последние годы ИТ-ландшафт все больше отдает предпочтение облачным вычислениям, что обусловлено гибкостью предложений Infrastructure-as-a-Service (IaaS) и Platform-as-a-Service (PaaS). Глобальный рынок облачных вычислений вырос с 24,63 млрд долларов в 2010 году до 156,4 млрд долларов в 2020 году, и эта тенденция продолжается и, по прогнозам, превысит 1 триллион долларов к 2028 году. Этот стремительный рост обусловлен как новым спросом на вычисления в мире, так и миграцией локальных рабочих процессов в облако.
Для этого перехода есть веские причины: облако обеспечивает быстрое предоставление ресурсов, географическую избыточность и переход от капитальных затрат (CapEx) к эксплуатационным расходам (OpEx). Однако я считаю, что существуют определенные сценарии, в которых использование локальной инфраструктуры, особенно там, где особые технические требования, такие как детерминированная задержка, контроль на уровне оборудования и строгие меры безопасности, имеют первостепенное значение.
Прежде чем углубляться в сравнение облачных и локальных установок, давайте уделим немного времени изучению того, как обычно настраивается каждое развертывание.
Настройка Canonical On-Prem
Типичная локальная установка включает в себя полностью контролируемую среду, где предприятие управляет всеми уровнями технологического стека. Это включает:
Физический уровень : оборудование, такое как серверы, массивы хранения (SAN/NAS) и сетевое оборудование (маршрутизаторы, коммутаторы, брандмауэры). Вам также понадобится центр обработки данных для запуска ваших серверов.
Уровень виртуализации : часто реализуется с использованием гипервизоров, таких как VMware vSphere, Microsoft Hyper-V, или альтернатив с открытым исходным кодом, таких как KVM, обеспечивая виртуализированные ресурсы и изоляцию.
Хранение и вычисления : напрямую управляются, часто оптимизируются для определенных рабочих нагрузок с помощью пользовательских конфигураций (например, уровней RAID, механизмов кэширования).
Сеть : полный контроль над сетевыми протоколами, маршрутизацией и политиками безопасности, позволяющий точно настраивать QoS (качество обслуживания) и минимизировать задержки.
Настройка Canonical Cloud
В типичной облачной конфигурации инфраструктура абстрагируется и управляется поставщиком облачных услуг, который предлагает:
Виртуализированная инфраструктура : вычислительные экземпляры, виртуальные сети и хранилища предоставляются через API. Облачные технологии, такие как Kubernetes и бессерверные архитектуры, используются для оркестровки и масштабирования.
Управляемые услуги : базы данных (например, Amazon RDS, Google Cloud SQL), озера данных, службы AI/ML и другие расширенные аналитические инструменты предлагаются в качестве управляемых услуг, что снижает эксплуатационные расходы.
Многопользовательская архитектура : ресурсы часто распределяются между несколькими арендаторами, а виртуализация и контейнеризация обеспечивают изоляцию.
Сравнение
Масштаб и скорость : облако отличается эластичным масштабированием, чему способствуют механизмы горизонтального масштабирования, такие как группы автоматического масштабирования и бессерверные функции. Локальная инфраструктура требует тщательного планирования емкости и инвестиций в физическое оборудование, часто включающее вертикальное масштабирование. Если вы стартап, который не может ждать 9 месяцев новых вычислений, облако — это то, что вам нужно. Однако если вы крупное предприятие с возможностью прогнозировать вычислительную нагрузку на следующий год, то локальная инфраструктура может быть жизнеспособным вариантом.
Задержка: Локальные настройки могут достигать детерминированной низкой задержки из-за близости серверов и прямого контроля над сетевыми путями. Для приложений, чувствительных к задержке (например, высокочастотная торговля, аналитика в реальном времени), это может быть критически важно. Облачные среды, хотя и оптимизированы для низкой задержки с помощью таких функций, как AWS Direct Connect или Google Cloud Interconnect, могут вносить переменную задержку из-за таких факторов, как перегрузка сети (проблема шумных соседей) и накладные расходы на виртуализацию. Поэтому в случае, когда предсказуемая задержка и рабочие процессы с низкой задержкой имеют решающее значение для вашего бизнеса, локальные настройки могут быть неплохой идеей!
Стоимость: Модели ценообразования в облаке (оплата по мере использования, зарезервированные экземпляры) обеспечивают гибкость, но могут стать дорогостоящими для постоянных, объемных рабочих нагрузок, особенно с высокими расходами на вывод данных. Локальные решения, хотя и требуют значительных первоначальных капитальных затрат на приобретение оборудования, могут предложить более низкую совокупную стоимость владения (TCO) с течением времени, особенно для предсказуемых, высокозатратных рабочих нагрузок. Облачные модели могут быть дорогими, Dropbox сэкономил 16,8 млн долларов в 2016 году, когда переместил большую часть своего хранилища из AWS в собственные центры обработки данных. Вот статья, в которой более подробно рассматривается, как локальные решения могут сэкономить вам $$ .
Экспертиза: Локальные среды требуют глубоких знаний в обслуживании оборудования, сетевой инженерии и системном администрировании. Напротив, облачные среды перекладывают большую часть управления инфраструктурой на поставщика, позволяя командам сосредоточиться на разработке и развертывании приложений, часто используя методы DevOps и инструменты Infrastructure as Code (IaC), такие как Terraform или CloudFormation. SRE и системные администраторы в настоящее время редки, и вам, вероятно, понадобится значительный объем вычислений, чтобы оправдать найм команды этих людей для обслуживания и эксплуатации локальной установки (и не забывайте, что вам нужна устойчивая ротация дежурств!)
Безопасность: Локальные настройки обеспечивают полный контроль над конфигурациями безопасности, от физических мер безопасности до детальной сегментации сети и протоколов шифрования. Этот контроль необходим для соответствия определенным стандартам соответствия (например, PCI-DSS, HIPAA). Напротив, облачные среды требуют доверия к мерам безопасности поставщика, хотя такие функции, как виртуальные частные облака (VPC), выделенное оборудование (например, AWS Outposts) и управляемые клиентом ключи шифрования, могут смягчить некоторые опасения. Если вы запускаете рабочие процессы, требующие этих средств управления безопасностью и протоколов, развертывание на месте может быть единственным выходом. Если нет, то может быть рассмотрена более жесткая безопасность! Однако я думаю, что текущие поставщики облачных услуг адаптируются и предлагают предложения, которые соответствуют некоторым из этих стандартов (например, AWS GovCloud ).
Заключение
В то время как облачные вычисления предлагают непревзойденную гибкость, масштабируемость и доступ к передовым управляемым сервисам, локальные решения по-прежнему незаменимы в сценариях, требующих низкой задержки, высокой безопасности и полного контроля над конфигурациями оборудования и программного обеспечения. По мере развития ИТ-ландшафта выбор между облаком и локальными решениями должен определяться конкретными техническими и бизнес-требованиями, гарантируя, что выбранная инфраструктура соответствует стратегическим целям организации, и вы можете использовать приведенные выше факторы и сравнения, чтобы сделать более обоснованный выбор того, какая настройка лучше для вас! Удачи!