📜 ⬆️ ⬇️

1C in the clouds

The idea of ​​cloud services in relation to business applications can be formulated as follows: transfer of an application server from an organization’s local area network to the Internet. Users continue to use familiar software, launching a native or web client on their computer, but to work now they only need to have an Internet connection and do not need to log into the organization’s local network (physically or via VPN). And in the case of the SaaS option, the cloud service provider, on whose computing capacity the application server is deployed, also takes over all the administration and application update work, saving the end user from these worries.

Picture to attract attention: the author of the article with the help of improvised means (clouds, flag, plane, parachute) illustrates the thesis “1C in the clouds”.



1C programs support work using the http / https protocol, so there are no problems with transferring the 1C application server to the Internet. The simplest version of 1C in the "cloud" is ready.
')


But in principle, such a cloudy version differs from the usual one, by and large, only by the location of the application server. To service a new organization, at least a new information base 1C is needed, or even a physical or virtual machine with an instance of 1C application. Accordingly, the costs of administering applications increase linearly with the growth in the number of organizations.

Multitenancy and data sharing


To reduce the cost of administering applications, different organizations should work with the same instance of the application. And the application must be written in such a way as to allow the work of different organizations in one instance of the application. At the same time, at the level of business logic, the work of different organizations in one instance of an application should be identical to the work of different organizations in different instances of the application, its own for each organization.

This approach to the design of application architecture is called the English term multitenancy , for which there is no exact Russian translation; the closest in meaning is multi - lendness . The basic idea of ​​multitenancy can be described something like this. A typical application is a cottage designed for one family, which uses its infrastructure (walls, roof, water supply, heating, etc.). A multitenancy application is an apartment building. In it, each family uses the same composition of the infrastructure, but the infrastructure itself is implemented for the entire house as a whole.

In the simplest sense, the goal of multitenancy is to reduce the cost of maintaining the application by “socializing” infrastructure costs. This is the same movement as reducing the cost of the application due to the use of a lottery solution (possibly with adjustment and refinement), rather than writing “to order”. Only in one case the development is socialized, and in the other - exploitation.

Multitenancy has many aspects. One of them is the separation of data in the application. Physically, the data of all organizations are stored in one database, but each organization sees only its operational data (postings, lists of employees, etc.), and part of the data (for example, various reference information) can be accessible to all organizations at once. In 1C applications, this is implemented through the data sharing mechanism provided by the 1C: Enterprise platform.

Cloud service


Some time ago, the 1C development team was faced with the task of making a cloud service for leasing 1C application solutions using the SaaS model. Moreover, to make this service a replicable solution, a sort of “out-of-the-box cloud”, with the help of which anyone who bought the solution will be able to deploy the infrastructure at its facilities to deliver 1C applications (or their applications written in 1C: Enterprise).

What is the ideal, from the point of view of the end user, cloud service? Supermarket, where the shelves are software products - accounting, reporting, salary and personnel, .... The user fills his cart and goes to the cashier, where he pays according to the tariff (the difference from the supermarket is that the user does not buy software products, but rents them for a certain period). The user determines which of his employees will have access to accounting, who - to salary and personnel, etc.

What is the ideal cloud service for a cloud service provider? The same supermarket, but from its owner. It is necessary to put on the shelves existing products (software products), add new ones, track the timeliness of payment. Also, the service should be able to do a number of things: scale horizontally, provide users with demo access to applications offered for rent (test drive), and centrally administer users.

You can, of course, implement all the necessary functionality directly in the application solutions. But it is obvious that part of the overall functionality will be duplicated from solution to solution, and it is more optimal to arrange the general functionality in a separate product, which is a single entry point for users of application solutions in the cloud, and also contains administration tools.

Thus, 1cFresh technology was developed (the full official name “1C: Technology of publishing 1cFresh solutions”). 1cFresh is sold as a separate software product and is used by 1C partners and customers in their SaaS services and private clouds. The 1C company itself uses the 1cFresh product in its application cloud rental service (SaaS) 1cFresh.com and 1C: Service . The Department of Information Technologies of Moscow uses 1cFresh product, deployed on its own computing facilities, for conducting accounting and payroll accounting in institutions financed from the budget of the city of Moscow: https://balance.mos.ru/ .

It was decided to divide the functionality of the service between the following large-block components (implemented on 1C: Enterprise and Java technologies):



Simplified diagram of 1cFresh service (not all service components are presented)

Read more about the components.

Service site


A site that provides an interface for user interaction with the service. Implemented in Java. It represents, among other things, the “supermarket showcase” - here the user can select applications for rent, try demo versions of these applications. The site also serves to register with the service, place users of applications, view news and help information on the service, etc. You can see how the site looks on our 1cFresh.com service - we use the standard version of the site from the service delivery.

As part of the service can be any number of clusters of 1C servers with installed application solutions. All these clusters are registered in the service manager. 1C servers can be deployed on both Windows and Linux. So, in our 1cFresh.com service, servers with Windows OS are used as working servers of 1C (MS SQL is used as a DBMS for application solutions) and with Linux CentOS (DBMS - PostgreSQL).

Through the user interface of the service manager, the providers administer the cloud service — they add working 1C servers and applications, update application versions, manage users, etc. A part of operations (for example, updating versions of applied solutions) is performed by a separate component — the service agent. Interaction with the service agent goes through web services.

Service agent


Application created on the 1C: Enterprise platform. Performs administrative actions with service information bases — updates configuration versions, creates backup copies on a schedule, collects statistics on the operation of a service, etc.

Application gateway


Written in Java. Responsible for horizontal scaling of the service. Redirects service users to their dedicated servers with application solutions.

Service Forum


A forum where users of the service communicate with each other and with representatives of the service provider regarding the functioning of the service and the application solutions placed in it. Written in Java.

Availability Manager


Periodically, some services of the service or even the entire service may be unavailable to end users. For example, an application solution moves to a new version (and until the transition is completed, there is no need to allow users there), or the entire service may be briefly disabled for maintenance. The accessibility manager is an application (created on the 1C: Enterprise platform) that displays a message to the site and forum users about the unavailability of service resources, even if all other components of the service (including the central component - the service manager) do not function.

Information base 1C


Actually information databases in which the work of applied solutions. The addition of new infobases to the service is performed as part of scaling units. The scaling unit is deployed as a single module and contains:


In case of problems in the operation of the scaling unit, only those customers who directly worked with the information databases located on it will be affected.

More about the service



Cloud Service Applications


Application solutions created on the 1C: Enterprise platform must meet a specific set of requirements in order to operate in the cloud (in 1C the term “work in the service mode” is used). Requirements for applications running in service mode are described in detail in the 1cFresh product documentation.

In addition to using the data sharing mechanism, the application must implement a set of functions to support remote administration, upload / download data, create backup copies of data, etc. The application should function equally in thin client and web client mode, avoid using OS-dependent mechanisms (since the server in the cloud can be both running Windows and Linux), avoid lengthy server calls, etc.

Today, typical solutions from 1C, compatible with 1cFresh:


For some of these solutions, there are mobile client applications created using the 1C: Enterprise mobile platform . For example, when working with the “Small Firm Management” solution, some users lack the functionality of a mobile client, and the service part of the “Small Firm Management” is used by them, by and large, as a centralized database for their data.

The list of applications running in service mode will be updated - we will transfer to work in the cloud and other typical solutions. There are also a number of solutions on the 1C: Enterprise platform from partners, which they rent on their service instances (for example, housing and communal services 365 ).

Customizing applications in the cloud


In the cloud, thousands of users from hundreds of organizations can work with the same instance of the application. However, their needs in the functionality of the application may differ. Accordingly, we need to be able to customize applications so that custom functionality is available only to certain groups of users.

1cFresh technology has two mechanisms for customizing applications:


Conclusion


We consider the cloud direction of development to be very promising, and we plan to invest more and more resources in it.

It should be noted that the 1cFresh cloud service meets the definition of a cloud service from IDC consulting company:



In the free translation into Russian:


By definition, Gartner 1cFresh technology can be attributed to the Application Platform as a Service ( aPaaS ): "Application Platform as a Service (aPaaS) is a form of service." - " Application Platform as a Service (aPaaS) is a type of PaaS that provides a platform for developing, deploying, and running applications in the cloud ”(taken from here ).

PS Recently the book “ Cloud technologies“ 1C: Enterprises ” ”, telling about the technology 1cFresh. This is the first (but hopefully not the last) book, entirely devoted to 1cFresh. Available in paper and electronic form, as well as for reading on mobile devices.

Source: https://habr.com/ru/post/312456/


All Articles