<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>APPROACHES TO THE AUTOMATED DEPLOYMENT OF THE CLOUD INFRASTRUCTURE OF GEOGRAPHICALLY DISTRIBUTED DATA CENTERS</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>P.V. Fedchenkov</string-name>
          <email>pvfedchenkov@corp.ifmo.ru</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>N.Y. Samokhin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>S.E. Khoruzhnikov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>O.I. Lazo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>A.Y. Shevel</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Network and Cloud Technologies, ITMO University</institution>
          ,
          <addr-line>St.-Petersburg, 197101</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>National Research Centre "Kurchatov Institute" PETERSBURG NUCLEAR PHYSICS INSTITUTE</institution>
          ,
          <addr-line>Gatchina, 188300</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>2018 Petr V. Fedchenkov, Nikita Y. Samokhin, Sergey E. Khoruzhnikov</institution>
          ,
          <addr-line>Oleg I. Lazo</addr-line>
          ,
          <country>Andrey Y. Shevel</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <fpage>223</fpage>
      <lpage>227</lpage>
      <abstract>
        <p>University ITMO (ifmo.ru) is developing the cloud of geographically distributed data centers under OpenStack. The article describes the deployment cycle for the developed multi-agent system on physical and virtual machines using the developed software product repository. The cloud system of distributed data centers assumes the existence of a number of subsystems such as independent agents. An agent is aimed at implementing the creation, management and provision of certain services with a defined SLA. At the same time, it is necessary to perform both the initial deployment of the system and to provide the means that perform the automated modification of the hardware or software infrastructure, that is, the complete agent life cycle. The approaches suggested in the article allow us to use the minimum number of pre-installed components for the purpose of deploying and managing an array of physical and virtual entities of data centers, including deployment and configuring using Salt and monitoring the infrastructure using Zabbix.</p>
      </abstract>
      <kwd-group>
        <kwd>automated software deployment</kwd>
        <kwd>service reliability</kwd>
        <kwd>cloud of data centers</kwd>
        <kwd>multiagent systems</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Cloud computing paradigm has drastically changed the way in which we consume resources.
Approaches to pay for the use and standardization of resources through virtualization lead to the need
to use automation tools to reduce the cost of performing routine operations. At the same time, there is
the task of deploying and monitoring a set of standardized entities with different parameters of service
quality for a variety of private and public cloud clients.</p>
      <p>
        In the previous paper [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], we have already considered approaches to deploying the HA
configurations of the OpenStack platforms, so we use it to deploy program agents system for cloud
management. In the paper, approaches of automated deployment preparation, base system deployment
and storage cluster deployment are described. As a storage subsystem, we use CEPH platform, which
is free, open source, and backed by much of the same community as OpenStack. The stability,
scalability, and value of OpenStack and CEPH have been checked by large deployments like
CERN [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>The article is structured as follows: Section 2 describes goals and objectives of automated
service deployment in data centers; Section 3 describes proposed approaches for automated
deployment of services; Section 4 describes monitoring approaches of deployed services.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Tasks solved by automated deployment</title>
      <p>
        Automation of deployment follows the formal definition of the sequence of actions required to
configure and run virtual entities. At the same time, the input parameters are not only the available
cloud hardware resources, but also the requirements for the quality of customer service. Deployment
can be initiated by the virtualization management service upon request from the client interaction
system [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>Main benefits of automated deployment are:
1. Repeatability – every deployment deploys the same with various parameters in
configuration;
2. Fewer errors – removing manual steps and passing the testing procedure reduces error;
3. Work on what matters – developers can spend time working on new features, not on
fixes for manual deployments;
4. Lower costs – fewer errors, fewer human hours needed for deployment.</p>
    </sec>
    <sec id="sec-3">
      <title>3. Proposed approaches for automated deployment</title>
      <p>The deployment of cloud infrastructure and services requires a number of preparatory
procedures. Therefore, a series of operations are performed to ensure the possibility of using
automation:
1. Preparing repository accessibility;
2. Prepare DNS and DHCP;
3. Preparing of system images using separate repositories for different types of services
such as storage, computing, networking, agents;
4. Preparing of monitoring and DB facilities and messages queue service;</p>
      <sec id="sec-3-1">
        <title>5. Preparing Inventory distribution; 6. Preparing Salt Master node [4] for connecting clients, i.e. set the deployment patterns for each of the service options on Salt Minion.</title>
      </sec>
      <sec id="sec-3-2">
        <title>DB for hardware information, MAC-addresses, logical 224</title>
        <p>The further deployment process is aimed at using information from this list of services in
order to determine whether it belongs to a particular service variant and initiate the launch of the Salt
deployment scripts.</p>
        <sec id="sec-3-2-1">
          <title>3.1 Base system deployment</title>
          <p>In order to use a VM for further deployment of virtual entities, it is necessary to create basic
images. These images are used to create VMs running in OpenStack, by obtaining the necessary
configuration of hardware resources, network environment and domain names. The preparation
process includes the following steps:
1. Use separate project repositories for different types of services;
2. Deployment of base system (Naulinux distribution based on Scientific Linux);
3. Automating the installation of packages after deployment for agents using custom
kickstart;
4. Installing Salt Minion packages and define required naming and address of Salt</p>
          <p>Master.</p>
          <p>Using these prepared images when deploying OpenStack virtual machines, you can verify that
the installed packages from a specific repository are present, the correct configuration of the Salt
system, and proceed to further configuration.</p>
        </sec>
        <sec id="sec-3-2-2">
          <title>3.2 Storage subsystem deployment</title>
          <p>
            The project assumes the use of CEPH clusters as a storage system and provides users with
access to block devices, or to the file system using NextCloud [
            <xref ref-type="bibr" rid="ref5">5</xref>
            ] software. In order to optimize the
use of resources, the developed SaltStack modules filter the disks, group them for use as an OSD.
Thus, the task is to generate SaltStack rules and start their synchronization. This expands the CEPH
cluster to the user's subscription.
          </p>
          <p>A feature of our approach is the deployment of CEPH clusters for each client, which provides
increased reliability of the storage. In this case, the virtual machines for cluster deployment and
configuration are created using the OpenStack platform. The dedicated CEPH cluster connected to the
Cinder OpenStack module is used as a backend for block devices of virtual machines. That is, block
devices used as object storage devices (OSDs) for creating client storage are created in the CEPH
cluster, which has its own replication. Figure 1 represent deployment procedure. Storage pool in the
picture is the dedicated CEPH cluster; memory and CPU pools are provided by OpenStack platform
for VM creation.
The approach of using CEPH in CEPH is aimed at solving the following tasks:
1. Providing increased reliability for user data due to an additional level of data
replication;
2. Creating clusters of various sizes using block devices of a smaller size than the
capacity of physical disks;
3. Improving the system’s flexibility to change by using the level of abstraction of
network interaction and hardware resources of the OpenStack platform.</p>
          <p>
            A number of measurements aimed at assessing the performance of deployed clusters: we
measure the speed of sequential and random data reading and writing using the rados bench utility [
            <xref ref-type="bibr" rid="ref6">6</xref>
            ].
The following results in table 1 were obtained for the dedicated CEPH and the CEPH client cluster
(we use pool with replicas number of 1 for testing).
          </p>
          <p>So, a certain degree of degradation of the data exchange rate due to the use of nesting is
visible, but this decrease in performance is within, for example, the percentage of losses for
virtualization (10-15%).</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Monitoring deployed entities</title>
      <p>Virtual objects created during the automated deployment process need to be monitored for
checking resource availability, utilization and for billing. Salt Stack is used to connect the created
objects to the monitoring subsystem. With creation of virtual objects, such as CEPH cluster, or user`s
gateway for data with Nextcloud instance, automated procedure add that entity into Zabbix.</p>
      <p>Another task is to solve the problems that arise in the system. In general, the system may fail
one of the servers and you need to determine which of the virtual objects were running on it before the
error message appears. Modules have been developed that search for such information and assess the
degradation of the system as a whole.</p>
    </sec>
    <sec id="sec-5">
      <title>5. Conclusion</title>
      <p>In the article, approaches of preparation and automated deployment are described. We use
described methods in our project that aims on development management systems of geographically
distributed Data Centers. The project is in active debugging stage now. The system is planned to be in
preproduction stage first half of 2019.</p>
    </sec>
    <sec id="sec-6">
      <title>6. Acknowledgment</title>
      <p>The research has been carried out with the financial support of the Ministry of Education and
Science of the Russian Federation under grant agreement № 03.G25.31.0229 “Development of new
technological components for management systems of geographically distributed Data Centers”.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Fedchenkov</surname>
            <given-names>P.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Khoruzhnikov</surname>
            <given-names>S.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grudinin</surname>
            <given-names>V.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sadov</surname>
            <given-names>O.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shevel</surname>
            <given-names>A.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kairkanov</surname>
            <given-names>A.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lazo</surname>
            <given-names>O.I.</given-names>
          </string-name>
          ,
          <article-title>Oreshkin A.A. Service reliability in the cloud of data centers under Openstack /</article-title>
          / CEUR Workshop Proceedings - 2017, Vol.
          <year>2023</year>
          , pp.
          <fpage>282</fpage>
          -
          <lpage>287</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>T.</given-names>
            <surname>Bell</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Bompastor</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Bukowiec</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. Castro</given-names>
            <surname>Leon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.K.</given-names>
            <surname>Denis</surname>
          </string-name>
          ,
          <string-name>
            <surname>J. van Eldik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. Fermin</given-names>
            <surname>Lobo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. Fernandez</given-names>
            <surname>Alvarez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. Fernandez</given-names>
            <surname>Rodriguez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Marino</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Moreira</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Noel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Oulevey</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Takase</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Wiebalck</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Zilli</surname>
          </string-name>
          .
          <year>2015</year>
          .
          <article-title>Scaling the CERN OpenStack cloud</article-title>
          .
          <source>J. Phys. Conf. Ser</source>
          .
          <volume>664</volume>
          ,
          <issue>2</issue>
          (
          <year>2015</year>
          ),
          <volume>022003</volume>
          . https: //doi.org/10.1088/
          <fpage>1742</fpage>
          -6596/664/2/022003
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Almutairi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sarfraz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Basalamah</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aref</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          , &amp;
          <string-name>
            <surname>Ghafoor</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          (
          <year>2012</year>
          ).
          <article-title>A distributed access control architecture for cloud computing</article-title>
          .
          <source>IEEE software</source>
          ,
          <volume>29</volume>
          (
          <issue>2</issue>
          ),
          <fpage>36</fpage>
          -
          <lpage>44</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>SaltStack</given-names>
            <surname>Community</surname>
          </string-name>
          . Available at: https://www.saltstack.com/resources/community
          <source>(accessed 3 October</source>
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Nextcloud</surname>
          </string-name>
          . Available at: https://nextcloud.
          <source>com (accessed 5 October</source>
          <year>2018</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Zhang</surname>
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gaddam</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chronopoulos</surname>
            <given-names>A. T.</given-names>
          </string-name>
          <article-title>Ceph distributed file system benchmarks on an openstack cloud // Cloud Computing in Emerging Markets (CCEM</article-title>
          ),
          <source>2015 IEEE International Conference on. - IEEE</source>
          ,
          <year>2015</year>
          . -
          <fpage>С</fpage>
          .
          <fpage>113</fpage>
          -
          <lpage>120</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>