LINUX.ORG.RU
ФорумTalks

AWS и в частности S3 как vendor lock

 , , ,


0

1

N месяцев назад мне ставили в упрек то, что якобы аналоги сервисов AWS есть у кучи других провайдеров. Ну есть же да? Сколько альтернативных реализаций S3, да? Как бы не так. Который месяц ковыря S3, я прихожу к однозначному выводу: интерфейсы AWS определены через реализацию, то есть, нет никаких общих абстрактных протоколов, разработанных для конкретных задач. Вместо этого протекает деталь реализации здесь, протекает костыль тут, здесь устаревший параметр, которым уже давно никто не пользуется, а здесь новый параметры, которым ЕЩЁ никто не пользуется, и по итогу портирование минимально сложной системы на базе S3 с одной площадки на другую требует целой команды макак с напильниками.

Раньше я не решался высказать эту мысль, потому что у меня небыло железных пруфов, но сейчас они есть, по крайней мере по отношению к S3. Даже достаточно продвинутые реализации S3 API в Yandex.Cloud или Ceph имеют огромное число несовместимостей с AWS.

Как бы это не могло звучать странно, тем не менее, эту картину я вижу далеко не первый раз. Это не тупая ошибка, а точный расчет — так развивали свои решения как минимум Oracle, SAP, Microsoft, а именно — холили и лелеяли каждый маленький костыль, для поддержки которого приходилось выделять отдельного программиста, ровно для одной цели — чтобы никто не мог реверс-инженернуть твою софтину и написать альтернативу, таким образом уведя клиентов. IBM сделало независимый от реализации стандарт PC? Intel сказал огромное спасибо и монопольно основался в нише.

К тому же, с маркетинговой точки зрения чем больше пунктов с фичанеймами в брошюрках — тем лучше смотрится продукт. Почесать левой рукой левое ухо — замечательная фича. Клиент приходит с запросом «мне нужно почесать левое ухо правой рукой» — «извините, поддержка такой фичи у нас не планируется».

И только не нужно мне говорить, что вот же есть где-то Джон и Фрэнком, которым позарез нужен ваш костыль 1997 года выпуска, без которого они не могут жить. Могут. Разработчик мог сэкономить на поддержке этого костыля, потеряв лояльность пары клиентов — это допустимая жертва. Однако, фактор vendor-lock-а за счет бесконечной поверхности интерфейса В УСЛОВИЯХ ИЗБЫТКА ФИНАНСИРОВАНИЯ слишком привлекателен. Я хочу подчеркнуть фактор избытка финансирования, потому что при недостатке финансирования клиенты Джон с Фрэнком будут мгновенно посланы, руководство ни одной минуты не будет размышлять про какую-то совместимость, доверие клиентов, и прочие пустые слова, лишь поддержка будет отвечать дежурное «мы работатаем над этим, оставайтесь пожалуйста на связи». Всё, о чем будет думать руководство — это как сократить издержки. чтобы выйти на прибыль.

Мне удивляет только тот факт, что подобные соображения никто не пишет на каждом заборе. Ведь это просто священные заповеди коммерческой разработки, но даже я до недавних пор не рисковал оглашать их публично. Страшно то, что эти заповеди «с молоком матери» впитали многие разработчики, и следуют им, даже не понимая, что эти заповеди существуют. «Я должен поддерживать совместимость ради совместимости. Моя совместимость должна быть совместимой. Даже если я обосрался в минорном релизе, который скачало 10 человек — я буду эту ошибку тащить следующие 10 лет разработки, потому что могу».

Кстати, если вдруг у кого-то есть блоги-книжки-статьи, аналогичные этому сообщению — буду благодарен за ссылку. Заранее хочу иключить из списка благодарности заполеннные водой книжки манагеров, ничего не соображающих в коммерческой разработке — это большая часть массы макулатуры мне совершенно не интересна.

★★★★

Последнее исправление: byko3y (всего исправлений: 1)
Ответ на: комментарий от LamerOk

Проспись, алконавт. Тебе русским языком сказали, что именно является распределённым. Причём тут твой бессвязный бред про роутеры?

Ну ты совсем недавно реверс-прокси пытался натянуть на звание «спроектировали распределенную систему». Я напомнил, что в роли «распределенной системы» также могут выступать и обычные прокси, и по итогу даже домашний роутер за полторы тысячи рублей. Другое дело, что всё это оборудование не является частью серверной системы, поскольку на ней не происходит типичной серверной обработки данных, результатом которой, в частности, является эталонное содержимое картинки с кошечкой, тиражируемое остальной сетью. Хотя, до абсурда проще всего было довести через торренты, которые, между прочим, умеет раздавать S3, но которые опираются на софт и сеть, не контролируемые самим амазоном, то есть, амазон выступает просто одним из пиров.

Это всё твои бредовые фантазии, на которое производителям соцсетей для владельцев породистых кошек совершенно насрать

Ну для владельцев соцсетей для кошатниц есть недорогой хостинг PHP-MySQL. Казалось бы, при чем тут AWS? Я думал, что AWS — это когда тебе уже недостаточно PHP, когда тебе нужны Rabbit, Kafka, Redis, Memcached, а потом еще и инструменты для того, чтобы всё это говно деплоить и мониторить.

byko3y ★★★★
() автор топика
Ответ на: комментарий от byko3y

Ну ты совсем недавно реверс-прокси пытался натянуть

А ещё недавней я netcat натянул на распределённую систему. Потому что я дал формальное определение:

Если обслуживает соединения параллельно боле, чем на одном хосте = распределённый.

И, строго говоря, не обязательно даже «соединения». Но никакой связи с этим «роутеров» я по-прежнему не увидел. Ты вместо логически осмысленного ответа выдаёшь бессвязный поток своих ассоциаций. Это - тревожный звоночек. Обычно, это означает серьёзные нарушения когнитивной сферы. Я настоятельно рекомендую тебе обратится к профильным специалистам. Возможно, тебе нужна терапия или даже амбулаторное лечение.

всё это оборудование не является частью серверной системы, поскольку на ней не происходит типичной серверной обработки данных

«Серверная обработка данных» - это любая обработка любых данных на «сервере». «Сервер» - это любой компьютер, который не используется как «десктоп». netcat работающий на серверах занимается «серверной обработкой данных». ЧТД. И нет, «типичный» в качестве формального критерия не проканает. Кто будет определять «типичность»? Бросок монетки?

Казалось бы, при чем тут AWS?
Я думал, что AWS — это когда

Я тебе выше уже объяснил, что ты думаешь не правильно. Я так же пометил, что ты продолжишь думать не правильно. Потому что у тебя разжижение мозга^W термина под своё глубоко внутреннее и выстраданное понимание, на которое совершенно насрать остальным восемь минус один миллиардам обитателей этой планеты. Это закономерное следствие того, что твои фантазии о том, для чего нужны технологии, отличаются от реального использования технологий всё теми же восемь минус один миллиардами.

Пчёл, тебе нужна помощь.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Если обслуживает соединения параллельно боле, чем на одном хосте = распределённый

Я НЕ СПОРЮ с этим. Я спорю с тем, что это «система. Да, распределенность является свойством набора серверов „файлохост на nginx + CDN“, безусловно. Они распределенные, но еще не система, потому что не координируются, не обрабатывают информацию вместе, а являются независимыми узлами, такими же, как мой домашний роутер. Я с таки же успехом могу с файлохоста перетащить файл на CDN на USB флешке, и занять твою позицию „вот, я сделал распределенную систему, файл и тут, и там раздается“.

Ты прав в одном — заказчик понятия не имеет, что эхто за распределенность и зачем она нужна. Учитыва то, что даже достаточно грамотные люди здесь испытывают проблемы с определениями.

А вот шлангом прикидываться не нужно.

«Серверная обработка данных» - это любая обработка любых данных на «сервере». «Сервер» - это любой компьютер, который не используется как «десктоп». netcat работающий на серверах занимается «серверной обработкой данных». ЧТД. И нет, «типичный» в качестве формального критерия не проканает. Кто будет определять «типичность»? Бросок монетки?

Я попытался пролаять на собачьем про „общепринятые устои“, но оказался непонят. Надеюсь, что абзацем выше понятно написал про координацию.

Потому что у тебя разжижение мозга^W термина под своё глубоко внутреннее и выстраданное понимание, на которое совершенно насрать остальным восемь минус один миллиардам обитателей этой планеты. Это закономерное следствие того, что твои фантазии о том, для чего нужны технологии, отличаются от реального использования технологий всё теми же восемь минус один миллиардами

Вообще-то я отвечал, что заказчику нужно, чтобы „просто работало“, а каким образом — он понятия не имеет, „распределенная и масштабируемая“ для него звучит точно так же, как „благостная и самодовольная“ — число букв в словах вроде разное, но общий смысл позитивен, тут сложно сделать выбор, согласен.

byko3y ★★★★
() автор топика
Ответ на: комментарий от byko3y

Они распределенные, но еще не система, потому что не координируются, не обрабатывают информацию вместе,

Э, нет. Ты продолжаешь высасывать из пальца свою особенную уличную «распределённость».

Следи за руками.

  1. Отправили один файл на раздачу
  2. Файл размножился на несколько хостов
  3. Хосты в параллеле раздают один и тот же файл с разных узлов
  4. Поставили одну задачу удалить файл с раздачи
  5. Файл удалился со всех хостов

Переходы из 1 в 2 и из 4 в 5 - это и есть «координация» и «обработка информации вместе». То, что это примитивно, не повод менять значение терминов.

Если ты не хочешь говорить об этом - изобрети себе свой собственный термин и пользуйся им. У тебя нулевые шансы убедить человечество отказаться от собственной терминологии и принять твою.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

Файл размножился на несколько хостов
Файл удалился со всех хостов

Лолка, это называется «репликация». Типовой CDN (именно в общепринятом значении) этого не делает, потому не образует систему с эталонным хостом. Может быть лично твой CDN это делает, с чем я его и поздравляю.

Не подскажешь мне, какая доля вебговна умеет в гео-репликацию? Гугл умеет, яндекс умеет, AWS с настроенной межрегиональной репликацией умеет, MS/Azure — не такой уж и большой списочек.

byko3y ★★★★
() автор топика
Ответ на: комментарий от byko3y

Лолка, это называется «репликация».

«Репликация» - это создание копии одного объекта в другом месте. Точка. Простейшая «репликация» - это cp. А вот запуск этого самого cp с нужными аргументами - это и есть «координация». Как и последующий запуск rm на удалённых хостах.

Вот так-то, лолчёнок.

LamerOk ★★★★★
()
Ответ на: комментарий от LamerOk

«Репликация» - это создание копии одного объекта в другом месте. Точка. Простейшая «репликация» - это cp. А вот запуск этого самого cp с нужными аргументами - это и есть «координация». Как и последующий запуск rm на удалённых хостах

Да. И я повторяю вопрос: кто так умеет делать? 99% вебговна не доросло даже до ssh+cp/rm.

byko3y ★★★★
() автор топика
Ответ на: комментарий от LamerOk

Ну, слава б-гу

Забыл написать, что еще можно нанять индусов. которые будут возить между серверами диски с терабайтами реплицируемых данных. Тоже система, но абсолютно непрактичная — именно потому в георепликацию почти никто не умеет. Бензин дорогой потому что.

byko3y ★★★★
() автор топика
Ответ на: комментарий от byko3y

99 процентам хватает реплики в виде обновления системы на новый билд разливая его по вебам поэтому и нет, а базы умеют в реплику сами.

abcq ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.