Появление SaaS — Software as a Service (Программное обеспечение как услуга) изменило традиционное использование программного обеспечения на использование услуг.
Самая большая разница между SaaS и традиционным программным обеспечением заключается в том, что первое платит за аренду услуги ежегодно, а второе выкупает ее один раз. Кажется, это просто разница в «методе котирования». На самом деле это фундаментальное изменение, которое окажет фундаментальное влияние на модель обслуживания, модель продаж, стоимость компании и другие аспекты.
Уровень неудач при внедрении традиционного программного обеспечения высок или землю неудобно использовать после того, как она будет подключена к сети, что эквивалентно невозвратным затратам. С точки зрения компании-разработчика программного обеспечения, задачи по продажам уже достигнуты при подписании контракта. Поэтому консультанты по продажам и даже предпродажной поддержке часто стремятся «выиграть заказ». Столкнувшись с конкурентными стимулами, они дают завышенные обещания. и переманивать отдел внедрения. Никаких подводных камней нет. В последующие годы плата за обслуживание составит всего 10–15%, а выгоды будут невелики. Если это хорошо, просто соберите ее. Если нет, это не стоит усилий и больших вложений. Ежегодная оплата SaaS полностью изменила эту ситуацию. Для компаний-разработчиков программного обеспечения сложность продаж и циклы продаж сокращаются. Продажи продуктов SaaS могут достигать миллионов долларов в год. Для SaaS-компаний стоимость продления, начиная со второго года, очень низкая. Отдел по работе с клиентами берет от 20 до 40% комиссии, а остальные 60–80% составляют валовую прибыль.
Таким образом, среди трех режимов облачных вычислений, IaaS/PaaS/SaaS, SaaS сталкивается с большинством пользователей. Как и C-сторона, любая операция обновления или устранения уязвимостей приложения реализуется и обрабатывается поставщиком программного обеспечения, поскольку арендатор. Программные услуги предоставляются через Интернет, поэтому арендаторам не нужно загружать какие-либо пакеты обновлений или исправления. Это метод обслуживания, который позволяет им получать новейшие программные продукты прямо из коробки.
С точки зрения макроса,SaaS — это метод доставки программных приложений.,Поставщик программного обеспечения централизованно размещает одно или несколько программных приложений.,И использовать эти программные приложения арендаторам через Интернет. С точки зрения классификации,SaaS (программное обеспечение как услуга) также является важной частью облачных вычислений.
Существует три уровня облачных вычислений: инфраструктура внизу, платформа посередине и программное обеспечение вверху.
IaaS превратился в покер техасского холдема среди гигантов; рынок PaaS стал раскаленным, мир поделили военачальники, а рынок SaaS — это сцена, на которой соревнуются сотни научных школ, но этот этап продлится недолго; .
SaaS может быть любым программным обеспечением SaaS. Вот несколько общих классификаций для справки:
В последние годы на рынке корпоративных SaaS в каждом сегменте появилось множество игроков. С технической точки зрения разные области и разные SaaS-продукты должны иметь одно и то же архитектурное ядро, наиболее важным из которых является поддержка мультитенантности (Multi-Tenancy). Для большинства предприятий внедрение продуктов SaaS — это, по сути, аренда интернет-сервисов. Поэтому мультитенантность обязательно станет одним из естественных атрибутов SaaS и одним из важных отличий между ним и традиционным дизайном архитектуры интернет-приложений.
Классическая архитектура распределенных сервисов естественным образом решает три основные проблемы интернет-приложений (высокий уровень параллелизма, высокая производительность и высокая доступность), которые также являются проблемами, с которыми предприятия могут столкнуться на средних и последующих этапах разработки SaaS.
С точки зрения совместного использования ресурсов, с точки зрения обмена нечем поделиться everything,Мультиарендность может поддерживаться в любой точке масштаба. Но как мы уже говорили,Основная цель архитектуры SaaS — единый экземпляр. Только один экземпляр может максимально снизить стоимость, и продукт будет иметь эффект масштабирования.。Так называемое разделение и изоляция,В классической архитектуре он будет сосредоточен на одной точке.,Прямо сейчасКак изолировать разных арендаторов на уровне ресурсов。
Техническую природу систем SaaS также можно рассматривать как интеграцию распределенного хранилища и распределенных вычислений.
В мультитенантной реализации,частоЧто еще более важно, обработка ресурсов хранения,Вычислительные ресурсы обычно рассматриваются только при необходимости.,Я думаю, что это связано в первую очередь схранилищеиз“обладающий состоянием”связанный。
Изолирование ресурсов хранения можно описать одним словом: пространство имен. Если взять в качестве примера базу данных, нам нужно только записать идентификатор соответствующего арендатора в записи каждого арендатора. Не учитывая шардинг баз данных и таблиц, мы логически будем хранить данные всех арендаторов в одной Schema.
несмотря ни на чтохранилище,Идеи все одинаковые,И с ним относительно просто и грубо обращаться. Подчеркивается, что,существоватьНа инженерном уровне это соглашение должно быть унифицировано в базовой структуре.。Например, вы можете пройтиAOPТехнология будет актуальна для нескольких арендаторовиз Вырежьте логику для унифицированной обработки
Презентационный уровень архитектуры Клиент SaaS может быть браузером или локальным клиентом. Если это браузер, он включает в себя технологию веб-интерфейса, интерактивную технологию и т. д., например: технологию HTML5, технологию CSS3, технологию Ajax и т. д. Если это программный клиент, он включает в себя технологию удаленного рабочего стола, технологию взаимодействия программного обеспечения и т. д. В разных рабочих средах применяются разные прикладные технологии:
SaaSАрхитектураизУровень планирования отвечает за идентификацию каждого запроса пользователя и выполнение аутентификации AAA для каждого запроса, а затем выполняет разумное планирование на основе загрузки внутреннего сервера бизнес-обработки и его бизнес-характеристик.。через этоиз АрхитектураSaaSПлатформа может масштабироваться горизонтально.。такжесуществоватьхранилище、Кэширование и другие аспекты Понятновстретиться с платформойиз Потребности в горизонтальном расширении,Этот уровень также должен быть хорошо масштабируемым.
Поскольку клиент представляет собой разные позиции, уровни различных возможностей качества, различные бизнес -фокусировки и разные рабочие среды, функции различны, а пользовательский опыт отличается, поэтому бизнес -логика сервиса Backend также отличается.
Поскольку этот уровень предполагает клиентский доступ, для него требуется промежуточное программное обеспечение шлюза API. Поскольку он относительно легкий (поскольку также имеется общий уровень обработки бизнес-логики), в каждом из них используется промежуточное программное обеспечение микросервисов (например, Spring Cloud). Docker, чтобы быстро и гибко начать расширение. На передней панели имеется промежуточное программное обеспечение шлюза API, которое может разделять трафик, ограничивать трафик и маршрутизировать трафик. Таким образом, то, как впоследствии расширить емкость микросервисного контейнера, будет прозрачно для внешнего интерфейса.
Промежуточное программное обеспечение шлюза API относится к этому уровню, но запросы от клиентов сначала проходят через него, а затем направляются в микросервисы бизнес-логики.
Однако всегда существует некоторая бизнес-логика, которая должна обрабатываться этими четырьмя терминальными приложениями, поэтому существует также уровень, называемый уровнем обработки общедоступной бизнес-логики. Эти общедоступные уровни обработки бизнес-логики также делятся на сервисы в соответствии с функциональными обязанностями, размещаются в контейнерах Docker и управляются кластерами Swarm или Kubernetes.
SaaSАрхитектураиз ПромышленностьУровень обслуживания отвечает за получение запросов, пересылаемых уровнем планирования, и выполнение реальной бизнес-логики.。一般Промышленность务逻辑再怎么复杂也足以Перепечаткасуществоватьна сервере。因此Промышленность务层实际是由一排对等из Состав сервераиз,Каждый сервер выполняет одну и ту же бизнес-логику.
SaaSАрхитектураизУровень данных обрабатывает и хранит бизнес-данные, которые являются реляционными и имеют высокие требования к транзакциям через кластер базы данных.,Такие данные часто трудно решить с помощью NoSQL, поэтому в настоящее время для их решения приходится полагаться на традиционную технологию кластеризации баз данных.,Основная цель — сформулировать план разделения данных на основе бизнес-характеристик. В то же время распределенные базы данных используются для хранения огромных объемов данных, которые не являются реляционными.
Для статистики отчетов, исторических запросов, комплексных запросов и сравнительного анализа бизнес-показателей мы должны поместить эти задачи в пакет больших данных для их обработки и отделить их от действительно быстрой системы бизнес-обработки.
Необходимо разделить не только вычислительные ресурсы, но и ресурсы хранения. Потому что для больших данных емкость хранилища должна быть большой (но производительность доступа к хранилищу не обязательно должна быть высокой), память должна быть большой (для расчета необходимо извлечь большой объем данных), а производительность процессора должна быть высокой (требуются интенсивные расчеты). Поэтому для таких функций, как статистика, запросы и анализ, облачные серверы и облачное хранилище должны быть отделены от бизнес-обработки приложений.
После разделения данные должны быть взяты из системы обработки бизнеса приложений.
Таким образом, для уровня извлечения данных: у нас есть ряд инструментов 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, безопасность продукта будет в первую очередь. Такие как изоляция данных, шифрование конфиденциальных данных, контроль доступа к данным, конфиденциальность личной информации и другие вопросы. 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