Микросервисы устарели: узнайте о бессерверных технологиях | 🏆 Технические темы, выпуск 7, призыв к публикации

Node.js
Микросервисы устарели: узнайте о бессерверных технологиях | 🏆 Технические темы, выпуск 7, призыв к публикации

1. Серверная революция в 2020 году

Знаете ли вы, что графитовые документы, Weibo и Mango TV, которые мы используем каждый день, полностью или частично используют бессерверные технологии.

На самом деле, Zhihu также использует Leancloud.

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

1. Графитовый футляр для документов

image-20201114163333099

Документация Graphite не поддерживается серверной или микросервисной архитектурой в обычном смысле. Вместо этого он растет в облаке благодаря бессерверной архитектуре.

Alibaba Cloud Function Compute, ранее разработанная полностью управляемая вычислительная служба, управляемая событиями в Китае, стала доступна для Malong Technology, Weibo, Mango TV, Shishi Documents и других клиентов. Давайте посмотрим, как ведущие интернет-компании Китая используют функциональные вычисления для развития своего бизнеса.

потребности клиента

Когда несколько пользователей графитовых документов совместно работают над одним и тем же документом/таблицей, они могут изменять одно и то же содержимое, что приводит к конфликтам. Graphite Documents необходимо внедрить набор сервисов для обработки конфликтов редактирования документов в режиме реального времени, а также для плавной обработки пиковых нагрузок по разумной цене.

решение

Реализуйте логику с интенсивными вычислениями, например документируйте совместную работу в реальном времени как функции и инициируйте выполнение функций с помощью HTTP-запросов.

Эффект

С помощью возможности масштабирования ресурсов на уровне миллисекунд в Function Compute решается проблема расширения вычислительных ресурсов из-за внезапного пикового использования утром и вечером и экономится 58% затрат на серверы. Поскольку проблема балансировки нагрузки вычислений с интенсивным использованием ЦП больше не рассматривается, эффективность разработки и стабильность процесса значительно повышаются.

2. Годовой отчет Нодерсюрвей

Nodesurvey — это ежегодный отчет о тенденциях Node, который составляют Alibaba, Tencent и другие компании.

image-20201114163806906

nodersurvey.github.io/reporters/

Среди будущих ключевых слов, Serverless стал наиболее актуальной темой.

image-20201114163949004

2. Что такое бессерверное

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

Кроме того, необходимо снизить затраты и повысить эффективность.

Например:

  • Динамическое расширение - ненужные машины вовремя отключаются
  • Сократите расходы - чем меньше людей, тем лучше, не покупайте то, что можно арендовать

Для достижения этой цели цель бэкэнда постоянно обновляется и развивается.

1. Эволюция архитектуры Интернета

image-20201113195038838

Эволюцию архитектуры Интернета можно условно разделить на следующие три этапа:

  • Монолитная эпоха
  • Эпоха микросервисов
  • Serverless

1.1 Монолитная эпоха

Это эквивалентно тому, что все приложения устанавливаются на сервер.Например, самые ранние NetEase и Sohu могли запускаться с хоста Unix.

image-20201114175637281

image-20201114175653255

Это немного похоже на самую примитивную аркадную игру, где аппаратное обеспечение + программное обеспечение + операционная система — все это делает одна компания.

image-20201114180342761

1.2 Эпоха микросервисов

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

image-20201114175756417

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

Это немного похоже на команду King of Glory от Tencent. По сумме премий по итогам года можно увидеть их огромную организационную структуру.

image-20201114181335817

image-20201114180648947

image-20201114181005637

1.3 Serverless

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

image-20201113201539279

Это эквивалентно разработке игр, нам нужно только сосредоточиться на логике программы. Все остальное на аутсорсе.

Напоминает мне время, когда Bluehole разработала Chicken, в основном 3D-модели и игровые движки покупались на игровом рынке и собирались. Организация всей Голубой дыры не очень большая.

image-20201114181442630

2. Эволюция архитектуры облачных сервисов

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

![image-20201114184313929](/Users/xiaran/Library/Application Support/typora-user-images/image-20201114184313929.png)

Вы знаете? На самом деле доля бэкенд-программистов, пишущих код, составляет менее 30%, так что же они делают в остальное время?

image-20201114184459573

С наступлением эры облачных вычислений традиционная ИТ-архитектура и методы эксплуатации и обслуживания принесли множество новых технологий, включая виртуальные машины, контейнеры и микросервисы.

Эти техники служат следующим целям:

  • сократить расходы
  • Повысить эффективность

image-20201114164756709

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

Остальное остается за поставщиком облачных услуг.

Front-end разработка + back-end разработка => облачная разработка + терминальная разработка

2.1 Сервер BareMetal Bare Metal

Это можно рассматривать как бизнес по аренде выделенных физических серверов. Таким образом, нет необходимости арендовать компьютерный зал, тянуть оптические кабели и устанавливать серверы.

image-20201114170000055

2.2 Виртуальные машины Служба виртуальных машин

Замена физической машины виртуальной машиной в основном предназначена для того, чтобы избежать проблем с установкой операционной системы и базового программного обеспечения.

Нам просто нужно арендовать виртуальную машину.

image-20201114170159930

2.3 Развертывание контейнера

Это эквивалент облегченной виртуальной машины, в основном представленной технологией Docker.

image-20201114170358770

2.4 Serverless

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

Проще говоря, вам просто нужно загрузить код.

image-20201114170559361

Окончательный вывод

BareMetal Virtual machines Container Serverless
функция Бизнес-код
Layer eggjs/spring
Время выполнения Node/Java/Python
инфраструктура Kubeless
аппаратное оборудование сеть, оборудование

Видно, что лучшим решением на данный момент является Serverless.

3. Бессерверная архитектура

кто-то сказал,

Программирование = Алгоритмы + Структуры данных

Так,

применить = логика + хранилище,

Мы можем разделить приложения на бизнес-логику без сохранения состояния и службы с отслеживанием состояния.

Serverless (приложение) = Faas (бизнес-логика) + Baas (сохранение состояния)

Если мы хотим построить полноценный сервис на Serverless, нам нужно разбить программу на эти две части.

Возьмем в качестве примера небольшую программу

image-20201115121039062

1. Faas

Faas — это функция как услуга, мы обычно называем ее вычислением функций или службой выполнения функций. По сути, это упаковка и перепродажа вычислительного объема на облачной платформе. Просто нужно, чтобы пользователь загрузил функцию.

image-20201115101824421

Функции

  • без гражданства

  • код + конфигурация зависимостей

кейс

image-20201115101904379

  • лямбда Amazon AWS

  • Google Облачные функции Google

  • Алиюн Алиюн ФК

  • Tencent Cloud SCF — бессерверная облачная функцияserverless.cloud.tencent.com/start?c=ft

Кроме того, если вы хотите, чтобы функция вызывалась через Http-запрос, вам также нужен шлюз

  • Шлюз API AWS

2. Baas

Bass — это Backend as a Service, что означает, что мы можем арендовать удаленные серверные службы, не создавая их самостоятельно. Большинство используемых здесь сервисов — это сервисы обслуживания состояния, такие как сервисы хранения, такие как MongoDB, сервисы аутентификации и так далее.

Функции

  • состояние
  • Предоставить сервисный API

поставщик услуг

image-20201115102026641

- LeanCloud
  • Firebase

4. Сценарии применения

Наконец, давайте поговорим о сценариях бессерверных приложений.

Прежде всего, я думаю, что все друзья, которые хотят начать свой бизнес, могут рассмотреть возможность размещения своих проектов напрямую на Serverless.

1. Предпринимательский проект

С проектом toC количество пользователей вашего проекта не будет большим до получения финансирования. Также легко динамически расширять емкость в своевременной и внезапной сцене. Ключ в том, чтобы эффективно оставить затраты на обслуживающий персонал. Вы должны знать, что нужно много денег, чтобы найти команду бэкенда, которая может полностью построить микросервисную архитектуру. И надежна ли и эффективна ли команда — это тоже проблема, которая вносит много неопределенностей в продвижение проекта.

Подождите, пока не будет инвестиций, тогда и говорите об этом.

Вам даже не нужно тратить деньги

image-20201115132011266

ссылка здесь

cloud.Tencent.com/act/pro/Cail…

image-20201115132131455

2. Сценарий запроса события

  • пользовательское изображение
  • Интернет вещей
  • Запись точки захоронения
  • сценарий по времени

3. Сценарии с высокими затратами на эксплуатацию и обслуживание

  • Снимок экрана веб-страницы — снимок экрана pupteer + рендеринг SSR
  • вычисления больших данных

4. Сценарии всплеска трафика

  • мероприятия, акции
  • Обычная сцена (каждый день у еды на вынос есть очевидные пики и спады)

Молодежь должна говорить о боевых искусствах! ! !点赞,关注,收藏Все устроено! ! !

截屏2020-11-14 下午10.38.43


img

🏆 Технический спецвыпуск 7 | Все может быть бессерверным