Serverless и Rust — это второе начинание старых технологий!

  • Оригинальное название: ​Serverless Is the New Timeshare ​, Автор: Шай Альмог

Помните мэйнфреймы? Бессерверное обслуживание похоже на то, что мы владеем этой машиной, вы приходите и арендуете ее у меня. Инновации часто рождаются на плечах гигантов!

Отпуск с разделением времени — зародившаяся в Европе модель отпуска, которая делит право пользования гостевым номером или туристической квартирой в гостинице или на курорте на несколько недель со сроком от 10 до 40 лет и более. система продается клиентам за один раз, и участники получают возможность отдыха в отелях или на курортах в течение 7 дней в году. И через систему услуг обмена участники обменивают свои права на использование комнаты для гостей с правами на использование комнаты за пределами территории других участников, чтобы реализовать цель путешествия в различные места по низкой цене.

Оглядываясь назад, бессерверные технологии — это новый таймшер!

У всех нас амнезия. Когда я говорю с молодыми разработчиками о технологиях прошлого, на меня часто смотрят пустые взгляды. Справедливости ради, отчасти это связано с тем, что я немного «нервный» или «странный», а отчасти с тем, что молодые технари не понимают старые технологии.

Например: Некоторые молодые специалисты понятия не имеют, что такое 2 Phase Commit. Неужели управление транзакциями больше не нужно?

Банкам больше не нужна последовательность? Этот метод работает путем передачи контекста транзакции между разными серверами, если вы не находитесь на «той же странице». Таким образом, фиксация на одном сервере — это многоэтапный процесс, который почти гарантированно завершится успешно на всех серверах или откатится как единое целое. Это довольно удивительно и на самом деле работает довольно хорошо (с некоторыми оговорками). Удивительно, но это достигается через вызовы методов. Вам не нужно ничего делать, он будет работать нормально даже при вызове удаленного метода на совершенно другом сервере.

Несколько лет назад я разговаривал со стартапом в банковской сфере под названием Node-based. По их словам, банки очень открыты для работы с Node. Я знаю, что они переписывают свой материал в более «зрелой» среде. Когда я использую некоторые «более новые» инструменты, такие как Node, меня всегда удивляет отсутствие базовой функциональности. Конечно, он проще и меньше, если не вместить в него все, что нам нужно. Легко создать что-то простое, если отказаться от основной функциональности.

 

NoSQL-драмы 2010-х

Еще в 1999 году я создавал свою собственную консалтинговую фирму, когда друг попросил меня встретиться с его боссом. Я пошел в этот офис, и "босс" сказал, что у него была самая потрясающая идея, которой не было ни у кого другого. У них есть финансирование, и они будут запущены через 6 месяцев и в первый же день охватят 1 миллион пользователей!

я: хорошо. какая идея?

Он: Я дам тебе знать, когда ты зарегистрируешься у нас.

Я: Я подпишу NDA (NON-DISCLOSURE AGREEMENT, то есть соглашение о неразглашении).

он не. Это отличная идея. Эти NDA ничего не стоят. ты подписываешься и...

Каким-то образом я смог устоять перед искушением работать в этой компании. Примерно через год они, очевидно, так и не запустились, но у моей консалтинговой фирмы все в порядке. Мой друг снова позвонил мне. На этот раз им нужна была помощь с продуктом, поэтому я отправился туда в качестве консультанта, чтобы помочь им.

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

Их система работала очень плохо. Скорость пользователя так же медленна, как муравей, прилипший к меду. Очевидно, генеральный директор был непреклонен в том, что они должны иметь возможность поддерживать 1 миллион пользователей в первый же день (как он сказал мне). Они сообщили об этом корпорации Oracle, которая заявила, что им нужен кластер из трех серверов для поддержки такой емкости. Затем они поговорили с поставщиком объектно-ориентированной базы данных, который пообещал, что сможет обслуживать миллион пользователей на одной машине. Поэтому они полностью сосредоточились на объектно-ориентированных базах данных. Когда я был шокирован этим, они заявили, что их данные очень «объектно-ориентированы» в том смысле, что у каждого пользователя может быть несколько элементов… ага.

Они не понимают границ транзакций, код хранилища смешивается со всем кодом, и они медленные. Это ненадежно и непонятно. Возможно, вы не помните дни объектно-ориентированных баз данных, но они были предшественниками увлечения NoSQL, охватившего нашу отрасль в 2010-х годах. Когда я был консультантом, я пересматривал повторы этой истории. На этот раз большинство компаний успешно стартовали.

Но потом они обнаружили, что наличие неструктурированных данных — не панацея. Прирост производительности, который они получают, ничтожен по сравнению с использованием только хорошего кэширования и хорошо настроенного SQL. Истории развертывания сложны, и вспомогательные инструменты могут никогда не достичь того уровня, который мы имеем в мире SQL.

Чтобы было ясно: у NoSQL есть своя ниша, но обычное использование этих баз данных не очень хорошо и связано с RDD (Recovery Driven Development). Вот закономерность, которую те из нас, кто несколько раз обошел квартал, видели снова и снова:

  • • Старая технология громоздка и сложна
  • • Люди изобрели что-то чистое и простое
  • • Забудьте о старых технологиях
  • • Новые функции упрощены и не делают многих основных вещей.
  • • Изменить эти сложности
  • • Новые вещи становятся старыми и неуклюжими сложными, которые нужно изобретать заново... полоскать/повторять
  •  

Serverless — это новый мэйнфрейм

В прошлом месяце я выполнял много бессерверной работы, и мне кажется, что это большой шаг назад. Это повторение той же проблемы, что и с PaaS. На самом деле это мейнфрейм. В прошлом мы платили за выполнение нашей работы на мэйнфреймах общего пользования. Это немного похоже на виртуализированную среду , но идея аналогична: мы не владеем средой. То же самое можно сказать и об облачном SaaS, но бессерверная концепция заходит очень далеко.

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

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

Люди тратят много времени на проверку и измерение пропускной способности, но использование сервера лишь немного большего размера и только локальные вызовы дают большую пропускную способность, чем вам, вероятно, нужно. Без всего набора поставщиков, с которым мы застряли. Вы сэкономите много денег с такими хостингами, как Linode, Digital Ocean и т. д. С точки зрения времени выхода на рынок простое использование кэша и быстрых локальных инструментов будет намного проще, чем все, что вы можете создать в облаке.

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

 

Вернемся к Java и Rust.

Java — это пример, который отлично справляется с «забыванием». У нас есть Smalltalk, и это здорово. Когда Java только вышла, это было худшее решение со странным стилем синтаксиса C. Java отбросил многие замечательные идеи в Smalltalk и C++. В нем используются некоторые противоречивые идеи (проверяемые исключения, примитивы и т. д.). И все же это сработало. Он привлекает внимание, он может извлечь из этого выгоду.

Он начинался как легкий язык, в котором отбрасывался весь мусор и чрезмерная инженерия, добавленные другими платформами. Послушайте, никто больше не называл его «легким». Разработчики заняты созданием более легких и простых языков, чтобы жаловаться на ошибки Java. Успех вернет их туда, откуда мы начали. Легкий язык, который слишком вырос. Java — это то, где она должна быть прямо сейчас. Это один из немногих примеров хорошего рерайта.

Rust также кажется одним из немногих исключений. Он изобретает C совершенно по-новому. Трудно сказать, выживет ли он в долгосрочной перспективе. Но не заблуждайтесь, это требует много сложностей на этом пути.

 

сознательное ремоделирование

Что делает переизобретение существующего языка или инструмента успешным для массового рынка, а что заставляет эти инструменты отходить на второй план?

SQL воскрес из мертвых и снова стал фаворитом новых стартапов. Чего нельзя сказать о C++. Насколько они разные?

Несмотря на отсутствие основных функций, которые есть в мире JVM, Node и Python по-прежнему популярны. Так что же происходит, и сохранят ли они эту популярность? Будут ли они добавлять эти вещи обратно?

До подросткового возраста наш мозг постоянно добавляет синапсы. В подростковом возрасте мы их обрезали. Одна из теорий состоит в том, что это лежит в основе всех изменений, которые мы переживаем в подростковом возрасте. Нам нужно отключить то, что больше не работает на нас. В противном случае мы узнаем только то, что знают наши родители. Мы не можем стать лучше, совершая собственные ошибки. Попробуйте еще раз то, что то поколение не удалось.

В результате мы повторили свои ошибки и совершили несколько новых ужасных. Мы также сделали несколько удивительных скачков и открытий. Именно здесь стартуют инновации, а также инженерия.

Как отличить: подростковую тревогу и яркие новые направления?

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

Java не был разработан, чтобы положить конец C++. Конечно, это может быть иллюзией. Но Гослинг разработал его для простоты и легкости. Чтобы обратиться к очень узкой нише, сосредоточьтесь на безопасности, масштабировании и работе в сети.

Rust не предназначен для уничтожения C. Он разработан, чтобы сделать такие проекты, как Firefox, более стабильными и производительными.

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

Supongo que te gusta

Origin blog.csdn.net/Z__7Gk/article/details/132193196
Recomendado
Clasificación