В предыдущей теме нашей серии LFCA мы представили введение в облачные вычисления, различные типы и облака, облачные услуги и рассказали о некоторых преимуществах, связанных с облачными вычислениями.
Если ваш бизнес до сих пор использует традиционную IT-среду вычислений, пришло время перейти на облако. Предполагается, что к концу 2021 года более 90% общей нагрузки будут обрабатываться в облаке.
Среди основных преимуществ, связанных с внедрением облачных вычислений, улучшение производительности, высокая доступность и масштабируемость. Фактически, мы коснулись этого как одного из основных преимуществ использования облачной технологии.
В этой теме мы сосредотачиваемся на доступности облака, производительности и масштабируемости и стремимся понять, как эти три аспекта совпадают, чтобы удовлетворить потребности клиентов и обеспечить доступ пользователей к их данным так, как им это необходимо из любой точки мира.
1. Доступность облака
Приложения и услуги организации в области ИТ являются критическими, и любое нарушение сервиса может иметь глубокое влияние на доходы. Ожидание клиентов состоит в том, чтобы услуги были доступны круглосуточно в любое время из любого места. И это то, чего стремится достичь технология облака.
Высокая доступность является конечной целью облачных вычислений. Она стремится обеспечить максимальное время работы услуг компании даже в случае нарушений, которые могут быть вызваны непрецедентным простоем сервера или деградацией сети.
Высокая доступность обеспечивается наличием избыточных и резервных систем. Это происходит в кластерной среде, где несколько серверов или систем выполняют те же задачи, обеспечивая тем самым избыточность.
Когда один сервер выходит из строя, остальные могут продолжать работу и предоставлять услуги, предоставляемые задействованным сервером. Прекрасным примером избыточности является репликация данных по нескольким серверам баз данных в кластере. В случае возникновения проблем с основным сервером баз данных в кластере, другой сервер баз данных все равно будет предоставлять данные, необходимые пользователям, несмотря на сбой.
Избыточность устраняет единую точку отказа и обеспечивает 99,999% доступности услуг и приложений. Кластеризация также обеспечивает балансировку нагрузки между серверами и гарантирует равномерное распределение нагрузки, чтобы ни один сервер не был перегружен.
2. Масштабируемость облака
Еще одной отличительной чертой облачных вычислений является масштабируемость. Масштабируемость – это способность настраивать облачные ресурсы для удовлетворения изменяющихся потребностей. Простыми словами, вы можете плавно увеличивать или уменьшать ресурсы по мере необходимости, чтобы удовлетворить спрос, не нарушая качество услуг или время простоя.
Предположим, что вы управляете блогом, который начинает привлекать больше посетителей и трафика. Вы можете легко добавить больше вычислительных ресурсов, таких как хранилище, оперативную память и процессор, к вашему экземпляру облачных вычислений, чтобы справиться с дополнительной нагрузкой. И наоборот, вы можете уменьшить ресурсы при необходимости. Это обеспечивает то, что вы платите только за то, что используете, и это подчеркивает экономии на масштабе, которые предоставляет облако.
Масштабируемость имеет два аспекта: вертикальное масштабирование и горизонтальное масштабирование.
Вертикальное Масштабирование
Также известное как ‘scale up‘, вертикальное масштабирование включает в себя добавление большего количества ресурсов, таких как оперативная память, хранилище и процессор, к вашему экземпляру облачных вычислений для размещения дополнительной нагрузки. Это эквивалентно выключению вашего физического ПК или сервера для обновления оперативной памяти или добавления дополнительного жесткого диска или SSD.
Горизонтальное Масштабирование
Горизонтальное масштабирование, также известное как ‘scale out‘, включает в себя добавление большего количества серверов к вашему пулу уже существующих серверов для обеспечения распределения нагрузки между несколькими серверами. При горизонтальном масштабировании вы не ограничены емкостью одного сервера, как при вертикальном масштабировании. Это обеспечивает большую масштабируемость и меньшее время простоя.
Scale out более желателен по сравнению с scale up.
И вот почему. С горизонтальным масштабированием вы в основном добавляете больше ресурсов, таких как серверы или хранилище, к уже существующему пулу ресурсов. Это позволяет объединить мощность и производительность нескольких вычислительных экземпляров в один, и таким образом получить лучшую производительность, чем просто добавление ресурсов на один сервер. Дополнительные серверы подразумевают, что вам не нужно беспокоиться о дефиците ресурсов.
Кроме того, горизонтальное масштабирование обеспечивает избыточность и отказоустойчивость таким образом, что даже если один сервер поврежден, остальные продолжат предоставлять доступ к необходимым услугам. Вертикальное масштабирование связано с единственной точкой отказа. Если вычислительный экземпляр выйдет из строя, то все остальное также перестанет работать.
Горизонтальное масштабирование также предоставляет максимальную гибкость, в отличие от вертикального масштабирования, где приложения создаются как одна большая единица. Это делает их более сложными в управлении, обновлении или изменении отдельных участков кода без необходимости перезагрузки всей системы. Масштабирование вширь позволяет развязать приложения и обеспечивает безпроблемное обновление с минимальным временем простоя.
3. Производительность в облаке
Обеспечение соответствия производительности приложения требованиям клиентов может быть довольно сложной задачей, особенно если у вас есть несколько компонентов, размещенных в различных средах, которым постоянно необходимо взаимодействовать друг с другом.
Проблемы, такие как задержка, вероятно, проявятся и повлияют на производительность. Кроме того, не всегда легко предсказать производительность, когда ресурсы используются различными субъектами. Тем не менее, вы все равно можете достичь высокой производительности и оставаться на плаву, реализовав следующие меры.
1. Облачный экземпляр
Убедитесь, что вы используете правильные облачные экземпляры с достаточными ресурсами для обработки нагрузок ваших приложений и услуг. Для приложений, требующих больших ресурсов, обеспечьте достаточное количество оперативной памяти, процессора и хранилища на вашем облачном экземпляре, чтобы избежать возможного дефицита ресурсов.
2. Балансировщик нагрузки
Внедрите балансировщик нагрузки, чтобы равномерно распределять сетевой трафик между вашими ресурсами. Это обеспечит, чтобы ни одно из ваших приложений не было перегружено спросом. Предположим, ваш веб-сервер получает много трафика, что вызывает задержки и влияет на производительность.
A perfect solution would be to implement horizontal scaling with a total of 4 web servers sitting behind a load balancer. The load balancer will distribute network traffic across the 4 web servers and ensure none is overwhelmed by the workload.
3. Кэширование
Используйте решения по кэшированию, чтобы ускорить доступ к файлам приложениями. Кэши хранят часто запрашиваемые данные и тем самым исключают постоянные поиски данных, которые могут повлиять на производительность. Они снижают задержку и нагрузку, так как данные уже кэшированы, тем самым улучшая время отклика.
Кэширование можно реализовать на различных уровнях, таких как уровень приложения, уровень базы данных. Популярные инструменты кэширования включают Redis, Memcached и кэш Varnish.
4. Мониторинг производительности
Наконец, убедитесь в том, что вы мониторите производительность ваших серверов и приложений. Поставщики облачных услуг предоставляют средства мониторинга, которые помогут вам следить за вашими облачными серверами через веб-браузер.
Кроме того, вы можете инициативно установить бесплатные и открытые мониторинговые инструменты, которые помогут вам следить за вашими приложениями и серверами. Примеры таких приложений включают Grafana, Netdata и Prometheus, чтобы упомянуть некоторые.
Заключение
Мы не можем достаточно подчеркнуть, насколько важны доступность, масштабируемость и производительность в облаке. Эти три фактора определяют качество обслуживания, которое вы получите от вашего облачного поставщика, и в конечном итоге проводят грань между успехом или неудачей вашего бизнеса.
Source:
https://www.tecmint.com/cloud-availability-performance-and-scalability/