Хуан Вэньцзюнь, в настоящее время старший менеджер по продукту бессерверной облачной функции Tencent Cloud SCF, имеет многолетний опыт разработки и архитектуры систем корпоративного уровня, а также занимается хранением данных корпоративного уровня, контейнерной платформой, микросервисной архитектурой, бессерверными вычислениями и другими поля.
Сегодня я расскажу о том, как использовать Serverless для обмена серверными технологиями. В своей карьере я предпочитаю серверную часть, может быть, не писать интерфейсную часть, не использовать Node.js, а больше использовать CR в качестве внутреннего языка. его задняя часть. Я использую бессерверную технологию, которая также является новой архитектурой последних двух лет. Прежде чем говорить о бессерверной архитектуре, я также расскажу вам о небольших программах и традиционных фоновых технологиях.
Фоновая технология апплета
Мини-программы — это совершенно новый способ подключения пользователей и услуг, которые можно легко приобретать и распространять в WeChat, обеспечивая при этом превосходный пользовательский опыт. Его метод загрузки быстрее, чем традиционный метод APP, и опыт неплохой.В дополнение к собственному отображению и обновлению интерфейса сбор данных в апплете взаимодействует с серверной частью через WeChat.Работа апплета на самом деле является фронтом. -конечный режим работы, вся операция находится в WeChat, и взаимодействие между ним и серверной частью фактически перенаправляется через WeChat. После запуска он сделает запрос API. Этот запрос сначала отправляется в WeChat, а WeChat затем идет по сети.apr идет на ваш собственный сервер, сервер обрабатывает данные после получения запроса, а затем отвечает на интерфейсе.Это архитектура для взаимодействия между апплетом и фоном.
Для серверных служб эта картина является традиционным способом предоставления доступа к API, которые можно использовать для разработки бизнес-приложений. После бизнес-приложений требуются соответствующие файлы хранения, хранилище структурированных данных или хранилище неструктурированных данных. база данных и кеш, чтобы достичь этого набора архитектуры и не будет отключен из-за определенного сервера, или есть какие-то лазейки и т. д., наша обычная реализация является относительно сложным процессом. Например, для того, чтобы serverless и сервер не рухнули, нам нужно установить кластер, нам нужно предоставить услуги внешнему миру, нам нужны LB-запросы, а затем запросы распределяются на определенный сервер. Например, для хранения файлов, если используется только одно устройство, при отказе этого устройства произойдет сбой всей файловой службы, поэтому нам нужно использовать распределенное хранилище для решения проблемы хранения файлов. То же самое верно для баз данных и кешей.Необходимо построить кластер, будь то два, три или более.Построение кластера может гарантировать, что весь сервис не будет недоступен из-за одной точки проблем, приводит к параличу обслуживания.
Если вы мелкий разработчик программ, этот набор архитектуры уже построен в интернет-компании.Как частное лицо это слишком тяжело.Вам нужно понимать определенную часть и ее конфигурацию.Например, как настроить кластер базы данных ? Чтобы все не могли сосредоточиться на своем бизнесе и самом апплете, а слишком много тратили на эксплуатацию и обслуживание и поддержку.
Бессерверная архитектура
Бессерверная архитектура, которую я представлю ниже, использует бессерверный подход.Я в основном расскажу, как объединить бессерверные и облачные технологии, а также как использовать облачные сервисы для облегчения работы над архитектурой. Прежде чем представить его архитектуру, позвольте мне представить бессерверную архитектуру, которая называется serverless по-английски и serverless по-китайски. Вам не нужно покупать серверы, виртуальные машины или физические машины. Как это работает? Он использует метод хостинга вычислений. В Serverless мы можем рассматривать его как две части. Первая — это функция как услуга, которая действительно реализует управляемые вычисления вашего бизнеса. Другой — бэкенд как услуга, включая объектное хранилище.Вам не нужно самостоятельно строить распределенное хранилище, и вам не нужно беспокоиться о потере данных и проблемах безопасности.В то же время база данных, сообщения очередь и хранилище объектов, предоставляемые в облаке, одинаковы, и вам не нужно беспокоиться о потере данных и проблемах безопасности.Покупая сервер и собирая его самостоятельно, мы можем назвать его бессерверным в процессе покупки и использования. Поскольку они размещены на хостинге, вам не нужно заботиться об их безопасности при их использовании, и вам не нужно беспокоиться о сбоях, которые могут быть вызваны простоем сервера.
Управляемое облако бессерверных вычислений находится в сервисной функции Давайте поговорим об архитектуре облачной функции. После того, как все увидят эту архитектуру, позже мы рассмотрим практический пример, чтобы увидеть, как реализовать определенные службы API. Архитектура облачного сервера сама по себе является типом вычислительного хостинга.Вычислительный хостинг означает размещение реального бизнес-кода в облаке, а затем его запуск в облаке.Одним из его методов работы является триггерная операция.После прохождения каждого продукта, каждого продукта сгенерированное событие, последний случай совмещен с API-шлюзом, событие от api-шлюза — это api-событие, когда запрос доходит до api-шлюза, мы рассматриваем его как событие, а затем запускаем его. При первом запуске хостинга вы отправляете в облако код и настройку периода триггера, это не значит, что код будет запускаться после отправки, а только когда придет событие, и код обработает событие. В этом процессе для каждого события процесс подтягивания каждого кода фактически является отдельным событием, почему? Поскольку здесь мы используем параллельный режим, если к вашему аплету одновременно обращаются десятки тысяч пользователей, вам необходимо одновременно обслуживать десятки тысяч пользователей и запускать десятки тысяч экземпляров. соответствует концепции самого апплета WeChat, который работает по принципу «нажми и работай» и работает только при наличии запроса и не запускается, когда запроса нет. Модель выставления счетов за продукт также выставляется в соответствии с фактическим временем работы.
Использование без сервера
Как использовать безсерверные? Традиционная архитектура - это веб-сервис, упомянутый выше, а затем использование хранилища и кеша. После того, как мы обслуживаем извне, есть соответствующие API, которые открыты для внешнего мира. Фактически бизнес-логика пользователя размещается в облаке. функция, которая требует структурированного хранилища и должна быть реализована.Для кэширования или хранения объектов нам нужны службы данных или службы облачного кэширования и т. д. Другие службы могут напрямую обслуживаться онлайн, и эти службы вызываются непосредственно через код.
Архитектура Serverless была представлена ранее, затем последовало введение в фоновую разработку, а затем подробное описание кейса на основе этого метода.
Помимо запуска собственной страницы, последующее взаимодействие с сетью инициируется апплетом.Пройдя через сам WeChat, первый запрос доходит до апи-шлюза.Для управления внешним апи этот апи выставляется официальному веб-сайт, который может быть запрошен программой получить доступ. Он также может предоставлять возможности переключения выпусков и версий API.После шлюза API находится облачная функция. Облачная функция — это логика, которая фактически обрабатывает бизнес.Если вам нужно использовать базу данных, отправьте подключение к базе данных в коде.Если вам нужно сохранить файл, вызовите соответствующее окно для записи файла.
Основываясь на этом решении, давайте посмотрим.Традиционный является средней частью, потому что передняя часть — это апплет пользователя, задняя часть — сервис интерфейса, предоставляемый самим WeChat, а в середине рекомендуется собственный сервер разработчика. Кейс, который мы собираемся показать сейчас, — это замена промежуточного сервера разработчика и внедрение бессерверного решения.Мы используем API-шлюз и облачную базу данных, чтобы добиться того, что может делать сервер разработчика, без необходимости покупать сервер. .
Прежде всего, с передней стороны апплета, этот случай также является демонстрацией разработчика апплета. Передняя часть демонстрации включает в себя порт входа в систему и отображение сеанса. Сначала мы получаем разговор о конце апплета, и разработчик будет следить после его получения.Взаимодействие с Wechat, после проверки является законным, здесь мы выбираем запись в облачную базу данных, это место, где интерфейс апплета обеспечивает вход в систему с помощью щелчка, и последующий бизнес будет отправлять запросы в облако.
Для ядра этого апплета наш путь к определенному API состоит в том, чтобы инициировать операцию GET для URL-адреса входа в систему hos, создать заголовок и содержимое тела запроса в соответствии с Wx.login и отправить полученный код и зашифрованные данные в фоновый режим. .
API-шлюз
Давайте посмотрим, что делает API-шлюз. Он представлен как API-интерфейс для внешнего мира. Мы напрямую предоставляем доменное имя для внешнего доступа. Пользователи привязывают свое доменное имя на основе этого доменного имени. В этом случае могут быть выполнены требования к публикации. Разработчики апплета WeChat требуют, чтобы доменное имя было зарегистрировано, привязали свое доменное имя к службе API и предоставили его внешнему миру. На шлюзе API справа настройте / вход в систему Get, который можно настроить до реализации фона.Для фиктивного метода передняя и задняя части разделены, и апплет может быть разработан на основе фиктивных данных, созданных API. После реализации облачной функции подключите API к облачной функции, обновите и опубликуйте API, чтобы избежать влияния на онлайн-бизнес во время разработки.
Поток обработки облачных функций
С точки зрения облачных функций пользователи будут нести вычислительные услуги. В соответствии с официальной картинкой, предоставленной пользователем в начале, после получения запроса API проанализируйте содержимое запроса, подключитесь к серверу аутентификации WeChat в соответствии со спецификацией, получите статус аутентификации и запишите сеанс, а также верните информацию о сеансе в запрашивающий. Получив ответ от сервера WeChat, вы можете судить, был ли процесс входа пользователя успешным или неудачным. Если он успешен, вы можете получить соответствующее значение пользователя. Здесь мы инициируем соединение с базой данных, устанавливаем masico соединение и завершите запись сеанса.
После потока обработки облачной функции ниже показано, как мы устанавливаем соединение с базой данных, подробный процесс регистрации информации, создание соединения и повторное использование соединения, сборка оператора SQL и его выполнение.
конфигурация базы данных
Это место заключается в том, что после покупки, после запуска базы данных и входа в систему, мы можем войти в базу данных, чтобы просмотреть данные и просмотреть записи сеанса.
Практический пример — вход пользователя и отображение сеанса
Создайте и инициализируйте экземпляр, работайте в соответствии со стандартизированным использованием mysql и рассчитайте преимущества управляемого типа. Пользователи заботятся о основном коде, а не о окружающих операциях и обслуживании. Из-за управляемого бизнеса, будь то личный запрос или небольшая программа отдельного разработчика, очень возможно Ваша небольшая программа станет хитом, а после хита количество посещений может быть в виде резкого увеличения.
Мы используем сессионную архитектуру для реализации небольших программ, не беспокоясь об эксплуатации и обслуживании; запуск за считанные секунды, а эластичная вычислительная мощность может обеспечить одновременную работу десятков тысяч пользователей. Суть в том, чтобы сосредоточиться на бизнес-коде, а не на веб-сайте.Это способ быстро реализовать приложение небольших программ.
Q/A
В: Сертификат HTTPS развернут на шлюзе API?
О: Да, этот сертификат предоставляется Tencent Cloud. Когда вы привязываете собственное доменное имя, вы можете реализовать поддержку HTTPS.
В: Сертификат, предоставляемый Tencent Cloud, когда мы находимся в производственной среде?
О: Да.
В: Нужен ли вам сертификат, предоставленный Tencent Cloud, для запуска нашего сервиса в производственном процессе?
О: Да, это требование для мини-программ, поскольку мини-программы должны использовать собственное доменное имя для подключения к мини-программам.
В:Апплет можно удалить сразу после использования.Если в мобильнике их слишком много, то он будет сильно зависать.Если апплет использовался на странице WeChat, он будет отображаться.Если их десятки тысяч апплет, как это повлияет на сам WeChat?
A: Из некоторых ограничений видно, что есть ограничение на размер апплета WeChat, и его собственный размер является требованием.В настоящее время я помню, что это размер 5 мегабайт и 2 мегабайта.Если это тысячи , для вашего мобильного телефона Например, он может хранить некоторые дополнительные данные. Максимальное использование каждого пакета может быть 5 МБ. Загрузка самой страницы апплета ограничена. С точки зрения WeChat, это ограничение для обеспечения бесперебойной работы апплета. , это не окажет большого влияния на мобильный телефон пользователя. Это должно быть представлено одноклассником WeChat. Я неравнодушен к серверной части.
В: Позвольте мне привести другой пример.При входе в апплет скорость загрузки относительно быстрая.Чтобы привести экстремальный, такой как прыжки,при первом использовании скорость его загрузки,например,если он сегодня израсходовали,удалите.Если скинуть и потом зайти через некоторое время,есть ли разница в скорости загрузки? Или это быстрее во второй раз, когда я использую его? какова причина?
О: Лучше, чтобы на этот вопрос ответили студенты WeChat, потому что это все проявления самой мини-программы, или проявление скорости.
Q: Здравствуйте, я занимаюсь back-end разработкой, какая модель не делается с Serverless.
A: Некоторые функции самого Serverless также ограничивают сценарии его использования, такие как конфигурация памяти, конфигурация процессора и ограничения времени работы, которые не применимы ко всем случаям.Использование API, включая использование памяти, включая применение процессора , такие как рендеринг анимации, долгосрочный пакетный расчет, они не подходят для API-сервисов, потому что его запрос должен быстро реагировать на пользователей после прибытия, API-интерфейс более подходит.
Для получения дополнительной информации об обмене, пожалуйста, нажмите на ссылку ниже:
Используйте serverless для создания апплета background.pdf
вопросы и ответы
Как апплет WeChat взаимодействует с базой данных?
Связанное Чтение
Чжу Чжань: Мини-программное решение Tencent Cloud
Ши Делай: Практика мини-программы электронной коммерции Youzan
Цзоу Вэй: Как разработать небольшую игру
Эта статья была разрешена автором для публикации сообщества Tencent Cloud +, исходная ссылка: https://cloud.tencent.com/developer/article/1116854?fromSource=waitui.