1С в хмарах

Ідею хмарних сервісів стосовно до бізнес-додатків можна сформулювати так: перенесення сервера додатків з локальної мережі в Інтернет. Користувачі продовжують використовувати звичний софт, запускаючи нативний або веб-клієнт на своєму комп'ютері, але для роботи тепер їм достатньо лише мати підключення до Інтернету, і не потрібно входити в локальну мережу організації (фізично або через VPN). А в разі варіанта SaaS провайдер хмарних послуг, на чиїх обчислювальних потужностях розгорнуто сервер додатків, також бере на себе всю роботу з адміністрування та оновлення додатків, позбавляючи користувача від цих турбот.

Картинка для привернення уваги: автор статті за допомогою підручних засобів (хмари, прапор, літак, парашут) ілюструє тезу «1С в хмарах».



Програми 1С підтримують роботу по протоколу http/https, так що проблем з перенесенням сервера прикладних програм 1С в Інтернет немає. Найпростіший варіант 1С в «хмарі» готовий.



Але принципово такий хмарний варіант від звичайного відрізняється, по великому рахунку, тільки локацією сервера додатків. Для обслуговування нової організації потрібна як мінімум нова інформаційна база 1С, а то й фізична або віртуальна машина з примірником програми 1С. Відповідно, витрати на адміністрування додатків зростають лінійно з ростом кількості організацій.

Multitenancy і поділ даних
Для скорочення витрат на адміністрування додатків різні організації повинні працювати з одним і тим же примірником програми. І додаток має бути написане так, щоб допускати роботу різних організацій в одному примірнику програми. При цьому на рівні бізнес-логіки робота різних організацій в одному примірнику додатка повинна бути ідентична роботі різних організацій у різних примірниках програми, своє для кожної організації.

Такий підхід до проектування архітектури додатків називається англійським терміном multitenancy, для якого немає точного російського перекладу; найближчий за змістом – мультиарендность. Основну ідею multitenancy можна описати приблизно так. Звичайна програма – це котедж, розрахований на проживання однієї сім'ї, яка користується його інфраструктурою (стіни, дах, водопостачання, опалення тощо). А multitenancy-додаток – це багатоквартирний будинок. У ньому кожна сім'я користується таким же складом інфраструктури, але сама інфраструктура реалізована для всього будинку.
У найпростішому розумінні мета multitenancy – знизити витрати на підтримку програми за рахунок «усуспільнення» витрат на інфраструктуру. Це таке ж рух, як зниження вартості програми за рахунок застосування тиражного рішення (можливо, з налаштуванням та доопрацюванням), а не написання «під замовлення». Тільки в одному випадку обобществляется розробка, а в іншому – експлуатація.

У multitenancy є багато аспектів. Один з них – поділ даних у додатку. Фізично дані всіх організацій зберігаються в одній базі даних, але кожна організація бачить тільки свої оперативні дані (проводки, списки співробітників тощо), а частину даних (наприклад, різна нормативно-довідкова інформація) може бути доступна всім організаціям відразу. У програмах 1С це реалізується через механізм поділу даних, наданий платформою 1С: Підприємство.

Хмарний сервіс
Деякий час тому перед командою розробників 1С постало завдання – зробити хмарний сервіс для здачі в оренду прикладних рішень 1С за моделлю SaaS. Більше того – зробити цей сервіс тиражованих рішенням, таким собі «хмарою з коробки», за допомогою якого будь купив рішення зможе на своїх потужностях розгорнути інфраструктуру для складання програм 1С (або своїх написаних на 1С: Підприємстві додатків) в оренду.

Що являє собою ідеальний, з точки зору кінцевого користувача, хмарний сервіс? Супермаркет, де на полицях лежать програмні продукти – бухгалтерія, звітність, зарплата і кадри,… Користувач наповнює свій візок і йде на касу, де платить згідно з тарифом (відмінність від супермаркету в тому, що користувач не купує програмні продукти, а бере їх в оренду на певний термін). Користувач визначає, хто з його співробітників буде мати доступ до бухгалтерії, хто – до зарплати і кадрів і т. д.

Що являє собою ідеальний хмарний сервіс для провайдера хмарних послуг? Той же супермаркет, але з боку його власника. Треба виставляти на полиці існуючі товари (програмні продукти), додавати нові, відстежувати своєчасність оплати. Також сервіс повинен вміти робити ще ряд речей: горизонтально масштабуватися, надавати користувачам демо-доступ до пропонованих до оренди з додатками (тест-драйв), централізовано адмініструвати користувачів.

Можна, звичайно, реалізувати всю необхідну функціональність безпосередньо в прикладних рішеннях. Але очевидно, що частина загальної функціональності буде дублюватися від рішення до виконання, і оптимальніше оформити загальну функціональність в окремому продукті, який являє собою єдину точку входу для користувачів прикладних рішень в хмарі, а також містить інструменти адміністрування.
Так була розроблена технологія 1cFresh (повна офіційна назва «1С: Технологія публікації рішень 1cFresh»). 1cFresh продається як окремий програмний продукт і використовується партнерами і клієнтами 1С в своїх SaaS сервісах і приватних хмарах (private cloud). Сама фірма 1С використовує продукт 1cFresh у своєму хмарному сервісі здачі в оренду додатків (SaaS) 1cFresh.com сервісі 1С: БухОбслуживание. Департамент Інформаційних Технологій Москви використовує продукт 1cFresh, розгорнутий на власних обчислювальних потужностях, для ведення бухгалтерського і зарплатного обліку в бюджетних організаціях Москви і області: https://balance.mos.ru/.

Було вирішено розділити функціональність сервісу між наступними великоблочними компонентами (реалізованими на технологіях 1С: Підприємство і Java):
  • Сайт сервісу – єдина точка входу для користувачів
  • Менеджер сервісу – інструмент для адміністрування та координування роботи всіх компонентів сервісу
  • Шлюз додатків – компонент, що відповідає за горизонтальне масштабування сервісу
  • Агент сервісу – сюди винесені всі утилітарні функції по роботі з прикладними рішеннями – оновлення версій прикладних рішень, бекапи і т. д.
  • Форум сервісу – форум для спілкування користувачів сервісу один з одним і з представниками провайдера
  • Менеджер доступності – своєрідне табло «Сервіс тимчасово не працює», яке показує користувачам інформацію про недоступність сервісу або його частини навіть у тому випадку, якщо не працюють центральні компоненти сервісу.

Спрощена схема сервісу 1cFresh (подані не всі компоненти сервісу)

Детальніше про компонентах.

Сайт сервісу

Сайт, що забезпечує інтерфейс для взаємодії користувачів з сервісом. Реалізований на Java. Являє собою, крім іншого, «вітрину супермаркету» — тут користувач може вибрати додатка для оренди, спробувати демо-версії цих програм. Сайт також служить для реєстрації в сервісі, заклади користувачів додатків, перегляду новин і довідкової інформації по сервісу і т. д. Подивитися, як виглядає сайт, можна на нашому сервісі 1cFresh.com — ми використовуємо стандартну версію сайту з постачання сервісу.

У складі сервісу може бути будь-яка кількість кластерів серверів 1С з встановленими прикладними рішеннями. Всі ці кластери реєструються в менеджері сервісу. Сервера 1С можуть бути розгорнуті як на Windows, так і Linux. Так, в нашому сервісі 1cFresh.com в якості робочих серверів 1С використовуються серверу з ОС Windows (в якості СУБД для прикладних рішень використовується MS SQL) і з Linux CentOS (СУБД — PostgreSQL).

Через користувальницький інтерфейс менеджера сервісу провайдери адмініструють хмарний сервіс – додають робочі сервера 1С і додатки, оновлюють версії додатків, керують користувачами і т. д. Частина операцій (наприклад, оновлення версій прикладних рішень) виконується окремим компонентом – агентом сервісу. Взаємодія з агентом сервісу йде через веб-сервіси.

Агент сервісу

Додаток, створений на платформі 1С: Підприємство. Виконує адміністративні дії з інформаційними базами сервісу — оновлює версії конфігурацій, створює резервні копії за розкладом, збирає статистику про роботі сервісу, і т. д.

Шлюз додатків

Написаний на Java. Відповідає за горизонтальне масштабування сервісу. Перенаправляє користувачів сервісу на призначені їм сервера з прикладними рішеннями.

Форум сервісу

Форум, де користувачі сервісу спілкуватися один з одним і з представниками провайдера сервісу з питань функціонування сервісу та розміщених у ньому прикладних рішень. Написаний на Java.

Менеджер доступності

Періодично деякі послуги сервісу чи навіть весь сервіс цілком може бути недоступний для кінцевих користувачів. Наприклад, прикладне рішення переходить на нову версію (і поки перехід не закінчений, користувачів туди допускати не треба), або весь сервіс цілком може бути короткочасно відключений для профілактичних робіт. Менеджер доступності – це додаток (створене на платформі 1С: Підприємство), виводить користувачам сайту і форуму повідомлення про недоступність ресурсів сервісу, навіть у тому випадку, якщо всі інші компоненти сервісу (включаючи центральний компонент – менеджер сервісу) не функціонують.

Інформаційні бази 1С

Власне інформаційні бази, в яких відбувається робота прикладних рішень. Додавання в сервіс нових инфобаз виконується у складі одиниць масштабування. Одиниця масштабування розгортається як єдиний модуль і містить:
  • кластер серверів «1С: Підприємства»
  • сервер СУБД, на якому зберігаються дані інформаційних баз.
  • один або два (для забезпечення відмовостійкості) веб-сервера, обробні HTTP-звернення до інформаційних баз одиниці масштабування
При проблемах у роботі одиниці масштабування будуть порушені лише ті клієнти, хто безпосередньо працював з инфобазами, розташованими на ній.

Ще про сервіс

  • В сервісі підтримується аутентифікація OpenID. Завдяки цьому всередині сервісу можна налаштувати Single Sign-On і користувачі зможуть перемикатися між прикладними рішеннями (бухгалтерією, зарплатою і т. д.) форумом і входити в сервіс ІТС ( інформаційно-технологічного
    супроводження користувачів 1С: Підприємства) використовуючи єдиний логін.
  • Користувачі можуть переносити дані локальних програм 1С (наприклад, бухгалтерії) в хмарну версію програми і назад.
  • Користувач може створити автономне робоче місце, яке являє собою локальну файлову інформаційну базу, розташовану на комп'ютері користувача. Для роботи з цією базою не потрібна наявність Інтернету і підключення до сервісу. У той же час механізми сервісу забезпечують обмін даними між автономним робочим місцем і додатком, опублікованими в сервісі.
  • Можна налаштувати автоматичний обмін даними між опублікованими в сервісі прикладними рішеннями (наприклад, між бухгалтерією та зарплатою), і таким чином мінімізувати обсяг інформації, що вводиться, вводимо дані в одному додатку, а користуємося ними у всіх.
  • Система резервного копіювання додатків. Резервна копія додатка може бути створена в будь-який момент на вимогу користувача. Також автоматично за розкладом створюються щоденна, щомісячна і щорічна копії додатку.
  • технології 1сFresh є механізм поставляються даних, з допомогою якого менеджер сервісу зберігає і надає додаткам за запитом єдину нормативно-довідкову інформацію, яка може централізовано оновлюватися.
  • В сервісі можуть одночасно працювати кілька версій будь-якого прикладного рішення. Прикладні рішення, розміщені в сервісі, можуть використовувати різні версії платформи 1С: Підприємство.
  • Можна оновлювати версію прикладного рішення, з яким працює інформаційна база.
  • Для полегшення пошуку та аналізу причин помилок в технології 1сFresh є різні механізми:
    • Збір відомостей про помилки при операціях з інформаційними базами.
    • Запис цих даних в інформаційну базу менеджера сервісу. Зібрані відомості про помилки інформаційних баз зберігаються в інформаційній базі менеджера сервісу в журналі помилок.

    • Показ відомостей про ці помилки. Адміністратор сервісу може переглянути весь журнал помилок, так і помилки, що відносяться до конкретної інформаційної бази або на конкретного додатка.
  • технології 1сFresh розроблено механізм вітрин, що дозволяє розгортати кілька хмарних сервісів в рамках єдиної технічної майданчики сервісу. Вітрина – це окремий інтернет-ресурс для надання сервісу користувачам. Вітрина виглядає для користувача як окремий незалежний сайт, на якому йому доступні програми для бізнесу. Наприклад, на різних сайтах, розташованих на окремих доменах, але на одній технічній площадці постачальника сервісу, можуть бути розгорнуті вітрини додатків для малого бізнесу, вітрини, на яких зібрані програми для держсектора, вітрини для медустанов і т. п. Це дозволяє просувати і розвивати ресурс не як частина загального сервісу, а як абсолютно незалежний сервіс. Так, хмарні сервіси 1cfresh.com (здача в оренду програм 1С «для всіх») і gos.1cfresh.com («1С: Підприємство 8 через Інтернет для державних установ») – це дві вітрини одного і того ж екземпляра сервісу.
  • В сервісі є Центр ідей – механізм, що дозволяє реєструвати та обробляти ідеї, побажання та пропозиції користувачів по роботі сервісу. Центр ідей реалізований як функція прикладного рішення, де користувач може переглядати список ідей і коментарів до них, голосувати за ідеї інших користувачів чи залишати до них коментарі, а також додавати свої власні ідеї і побажання. Щоб використовувати функціональність Центру ідей, в прикладному рішенні повинна бути включена відповідна підсистема.
  • " Користувачів, що підключилися до сервісу, створеному за технологією 1сFresh, на комерційних умовах, платять певну абонентську плату постачальника сервісу за його послуги. У сервісі існують гнучкі можливості налаштування тарифікації користувачів.
  • Є багаті можливості по перегляду статистики використання сервісу, що дозволяють оцінити інтенсивність використання сервісу, отримати середньостатистичні показники стабільної (нормальної) роботи сервісу для подальшої оцінки відхилень від норми, визначити періоди максимального і мінімального завантаження ресурсів сервісу для їх врахування при плануванні регламентних операцій по обслуговуванню і т. п.
  • Є можливість збору бізнес-статистики про події, що виникають при використанні прикладних рішень. Така статистика може бути корисна розробникам прикладних рішень для кращого розуміння, як їх рішення використовується кінцевими користувачами, аналізу вузьких місць і т. д.


Програми для хмарного сервісу
Прикладні рішення, створені на платформі 1С: Підприємство, повинні відповідати певному набору вимог, щоб функціонувати в хмарі (в 1С використовується термін «робота в режимі сервісу»). Вимоги до додатків, що працюють в режимі сервісу, докладно описані в документації продукту 1cFresh.

Крім використання механізму розділення даних, додаток повинен реалізовувати набір функцій для підтримки віддаленого адміністрування, вивантаження/завантаження даних, створення резервних копій даних і т. д. Додаток має однаково функціонувати в режимі тонкого клієнта і веб-клієнта, уникати використання ОС-залежних механізмів (т. к. сервер в хмарі може бути як під управлінням Windows, так і Linux), уникати тривалих серверних викликів і т. п.

На сьогодні типові рішення від 1С, сумісні з 1cFresh:
  • 1С: Бухгалтерія 8
  • 1С: Управління невеликою фірмою 8
  • 1С: Підприємець 2015
  • 1С: Звітність підприємця
  • 1С: Зарплата і управління персоналом
  • 1С-КАМІН: Зарплата»
  • 1С: Бухгалтерія державної установи 8
  • 1С: Комплексна автоматизація 2.0
  • 1С: Управління торгівлею", редакція 11
  • 1С: Зарплата і кадри державної установи
Для деяких з цих рішень є мобільні програми-клієнти, створені за допомогою мобільної платформи 1С: Підприємства. Наприклад, при роботі з рішенням «Управління невеликою фірмою» деяким користувачам для роботи вистачає функціональності мобільного клієнта, і сервісна частина «Управління невеликою фірмою» використовується ними, за великим рахунком, як централізована база для їх даних.

Список додатків, що працюють в режимі сервісу, буде поповнюватися – ми будемо переводити на роботу в хмарі та інші свої типові рішення. Є також ряд рішень на платформі 1С: Підприємство від партнерів, які вони здають в оренду на своїх примірниках сервісу (наприклад, ЖКГ 365).

Кастомізація додатків в хмарі

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

У технології 1cFresh є два механізми для кастомізації додатків:
  • Зовнішні звіти і зовнішні обробки. Це добре знайомий механізм кастомізації рішень 1С, доопрацьований для перенесення в хмару.
  • Використання розширень. Розширення – це механізм плагінів, який дозволяє створювати додатки прикладних рішень, не змінюючи самих прикладних рішень. У розширення поки можна додавати не всі прикладні об'єкти 1С, але ми постійно работаем над функціональністю розширень.


Висновок
Ми вважаємо хмарне напрямок розвитку дуже перспективним, і плануємо вкладати в нього все більше ресурсів.

Хочеться відзначити, що хмарний сервіс 1cFresh відповідає визначення хмарного сервісу від консалтингової компанії IDC:



У вільному перекладі на російську:
  • Загальний, стандартний сервіс – побудований для мультиарендности, всередині або за межами підприємств
  • З прикладними рішеннями – рішення «під ключ», з необхідними для початку роботи ресурсами
  • Самообслуговування – резервування і управління доступом до прикладних рішень, зазвичай через Веб-портал
  • Еластичне масштабування ресурсів – динамічне, швидке і точне
  • Оплата за фактом використання – час використання вимірюється сервісом
  • Авторизований доступ по мережі — доступ через Інтернет
  • Стандартні технології для користувача інтерфейсу – браузер і/або насичене інтернет-додаток (Rich Internet Application) і лежать в їх основі технології
  • Публічний інтерфейс/API – веб-сервіси, інші загальновживані Інтернет-API
За визначенням Gartner технологію 1cFresh можна віднести до Application Platform as a Service (aPaaS): «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, яка надає платформу для розробки, розгортання і виконання програм в хмарі» (взятий отсюда).

P. S. Нещодавно вийшла книга «Хмарні технології «1С: Підприємства»», що розповідає про технології 1cFresh. Це перша (але, сподіваюся, не остання) книга, цілком присвячена 1cFresh. Доступна в паперовому та електронному вигляді, а також для читання на мобільних пристроях.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.