- PVSM.RU - https://www.pvsm.ru -
Идею облачных сервисов применительно к бизнес-приложениям можно сформулировать так: перенос сервера приложений из локальной сети организации в Интернет. Пользователи продолжают использовать привычный софт, запуская нативный или веб-клиент на своем компьютере, но для работы теперь им достаточно иметь только подключение к Интернету, и не нужно входить в локальную сеть организации (физически или через VPN). А в случае варианта SaaS [1] провайдер облачных услуг, на чьих вычислительных мощностях развернут сервер приложений, также берет на себя и всю работу по администрированию и обновлениям приложений, избавляя конечного пользователя от этих забот.
Картинка для привлечения внимания: автор статьи с помощью подручных средств (облака, флаг, самолет, парашют) иллюстрирует тезис «1С в облаках».
Программы 1С поддерживают работу по протоколу http/https, так что проблем с переносом сервера приложений 1С в Интернет нет. Простейший вариант 1С в «облаке» готов.
Но принципиально такой облачный вариант от обычного отличается, по большому счету, только локацией сервера приложений. Для обслуживания новой организации нужна как минимум новая информационная база 1С, а то и физическая или виртуальная машина с экземпляром приложения 1С. Соответственно, затраты на администрирование приложений возрастают линейно с ростом количества организаций.
Для сокращения затрат на администрирование приложений разные организации должны работать с одним и тем же экземпляром приложения. И приложение должно быть написано так, чтобы допускать работу разных организаций в одном экземпляре приложения. При этом на уровне бизнес-логики работа разных организаций в одном экземпляре приложения должна быть идентична работе разных организаций в разных экземплярах приложения, своем для каждой организации.
Такой подход к проектированию архитектуры приложений называется английским термином multitenancy [2], для которого нет точного русского перевода; ближайший по смыслу – мультиарендность [3]. Основную идею multitenancy можно описать примерно так. Обычное приложение – это коттедж, рассчитанный на проживание одной семьи, которая пользуется его инфраструктурой (стены, крыша, водоснабжение, отопление и т.п.). А multitenancy-приложение – это многоквартирный дом. В нем каждая семья пользуется таким же составом инфраструктуры, но сама инфраструктура реализована для всего дома целиком.
В простейшем понимании цель multitenancy – снизить расходы на поддержание приложения за счет «обобществления» расходов на инфраструктуру. Это такое же движение, как снижение стоимости приложения за счет применения тиражного решения (возможно, с настройкой и доработкой), а не написание «под заказ». Только в одном случае обобществляется разработка, а в другом – эксплуатация.
У multitenancy есть много аспектов. Один из них – разделение данных в приложении. Физически данные всех организаций хранятся в одной базе данных, но каждая организация видит только свои оперативные данные (проводки, списки сотрудников и т.п.), а часть данных (например, различная нормативно-справочная информация) может быть доступна всем организациям сразу. В приложениях 1С это реализуется через механизм разделения данных [4], предоставляемый платформой 1С:Предприятие.
Некоторое время назад перед командой разработчиков 1С встала задача – сделать облачный сервис для сдачи в аренду прикладных решений 1С по модели SaaS. Более того – сделать этот сервис тиражируемым решением, этаким «облаком из коробки», с помощью которого любой купивший решение сможет на своих мощностях развернуть инфраструктуру для сдачи приложений 1С (или своих написанных на 1С:Предприятии приложений) в аренду.
Что представляет собой идеальный, с точки зрения конечного пользователя, облачный сервис? Супермаркет, где на полках лежат программные продукты – бухгалтерия, отчетность, зарплата и кадры,…. Пользователь наполняет свою тележку и идет на кассу, где платит согласно тарифу (отличие от супермаркета в том, что пользователь не покупает программные продукты, а берет их в аренду на определенный срок). Пользователь определяет, кто из его сотрудников будет иметь доступ к бухгалтерии, кто – к зарплате и кадрам и т.д.
Что представляет собой идеальный облачный сервис для провайдера облачных услуг? Тот же супермаркет, но со стороны его владельца. Надо выставлять на полки существующие товары (программные продукты), добавлять новые, отслеживать своевременность оплаты. Также сервис должен уметь делать еще ряд вещей: горизонтально масштабироваться, предоставлять пользователям демо-доступ к предлагаемым к аренде приложениям (тест-драйв), централизованно администрировать пользователей.
Можно, конечно, реализовать всю необходимую функциональность непосредственно в прикладных решениях. Но очевидно, что часть общей функциональности будет дублироваться от решения к решению, и оптимальнее оформить общую функциональность в отдельном продукте, который представляет собой единую точку входа для пользователей прикладных решений в облаке, а также содержит инструменты администрирования.
Так была разработана технология 1cFresh [5] (полное официальное название «1С:Технология публикации решений 1cFresh»). 1cFresh продается как отдельный программный продукт и используется партнерами и клиентами 1С в своих SaaS сервисах и частных облаках (private cloud [6]). Сама фирма 1С использует продукт 1cFresh в своем облачном сервисе сдачи в аренду приложений (SaaS) 1cFresh.com [7] и сервисе 1С:БухОбслуживание [8]. Департамент Информационных Технологий Москвы использует продукт 1cFresh, развернутый на собственных вычислительных мощностях, для ведения бухгалтерского и зарплатного учета в учреждениях, финансируемых из бюджета города Москвы: https://balance.mos.ru/ [9].
Было решено разделить функциональность сервиса между следующими крупноблочными компонентами (реализованными на технологиях 1С:Предприятие и Java):
Упрощенная схема сервиса 1cFresh (представлены не все компоненты сервиса)
Подробнее о компонентах.
Сайт, обеспечивающий интерфейс для взаимодействия пользователей с сервисом. Реализован на Java. Представляет собой, помимо прочего, «витрину супермаркета» — здесь пользователь может выбрать приложения для аренды, попробовать демо-версии этих приложений. Сайт также служит для регистрации в сервисе, заведения пользователей приложений, просмотра новостей и справочной информации по сервису и т.д. Посмотреть, как выглядит сайт, можно на нашем сервисе 1cFresh.com [7] — мы используем стандартную версию сайта из поставки сервиса.
В составе сервиса может быть любое количество кластеров серверов 1С с установленными прикладными решениями. Все эти кластеры регистрируются в менеджере сервиса. Сервера 1С могут быть развернуты как на Windows, так и на Linux. Так, в нашем сервисе 1cFresh.com в качестве рабочих серверов 1С используются сервера с ОС Windows (в качестве СУБД для прикладных решений используется MS SQL) и с Linux CentOS (СУБД — PostgreSQL).
Через пользовательский интерфейс менеджера сервиса провайдеры администрируют облачный сервис – добавляют рабочие сервера 1С и приложения, обновляют версии приложений, управляют пользователями и т.д. Часть операций (например, обновление версий прикладных решений) выполняется отдельным компонентом – агентом сервиса. Взаимодействие с агентом сервиса идет через веб-сервисы.
Приложение, созданное на платформе 1С:Предприятие. Выполняет административные действия с информационными базами сервиса — обновляет версии конфигураций, создает резервные копии по расписанию, собирает статистику о работе сервиса, и т. д.
Написан на Java. Отвечает за горизонтальное масштабирование сервиса. Перенаправляет пользователей сервиса на предназначенные им сервера с прикладными решениями.
Форум, где пользователи сервиса общаться друг с другом и с представителями провайдера сервиса по вопросам функционирования сервиса и размещенных в нем прикладных решений. Написан на Java.
Периодически некоторые услуги сервиса или даже весь сервис целиком может быть недоступен для конечных пользователей. Например, прикладное решение переходит на новую версию (и пока переход не закончен, пользователей туда допускать не надо), или весь сервис целиком может быть кратковременно отключен для профилактических работ. Менеджер доступности – это приложение (созданное на платформе 1С:Предприятие), выводящее пользователям сайта и форума сообщение о недоступности ресурсов сервиса, даже в том случае, если все другие компоненты сервиса (включая центральный компонент – менеджер сервиса) не функционируют.
Собственно информационные базы, в которых происходит работа прикладных решений. Добавление в сервис новых инфобаз выполняется в составе единиц масштабирования. Единица масштабирования развертывается как единый модуль и содержит:
При проблемах в работе единицы масштабирования будут затронуты лишь те клиенты, кто непосредственно работал с инфобазами, расположенными на ней.
Прикладные решения, созданные на платформе 1С:Предприятие, должны соответствовать определенному набору требований [14], чтобы функционировать в облаке (в 1С используется термин «работа в режиме сервиса»). Требования к приложениям, работающим в режиме сервиса, подробно описаны в документации продукта 1cFresh.
Помимо использования механизма разделения данных, приложение должно реализовывать набор функций для поддержки удаленного администрирования, выгрузки/загрузки данных, создание резервных копий данных и т.д. Приложение должно одинаково функционировать в режиме тонкого клиента и веб-клиента, избегать использования ОС-зависимых механизмов (т.к. сервер в облаке может быть как под управлением Windows, так и Linux), избегать длительных серверных вызовов и т.п.
На сегодня типовые решения от 1С, совместимые с 1cFresh:
Для некоторых из этих решений есть мобильные приложения-клиенты, созданные с помощью мобильной платформы [15] 1С:Предприятия. Например, при работе с решением «Управление небольшой фирмой» некоторым пользователям для работы хватает функциональности мобильного клиента, и сервисная часть «Управления небольшой фирмой» используется ими, по большому счету, как централизованная база для их данных.
Список приложений, работающих в режиме сервиса, будет пополняться – мы будем переводить на работу в облаке и другие свои типовые решения. Есть также ряд решений на платформе 1С:Предприятие от партнеров, которые они сдают в аренду на своих экземплярах сервиса (например, ЖКХ 365 [16]).
В облаке тысячи пользователей из сотен организаций могут работать с одним и тем же экземпляром приложения. При этом их нужды в функциональности приложения могут отличаться. Соответственно, нам надо уметь кастомизировать приложения так, чтобы кастомная функциональность была доступна только определенным группам пользователей.
В технологии 1cFresh есть два механизма для кастомизации приложений:
Мы считаем облачное направление развития очень перспективным, и планируем вкладывать в него все больше ресурсов.
Хочется отметить, что облачный сервис 1cFresh соответствует определению облачного сервиса [21] от консалтинговой компании IDC [22]:
В вольном переводе на русский:
По определению Gartner [24] технологию 1cFresh можно отнести к Application Platform as a Service (aPaaS [25]): «Application Platform as a Service (aPaaS) is a form of PaaS that provides a platform to support app development, deployment and execution in the cloud.» — « Application Platform as a Service (aPaaS) – это разновидность PaaS, которая предоставляет платформу для разработки, развертывания и исполнения приложений в облаке» (взято отсюда [26]).
P.S. Недавно вышла книга «Облачные технологии «1С:Предприятия» [27]», рассказывающая о технологии 1cFresh. Это первая (но, надеюсь, не последняя) книга, целиком посвященная 1cFresh. Доступна в бумажном и электронном виде, а также для чтения на мобильных устройствах.
Автор: 1С
Источник [28]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/oblachny-e-servisy/198765
Ссылки в тексте:
[1] SaaS: https://ru.wikipedia.org/wiki/SaaS
[2] multitenancy: https://en.wikipedia.org/wiki/Multitenancy
[3] мультиарендность: http://ru.wikipedia.org/wiki/%D0%9C%D1%83%D0%BB%D1%8C%D1%82%D0%B8%D0%B0%D1%80%D0%B5%D0%BD%D0%B4%D0%BD%D0%BE%D1%81%D1%82%D1%8C
[4] механизм разделения данных: http://v8.1c.ru/overview/Term_000000788.htm
[5] 1cFresh: http://v8.1c.ru/fresh/
[6] private cloud: http://searchcloudcomputing.techtarget.com/definition/private-cloud
[7] 1cFresh.com: https://1cfresh.com/
[8] 1С:БухОбслуживание: https://1cbo.ru/
[9] https://balance.mos.ru/: https://balance.mos.ru/
[10] OpenID: https://ru.wikipedia.org/wiki/OpenID
[11] Single Sign-On: https://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D1%85%D0%BD%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F_%D0%B5%D0%B4%D0%B8%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%85%D0%BE%D0%B4%D0%B0
[12] ИТС: http://its.1c.ru/
[13] gos.1cfresh.com: https://gos.1cfresh.com/
[14] набору требований: http://v8.1c.ru/fresh/software.htm
[15] мобильной платформы: https://habrahabr.ru/company/1c/blog/283198/
[16] ЖКХ 365: https://www.gkh365.ru/
[17] Внешние отчеты: http://v8.1c.ru/overview/Term_000000600.htm
[18] внешние обработки: http://v8.1c.ru/overview/Term_000000601.htm
[19] расширений: http://v8.1c.ru/overview/Term_000000883.htm
[20] работаем: https://wonderland.v8.1c.ru/search/index.php?tags=%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D1%8F
[21] определению облачного сервиса: http://documents.mx/documents/idc-worldwide-it-cloud-services-taxonomy-2012.html
[22] IDC: http://www.idc.com
[23] насыщенное интернет-приложение: https://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D1%81%D1%8B%D1%89%D0%B5%D0%BD%D0%BD%D0%BE%D0%B5_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BD%D0%B5%D1%82-%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B5
[24] Gartner: http://www.gartner.com
[25] aPaaS: http://www.gartner.com/it-glossary/application-platform-as-a-service-apaas/
[26] отсюда: https://www.ibm.com/cloud-computing/files/GARTNER_COMP_magic_quadrant_for_enterpris_271188_Bluemix.pdf
[27] Облачные технологии «1С:Предприятия»: http://buh.ru/books/detail.php?ID=50298
[28] Источник: https://habrahabr.ru/post/312456/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best
Нажмите здесь для печати.