Comments 4
Взгляд с другой стороны на некоторые аспекты проблемы, от микропровайдера (даже не думайте ко мне обращаться со своим Ынтэрпайзом!). На самом деле сравнить влоб предложения не получится не разделяя свои задачи на категории по направлениям оптимизации, хотя бы по тому, что само оборудование провайдера может быть совершенно разным. Рассмотрим это утверждение:
Наконец, еще один интересный показатель — максимально мощная в рамках данного IaaS-предложения конфигурация одной виртуальной машины. ... Чем «жирнее» может быть одна ВМ в топ-конфигурации, тем выше вероятность, что в основе стоят мощные хосты с большим количеством ядер, оперативной памяти и емкостью по сети и дискам.
Для простоты рассмотрим близкие поколения на DDR5. У провайдера могут быть процессоры от "начального уровня", типа AMD Ryzen 7950X (AMD EPYC 4005) в двумя каналами ОЗУ, могут быть 4-х канальные "Pro" версии, типа Threadripper 7000 и 9000, могут быть 8-ми и 12-калальные монстры AMD EPYC. Все эти "desktop", "workstation", "Pro", "Server", на самом деле продукт все тех-же самых любителей продающего текста. Но с точки зрения провайдера, важно другое: Нужна поддержка ecc, нужна конкретная однопоточная производительность (по сути частота), важно сколько памяти может адресовать и эффективно использовать процессор (количество каналов, возможность использования буфферезированой памяти), суммарная производительность (количество ядер, возможность установки процессоры по 2 или 4). А теперь посмотрите на эти числа:
AMD EPYC суммарная производительность очень большая, однопоточная 2500-3000 попугаев
Threadripper 7000 суммарная производительность средняя, однопоточная 3-500-4000 попугаев
AMD Ryzen 9000 (AMD EPYC 4005), суммарная производительность, маленькая, однопоточная 5000+ попугаев.
Видите, "начального уровня" Ryzen в клочья рвёт маститый EPYC. Разница примерно как между спортивным мотоциклом и многотонной фурой с прицепом (прицеп - это второй процессор, непременно снизит скорость). Если вы запускаете какие-нибудь 1С-ки, то вам нужны ryzen, но у этой платформы ядра будут дорогие, ведь процессор адресует 128 или 256ГБ RAM, при том топовые попугаи даёт только если памяти 96 или 128 ГБ, по тому что вы должны использовать по одному небуфферизированному (т.е. маленькому) модулю на канал, а каналов у него всего два. Зато ракета! Если вы запускаете микросервисы, а латентность не важна, то берите виртуалки или контейнеры на AMD EPYC, там ядра будут тупо дешевле. А если вам просто нужно выдать контейнеру пару TB RAM или 128 ядер, то деваться некуда, для вас нет быстрых процессоров.
По этому у некоторых провайдеров есть линейки продуктов, типа вот линейка "быстрый CPU", а вот линейка "много RAM", а вот линейка большое хранилище. Если понимать логику формирования таких предложения, то проблем в сравнении становится меньше: не нужно больше сравнивать "тёплое с мягким".
Хранилище - тоже всё не просто. Например, использование локальных nvme - это дешево и очень быстро по сравнению с какими-то сетевыми хранилищами, которые в однопотоке могут работать значительно медленее одного локального накопителя, но объем и эффективность использования, а так же суммарная производительность у "хранилок" значительно больше, что правда дополнительно компенсируется ценой инфраструктуры. Вам точно надо, чтобы ваш диск одноразового контейнера лежал на дорогом nvme-хранилище? Но это не всё, сами nvme есть рассчитанные на большую запись, на большое чтение, на объем, на минимальную латентность, что важно для баз данных (привет intel optane на 3d-xpoint). А ещё у провайдера может быть гибридное хранилище, которое до определенных пределов может выдерживать комбинированную нагрузку, распределяя её по накопителям разных видов. Но еэтоещё не всё, банальный raid на nvme может в разы снизить быстродействие, а сами эти nvme выходят из строя очень редко (я имею в виду, конечно серверные накопители в расчетном режиме работы). Вам точно нужен RAID на NVME, особенно при наличие бекапа?
Провайдеры которые выдают честные ядра без оверсела, с одной стороны молодцы, а с другой, практика показывает, что многие VM простаивают, а пиковое потребление возникает узкими промежутками. Но часто этим VM нужно много ресурсов (дорогие, если они честные) по тому, что там, например терминальный сервер и нужно чтобы проводка в 1с завершилась быстро. В этом случае, те кто продают ядра "не честно" смогу установить менее высокие цены и получить конкурентное преимущество. Причем, часто это оптимальный вариант, т.к. перепродажу можно просто учесть добавив пару ядер, а вот цена будет непропорционально ниже, по тому что 80% времени вашими ядрами будут пользоваться другие.
На мой взгляд, провайдер должен иметь внутренний регламент максимальной загрузки ядер процессора на гипервизоре. Например, известно, что проблемы с интерактивностью становятся заметны при более 70% загрузки, тогда можно на "больших" серверах, где не предполагается большая однопоточная производительность ограничивать загрузку этими самыми 70%, а на быстрых серверах установить, например 40%. При превышении лимитов, нужно перераспределять нагрузку на новые сервера. У некоторых так и написанно, что в этом тарифе у нас процессор гипервизора загружается не более чем на 50% - это здорово.
И это ещё далеко не всё. А теперь интересный вопрос, если всё это выложить в каком-нибудь продуманном калькуляторе, то кто всё это сможет оценить? Есть мнение, что калькулятор не продаёт, а вот "карточки" типа "два ядра - два гига - 500 рублей" продают очень хорошо, по тому что это понятно непрофессионалу, а профессионалов очень мало и они не определяют спрос. Лично мне это утверждение очень не нравится, но наверное за ним есть доля истины.
Так как у меня микроскопический размер, я могу лично подробно расспрашивать клиента о задаче и грамотно подобрать для предложение которое будет дешево, насколько это возможно и в то же время удобно ляжет на мою инфраструктуру. А крупняк, наверное сталкивается с проблемой, что менеджер которые может так же скрупулёзно решать задачи подбора, должен быть крутым техническим специалистом, а это дорого. По этому всё упрощается и вырождается в непонятные цифры, причем у каждого свои.
Когда я сам оцениваю собственные предложения я не сравниваю провайдеров по отдельным параметрам, типа стоимость одного ядра или гигабайта RAM. Вместо этого я разбиваю задачу на несколько VM и подбирают под каждую из них минимально необходимую VM у провайдера, а потом суммирую их стоимость. Если есть дешевый процессор, но там невозможно взять большой диск - это не подходит, есть тариф с большим дисков, но там нет резервных копий, которые нужны, тоже бракуем. Остаётся, на первый взгляд дорогой тариф где есть и то и то, вот этот вариант в стоимость и записываем.
Остановлюсь на этом утверждении: Объективно сложно сделать понятный калькулятор на все случаи жизни.
Отличный комментарий! Спасибо!
Мне видится, что ваш комментарий дополняет и углубляет статью. Описанный вами метод сравнения ("разбей на ВМ, подбери под задачи") – это действительно надежный способ хоть какой-то навигации в море предложений, а идеальное решение для заказчика, всегда требует глубокого диалога и индивидуального подхода. Но тут в дело вступают зоны ответственности, где задачей заказчика является поиск идеального для него решения, а задачей провайдера - удовлетворение требований заказчика. Таким образом, клиенту важно понимать, что слепо смотреть на презентации провайдеров недостаточно, требуется понимать, какие VM как будут использоваться.
С точки зрения облака, на AMD Ryzen 7950X (AMD EPYC 4005) сложно построить вычислительные ноды, чтоб действительно было похоже на клауд, ввиду ограничения по ядрам на узел и памяти на этих CPU . Но производительность на ядро будет действительно ок ) С точки зрения хранения дополню также, СХД используют больше не для скорости, а для надежности. Локальные NVMe при этом всегда будут быстрее в GB/s да и по IOPS.
При этом часто не указано, диск реплицируемый или нет. У топовых провайдеров — реплицируемые, и это сразу влияет на цену. У более дешевых — обычные, без гарантии сохранности данных при сбое
Всё таки репликация относится больше к распределённым хранилищам - S3, SDS. Здесь фактор надёжности, кто-то отдаёт NVMe за 10 рублей за 1 Гбайт с локального диска, кто-то 10 рублей SSD с отказоустойчивого хранилища.
Ценность разная.
Аналогично и с vCPU, есть не только их количество, но и частота. При этом, может быть разная производительность в GFLOPS/MIPS и конечном приложении, например, в СУБД. Зачастую спрашивают про процессоры 5 ГГц под 1С, но когда тестируют, сильно удивляются результатам на 5 ГГц и 4 ГГц - как же так, 4 ГГц быстрее работает.
Что включено? Анализ IaaS-предложений облачных провайдеров