Автор Ли Чуань, Пиншань, Фэн Цзя
Key Takeaways: 1. хотя Serverless Быстрое развитие бессерверных технологий привлекло широкое и пристальное внимание. Предварительная оценка общей стоимости функции все еще не имеет эффективного теоретического руководства. Эта статья основана на FunctionGraph существовать Serverless поле FinOps Изучайте, практикуйте и предлагайте первые в отрасли Serverless Функция модели оценки общей стоимости; 2. На основе анализа ключевых факторов модели затрат одновременно предлагаются методы оптимизации эксплуатационных расходов пяти основных категорий функций, чтобы лучше помогать пользователям снижать затраты и повышать эффективность, Huawei Cloud впервые предлагает; время прозрачным и эффективным, в один клик «Центр исследования стоимости пользовательских функций».
Введение в вопрос
Serverless Модель оплаты по факту использования с точностью до миллисекунд избавляет пользователей от необходимости платить за время простоя ресурсов. Однако для конкретного приложения факторы, влияющие на его стоимость выставления счетов, не уникальны. изготовлениепользовательТочная предварительная оценка общей суммы расходов во время выполнения функции становится сложной задачей.
В качестве примера возьмем модель периодической аренды традиционных облачных ресурсов.,Умножьте цену за единицу периода на количество периодов.,Пользователи могут легко оценить общую стоимость периода аренды.,Сформируйте четкие ожидания в области мысленного учета,Даже если облачная платформа существует и использует стратегии многоуровневого ценообразования или ценовой дискриминации, подсчитать общую стоимость аренды нетрудно.
Но существует бессерверный сценарий,До сих пор отсутствует эффективное теоретическое руководство по предварительной оценке общей стоимости. с одной стороны,Ключевые факторы, влияющие на выставление счетов за функции, не уникальны.такие как включитьфункция Характеристики памяти、Единичный экземпляр одновременно степень, время выполнения функции и т. д.; одной стороны,Колебания трафика вызовов функций обычно случайны и нестационарны.сделать потокоориентированным“Оплата за использование”Иметь большую неопределенность。
конечно,Поиск теоретического руководства по выставлению счетов за функции в основном направлен на предоставление пользователям эффективной основы для оценки общей стоимости функций.,но что более важно,Как в дальнейшем использовать модель оценки, чтобы помочь пользователям оптимизировать функции приложения и выбор конфигурации?进而显著降低пользовательфункцияобщая стоимость,да Serverless На местах FinOps Жгучие вопросы.
FinOps Сосредоточьтесь на управлении облачными ресурсами и оптимизации затрат, а также оптимизируйте затраты на облачные ресурсы для пользователей, предприятий и организаций за счет органической связи специалистов в области технологий, бизнеса и финансов, а также увеличивайте инвестиции в облачный бизнес. - Коэффициент выхода[1]. В этой статье объединены Huawei Cloud FunctionGraph существовать Serverless поле FinOps Исследуйте и практикуйтесь,Анализировать Serverless Режим выставления счетов за функцию и ключевые факторы, влияющие на сценарий, а также структура модели для оценки общего выставления счетов во время выполнения функции вводятся заранее. ; что еще более важно,Эта модель помогает пользователям оптимизировать общую стоимость эксплуатации функций и улучшить облачные вычисления пользователей. Serverless Эффективность управления ресурсами для достижения экономичности (Economical) Serverless Предоставьте действительную основу.
1. Терминология и базовые знания
Сначала дается краткое объяснение нескольких понятий, перечисленных в таблице 1.
Таблица 1. Общие существительные для бессерверных функций
Характеристики памяти (Memory):Характеристики память также означает спецификацию функции, спецификацию экземпляра функции, выражение Serverless Размер ресурса, выделенного платформой для одного экземпляра функции, обычно выражаемый как размер памяти, который может использовать функция, указанный пользователем; CPU Доли пропорциональны размеру памяти. Бессерверный Облачные платформы обычно предоставляют пользователям на выбор различные спецификации. FunctionGraph Например, пользователь может выбрать 15 вид спецификации функции, как показано на рисунке 1 показано.
картина 1:FunctionGraph Предлагая различные функции Характеристики памяти
задержка выполнения функции (Function Execution Time): Имеется в виду время, необходимое для выполнения самой функции в процессе завершения ответа на запрос вызова, которое в основном определяется логикой кода функции. Как правило, для CPU Для интенсивных функций увеличьте характеристики ресурсов функции (память -CPU Поделиться), позволяет существенно снизить задержку. выполнения функция. Но для сети, которая потребляет большую часть времени, существуют IO Для функций, выполняющих другие операции, увеличение спецификаций ресурсов приведет к очень ограниченному улучшению задержки выполнения.
Максимальный параллелизм одного экземпляра (Maximum Requests per Instance):функция Максимальное количество запросов, которые может выполнить один экземпляр,В основном он подходит для сценариев, в которых существует значительное время ожидания возврата нисходящей службы во время выполнения функции.,Например, доступ к операциям базы данных или диску. IO ждать. При той же нагрузке трафика увеличение одноэкземплярного параллелизма функции может уменьшить количество экземпляров с оплатой по мере использования и сэкономить на выставлении счетов для пользователей. В то же время это также может снизить коэффициент холодного запуска вызова функции. запросы.
Максимальное количество экземпляров одной функции (Maximum Instances per Function):обратитесь к тому жефункция Верхний предел количества одновременно работающих экземпляров。对пользователь来说,Максимальное количество экземпляров может предотвратить выход затрат из-под контроля из-за чрезмерного расширения облака во время аномальных пиков трафика или сбоев облачных платформ;,Максимальное количество экземпляров может предотвратить частичное использование ресурсов платформы при нештатных обстоятельствах.,Это обеспечивает изоляцию производительности между различными функциями.
2. Функция выставления счетов и модель затрат
Оценка стоимости функций с точки зрения одного экземпляра Модель,Пожалуйста, обратитесь к [2]. существовать в реальной производственной среде,Кроме асинхронной функции,Serverless Облачные платформы обычно используют FCFS(First Come First Serve) для ответа на запрос вызова. К резким колебаниям трафика функции платформа адаптируется путем автоматического расширения и сокращения экземпляров. Изменение количества одновременно запущенных в системе экземпляров с течением времени можно полностью охарактеризовать как кусочно-постоянную линейную величину. Функция, такая как картина 2 показано.
картина 2: Количество параллельных экземпляров функции меняется в зависимости от процесса расширения и сжатия.
Существуют различия в методах выставления счетов у разных поставщиков бессерверных облаков.,Выставление счетов за функцию обычно состоит из двух частей: выставление счетов за ресурсы, используемые функцией, и выставление счетов за количество запросов.,выражатьследующее:
в,
Указывает тарификацию использования ресурсов, единица измерения — ГБ-секунда (ГБ-секунда),
Указывает тарификацию за количество звонков.
Чтобы облегчить расчет TotalCost, используйте
Указывает спецификацию ресурса функции в ГБ. Например, для функции со спецификацией 128 МБ.
; c выражать Долженфункцияединственный экземпляродновременночисло,μ Указывает среднюю задержку выполнения функции в миллисекундах. ; Используйте вместе α (0<α<1) выражать Serverless Производительность линии вызова, в идеале существует этот показатель 1,выражатьсуществоватьтекущий Serverless На платформе сквозная задержка ответа на одиночный запрос равна задержке. выполнения функции μ сам по себе, другой Serverless платформа α Значения могут незначительно отличаться, но в целом существуют 0.9 выше. Учитывая приведенные выше показатели, можно получить возможность обработки запросов одного экземпляра, существующую в идеальных условиях. То есть теоретическое количество вызовов, на которые можно ответить в секунду, равно:
Таким образом, фактическая способность обработки запросов одного экземпляра составляет:
В качестве периода оценки мы используем один месяц. Предположим, что в течение месяца функция испытала в общей сложности n Вторичное расширение и сжатие сформировали n нормальный линейный подинтервал (например, картина 2 показано). Давайте сначала рассмотрим один подинтервал
Модель стоимости выставления счетов в пределах диапазона, а модель общей стоимости представляет собой сумму каждого непрерывного подинтервала.
существовать временное окно
Внутри, предполагая, что количество вызовов функций равно
, то количество одновременных экземпляров в этом временном окне составит:
Соответствующая часть выставления счетов за ресурсы может быть:
в,
выражать Каждый GB- Цена за единицу выставления счетов за ресурсы в секунду. Сейчас существуют, рекордное количество i Подинтервал
, то общую стоимость модели за месяц можно оценить как:
в,
выразить стоимость единицы биллинга за каждый звонок,
выразитьфункция Общий трафик за месяц,
Для облачной платформы предоставляется бесплатное ежемесячное время измерения,
Количество звонков измеряется бесплатно в месяц.
существовать В приведенной выше формуле,Единичный экземпляр одновременно степени c и функциональные характеристики
можно считатьсуществоватьпользователь配置之后属于常число;α 属于平台侧参число,也可视作常число;длязадержка выполнения функции μ, на практике оно обычно колеблется из-за различий в горячем и холодном запуске, джиттере сети, входных параметрах запроса вызова и т. д., а учитывая, что бессерверный биллинг имеет точность до миллисекундного уровня, его нельзя рассматривать как константу в строгом смысле .но,Приблизительно Модель,Давайте предположим здесь μ 也для常число,Подводить итоги,Общую стоимость модели можно выразить следующим образом:
Вторая половина представляет собой общую сумму без выставления счетов, предоставляемую облачной платформой, и не имеет никакого отношения к трафику вызовов функций и настройке функций.
3. Обсуждение методов оптимизации затрат.
Понятнофункциясмета расходов Модель,就可以对影响пользователь成本的关键因素进行讨论。существоватьоценщик (1) , без учета общей безбилетовой суммы, предоставленной облачной платформой, структура общей ежемесячной стоимости функции выглядит следующим образом:
Point 1: оптимизация самой логики кода функции, уменьшение задержек выполнения функции
При той же нагрузке трафика функции меньшая задержка выполнения. Это может сэкономить пользователям дополнительные расходы на выставление счетов. существуют При условии, что бизнес-логика пользователя позволяет, непрерывная оптимизация функций и повышение эффективности выполнения функций являются естественными требованиями самой разработки программного обеспечения, но существуют Serverless В этом случае это становится еще более актуальным.
В частности, рассмотрите возможность использования облегченных языков программирования, таких как Python и Nodejs, чтобы уменьшить количество ненужных элементов в конфигурации инициализации функций, переместить операции по подключению других служб, таких как базы данных, на этап инициализации перед записью выполнения функции и упростить логику кода.
Кроме того, чтобы помочь пользователям понять текущее состояние функций, FunctionGraph Обеспечивает углубленное визуальное наблюдение для приложений и поддерживает богатые конфигурации индикаторов наблюдения, включая количество вызовов, количество ошибок, задержки выполнения и т. д., например изображение 3 Показан пример мониторинга времени выполнения функции.
картина 3: FunctionGraph Пример мониторинга выполнения функции
Пункт 2. Оптимизируйте пакет функционального кода, пакет зависимостей и размер изображения.
Когда вызывается функция для запуска холодного запуска,С точки зрения биллинга,Задержка холодного запуска включает в себясуществоватьзадержка исполнения μ выставляются вместе, и значительная часть задержки при холодном запуске потребляется облачной платформой из сторонних сервисов хранения (таких как Huawei Cloud Object Storage Service). Загрузите пакет кода пользователя и пакет зависимостей из OBS) или извлеките образ приложения пользователя из службы хранилища изображений, например изображение 4 показано.хотя для оптимизации производительности холодного запуска,В настоящее время большинство облачных платформ используют различные механизмы кэширования.,Предварительное кэширование пользовательского кода и изображений,ноЗадержка загрузки пользовательского кода, потребляемого во время запуска экземпляра, по-прежнему очень значительна.поэтому,Размер пакета кода должен быть как можно меньшим.,Включая уменьшение пакетов зависимостей, зеркал и т. д.,Это сокращает время выставления счетов.
картина 4. Продолжительность выставления счетов и точки оптимизации при горячем и холодном запуске.
Пункт 3. Написание облегченных функций, ориентированных на функции.
существовать Serverless В рамках структуры программирования функции должны быть написаны как облегченные, ориентированные на функции программные коды, то есть как «функции». should be small and purpose-built”[3];позволять«Функция делает только одно»,с одной стороны,Одна функция Функция,Задержки во время выполнения также легче контролировать.оптимизация;Другойс одной стороны,Когда несколько функций реализованы одновременно в одной функции,Существует высокая вероятность того, что все функции будут одновременно скомпрометированы с точки зрения производительности.,Наконец, общий заряд за время работы функции был увеличен.
картина 5: Облако Huawei FunctionGraph Пример выполнения функции
Если функция приложения действительно должна предоставлять несколько функций, вы можете рассмотреть возможность разложения большой функции на несколько маленьких функций,а затем реализовать общую логику посредством организации функций. нравитьсякартина 5 демонстративный FunctionGraph Возможности потока функций. Разложение больших функций также Serverless Одна из лучших практик для пользователей по обработке аномальных сценариев, таких как тайм-аут вычислений [4].
Пункт 4. В рамках поддержки бизнес-модели применяется одноэкземплярный множественный параллелизм.
Это видно из структуры стоимости функции формулы (2),существующая бизнес-модель пользователя поддерживается в предпосылке,Настройка определенной степени параллелизма в одном экземпляре может эффективно снизить общую ежемесячную стоимость функции;若пользователь不进行配置,Значение по умолчанию для облачных платформ обычно равно 1.. То есть один экземпляр может обрабатывать только один запрос за раз, поэтому, когда функция существования вызывается одновременно, платформа запускает несколько экземпляров для ответа, тем самым увеличивая количество экземпляров биллинга, таких как картина; 6 Как показано, в то же время использование одного экземпляра и множественного параллелизма также может улучшить задержку хвоста запроса вызова в состоянии ожидания.
картина 6. Параллелизм с одним экземпляром: перспектива времени выставления счетов и перспектива количества экземпляров
Конечно, чем выше параллелизм одного экземпляра, тем лучше.例нравиться,Слишком высокоодновременноустановка степени сделаетфункция Повышенная конкуренция за ресурсы между несколькими потоками внутри экземпляра.(e.g., CPU конфликт), что приводит к ухудшению производительности ответа функции и влияет на пользовательские приложения. QoS индикаторы и т. д. В то же время, как упоминалось в базовых знаниях этой статьи, не все приложения подходят для настройки нескольких экземпляров одного экземпляра. Один экземпляр и несколько одновременно в основном подходят для сценариев, в которых значительная часть задержки используется в процессе выполнения, ожидая возврата нижестоящей службы. В этом типе сценария такие ресурсы экземпляра, как CPU Существует значительная часть состояний ожидания простоя, например, доступа к промежуточному программному обеспечению, такому как база данных, очередь сообщений или диск. ИО, сеть IO ждать. Для одного экземпляра и нескольких одновременно также требуется перехват ошибок (например, Учитывайте детализацию обнаружения ошибок на уровне запроса) и потокобезопасность глобальных общих переменных (например, Блокировка защиты) вопросы по адаптации.
Пункт 5. При выборе спецификаций функциональных ресурсов необходимо учитывать влияние на задержку выполнения.
Наконец, обсуждается выбор спецификаций функциональных ресурсов. Из формулы (2) ясно видно, что память большего экземпляра Соответствует более высоким затратам на выставление счетов. Но Характеристики При выборе памяти также необходимо учитывать задержку. выполнения функции влияние. С точки зрения пользователя Функция блокировки выполнения функция Помимо того, что она определяется бизнес-логикой самого кода,На это также влияет размер ресурсов, которые можно использовать во время работы экземпляра.。Больший размер экземпляра соответствует большему объему используемой памяти и более CPU долю, потенциально значительно улучшая ресурсоемкую память или CPU Выполнение интенсивных функций,降低задержка исполнения;конечно,Это улучшение также сохраняет верхний предел существования.,После превышения определенной спецификации ресурса,Увеличение ресурсов по сравнению с уменьшениемзадержка выполнения Эффект от функции практически незначителен, как и картина. 7 средняя пунктирная линиявыражатьпроцесс。Вышеуказанные фактыповерхностьяркий,Для данного пользователяфункция,Чтобы сократить общие расходы на выставление счетов,Необходимо настроить разумные спецификации экземпляра.
, изготовление
·μ Получите наименьшее возможное значение, например изображение. 7 Процесс представлен сплошной линией.
картина 7: При выборе функциональных спецификаций необходимо также учитывать влияние на стоимость и задержку выполнения.
Например, рассмотрим первоначальную конфигурацию спецификации экземпляра как
(например, начните с наименьшего размера, т.е. 128MB), После испытаний по данной спецификации задержка выполнения функциидля
, мы можем получить базовый уровень
, затем постепенно увеличивайте характеристики ресурса и проверяйте соответствующую задержку выполнения до тех пор, пока определенная группа
Появляться, изготовление:
В это время поверхность Мин,Незначительное увеличение затрат на выставление счетов, вызванное увеличением ресурсов, превысило незначительное улучшение задержки выполнения. Поэтому с точки зрения затрат на данный момент.
– оптимальное по Парето решение, то есть лучшая спецификация,Соответствующая задержка выполнения равна
。
наконец,На картинке 8 подведены итоги вышеперечисленных ключевых факторов, определяющих стоимость функции.,в, направление стрелки выражает прямое влияние между элементами,Знак «+» прямо пропорционален поверхности.,«-» обратно пропорционален поверхности.
картина 8: Анализ ключевых факторов стоимости выставления счетов за функции
4. Центр исследования стоимости бессерверных функций
Сокращение затрат и повышение эффективности для пользователей, да FunctionGraph основная концепция. хотя проанализированные выше пять методов оптимизации стоимости функций обсуждаются с точки зрения пользователя веб-сайта, но мы считаем, что эти вопросы далеки от той сферы, которую должны учитывать только пользователи, наоборот, FunctionGraph; существовать持续探索нравиться何最大限度地帮助пользовательсуществовать Serverless добиться лучшего в области FinOps эффект, чтобы пользователи могли по-настоящему насладиться Economical Serverless благосостояние;例нравиться,существуют Углубленная визуализация и наблюдаемость на уровне экземпляра,帮助пользователь实现функция FinOps Автоматизация всего процесса предоставляет пользователям прозрачные, эффективные функции управления ресурсами и оптимизации затрат в один клик.
картина 9. существование Линейное восприятие потребления ресурсов и динамические рекомендации спецификаций
Для этого, исходя из внутренней практики, FunctionGraph Скоро будет запущен“Центр исследования стоимости пользовательских функций – Cost Analysis and Optimization Center”, Предоставьте пользователям оптимальную настройку конфигурации, включая автономные функции (офлайн-режим). power настройка), онлайн-оценка потребления ресурсов и динамическая рекомендация спецификаций (онлайн-режим). resource recommendation,нравитьсякартина 9 показано), предсказательная функция эластичного предварительного просмотра (прогностический auto-scaling preview)ждатьсуществовать Множество мощных функциональных сервисов внутри,Минимизировать технический порог для пользователей, необходимых для реализации функций FinOps,дляпользователь业务开发、Serverless Это обеспечивает максимальное удобство для модернизации и трансформации.
5. Резюме и перспективы
В этой статье в основном обсуждаются проблемы FinOps в сценариях бессерверных вычислений и представлена первая в отрасли модель оценки общей стоимости пользовательских функций. На основе этой модели она предоставляет пользователям теоретические рекомендации и практику для оптимизации функций приложений, повышения эффективности управления бессерверными ресурсами и сокращения общих затрат. расходы в соответствии с.
Когда появляется новая технология, первый вопрос, на который необходимо ответить: «Почему?» & Value”, FunctionGraph Как следующее поколение, благословленное Huawei Yuanrong Serverless Службы функциональных вычислений и оркестрации в сочетании FinOps и другие технические концепции, продолжают предоставлять пользователям экономичные Serverless Служить. В будущем мы расскажем больше об универсальных сценариях. Serverless передовые теории и практические примеры, возвращая пользу сообществу,в том числе FunctionGraph существовать微服务 Serverless практический опыт работы по химии и т.д.
Об авторе:
Ли Чуань: эксперт по исследованиям и разработкам Huawei Cloud Serverless
Пиншань: руководитель подразделения Huawei Cloud Middleware Serverless
Фэн Цзя: главный эксперт по промежуточному ПО Huawei Cloud
Ссылки:
[1] What is FinOps: https://www.finops.org/introduction/what-is-finops/
[2] Running Lambda Functions Faster and Cheaper: https://levelup.gitconnected.com/running-lambda-functions-faster-and-cheaper-416260fbc375?gi=4370e4c57684
[3] AWS Lambda Cost Optimizations Strategies That Work. https://dashbird.io/blog/aws-lambda-cost-optimization-strategies/
[4] Timeout Best Practices. https://lumigo.io/learn/aws-lambda-timeout-best-practices/
Рекомендуемые статьи сегодня