НИКСИС | NIXYS > Журнал > Облачно-ориентированный подход (Cloud Native)

Облачно-ориентированный подход (Cloud Native)

  • 27 ноября 2024
  • #

Облачно-ориентированный подход (Cloud Native) — это подход к созданию, развертыванию и управлению ПО, использующий технологии облачных вычислений. Его 5 базовых принципов помогают компаниям развиваться и быстро адаптироваться к изменениям на рынке. 

5 свойств облачно-ориентированного подхода:

  1. Лёгкость в использовании: позволяет управлять жизненным циклом продукта в автоматическом режиме → Команда ИТ-специалистов перестала тратить время и ресурсы на рутинные задачи. Количество ошибок, вызванных человеческим фактором, уменьшилось.
  2. Динамичность: даёт возможность быстро развернуть систему в любом окружении → Компания сократила время запуска продукта с 3 дней до 2 часов.
  3. Гибкость: позволяет настроить вертикальное и горизонтальное автоматическое масштабирование, которое подстраивает объем используемых ресурсов под текущую нагрузку → В часы пик нагрузка на сайт увеличилась в пять раз, что могло привести к сбоям в работе серверов. Компания подключила автоматическое масштабируемость и избежала перегрузок системы.
  4. Возможность наблюдения: обеспечивает мониторинг инфраструктуры и бизнес-метрики и помогает предотвратить возможные сбои → Команда стала получать данные о текущем состоянии и производительности его систем, благодаря чему сократила время реакции на инциденты до 15 мин.
  5. Устойчивость: гарантирует быстрое автоматическое восстановление в случае сбоя → Скорость восстановления после сбоев увеличилась в 20 раз.

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

Лёгкость в использовании или Exploitability

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

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

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

В качестве примеров внедрения возможности эксплуатации можно привести использование Kubernetes для оркестрации контейнеров и внедрение непрерывной интеграции и доставки (CI/CD) с помощью Jenkins, ArgoCD, GitLab.

Динамичность или Dynamism

Динамичность — это способность быстро развёртывать, конфигурировать и обновлять приложение. 

Динамичность системы достигается с помощью инфраструктуры как кода (Infrastructure as Code, IaC). Суть этого подхода заключается в том, что инфраструктура описывается, изменяется и масштабируется через структурированный код. 

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

Примерами инструментов, обеспечивающих динамичность системы, являются Terraform, Ansible, Cloudify и AWS.

Эластичность или Elasticity

Эластичность означает способность системы регулировать объём задействованных ИТ-ресурсов в автоматическом режиме для того, чтобы привести их в соответствие с реальной нагрузкой в определённый момент времени. Эластичность как свойство является особенно важной для приложений с переменными пиковыми нагрузками.

Здесь важен качественный мониторинг серверов: если система заметит, что нагрузка выходит за рамки нормы, то она моментально подключит дополнительные мощности. 

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

Docker и Kubernetes — классические примеры ПО для внедрения эластичных решений.

Возможность наблюдения или Observability

Возможность наблюдения — это не просто мониторинг. Это свойство позволяет не только регулярно и всесторонне наблюдать, но и диагностировать систему. 

ИТ-команда может собирать, анализировать и визуализировать данные с помощью набора специальных инструментов: Prometheus и Grafana для мониторинга метрик, ELK (Logstash, Elasticsearch, Kibana)-стек для логирования, а Jaeger и OpenTelemetry — для распределённой трассировки. 

Возможность наблюдения помогает объединить метрики, логи и трассировки объединятся в единое целое. Вместо того чтобы искать причину сбоя вручную в разных системах,инженеры будут сразу получать полную картину инцидента. Это сокращает время реакции на сбои в 2–3 раза. Инструменты мониторинга автоматически предупреждают команду об аномалиях в работе приложений, благодаря чему становится возможным предотвращать возможные сбои до того, как они повлияют на бизнес. А ещё анализ метрик и логов помогает найти возможности для оптимизации, например, с помощью ELK можно увидеть, какие запросы чаще всего становятся «узкими местами» системы.

Отказоустойчивость или Resiliency

Отказоустойчивостью называют способность системы продолжать работу после отказа одного или нескольких компонентов и восстанавливаться с минимальным временем простоя

Чтобы сбой в одном элементе не влиял на работоспособность всей системы, необходимо обеспечить изоляцию каждого из них. Это достигается с помощью микросервисной архитектуры, которая реализуется по шаблону переборки («Bulkhead»). Этот подход пришёл в из судостроительной практики, где переборки помогают предотвратить затопление всего корабля при повреждении одной из секций.

Проверить отказоусточивость системы можно через тестирование сбоев (Chaos Testing).

Если хотите узнать больше о том, как внедрение Cloud Native может улучшить конкретно ваш проект, пожалуйста, заполните форму ниже. Мы свяжемся с вами в течение 24 часов.


Обсудить проект

Обязательно заполните одно из полей: «Почтовый адрес»/«Телефон».
Контакт «Telegram» - дополнительный.

 

и/или

Соглашаюсь на обработку персональных данных

См. Политику обработки персональных данных