Сравнение трех моделей облачных вычислений IaaS/PaaS/SaaS/BaaS: анализ проектирования архитектуры SaaS
Сравнение трех моделей облачных вычислений IaaS/PaaS/SaaS/BaaS: анализ проектирования архитектуры SaaS

Появление SaaS — Software as a Service (Программное обеспечение как услуга) изменило традиционное использование программного обеспечения на использование услуг.

Самая большая разница между SaaS и традиционным программным обеспечением заключается в том, что первое платит за аренду услуги ежегодно, а второе выкупает ее один раз. Кажется, это просто разница в «методе котирования». На самом деле это фундаментальное изменение, которое окажет фундаментальное влияние на модель обслуживания, модель продаж, стоимость компании и другие аспекты.

Уровень неудач при внедрении традиционного программного обеспечения высок или землю неудобно использовать после того, как она будет подключена к сети, что эквивалентно невозвратным затратам. С точки зрения компании-разработчика программного обеспечения, задачи по продажам уже достигнуты при подписании контракта. Поэтому консультанты по продажам и даже предпродажной поддержке часто стремятся «выиграть заказ». Столкнувшись с конкурентными стимулами, они дают завышенные обещания. и переманивать отдел внедрения. Никаких подводных камней нет. В последующие годы плата за обслуживание составит всего 10–15%, а выгоды будут невелики. Если это хорошо, просто соберите ее. Если нет, это не стоит усилий и больших вложений. Ежегодная оплата SaaS полностью изменила эту ситуацию. Для компаний-разработчиков программного обеспечения сложность продаж и циклы продаж сокращаются. Продажи продуктов SaaS могут достигать миллионов долларов в год. Для SaaS-компаний стоимость продления, начиная со второго года, очень низкая. Отдел по работе с клиентами берет от 20 до 40% комиссии, а остальные 60–80% составляют валовую прибыль.

Таким образом, среди трех режимов облачных вычислений, IaaS/PaaS/SaaS, SaaS сталкивается с большинством пользователей. Как и C-сторона, любая операция обновления или устранения уязвимостей приложения реализуется и обрабатывается поставщиком программного обеспечения, поскольку арендатор. Программные услуги предоставляются через Интернет, поэтому арендаторам не нужно загружать какие-либо пакеты обновлений или исправления. Это метод обслуживания, который позволяет им получать новейшие программные продукты прямо из коробки.

Что такое SaaS

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

Существует три уровня облачных вычислений: инфраструктура внизу, платформа посередине и программное обеспечение вверху.

  • Инфраструктура как услуга (IaaS-Инфраструктура как услуга):IaaSКомпания предоставит выездные серверы,Устройство хранения и сетевое оборудование,Вы можете арендовать его. Экономия затрат на техническое обслуживание и офисное пространство,Компании могут использовать это оборудование в любое время для запуска своих приложений.
  • Платформа как услуга (PaaS-платформа как услуга):PaaSКомпания предоставляет разнообразные решения для разработки и распространения приложений в Интернете.,Например, виртуальные серверы и операционные системы. Это экономит ваши деньги на оборудовании,Это также упрощает сотрудничество между рассредоточенными студиями. Управление веб-приложениями,дизайн приложения,Виртуальный хост приложения,хранилище,Инструменты безопасности и совместной разработки приложений и т. д. Одними из основных поставщиков PaaS являются Google App Engine и Microsoft Azure.,Force.com,Heroku,Engine Площадка. Недавно появившиеся компании включают AppFog, Mendix и Standing. Cloud.
  • BaaS (бэкэнд как услуга),Компания предоставляет разработчикам мобильных приложений периферийные услуги, интегрирующие облачные серверные части. Внутренняя служба является абстрактной и единообразно предоставляет разработчикам такие сложные в реализации функции, как хранение файлов, хранение данных и службы push-уведомлений, что помогает разработчикам быстро разрабатывать мобильные приложения. Поставщики BaaS, такие как AVOS Cloud。
  • Программное обеспечение как услуга (SaaS-программное обеспечение как услуга):Доступ в основном осуществляется через веб-браузер。Любое приложение на удаленном сервере может быть запущено по сети.,Это SaaS. Некоторые приложения SaaS, используемые для бизнеса, включают Citrix’s Go. To Meeting, Cisco WebEx, CRM Salesforce, ADP, Workday и SuccessFactors.

IaaS превратился в покер техасского холдема среди гигантов; рынок PaaS стал раскаленным, мир поделили военачальники, а рынок SaaS — это сцена, на которой соревнуются сотни научных школ, но этот этап продлится недолго; .

Преимущества SaaS

  • Способ получения программных услуг достаточно прост,SaaS — это, пожалуй, один из самых простых способов использования программного обеспечения.,По сравнению с традиционным способом использования программного обеспечения,Арендаторы избавляют себя от ряда сложных процессов, таких как исследования и разработки, развертывание, эксплуатация и обслуживание и т. д.,А время и стоимость получения программного обеспечения значительно сокращаются.。
    • Продукты на базе SaaS предоставляют арендаторам программные услуги через Интернет. С развитием веб-технологий (таких как jQuery, Node.js) интерактивность веб-страниц значительно улучшилась, что сделало взаимодействие более плавным и гуманным. Эффект взаимодействия человека с компьютером почти такой же, как и у традиционных настольных приложений.
    • По сравнению с традиционным программным обеспечением программное обеспечение SaaS имеет лучшую совместимость. У него нет проблем с обслуживанием нескольких версий и проблем совместимости с операционной системой, как у традиционного программного обеспечения. В программном обеспечении SaaS пользователи-арендаторы вряд ли могут почувствовать, что программное обеспечение изменилось при использовании программного обеспечения. Когда пользователь-арендатор входит в систему, у него уже установлена ​​последняя версия программного обеспечения.
  • SaaS может предоставлять межрегиональные и кроссплатформенные программные услуги. в то же время,Поставщики программных услуг могут осуществлять унифицированное управление версиями программного обеспечения.,Это принесет следующие преимущества(включая, но не ограничиваясь):
    • Сократите время запуска продукта: адаптация к нескольким терминалам, унифицированная версия, унифицированное обновление.
    • Сокращение затрат на обслуживание: нет необходимости одновременно поддерживать несколько версий программного обеспечения, что снижает нагрузку на эксплуатацию и обслуживание.
    • Легкость обновления: поскольку версия эффективно контролируется, одно обновление может охватить всех арендаторов.
  • Используйте продукты SaaS, не беспокоясь о данных. вопрос,Это так же безопасно, как положить деньги в банк. По сравнению с программными системами, развернутыми на предприятии,Продукты SaaS обладают более высокими возможностями безопасности.,Потому что у поставщиков программного обеспечения больше технических, человеческих и финансовых ресурсов для защиты безопасности программного обеспечения.

SaaS может быть любым программным обеспечением SaaS. Вот несколько общих классификаций для справки:

  • Офис онлайн-офис SaaS-продукты
  • SaaS-продукты для электронной почты и обмена мгновенными сообщениями
  • SaaS-продукты для социальных сетей
  • Сторонние продукты API SaaS
  • Продукты по контролю за безопасностью и доступом SaaS
  • SaaS-продукты машинного обучения
  • SaaS-продукты в области искусственного интеллекта
  • Услуги геолокации SaaS-продукты
  • Продукты SaaS для потоковой передачи и извлечения данных

В последние годы на рынке корпоративных SaaS в каждом сегменте появилось множество игроков. С технической точки зрения разные области и разные SaaS-продукты должны иметь одно и то же архитектурное ядро, наиболее важным из которых является поддержка мультитенантности (Multi-Tenancy). Для большинства предприятий внедрение продуктов SaaS — это, по сути, аренда интернет-сервисов. Поэтому мультитенантность обязательно станет одним из естественных атрибутов SaaS и одним из важных отличий между ним и традиционным дизайном архитектуры интернет-приложений.

Мультитенантный дизайн для SaaS

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

С точки зрения совместного использования ресурсов, с точки зрения обмена нечем поделиться everything,Мультиарендность может поддерживаться в любой точке масштаба. Но как мы уже говорили,Основная цель архитектуры SaaS — единый экземпляр. Только один экземпляр может максимально снизить стоимость, и продукт будет иметь эффект масштабирования.。Так называемое разделение и изоляция,В классической архитектуре он будет сосредоточен на одной точке.,Прямо сейчасКак изолировать разных арендаторов на уровне ресурсов

Техническую природу систем SaaS также можно рассматривать как интеграцию распределенного хранилища и распределенных вычислений.

В мультитенантной реализации,частоЧто еще более важно, обработка ресурсов хранения,Вычислительные ресурсы обычно рассматриваются только при необходимости.,Я думаю, что это связано в первую очередь схранилищеиз“обладающий состоянием”связанный。

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

несмотря ни на чтохранилище,Идеи все одинаковые,И с ним относительно просто и грубо обращаться. Подчеркивается, что,существоватьНа инженерном уровне это соглашение должно быть унифицировано в базовой структуре.。Например, вы можете пройтиAOPТехнология будет актуальна для нескольких арендаторовиз Вырежьте логику для унифицированной обработки

Архитектура SaaS включает в себя уровни:

Презентационный уровень архитектуры SaaS

Презентационный уровень архитектуры Клиент SaaS может быть браузером или локальным клиентом. Если это браузер, он включает в себя технологию веб-интерфейса, интерактивную технологию и т. д., например: технологию HTML5, технологию CSS3, технологию Ajax и т. д. Если это программный клиент, он включает в себя технологию удаленного рабочего стола, технологию взаимодействия программного обеспечения и т. д. В разных рабочих средах применяются разные прикладные технологии:

  • На передовых площадках (таких как производство, складирование, логистика и дистрибуция) для сканирования QR-кода обычно используются мини-программы POS или WeChat. После сканирования QR-кода ключевые бизнес-точки можно записать в нескольких простых случаях. операции.
  • Для кассиров розничных магазинов первой линии теперь доступно большинство фирменных приложений для планшетов.
  • Сотрудники на местах, которые постоянно переключаются между распределением, каналами, закупками и контролем, в основном используют мобильные приложения для ведения бизнеса.
  • Что касается операционного персонала, персонала, юридических и финансовых специалистов, которые сидят на заднем плане, они в основном используют веб-приложения для настольных компьютеров для ведения бизнеса.

Уровень планирования архитектуры SaaS

SaaSАрхитектураизУровень планирования отвечает за идентификацию каждого запроса пользователя и выполнение аутентификации AAA для каждого запроса, а затем выполняет разумное планирование на основе загрузки внутреннего сервера бизнес-обработки и его бизнес-характеристик.。через этоиз АрхитектураSaaSПлатформа может масштабироваться горизонтально.。такжесуществоватьхранилище、Кэширование и другие аспекты Понятновстретиться с платформойиз Потребности в горизонтальном расширении,Этот уровень также должен быть хорошо масштабируемым.

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

Поскольку этот уровень предполагает клиентский доступ, для него требуется промежуточное программное обеспечение шлюза API. Поскольку он относительно легкий (поскольку также имеется общий уровень обработки бизнес-логики), в каждом из них используется промежуточное программное обеспечение микросервисов (например, Spring Cloud). Docker, чтобы быстро и гибко начать расширение. На передней панели имеется промежуточное программное обеспечение шлюза API, которое может разделять трафик, ограничивать трафик и маршрутизировать трафик. Таким образом, то, как впоследствии расширить емкость микросервисного контейнера, будет прозрачно для внешнего интерфейса.

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

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

Бизнес-уровень архитектуры SaaS

SaaSАрхитектураиз ПромышленностьУровень обслуживания отвечает за получение запросов, пересылаемых уровнем планирования, и выполнение реальной бизнес-логики.。一般Промышленность务逻辑再怎么复杂也足以Перепечаткасуществоватьна сервере。因此Промышленность务层实际是由一排对等из Состав сервераиз,Каждый сервер выполняет одну и ту же бизнес-логику.

Уровень данных архитектуры SaaS

SaaSАрхитектураизУровень данных обрабатывает и хранит бизнес-данные, которые являются реляционными и имеют высокие требования к транзакциям через кластер базы данных.,Такие данные часто трудно решить с помощью NoSQL, поэтому в настоящее время для их решения приходится полагаться на традиционную технологию кластеризации баз данных.,Основная цель — сформулировать план разделения данных на основе бизнес-характеристик. В то же время распределенные базы данных используются для хранения огромных объемов данных, которые не являются реляционными.

  • некоторый Данные необходимо разместитьсуществовать Память ПонятноБыстрый запрос, распределенный кластер Redis
  • некоторыйДанные должны быть сохранены в реляционных данных. Вы можете использовать реляционную базу данных MySQL.
    • Для распределенного хранения вы можете разместить подбазу данных MyCAT и распределенное промежуточное программное обеспечение таблиц перед MySQL.
    • Чтобы повысить производительность за счет разделения чтения и записи, мы можем добавить еще один уровень MySQLProxy перед MyCAT для разделения первичного и вторичного чтения и записи.
  • некоторыйДанные представлены в виде файлов и могут храниться с использованием распределенных файловых систем и систем объектного хранения.(Как изображение、аудио видео)。Мы такжеТехнология CDN может использоваться для ускорения распространения этих статических файлов.
  • некоторый ДанныеСпециальные структуры данных. Чтобы ускорить доступ к данным этих специальных структур, можно использовать базы данных временных рядов, базы данных графов, базы данных документов и т. д.。например данные временных рядов(IMСообщения обычно имеют следующие характеристики:)、Данные рисунка (социальные сети обычно имеют такую ​​характеристику)、Например, большие текстовые данные (обзоры и комментарии обычно имеют эту характеристику),

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

Необходимо разделить не только вычислительные ресурсы, но и ресурсы хранения. Потому что для больших данных емкость хранилища должна быть большой (но производительность доступа к хранилищу не обязательно должна быть высокой), память должна быть большой (для расчета необходимо извлечь большой объем данных), а производительность процессора должна быть высокой (требуются интенсивные расчеты). Поэтому для таких функций, как статистика, запросы и анализ, облачные серверы и облачное хранилище должны быть отделены от бизнес-обработки приложений.

После разделения данные должны быть взяты из системы обработки бизнеса приложений.

Таким образом, для уровня извлечения данных: у нас есть ряд инструментов ETL, механизмы сканирования данных для сканирования внутренних и внешних статических данных, а также Flume, Logstash и Splunk для сбора журналов ИТ-ресурсов и журналов работы систем приложений.

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

Когда требуются вычисления и обработка, мы можем использовать Spark и Storm в рамках платформы планирования вычислений YARN или MapRedurce для вычислений в памяти и потоковых вычислений.

Мы можем использовать presto для запроса обработанных данных, а также использовать ElasticSearch для поиска.

Наконец, мы используем некоторые визуальные инструменты для вывода результатов в форме диаграммы.

После построения в соответствии с этой технической архитектурой каждому заказчику необходимо самостоятельно развернуть ее в общедоступном облаке, а затем с помощью инструментов DevOps запустить несколько новых докеров сервисного уровня. Если модель общедоступной бизнес-логики также необходимо изменить, запустите несколько новых общедоступных. бизнес-логика Docker. В конце концов, у нас есть распределенный шлюз аутентификации входа в систему и шлюз API, поэтому будь то развертывание выделенного общедоступного облака или развертывание частного облака, проблем не возникнет.

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

На уровне данных у нас есть распределенная база данных KV, распределенная реляционная база данных, промежуточное программное обеспечение для активного и резервного разделения чтения и записи, промежуточное программное обеспечение подбазы данных и подтаблицы, распределение CDN, база данных временных рядов/база данных документов/база данных графиков, нам действительно нужно маршрут в шлюзе API. На том же уровне инструменты и сценарии DevOps, а также промежуточное ПО централизованной конфигурации Puppet используются для автоматизации расширения развертывания, изменения конфигурации и обновлений. Таким образом, разные предприятия указывают на разные адреса ядра распределенной базы данных и объемы хранения распределенной базы данных. Это делает удобным развертывание как выделенного общедоступного облака, так и развертывания частного облака.

Врожденные недостатки SaaS-продуктов

программное управление

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

Узкое место в производительности

Совместное использование приложений неизбежно приведет к снижению производительности сервера, такой как скорость вычислений, сетевые ресурсы, чтение и запись ввода-вывода и т. д., что приведет к серьезным проблемам. С точки зрения производительности приложения «монопольного режима», развернутые на предприятии, немного лучше, чем «совместный режим» программного обеспечения SaaS.

Контрольный вопрос

Когда арендаторы выбирают продукт SaaS, безопасность продукта будет в первую очередь. Такие как изоляция данных, шифрование конфиденциальных данных, контроль доступа к данным, конфиденциальность личной информации и другие вопросы. 25 мая 2018 г. GDPR (Общий Data Protection После появления Общего регламента защиты данных все больше людей стали обращать внимание на данные. вопрос。как максимизироватьиз Отпугивание арендаторовизэта проблема,Поставщикам услуг необходимо укрепить свой авторитет,Завоевать доверие арендаторов.

Самое главное: сложность SaaS находится за пределами возможностей обычных команд. Микроскопический разрыв между тем, можно ли реализовать PaaS хорошо, в основном отражается на способностях разработчиков программного обеспечения и разработчиков программного обеспечения. Есть шутка: в США разработчиков программного обеспечения называют инженерами, а в Китае разработчиков называют программистами. Многие отличные программы в США спроектированы и разработаны дядьями, а китайские программисты сталкиваются с риском безработицы после 35 лет. В Китае очень не хватает высококлассных специалистов в области программного обеспечения. Причина нехватки — отсутствие постоянного накопления. Каждый выполняет какую-то низкоуровневую повторяющуюся работу, которая по сути ничем не отличается от работы рабочих на конвейере.

Справочная статья:

Руководство архитектора по основным навыкам: проектирование архитектуры SaaS (программное обеспечение как услуга) https://zhuanlan.zhihu.com/p/67848677

Говоря об уровне предприятия Мультитенантный дизайн для SaaS https://zhuanlan.zhihu.com/p/133311041

Почему китайский SaaS не зарабатывает деньги? https://www.huxiu.com/article/354905.html

https://www.zhihu.com/question/21641778/answer/308674603

Суть SaaS и подводные камни SaaS-компаний https://zhuanlan.zhihu.com/p/67169367

ПерепечаткаЭтот сайтстатья《Сравнение трех моделей облачных вычислений IaaS/PaaS/SaaS/BaaS: анализ проектирования архитектуры SaaS》, Пожалуйста, укажите источник:https://www.zhoulujun.cn/html/webfront/engineer/Architecture/8466.html

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 и детали кода