Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется к этой рекомендации по эффективности производительности платформы Azure Well-Architected Framework:
ПЭ:10 | Оптимизация операционных задач. Мониторинг и минимизация последствий жизненного цикла разработки программного обеспечения и других стандартных операций с производительностью рабочей нагрузки. К этим операциям относятся сканирование вирусов, вращения ключей, резервные копии, переиндексирование баз данных и развертывание. |
---|
В этом руководстве описываются рекомендации по оптимизации операционных задач. Оптимизация операционных задач — это процесс минимизации влияния задач, выполняемых в рамках операций маршрутизации рабочих нагрузок. Операции используют те же вычислительные ресурсы, что и сама рабочая нагрузка. Сбой при рассмотрении последствий задач операций может привести к пропуску целевых показателей производительности рабочей нагрузки. Это также может негативно повлиять на производительность рабочей нагрузки для клиентов.
Определения
Срок | Определение |
---|---|
"Сине-зеленое" развертывание | Стратегия развертывания, которая использует две идентичные среды и управляет направлением трафика в новые развертывания (зеленые развертывания). |
Перестроение индекса базы данных | Действие технического обслуживания, которое удаляет и создает индекс. |
Реорганизация индекса базы данных | Действие обслуживания, оптимизирующее текущий индекс базы данных. |
Схема базы данных | Общая структура базы данных и ее связи с другими данными. |
Слот развертывания | Функция Службы приложений Azure, которая позволяет развертывать динамические приложения с собственными именами узлов. |
Обновления на месте | Процесс обновления компонента или приложения без замены или переноса его в новую среду. |
Инфраструктура как код (IaC) | Описательная модель для определения и развертывания инфраструктуры, включая сети, виртуальные машины, подсистемы балансировки нагрузки и топологии подключений. |
Основные стратегии проектирования
Необходимо принять меры, чтобы уменьшить влияние жизненного цикла разработки программного обеспечения и других стандартных операций на производительность рабочей нагрузки. Цель заключается в том, чтобы обычные операции, такие как сканирование на вирусы, смена ключей доступа, резервные копии, оптимизация индекса (реорганизация или перестроение) и развертывания, не значительная ухудшали производительность рабочей нагрузки.
Учетная запись для операционных задач
Важно учитывать операционные задачи при установке целевых показателей производительности. Включив рутинные, регулярные и нерегламентированные задачи в целевые показатели производительности, вы можете обеспечить эффективное распределение нагрузки. Чтобы учитывать операционные задачи в целевых показателях производительности, ниже приведены некоторые ключевые моменты, которые следует учитывать:
Определение операционных задач. Определение и включение соответствующих операционных задач в целевые показатели производительности. Примерами стандартных задач могут быть сканирование вирусов, реорганизация индекса базы данных, перестроение индекса базы данных, резервное копирование дисков или баз данных, смена сертификатов, исправление операционной системы, смена паролей, смена ключей API, тестирование на проникновение и проверки аудита в рабочей среде.
Оцените целевые показатели производительности. Оцените текущие целевые показатели производительности и настройте их на учет операционных задач, относящихся к рабочей нагрузке. Это гарантирует соответствие целевых показателей производительности требованиям рабочей нагрузки.
Оптимизация развертываний
Оптимизация развертываний — это уточнение процесса освобождения ресурсов и кода для обеспечения простой производительности и минимальных прерываний. Он включает в себя планирование, эффективное распределение ресурсов и тщательное тестирование как инфраструктуры как кода (IaC), так и кода приложения перед их вводом в рабочую среду. Несоответствия развертывания могут привести к снижению скорости и эффективности рабочей нагрузки, ограничению ресурсов и ухудшению взаимодействия с пользователем в операционной среде. Чтобы оптимизировать развертывания, рассмотрите следующие стратегии.
Оцените допустимое время простоя. Если время простоя приемлемо, можно реализовать стратегии развертывания, которые направлены на скорость и эффективность. Тем не менее, важно тщательно оценить влияние простоя на бизнес-требования, прежде чем принять это решение. С другой стороны, если простой не является приемлемым, необходимо реализовать стратегии развертывания, обеспечивающие непрерывную доступность рабочей нагрузки. Рассмотрите возможность использования таких методов, как сине-зеленые развертывания или канареечные развертывания, в то время как вы постепенно развертываете новые версии рабочей нагрузки и отслеживаете возможные проблемы. Эти стратегии помогают свести к минимуму влияние простоя и обеспечить простой пользовательский интерфейс.
Развертывание в текущем количестве экземпляров. Кроме того, следует избегать развертываний, вызывающих немедленные операции масштабирования. Вы не должны развертывать ресурсы в рабочей системе с таким низким числом экземпляров, что заставляет систему немедленно начать операцию масштабирования. Например, шаблон инфраструктуры как кода (IaC) может не соответствовать количеству экземпляров, необходимых во время развертывания. У него может быть два экземпляра, хотя развернутая среда использует восемь экземпляров. Развертывание удаляет шесть экземпляров и отрицательно влияет на производительность.
Используйте стратегию развертывания с сине-зеленым цветом. Развертывания могут привести к прерываниям работы служб и простоям. Чтобы устранить эти проблемы, выберите стратегию развертывания, которая сводит к минимуму влияние на производительность, например сине-зеленое развертывание. Эти подходы позволяют легко переходить между средами и снизить риск сбоев служб. При использовании подхода сине-зеленого развертывания у вас есть две отдельные среды: синяя и зеленая. Если в зеленой среде обнаружены какие-либо проблемы или снижение производительности, можно легко откатить к стабильной синей среде. Эта стратегия помогает обеспечить минимальное время простоя и позволяет поддерживать высокий уровень производительности рабочей нагрузки. Чтобы осуществить развертывание с помощью сине-зеленого подхода, выполните следующие передовые шаги.
Разверните новую среду. Настройте новую среду (зеленую) вместе с существующей средой (синей) с обновленной версией приложения.
Проверьте новую среду. Развертывания могут привести к задержке и увеличению времени отклика. Прежде чем переключить экземпляры, рассмотрите возможность предварительного потепления. Предварительное потепление включает подготовку новой среды путем имитации рабочего трафика и рабочей нагрузки, чтобы убедиться, что среда готова к обработке ожидаемой нагрузки. Это помогает свести к минимуму влияние на задержку и время отклика. Тщательно протестируйте и проверьте новую среду, чтобы убедиться, что она работает правильно и соответствует ожиданиям производительности. Тестирование помогает разогреть кэши, установить подключения к базе данных и убедиться, что среда готова к обработке ожидаемой нагрузки.
Постепенно перенаправляйте трафик. После подготовки и проверки новой среды постепенно переместите рабочий трафик из старой среды (синей) в новую среду (зеленый). Изначально направьте небольшой процент трафика в зеленую среду и постепенно увеличивайте его после проверки стабильности и ожидаемого состояния приложения. Вы можете использовать глобальный механизм балансировки нагрузки или механизм управления трафиком. Управляемое перемещение трафика позволяет определить все проблемы с производительностью и выполнить корректирующие действия, прежде чем полностью перейти рабочую нагрузку в новую среду.
Мониторинг и оптимизация. Развертывания могут использовать общие вычислительные ресурсы. Непрерывно отслеживайте производительность и работоспособность новой среды после смены трафика. Сделайте все необходимые оптимизации или корректировки, чтобы обеспечить необходимую производительность и взаимодействие с пользователем.
Удалите старую среду. После успешного перехода всего трафика в зеленую среду удалите синюю среду из существующих подключений. Этот шаг помогает оптимизировать затраты на обслуживание старой среды и гарантирует, что новые среды свободны от смещения конфигурации.
Повторите процесс. Для будущих развертываний измените роли голубых и зеленых сред. Разверните изменения в новой синей среде, проверьте их, управляйте переходом трафика и выведите из эксплуатации старую зеленую среду.
Используйте несколько сборок. Различные типы сборок помогают оптимизировать время сборки и обеспечить качество развертываний. Например, можно создавать сборки непрерывной интеграции (CI), запускаемые с каждой фиксацией кода. Вы можете создавать ночные сборки, которые регулярно выполняют автоматические тесты, и выпуски сборок, которые используются для развертывания в рабочей среде. Каждый тип сборки должен иметь определенную цель, например непрерывную интеграцию, автоматизированное тестирование или рабочее развертывание. Тестирование и проверка рабочей нагрузки перед развертыванием помогает выявлять и устранять проблемы или ошибки в начале процесса разработки.
Рассмотрим флаги функций. Флаги функций используются в разработке программного обеспечения для управления видимостью и поведением определенных функций в приложении. Используя флаги компонентов, разработчики могут включать или отключать определенные функции, не требуя повторного развертывания приложения. Флаги функций работают, введя условную логику в коде, которая определяет, должна ли функция быть включена или отключена. Эта логика может быть основана на различных факторах, таких как роли пользователей, предпочтения пользователя или определенные условия, определенные командой разработки. С помощью флагов функций разработчики могут постепенно развертывать новые функции в подмножестве пользователей или включать функции для определенных групп для тестирования (канаречного тестирования).
Оптимизация обновлений
Обновление на месте — это обновление до существующего ресурса или приложения. Обновление на месте может временно замедлить или прервать рабочую нагрузку. Важно убедиться, что обновления совместимы с рабочей нагрузкой. Перед применением обновления рекомендуется протестировать его в отдельной среде, чтобы определить возможные проблемы. Предоставьте план отката на случай возникновения каких-либо проблем во время процесса обновления. Перед применением обновления важно создать полную резервную копию критически важных данных и конфигураций. Внимательно следите за обновленной системой после обновления, чтобы убедиться, что все работает должным образом. Резервная копия позволяет восстановить хорошее состояние при необходимости. Чтобы свести к минимуму влияние на производительность пользователей и рабочей нагрузки, следует указать приоритет при планировании обновления в нерабочее время. Заранее уведомляйте пользователей о запланированном обновлении, включая ожидаемое время простоя и все необходимые действия, которые они должны предпринять.
Компромисс. Ожидание выполнения операций во время внепиковой нагрузки может повлиять на эффективность работы. Может быть менее удобно, если персонал с правильным набором навыков будет работать в непиковые часы.
Оптимизация инструментов
Основные средства для мониторинга целостности файлов, сканирования вирусов, обнаружения вторжений и других операционных задач могут повлиять на производительность рабочей нагрузки. Они используют вычислительные ресурсы и могут добавлять задержки и затраты на производительность. Необходимо протестировать и понять, что ваши инструменты влияют на производительность рабочей нагрузки. На основе результатов теста необходимо настроить конфигурации инструментов, настроить частоту сканирования и перераспределить вычислительные ресурсы. Для сканирования вирусов можно создать соответствующий список исключений, чтобы свести к минимуму продолжительность сканирования.
Оптимизация операций базы данных
Оптимизация операций базы данных — это процесс уточнения и настройки задач базы данных для обеспечения максимальной эффективности и минимального использования ресурсов. К этим операциям относятся такие задачи, как резервное копирование, изменения схемы, настройка производительности и мониторинг. Эффективные операции базы данных приводят к более быстрым ответам на запросы, снижению нагрузки на систему и общему более плавному пользовательскому опыту.
Изменения схемы включают изменение структуры базы данных, например добавление или изменение таблиц, столбцов или индексов. Эти изменения могут потребовать дополнительной обработки и использования ресурсов во время процесса развертывания, что может повлиять на общую производительность рабочей нагрузки. Изменения схемы могут нарушить производительность активных запросов, индексов или транзакций или привести к недоступности данных.
Чтобы свести к минимуму эти эффекты, следует запланировать и проверить изменения схемы в непроизводственных средах. Для реализации обновлений схемы можно использовать различные методы развертывания. Для оптимизации процесса также следует использовать доступные средства изменения схемы. Архивация данных и секционирование могут помочь уменьшить влияние изменений схемы.
Оптимизация резервных копий
Резервные копии используют ресурсы рабочей нагрузки, такие как мощность обработки, пропускная способность сети и операции ввода-вывода диска. Необходимо протестировать и выбрать стратегию резервного копирования, которая свести к минимуму эти эффекты. Резервное копирование следует выполнять в нерабочие часы, когда можно. Стратегия должна включать добавочные резервные копии вместо полных резервных копий каждый раз. Моментальные снимки могут быть менее ресурсоемкими, чем резервные копии. Необходимо учитывать встроенные функции резервного копирования и восстановления платформы, а не создавать пользовательское решение. Эти параметры необходимо протестировать и использовать сочетание, которое обеспечивает оптимальную производительность рабочей нагрузки.
Оптимизация мониторинга и отладки
Чрезмерное или плохо реализованное логгирование, телеметрия, инструментация и распределенное отслеживание трассировки могут повлиять на производительность. Аналогичным образом, удобные функции, такие как удаленная отладка, также могут повлиять на производительность. Необходимо измерять и знать их влияние на производительность среды. Вы не хотите, чтобы эти процессы ухудшали производительность. Необходимо настроить или отключить все процессы, производительность которых перевешивает их преимущества.
Упрощение функций Azure
Учет операционных задач: Azure DevOps — это набор средств разработки и служб, которые позволяют командам планировать, разрабатывать, тестировать и эффективно предоставлять программное обеспечение. Она включает такие функции, как управление версиями, непрерывная интеграция и доставка, управление проектами и многое другое.
Azure обеспечивает интеграцию между службами, которая сводит к минимуму последствия многих операционных задач. Например, службы, которые интегрируются с Azure Key Vault, часто поддерживают простое смену сертификатов или смену секретов, которая сводит к минимуму влияние на производительность.
Оптимизация развертываний. Служба приложений предоставляет слоты развертывания. Слоты развертывания можно использовать для развертывания кода в непроизводственных средах. Содержимое приложения и элементы конфигурации можно заменить между двумя слотами развертывания. Например, можно переключить содержимое приложения с непроизводного слота на рабочий слот.
Azure Front Door и Диспетчер трафика Azure позволяют реализовать стратегию развертывания синим зеленым цветом. Некоторые службы вычислений Azure также поддерживают расширенные стратегии развертывания, такие как сине-зеленые развертывания. Эти службы можно объединить с стратегией переключения трафика или потепления экземпляра, чтобы снизить влияние на производительность развертывания.
Оптимизация операций базы данных: База данных SQL Azure автоматически принимает полные резервные копии, разностные резервные копии и резервные копии журналов транзакций. Azure Cosmos DB автоматически создает резервные копии данных через регулярные интервалы. Автоматическое резервное копирование выполняется без влияния на производительность или доступность операций базы данных. Azure Cosmos DB сохраняет резервные копии в отдельной службе хранилища.
Оптимизация резервных копий. Некоторые службы данных Azure поддерживают низкоеto-no влияние производительности на восстановление и индексирование на определенный момент времени. Azure Backup — это надежное и масштабируемое облачное решение для резервного копирования, позволяющее защитить данные и приложения. Она предоставляет такие функции, как добавочное резервное копирование, сжатие и шифрование, чтобы свести к минимуму влияние на производительность во время операций резервного копирования. Azure Site Recovery помогает защитить приложения, реплицируя их в дополнительное расположение. Она обеспечивает непрерывную репликацию и возможности автоматической отработки отказа, чтобы свести к минимуму время простоя и производительность во время операций резервного копирования и аварийного восстановления.
Управление непрерывностью бизнес-процессов и аварийное восстановление. Вы также можете использовать Центр непрерывности бизнес-процессов Azure для упрощения резервного копирования и аварийного восстановления с помощью единого веб-интерфейса для настройки резервных копий, настройки политик защиты, операций мониторинга и просмотра конфигураций в различных средах.
Связанные ссылки
Контрольный список по обеспечению эффективности процессов
Ознакомьтесь с полным набором рекомендаций.