Проектирование приложений для устойчивых рабочих нагрузок в Azure
При создании новых или обновлении существующих приложений важно учитывать, как решение повлияет на климат и есть ли способы улучшения и оптимизации. Узнайте о рекомендациях и рекомендациях по оптимизации кода и приложений для более устойчивого проектирования приложений.
Важно!
Эта статья является частью серии устойчивых рабочих нагрузок Azure Well-Architected . Если вы не знакомы с этой серией, мы рекомендуем начать с того, что такое устойчивая рабочая нагрузка?
Эффективность кода
Требования к приложениям могут различаться, и важно рассмотреть способы стабилизации использования, чтобы предотвратить чрезмерное или недостаточное использование ресурсов, что может привести к ненужным утечкам энергии.
Оценка перемещения монолитов в архитектуру микрослужб
Монолитные приложения обычно масштабируется как единое целое, оставляя мало места для масштабирования только отдельных компонентов, которым они могут потребоваться.
Выравнивание Green Software Foundation: энергоэффективность, эффективность оборудования
Рекомендация.
- Оцените рекомендации по архитектуре микрослужб .
- Архитектура микрослужб позволяет масштабировать только необходимые компоненты во время пиковой нагрузки; обеспечение уменьшения или уменьшения масштаба бездействующих компонентов. Кроме того, это может снизить затраты и ресурсы, необходимые для развертывания монолитных приложений.
- Учитывайте этот компромисс: при сокращении необходимых вычислительных ресурсов вы можете увеличить объем трафика в сети, а сложность приложения может значительно увеличиться.
- Рассмотрим другой компромисс: переход на микрослужбы может привести к дополнительным затратам на развертывание с многочисленными сходствами в конвейерах развертывания. Тщательно продумайте необходимые ресурсы развертывания для монолитной архитектуры и архитектуры микрослужб.
- Кроме того, прочитайте о контейнеризации монолитных приложений.
Повышение эффективности API
Многие современные облачные приложения предназначены для асинхронной передачи множества сообщений между службами и компонентами. Рассмотрим формат, используемый для кодирования полезных данных. Какой объем информации требуется для передачи приложению и есть ли место для уменьшения количества чатов?
Выравнивание Green Software Foundation: энергоэффективность
Рекомендация.
- Узнайте об антишаблоне ввода-вывода , чтобы лучше понять, как большое количество запросов может повлиять на производительность и скорость реагирования.
- Повысьте надежность и уменьшите ненужные нагрузки на системы. Реализация расширенного регулирования запросов с помощью Управление API.
- Сведите к минимуму объем данных, возвращаемых приложением из запросов, путем выборки и кодирования сообщений. Ознакомьтесь с рекомендациями по кодированию сообщений.
- Кэшируйте ответы, чтобы избежать повторной обработки данных того же типа из серверной системы, если это не требуется. См. кэширование в Azure Управление API.
Обеспечьте обратную совместимость программного обеспечения, чтобы обеспечить его работу на устаревшем оборудовании
Рассмотрим, как приложения отрисовывает информацию. Требуется ли приложению критическое обслуживание всего в самом высоком качестве, что приводит к более высокой пропускной способности и обработке? Есть ли возможности для снижения качества компонентов в пользовательском интерфейсе для достижения целей устойчивого развития?
Выравнивание Green Software Foundation: эффективность оборудования
Рекомендация.
- Поддержка дополнительных потребительских устройств конечных пользователей, таких как старые браузеры и операционные системы. Обратная совместимость повышает эффективность оборудования за счет повторного использования существующего оборудования вместо необходимости обновления оборудования для работы решения.
- Учитывайте этот компромисс: если последние обновления программного обеспечения имеют значительные улучшения производительности, использование более старых версий программного обеспечения может быть не более эффективным.
Использование собственных облачных шаблонов разработки
Сведения о шаблонах проектирования, ориентированных на облако, полезны при создании приложений, размещенных в Azure или в других местах. Оптимизация производительности и стоимости облачного приложения также приведет к сокращению использования ресурсов, следовательно, выбросов углекислого газа.
Выравнивание Green Software Foundation: энергоэффективность, эффективность оборудования
Рекомендация.
- Используйте шаблоны проектирования, ориентированные на облако, при написании или обновлении приложений.
Рассмотрите возможность использования шаблонов автоматического размыкателя
Рассмотрите возможность оценки и предотвращения выполнения приложений операций, которые могут завершиться сбоем. Повторяющиеся сбои могут привести к дополнительным затратам и ненужной обработке, которую можно избежать с помощью соответствующих шаблонов проектирования.
Выравнивание Green Software Foundation: энергоэффективность
Рекомендация.
- Размыкатель цепи может выступать в качестве прокси-сервера для операций, которые могут завершиться сбоем, и должен отслеживать количество недавних сбоев и использовать эти сведения для принятия решения о продолжении.
- Изучите шаблон автоматического выключения, а затем подумайте, как можно реализовать шаблоны автоматического выключения в приложениях.
- Рассмотрите возможность использования Azure Monitor для мониторинга сбоев и настройки оповещений.
Оптимизация кода для эффективного использования ресурсов
Приложения, развернутые с использованием неэффективного кода, могут повлиять на устойчивость.
Выравнивание Green Software Foundation: энергоэффективность, эффективность оборудования
Рекомендация.
- Сократите циклы ЦП и количество ресурсов, необходимых для приложения.
- Используйте оптимизированные и эффективные алгоритмы и конструктивные шаблоны.
- Рассмотрим принцип "Не повторяйся" (DRY).
Оптимизация для шаблонов асинхронного доступа
Требования к приложениям могут различаться, и важно рассмотреть способы стабилизации использования, чтобы предотвратить чрезмерное или недостаточное использование ресурсов, что может привести к ненужным утечкам энергии.
Выравнивание Green Software Foundation: энергоэффективность
Рекомендация.
- Запросы в очереди и буфере, которые не требуют немедленной обработки, а затем обрабатываются пакетно. Проектирование приложений таким образом помогает достичь стабильного использования и помогает сгладить потребление, чтобы избежать пикантных запросов.
- Ознакомьтесь с оптимизацией для шаблонов асинхронного доступа.
Оценка отрисовки на стороне сервера и клиента
Определите, следует ли отображать на стороне сервера или на стороне клиента при создании приложений с помощью пользовательского интерфейса.
Выравнивание Green Software Foundation: энергоэффективность, эффективность оборудования
Рекомендация.
Рассмотрим следующие преимущества отрисовки на стороне сервера:
- Когда мощность сервера поступает из менее загрязняющих альтернатив, чем языковой стандарт клиента.
- Если оборудование на сервере имеет лучшее соотношение энергопотребления к обработке.
- Может использовать централизованное кэширование, чтобы уменьшить количество ненужных отрисовок.
- Уменьшение количества круговых путей между браузером и сервером может быть особенно важно, если на клиентском устройстве есть связь с потерей.
- Если клиентские устройства старше и имеют более медленные ЦП. Пользователям не нужно обновлять свои устройства для поддержки современного браузера.
Рассмотрите следующие преимущества отрисовки на стороне клиента:
- Если устройства конечных пользователей являются более подходящими, возлагайте ответственность за отрисовку на клиенты.
- Эффективнее отрисовывать только то, что нужно и по запросу, а не отрисовывать все по крайней мере один раз.
- Сервер не требуется, так как вы можете полагаться на статическое хранилище.
- На клиентах используется кэширование браузера.
Помните о проектировании пользовательского интерфейса для обеспечения устойчивости
Подумайте, как пользовательский интерфейс влияет на устойчивость рабочей нагрузки, и определите, какие существуют варианты для повышения энергоэффективности и снижения ненужной сетевой нагрузки, обработки данных и вычислительных ресурсов.
Выравнивание Green Software Foundation: энергоэффективность
Рекомендация.
- Рекомендуется уменьшить количество компонентов для загрузки и отрисовки на страницах.
- Определите, может ли приложение выполнять отрисовку изображений и видео с низким разрешением.
- Не отрисовывайте полноразмерные изображения в виде эскизов, в которых браузер выполняет изменение размера.
- Использование полноразмерных изображений в качестве эскизов или изображений с измененным размером приведет к передаче дополнительных данных, ненужного сетевого трафика и дополнительной загрузке ЦП на стороне клиента из-за изменения размера изображения и предварительной отрисовки.
- Отсутствие неиспользуемых страниц поможет свести к минимуму дизайн пользовательского интерфейса.
- Рассмотрите возможность поиска и поиска. Упрощение поиска пользователями помогает сократить объем хранимых и извлеченных данных.
- Рассмотрите возможность предоставления более легкого пользовательского интерфейса, использования меньшего количества ресурсов и снижения влияния на устойчивость, а также предоставления пользователям обоснованного выбора.
- Экономьте энергию, предлагая приложения и веб-сайты в темном режиме с темным фоном.
- По возможности выбирайте системные шрифты, чтобы избежать принудительного скачивания дополнительных шрифтов клиентами, что приводит к большей сетевой нагрузке.
Обновление устаревшего кода
Рассмотрите возможность обновления или устаревания устаревшего кода, если он не выполняется в современной облачной инфраструктуре или с последними обновлениями.
Выравнивание Green Software Foundation: эффективность оборудования
Рекомендация.
- Определите неэффективный устаревший код, подходящий для модернизации.
- Проверьте, есть ли варианты перехода на бессерверный или любой из оптимизированных параметров PaaS.
- Рассмотрим этот компромисс: обновление старого кода, который может оказаться нерекомендуемой, может отнимать ценное время.
Следующий шаг
Ознакомьтесь с рекомендациями по проектированию платформы приложений.