Уровень зрелости SaaS 2, как я могу создать настраиваемый SaaS? (Техника и шаблоны) - PullRequest
0 голосов
/ 25 октября 2010

В соответствии с моделью зрелости SaaS SaaS является уровнем 2, если его можно настроить, но как я могу начать работать с этой концепцией? Как шаблоны и технические приемы я могу использовать для включения моего SaaS?

1 Ответ

2 голосов
/ 26 октября 2010

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

Начните с выяснения некоторых основных свойств, которые могут варьироваться от установки к установке.Несколько примеров: Какие номера портов используются вашими службами?Какие URL?Какие сертификаты / CA вы используете?Может ли клиент переименовать / перекрасить ваше программное обеспечение, и где находятся изображения его бренда или ресурсы скина?В каких ОС вы будете развертываться, и что может измениться при изменении ОС?Важным свойством может быть даже настройка того, где находится ваша конфигурация.Затем перейдите к функциям, которые могут быть уникальными для конкретных сайтов: как их включить?они должны быть настроены по-разному для разных клиентов?Выполняя это упражнение, имейте в виду, что вы добавляете в свою систему вариативные точки, что приводит к дополнительным сложностям и дополнительным точкам, которые необходимо проверить, протестировать и потенциально защитить.Тщательно продумайте, какие вариации действительно важны для ваших клиентов, и сфокусируйтесь на них.

Затем подумайте о реализации:

  • Обычно система конфигурации настолько проста, как простаятекстовые файлы, которые устанавливаются вместе с приложением, стиль key = value.Конфигурация может быть в нескольких файлах, или в одном файле с разделами (в стиле ini), или в обоих.
  • Предоставление комментариев в конфигурации является обычным делом и чрезвычайно полезно при документировании значения ключей конфигурации, или дляпозволяя клиентам задокументировать, почему они настраивают что-то определенным образом.
  • В зависимости от технологии, с которой вы создаете свои приложения, могут существовать естественные механизмы конфигурации, которые идут вместе со стеком приложений.
  • Некоторые люди, такие как XML, JSON или YAML, хотя IMO, дополнительные усилия, потраченные на работу с этим форматом, могут не стоить того, особенно если люди редактируют конфигурацию.
  • Иногда сложный файл конфигурации может быть записан вполноценный предметно-ориентированный язык.(Технически, большинство форматов файлов конфигурации являются DSL того или иного рода, но я говорю здесь о тех, кто действительно вкладывает много выразительности в формат конфигурации - условия, сопоставление с образцом, структурированные типы и т. Д.) Однако, этопоставляется с дополнительными накладными расходами как для вас, так и для клиента, который должен изучать DSL, и ни один из вас, вероятно, не хочет делать чтение / написание этих конфигураций вашей основной компетенцией, поэтому я бы советовал против этого, если у вас нет острой необходимости в этом.
  • Некоторым людям нравится писать свои конфиги на языке сценариев, на котором они пишут приложения, поскольку его загрузка проста и дает вам полную мощь языка программирования при указании конфигурации.Для клиентов может быть довольно легко выбрать, если они уже знакомы с языком сценариев, а синтаксис языка сценариев для базовых структур обычно прост.Тем не менее, мой опыт показывает, что заказчикам может быть на удивление легко облажаться, а синтаксические ошибки не особенно забавны для диагностики и исправления.
  • Зачастую служба позволяет указывать конфигурацию несколькимиспособы: файлы конфигурации, переменные окружения и аргументы командной строки, например.Они могут быть полезны для временной настройки конфигурации по умолчанию для тестирования или для возможности запуска пользователя, не являющегося системным администратором.

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

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

...