1. Введение
С момента рождения компьютера он сопровождался эволюцией компьютерных приложений. Краткий обзор истории, мы можем ясно видеть огромные изменения, которые произошли в приложении. В середине 1970-х годов, с взрывным ростом числа персональных ПК и появлением программистов, вычислительная мощность компьютеров значительно увеличилась, и на персональных ПК можно было запускать очень сложные приложения.
В 1980-х годах, с появлением электронной доски объявлений Bulletin Board System (аббревиатура: BBS), она может предоставлять основные онлайн-услуги для большинства пользователей ПК, такие как онлайн-чат, электронная почта, отправка сообщений и загрузка файлов. Из-за ограничения скорости передачи компьютерной сети в ту эпоху скорость отклика онлайн-сервисов была низкой, а интерактивный опыт был плохим.
В середине и конце 1990-х годов, с появлением Всемирной паутины, компьютерные вычисления начали вступать в стадию быстрого совершенствования, в сочетании с непрерывным совершенствованием сетевой инфраструктуры, также развивались компьютерные сетевые технологии, которые позволяют веб-сайтам предоставлять функциональные возможности. диверсификация и др. Приложения для онлайн-сервисов, разработанные для сложных онлайн-сервисов, Интернета (или облака) в том виде, в каком мы его видим сегодня.
Какие изменения произошли в компьютерном программном обеспечении в этот период быстрого развития компьютерных технологий? Из исторического развития видно, что само приложение не претерпело существенных изменений (программа = структура данных + алгоритм), но изменился способ предложения и спроса на ПО. Теперь потребителям приложений больше не нужно загружать и устанавливать определенные приложения на свои ПК, чтобы получить вычислительные услуги, предоставляемые программным обеспечением. Благодаря поддержке технологии облачных вычислений потребителям (предприятиям или частным лицам) достаточно использовать веб-инструменты (браузер) для доступа и входа в веб-систему поставщика программного обеспечения, а благодаря простой настройке они могут получить необходимые им службы приложений. Это своего рода сервис, который может использовать программное обеспечение через сеть, даже SaaS (программное обеспечение как услуга).
Рисунок 1-1 Экосистема SaaS в Китае, 2015 г.В этой статье мы сосредоточимся на проектировании архитектуры SaaS и сосредоточимся на четырех вопросах: ЧТО (что?), ПОЧЕМУ (почему?), ГДЕ (где?) и КАК (как?). Несколько моментов для уточнения:
Рисунок 1-2 Структура статьи- 1. Что такое ПО SaaS?
- 2. Почему вам нужно использовать программную архитектуру SaaS?
- 3. Каковы основные функции и преимущества программного обеспечения SaaS?
- 4. Где программное обеспечение SaaS подходит для внедрения?
- 5. Каковы врожденные недостатки программного обеспечения SaaS?
- 6. Каковы основные компоненты программного обеспечения SaaS?
- 7. Каковы меры предосторожности при реализации архитектуры SaaS?
2. Что такое ПО SaaS?
Рисунок 2-1 Структура состава SaaSПрежде чем вы решите внедрить дизайн архитектуры продукта SaaS, вам необходимо понять, что такое программное обеспечение SaaS. С макроэкономической точки зрения SaaS — это метод доставки программных приложений.Поставщик программного обеспечения централизованно размещает одно или несколько программных приложений и делает эти программные приложения доступными для арендаторов через Интернет. С точки зрения классификации SaaS (программное обеспечение как услуга) также является важной частью облачных вычислений. В настоящее время основные поставщики облачных услуг в Китае, такие как Alibaba Cloud, Baidu Cloud, Tencent Cloud и т. д., предоставляют пользователям облачные услуги с различными бизнес-потребностями, их можно условно разделить на следующие категории:
- 1. Инфраструктура как услуга: например, ЦП, сеть, диск и память и т. д.
- 2. Платформа как услуга: например, облачный сервер Alibaba, облачная база данных и т. д.
- 3. Программное обеспечение как услуга: Али СМС, Али почтовый ящик и т.д.
- 4. Данные как услуга: например, облачное хранилище объектов Alibaba, облачное хранилище Qiniu и т. д.
- 5. Другие программные услуги: машинное обучение, искусственный интеллект и т. д.
Любое обновление или устранение уязвимостей в приложениях SaaS реализуется и обрабатывается поставщиком программного обеспечения.Поскольку арендатор получает программные услуги через Интернет, арендатору не нужно загружать какой-либо пакет обновлений или исправлений, которые -коробочное решение Доступ к новейшему способу обслуживания программных продуктов.
Познакомившись с тем, что такое SaaS, давайте рассмотрим некоторые причины выбора SaaS в качестве архитектуры программного обеспечения для разработки продукта.
3. Почему стоит выбрать SaaS?
Мы объясним несколько причин, по которым вам следует выбрать SaaS с разных точек зрения. Благодаря анализу этих факторов предоставляется определенная ссылка на то, нужно ли вам создавать собственное программное обеспечение SaaS.
3.1. Взгляд потребителя
Способ получения программных услуг достаточно прост. SaaS, пожалуй, один из самых простых способов использования программного обеспечения на сегодняшний день. Арендаторам нужно всего лишь двигать мышью и клавиатурой, чтобы получить большую программную услугу за несколько часов или даже минут. По сравнению с традиционным способом использования программного обеспечения арендаторы экономят на ряде сложных процессов, таких как исследования и разработки, развертывание, эксплуатация и обслуживание, а время и стоимость приобретения программного обеспечения значительно сокращаются.
3.2 Бизнес-перспектива
SaaS может использовать межрегиональные и кроссплатформенные программные сервисы. В то же время поставщики программных услуг могут единообразно управлять версиями программного обеспечения, что принесет следующие преимущества (включая, но не ограничиваясь):
- 1. Сокращение времени запуска продукта: мультитерминальная адаптация, унифицированная версия, унифицированное обновление.
- 2. Снижение затрат на обслуживание: нет необходимости одновременно поддерживать несколько версий экземпляров программного обеспечения, что снижает нагрузку на эксплуатацию и техническое обслуживание.
- 3. Простота обновления: поскольку версия эффективно контролируется, одно обновление может охватывать всех арендаторов.
4. Особенности и преимущества SaaS
Мы сравниваем приложения SaaS с традиционными настольными приложениями на уровне, и развертывание продукта SaaS дает следующие преимущества.
4.1 Простой
Продукты SaaS предоставляют программные услуги арендаторам через Интернет.С развитием веб-технологий (таких как jQuery и Node.js) интерактивность веб-страниц значительно улучшилась, а взаимодействие стало более плавным и удобным для пользователя. Это почти то же самое, что и эффект взаимодействия человека с компьютером в традиционных настольных приложениях.
4.2 Экономичный
Продукты SaaS могут предоставлять арендаторам гибкие планы платежей, такие как ежедневное, ежемесячное, годовое выставление счетов, выставление счетов за каждого пользователя или за использование, что обеспечит арендаторам более экономичный финансовый бюджет для использования программного обеспечения.
4.3 Безопасность
При использовании продуктов SaaS не нужно беспокоиться о безопасности данных, это так же безопасно, как внесение денег в банк. По сравнению с программными системами, развернутыми локально, продукты SaaS обладают более высокими возможностями обеспечения безопасности, поскольку поставщики программного обеспечения имеют больше технических, человеческих и финансовых ресурсов для обеспечения безопасности программного обеспечения.
4.4 Совместимость
По сравнению с традиционным программным обеспечением программное обеспечение SaaS имеет лучшую совместимость, у него нет проблем с обслуживанием нескольких версий и проблем совместимости операционных систем, характерных для традиционного программного обеспечения. В программном обеспечении SaaS пользователи-арендаторы едва ли чувствуют, что программное обеспечение изменилось в процессе использования программного обеспечения. Когда пользователи-арендаторы входят в систему, у них уже есть последняя версия программного обеспечения.
5. Сфера применения программного обеспечения SaaS
Продукты SaaS с широким спектром адаптации, особенно с другими облачными продуктами (например, IAAS (инфраструктура как услуга) и PAAS (платформа как услуга)) с использованием этой способности особенно заметны, такие как облачные технологии облачных вычислений облаков Как будто это позволяет настроить серверы базы данных веб-сайта. Вам нужно только открыть браузер и входить в систему на Cli Cloud Console, работая на соответствующей панели управления, вы можете получить программные услуги.
Теоретически SaaS может быть любым программным обеспечением SaaS, вот несколько общих классификаций для справки:
- 1. Офисные онлайн-офисные продукты SaaS
- 2. Электронная почта и мгновенные сообщения SaaS-продукты
- 3. SaaS-продукты для социальных сетей
- 4. Сторонние API SaaS-продукты
- 5. Безопасность и контроль доступа к продуктам SaaS
- 6. SaaS-продукты с машинным обучением
- 7. SaaS-продукты с искусственным интеллектом
- 8. Географические сервисные продукты SaaS
- 9. Продукты SaaS для потоковой передачи и извлечения данных
6. Врожденные недостатки продуктов SaaS
Рисунок 6-1 Недостатки продуктов SaaSИз графика мы можем визуально увидеть, несколько недостатков, присущих продукту SaaS, далее мы будем описывать по отдельности.
6.1 Программное управление
В отличие от программного обеспечения, развернутого локально, арендаторы не могут контролировать все программные приложения, поскольку программное обеспечение SaaS размещается на веб-сервере поставщика услуг. Программное обеспечение SaaS получает меньший контроль, чем программное обеспечение, развернутое самим предприятием. крайне ограничен.
6.2. Небольшая потребительская база
Поскольку программное обеспечение SaaS предоставляет набор приложений одному или нескольким арендаторам для общего использования, этот метод совместного использования не был принят большинством потребителей. В то же время из-за влияния рыночной среды большая часть программного обеспечения еще не была SaaS.
6.3, узкое место производительности
Совместно используемые приложения неизбежно приведут к снижению производительности сервера, такие как скорость вычислений, сетевые ресурсы, ввод-вывод, чтение и запись и т. д., подвергнутся серьезным испытаниям. С точки зрения производительности «эксклюзивный режим» приложений, развернутых локально, немного лучше, чем «общий режим» программного обеспечения SaaS.
6.4, вопросы безопасности
Когда арендаторы выбирают продукт SaaS, безопасность продукта будет в первую очередь учитываться. Такие как изоляция данных, шифрование конфиденциальных данных, контроль доступа к данным, личная конфиденциальность и другие вопросы. После появления 25 мая 2018 года Общего регламента по защите данных (GDPR) все больше людей стали обращать внимание на вопросы безопасности данных. Как рассеять это беспокойство арендаторов в наибольшей степени требует от поставщиков услуг укрепления собственного авторитета, чтобы завоевать доверие арендаторов.
7. Основные компоненты продуктов SaaS
Различные типы продуктов SaaS могут иметь разные функции и виды деятельности из-за разного пользовательского видения, но любой продукт SaaS имеет следующие общие основные компоненты.
Рисунок 7-1 Основные компоненты SaaS7.1 Компоненты безопасности
В продуктах SaaS безопасность системы всегда стоит на первом месте, а обеспечение безопасности данных арендатора — ваш главный приоритет. Это то же самое, что и первый выбор банка для обеспечения сохранности средств вкладчиков. Компонент безопасности представляет собой унифицированную защиту для продуктов SaaS для обеспечения безопасности системных данных.
7.2, компонент изоляции данных
Компонент безопасности решает проблему безопасности и надежности пользовательских данных, но данные часто также должны решать проблему конфиденциальности.Данные между предприятиями должны быть невидимы друг для друга, то есть изолированы друг от друга. В продуктах SaaS вопрос о том, как идентифицировать, различать и изолировать данные каждого арендатора, является вторым вопросом, который необходимо учитывать при реализации архитектуры программного обеспечения SaaS.
7.3 Настраиваемые компоненты
Хотя наиболее распространенные функции учитываются в начале проектирования продуктов SaaS, что позволяет арендаторам использовать их «из коробки», по-прежнему существует большое количество арендаторов, которым необходимо настраивать элементы конфигурации для удовлетворения собственных бизнес-потребностей, таких как пользовательский интерфейс. макет, тема, логотип (Лого) и другая информация. Именно потому, что полностью универсальное приложение нельзя абстрагировать, в продукте SaaS вам необходимо предоставить компонент, который можно использовать для пользовательской конфигурации.
7.4 Расширяемые компоненты
По мере роста числа предприятий и арендаторов продуктов SaaS исходная конфигурация сервера больше не сможет соответствовать новым требованиям, а производительность системы будет обратно пропорциональна объему бизнеса и количеству пользователей. На этом этапе продукты SaaS должны иметь возможность горизонтального масштабирования. Например, с помощью технологии балансировки сетевой нагрузки и контейнеров несколько запущенных примеров программного обеспечения развертываются на нескольких серверах и предоставляются одни и те же программные службы, чтобы обеспечить горизонтальное расширение общей производительности услуг продуктов SaaS. Для достижения масштабируемости необходимо отделить код уровня представления SaaS от кода части бизнес-логики и развернуть их независимо друг от друга. Например, использование микросервисов VUE+ для создания распределенных приложений SaaS с отдельными интерфейсными и серверными частями и горизонтальной масштабируемостью. Для масштабируемости есть еще один способ, а именно вертикальное расширение, которое является относительно простым и грубым: за счет увеличения конфигурации одного сервера, например, за счет покупки ЦП с большей производительностью, хранения больших модулей памяти, увеличения пропускной способности и других мер, позволяющих сервер для обработки большего количества пользовательских запросов. Однако такой подход не имеет качественного изменения в улучшении характеристик продукта, а стоимость очень высока.
7.5, 0 простоев для обновления продуктов
В предыдущем программном обеспечении при обновлении или крепежных ошибках необходимо надо было оффлайн запустить программу на некоторое время, дождитесь завершения работы обновления или ремонта, а затем перезагрузите приложение. Продукты SaaS, с другой стороны, нужно гарантировать наличие услуг круглосуточно. Это требует, чтобы вы учитывали, как завершить обновление и ремонт приложения, не перезапустив оригинальное приложение.
7.6 Мультитенантные компоненты
Чтобы превратить исходный продукт в SaaS, необходимо предоставить мультитенантные компоненты.Мультитенантные компоненты являются одним из важных показателей, позволяющих определить, поддерживает ли приложение возможности службы SaaS. Продукты SaaS должны одновременно обрабатывать данные нескольких арендаторов, а также обеспечивать, чтобы данные между арендаторами не мешали друг другу, и гарантировать, что пользователи в арендаторах могут индексировать правильные данные, как и ожидалось. Мультитенантный компонент — это та проблема, которую вы должны решить. Остальные компоненты будут развивать свой бизнес вокруг этого компонента.
Суммировать
В этой статье в качестве отправной точки рассматривается история разработки программных приложений, а SaaS разрабатывается вокруг четырех вопросов: ЧТО (что?), ПОЧЕМУ (почему?), ГДЕ (в каких областях?) и КАК (как?) внедрить. В статье подробно изложены проблемы, на которые необходимо обратить внимание при проектировании программного обеспечения на базе архитектуры SaaS, а также проанализированы характеристики, преимущества и недостатки продуктов SaaS. Наконец, представлены несколько основных компонентов, которые должны иметь программные продукты, основанные на архитектуре SaaS, и их соответствующие функции. Я надеюсь, что эта сессия даст вам всестороннее представление об архитектуре программного обеспечения SaaS и предоставит ценную справочную информацию, прежде чем вы будете готовы реализовать проектирование архитектуры программного обеспечения SaaS.