Поиск по сайту:

LFCA: Изучите доступность, производительность и масштабируемость облака – часть 14


В предыдущей теме нашей серии LFCA мы познакомили вас с облачными вычислениями, различными типами облаков и облачными сервисами, а также рассказали вам о некоторых преимуществах, связанных с облачными вычислениями.

Если ваш бизнес все еще использует традиционную вычислительную среду ИТ, пришло время перейти на облачные технологии. Предполагается, что к концу 2021 года более 90% всей рабочей нагрузки будет обрабатываться в облаке.

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

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

1. Доступность облака

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

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

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

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

Резервирование исключает единую точку отказа и гарантирует доступность сервисов и приложений на уровне 99,999%. Кластеризация также обеспечивает балансировку нагрузки между серверами и гарантирует равномерное распределение рабочей нагрузки и отсутствие перегрузки ни одного сервера.

2. Облачная масштабируемость

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

Предположим, вы ведете блог, который начинает набирать популярность и привлекать больше трафика. Вы можете легко добавить дополнительные вычислительные ресурсы, такие как хранилище, ОЗУ и ЦП, в свой экземпляр облачных вычислений, чтобы справиться с дополнительной рабочей нагрузкой. И наоборот, при необходимости вы можете сократить ресурсы. Это гарантирует, что вы платите только за то, что вам нужно, и подчеркивает эффект масштаба, обеспечиваемый облаком.

Масштабируемость имеет два аспекта: вертикальное масштабирование и горизонтальное масштабирование.

Вертикальное масштабирование

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

Горизонтальное масштабирование

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

Масштабирование более желательно по сравнению с увеличением.

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

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

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

3. Производительность облака

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

Такие проблемы, как задержка, могут проявиться и повлиять на производительность. Кроме того, нелегко предсказать производительность, когда ресурсы совместно используются различными объектами. Несмотря на это, вы все равно можете добиться высокой производительности и остаться на плаву, приняв следующие меры.

1. Облачный экземпляр

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

2. Балансировщик нагрузки

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

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

3. Кэширование

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

Кэширование может быть реализовано на различных уровнях, таких как уровень приложения и уровень базы данных. Популярные инструменты кэширования включают Redis, Memcached и Varnishcache.

4. Мониторинг производительности

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

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

Заключение

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