Архитектура прикладных технологий — бессерверная архитектура
Архитектура прикладных технологий — бессерверная архитектура

Автор этой статьи:Хэ Вэньцян — CODING Старший архитектор решений С первой линией Интернета, Интернет вещей Единорог、национальный акционерный банк、Новый типУмный транспортМежотраслевой опыт,Обслуживается последовательно Java Старший инженер-разработчик, DevOps Технические эксперты, старшие менеджеры по исследованиям и разработкам и т. д. обладают глубоким пониманием и богатой практикой в ​​области микросервисов, Agile, DevOps и контейнерных технологий.

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

В 2012 году компания Iron.io впервые предложила концепцию Serverless. В 2014 году AWS выпустила Lambda, положив начало эре коммерциализации бессерверных технологий. AWS Lambda стала первой бессерверной реализацией, признанной общественностью. Впоследствии крупные поставщики облачных технологий поспешили запустить свои собственные бессерверные сервисы, платформы и инструменты.

Фон бессерверной архитектуры

Развитие и эволюция вычислительной мощности компьютеров

Разработка компьютеров прошла через мейнфреймы, миникомпьютеры, ПК. машина、虚拟машинаиОблачный сервер(большинство Облачный сервер также является виртуальной машиной).

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

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

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

IaaS/PaaS/SaaS

IaaS

Предоставление вычислительной инфраструктуры (серверы, сетевые технологии, хранилища и центры обработки данных) клиентам как услуга.。Сюда также входит предоставление операционной системыитехнология виртуализации、управлять ресурсами. Потребители проходят Internet Услуги можно получить из комплексной компьютерной инфраструктуры.

преимущество:

  • Нет необходимости заботиться о принципах базовой аппаратной структуры;
  • Инфраструктуру можно масштабировать по требованию для поддержки меняющихся рабочих нагрузок;
  • Гибкие, инновационные услуги по требованию.

PaaS

Поставщики платформы как услуги (PaaS) размещают оборудование и программное обеспечение в своей собственной инфраструктуре и предоставляют платформу пользователям через подключение к Интернету в виде интегрированного решения, стека решений или услуги.

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

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

преимущество:

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

SaaS

Программное обеспечение как услуга представляет собой законченный продукт, который запускается и управляется поставщиком услуг.。То, что люди обычно называют «Программное обеспечение как услуга», — это приложения для конечных пользователей.。使用 SaaS При использовании продукта пользователям не нужно беспокоиться об обслуживании сервисов и управлении базовой инфраструктурой. Пользователям нужно только подумать о том, как его использовать. SaaS Программное обеспечение подойдет.

преимущество:

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

Разработка публичного облака

2006 Годы, Амазонка Web Service (AWS) выпускает свой первый вычислительный продукт EC2, запуск публичного облака в 2008 г.; год, Гугл выпускать Google App Engine платформа, анонсированная Google Официально вышел на рынок публичных облаков в 2009 г.; В 2010 году о своем создании объявила компания Alibaba Cloud, которая стала первым поставщиком облачных услуг,отпраздновавшим Новый год (и в настоящее время занимает самую большую долю на внутреннем рынке в 2010 году); Год,Майкрософтвыпускать Microsoft Azure Паас, Microsoft официально выходит на рынок общедоступных облаков в 2010 г.; В 2011 году Tencent выпустила бренд Tencent Cloud, Tencent официально вышла на рынок общедоступных облаков 2011 года; год~2016 В 2016 году облачные вычисления вступили в период бурного развития, и все больше и больше IT Предприятия присоединяются к гонке облачных вычислений, например. IBM、Oracle、HP、Vmware и др., 2016 г.; Год~Прямо сейчас,Рынок публичных облаков перешел от быстрого развития к зрелости и стабильности.,К ведущим зарубежным компаниям в основном относятся AWS、Azure、Google Cloud, ведущие отечественные компании в основном включают Tencent Cloud, Alibaba Cloud и Huawei Cloud. В то же время развиваются и некоторые поставщики облачных услуг для вертикальных отраслей, такие как Qiniu Cloud, специализирующийся на хранении данных. K8s Экологический Qingyun et al.

Требования бессерверного рынка
  • С популяризацией облачных вычислений и быстрым расширением масштабов приложений технологии должны, с одной стороны, поддерживать быстрое развитие бизнеса, а с другой стороны, необходимо абстрагировать, реорганизовывать и реконструировать систему в соответствии с изменениями бизнеса. PaaS высок для большинства предприятий, сложен, поэтому необходимы новые методологии и инструменты для снижения стоимости построения платформы, одновременно обеспечивая быструю итеративную эволюцию для удовлетворения рыночного спроса и поддержания конкурентоспособности;
  • Цифровые технологии меняют способ создания ценности предприятиями. Предприятия сталкиваются с огромным конкурентным давлением и неопределенностью, и быстрое реагирование на изменения рынка стало ключевым моментом. Для сокращения циклов поставок и поддержания рыночной конкурентоспособности необходима новая модель поставок.
  • Столкнувшись с диверсифицированными требованиями клиентов и более быстрой реакцией рынка, вопрос о том, как эффективно сократить поддержку НИОКР, одновременно удовлетворяя потребности пользователей и сохраняя корпоративную конкурентоспособность, стал неизбежной проблемой, с которой сталкивается корпоративная цифровая трансформация;
  • Предприятия могут быстро приобретать возможности облачных продуктов в соответствии с потребностями своего бизнеса и быстро и гибко интегрировать их с корпоративными приложениями. Новой тенденцией стало быстрое приобретение по требованию и гибкое сочетание возможностей.
  • Большинство предприятий стремятся исключить однородную и обременительную разработку, эксплуатацию и обслуживание серверной инфраструктуры из будущей разработки облачных приложений и использовать богатые возможности хостинга в облаке для создания гибких, надежных и недорогих систем. приложения.
История развития бессерверных технологий
Введение в бессерверные технологии

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

FaaS (Функция как услуга, функция как услуга)

Функция без сохранения состояния, содержащая бизнес-логику на стороне сервера. Эти функции выполняются в независимых контейнерах, управляются событиями и размещаются у сторонних поставщиков, таких как AWS Lambda или Azure Functions.

BaaS (бэкенд как услуга, бэкенд как услуга)

Используйте сторонние сервисы (например, Firebase, Auth0) для достижения цели. использовать BaaS Приложения обычно представляют собой многофункциональные клиентские приложения, такие как SPA или двигаться Приложение. Клиент отвечает за обработку большей части бизнес-логики.,Другие части полагаются на внешние услуги,Такие как сертификация、база данных、Управление пользователями ждет.

Основные поставщики бессерверных вычислений
Сценарии использования бессерверной архитектуры
  • Мини-программа/веб-/мобильный/бэкэнд-сервис API;
  • Масштабная пакетная обработка задач;
  • Короткоживущие приложения без сохранения состояния, нечувствительные к практикам холодного запуска;
  • Онлайн-приложения и автономная обработка данных на основе событийно-ориентированной архитектуры.
Преимущества и недостатки бессерверной архитектуры
Преимущества
  • Снизить эксплуатационные расходы

Бессерверное управление — это очень простое решение для аутсорсинга. Он позволяет делегировать управление серверами, базами данных и приложениями и даже логикой поставщику услуг. Снижение затрат включает в себя два аспекта, а именно стоимость инфраструктуры и стоимость персонала (эксплуатация/развитие).

  • Сокращение затрат на разработку

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

  • Высокая масштабируемость

Serverless 架构一个显и Очевидным преимуществом является то, что«Масштабирование полностью автоматизировано, гибко и управляется поставщиком услуг»。Самая большая выгода от базовой инфраструктуры — это,Вы платите только за необходимые вам расчеты.

  • Сократить инновационный цикл

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

недостаточный
  • Управление с сохранением состояния — это сложно

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

  • Высокая задержка

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

  • местный тест

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

Тенденции развития бессерверной архитектуры
  • Более детальные вычислительные ресурсы

Базовая вычислительная среда современной бессерверной/FaaS-технологии обычно представляет собой контейнеры, такие как Docker. Контейнерная технология является более простой реализацией, чем аппаратная виртуализация. Пользователи могут запускать большое количество контейнеров на виртуальных машинах и использовать вычислительные ресурсы в большей степени.

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

  • Единая модель планирования для поставщиков облачных услуг

Из-за различий в методах реализации облачных поставщиков и различных продуктах выбор инфраструктур планирования контейнеров различен. Например, бессерверные продукты некоторых поставщиков основаны на Kubernetes для управления кластерами облачных хостов для оркестрации и планирования контейнеров, например CCI от Huawei. , в то время как некоторые продукты, такие как продукт функциональных вычислений Alibaba Cloud, основаны на самостоятельно разработанном агенте для планирования контейнеров. Бессерверные технологии на облачных платформах стали фактором, который нельзя игнорировать.

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

История создания «Системы знаний для специалистов в области цифровых ИТ»

Цифровизация и устойчивое развитие — две основные темы будущего развития китайских предприятий. Овладение цифровыми знаниями, обладание цифровыми возможностями и применение цифровых технологий — основные конкурентные преимущества наших ИТ-практиков в будущем. Первоначальная цель «Системы знаний для специалистов в области цифровых ИТ» — предоставить систематическую систему цифровых знаний для специалистов в области ИТ. Содержание охватывает три уровня: практика управления, инженерная практика и техническая практика, включающая методы разработки программного обеспечения, архитектуру прикладных технологий, развертывание приложений. и Управление, поставка программного обеспечения и сотрудничество.

В следующей серии статей «Система знаний для специалистов по цифровым ИТ-технологиям» Хэ Вэньцян поделится с вами одним за другим четырьмя аспектами: методы разработки программного обеспечения, архитектура технологии приложений, развертывание приложений и управление ими, доставка программного обеспечения и совместная работа:

1. Методы разработки программного обеспечения в основном включают каскадный, гибкий, бережливый и т. д.;

2. Архитектура прикладных технологий в основном включает в себя микросервисную архитектуру, архитектуру сервисной сетки, бессерверную архитектуру, распределенную многооперационную архитектуру и т. д.;

3. Развертывание приложений и управление ими в основном включают, помимо прочего, технологии виртуализации, контейнерные технологии, оркестровку контейнеров и т. д.;

4. Доставка программного обеспечения и совместная работа в основном включают, помимо прочего, CMMI, ITIL, DevOps и т. д.

ИТ-практики создают богатую техническую систему、Комплексное техническое видениеисистематическийспособностьстроительство。Добро пожаловать в«Цифровизация IT Тема «Система знаний практикующего специалиста»Читать далее。

boy illustration
Учебное пособие по Jetpack Compose для начинающих, базовые элементы управления и макет
boy illustration
Код js веб-страницы, фон частицы, код спецэффектов
boy illustration
【новый! Суперподробное】Полное руководство по свойствам компонентов Figma.
boy illustration
🎉Обязательно к прочтению новичкам: полное руководство по написанию мини-программ WeChat с использованием программного обеспечения Cursor.
boy illustration
[Забавный проект Docker] VoceChat — еще одно приложение для мгновенного чата (IM)! Может быть встроен в любую веб-страницу!
boy illustration
Как реализовать переход по странице в HTML (html переходит на указанную страницу)
boy illustration
Как решить проблему зависания и низкой скорости при установке зависимостей с помощью npm. Существуют ли доступные источники npm, которые могут решить эту проблему?
boy illustration
Серия From Zero to Fun: Uni-App WeChat Payment Practice WeChat авторизует вход в систему и украшает страницу заказа, создает интерфейс заказа и инициирует запрос заказа
boy illustration
Серия uni-app: uni.navigateЧтобы передать скачок значения
boy illustration
Апплет WeChat настраивает верхнюю панель навигации и адаптируется к различным моделям.
boy illustration
JS-время конвертации
boy illustration
Обеспечьте бесперебойную работу ChromeDriver 125: советы по решению проблемы chromedriver.exe не найдены
boy illustration
Поле комментария, щелчок мышью, специальные эффекты, js-код
boy illustration
Объект массива перемещения объекта JS
boy illustration
Как открыть разрешение на позиционирование апплета WeChat_Как использовать WeChat для определения местонахождения друзей
boy illustration
Я даю вам два набора из 18 простых в использовании фонов холста Power BI, так что вам больше не придется возиться с цветами!
boy illustration
Получить текущее время в js_Как динамически отображать дату и время в js
boy illustration
Вам необходимо изучить сочетания клавиш vsCode для форматирования и организации кода, чтобы вам больше не приходилось настраивать формат вручную.
boy illustration
У ChatGPT большое обновление. Всего за 45 минут пресс-конференция показывает, что OpenAI сделал еще один шаг вперед.
boy illustration
Copilot облачной разработки — упрощение разработки
boy illustration
Микросборка xChatGPT с низким кодом, создание апплета чат-бота с искусственным интеллектом за пять шагов
boy illustration
CUDA Out of Memory: идеальное решение проблемы нехватки памяти CUDA
boy illustration
Анализ кластеризации отдельных ячеек, который должен освоить каждый&MarkerгенетическийВизуализация
boy illustration
vLLM: мощный инструмент для ускорения вывода ИИ
boy illustration
CodeGeeX: мощный инструмент генерации кода искусственного интеллекта, который можно использовать бесплатно в дополнение к второму пилоту.
boy illustration
Машинное обучение Реальный бой LightGBM + настройка параметров случайного поиска: точность 96,67%
boy illustration
Бесшовная интеграция, мгновенный интеллект [1]: платформа больших моделей Dify-LLM, интеграция без кодирования и встраивание в сторонние системы, более 42 тысяч звезд, чтобы стать свидетелями эксклюзивных интеллектуальных решений.
boy illustration
LM Studio для создания локальных больших моделей
boy illustration
Как определить количество слоев и нейронов скрытых слоев нейронной сети?
boy illustration
[Отслеживание целей] Подробное объяснение ByteTrack и детали кода