Uploaded by Cristian Pop

DevOps in CMS

advertisement
DevOps in content management system (CMS)
Pop Cristian-Gabriel
Technical University of Cluj-Napoca
Abstract—Most websites nowadays are powered by
content management systems (CMS), which allow website
administrators to make changes to their sites without having
to know how to code. Digital Content Management Systems
(DCMS) can face certain challenges in terms of access to
resources or managing fast content storage. Through DevOps
concept, we can continually introduce new features and
functionality without any disruption to the authors.
DevOps (development and operations) is a collection of
collaborative approaches that automate the distribution of
new software updates in order to shorten the development
cycle and generate high-quality software. When it comes to
DevOps, software companies confront a number of
challenges since the integration of development and
operations teams necessitates the merging of various
processes, technologies, and skill sets. DevOps is a new
software development process that differentiates from
traditional approaches by involving the client more closely
and implementing "continuous" procedures.
I. Introduction
A Content Management System (CMS) is a set of
interconnected components that allows users to modify,
manage, and change data in real time. It is an interactive tool
that assists in the rapid building of webpages. A Content
Management System differs from static or dynamic websites
in that it takes a distributed approach to communication,
allowing people from all over the world to communicate
through a single CMS. [1]
CMS provides organized content management
system capabilities such as the ability to save text documents,
photographs, video, and any other sort of online material.
CMS platforms, which serve as the backbone for many big
websites, offer several editors and sections. The CMS anatomy
is depicted in the next Figure.
Figure 1. CMS anatomy
Features and components of the Content
Management System give genuine benefits and bridge the gap
across business classes. In today's world of fast technology,
where businesses want less time for more profit, this is
especially true. [1]
The market for content management systems is now quite
crowded. Accessibility to commercial and free solutions, as
well as cheaper hosting, have an impact on the fact that not
only businesses, but regular people utilize these types of
programs to construct and publish their own web pages.
Content Management Systems are constantly growing in
popularity. The number of applications of this type is
anticipated to be in the thousands. They keep coming up with
fresh ways to fulfill the demands of existing and future users.
On the server side, content management systems often rely
on databases to store the information presented on the page
and configure the portal, as well as scripting languages or
specific applications.
Any content management system has two parts: the display
component for portal visitors and the administrative part for
allowing authorized users to upload and alter material on the
site after logging in to the application. CMS systems often
provide for editing power diversification, allowing users to
assure more security and reduce errors caused by
inexperienced users. Panel administration is done using a web
browser, so modifications may be performed from anywhere
with an Internet connection. [2]
Software companies have expressed interest in adopting
software development methods that shorten the
development and delivery cycle. The primary motivation for
adopting new development methodologies is to respond
quickly to changing customer needs and to positively
evaluate suggested changes. The software industry has used
agile development methodologies to solve the issue of fast
change in the software development life cycle [5]. DevOps is
a new software development strategy that was born out of
the notion and success of continuous delivery.
Figure 2. CMS structure
DevOps has become one of the most "contemporary" and
extensively debated words in the area of software engineering
in recent years [3] [4]. DevOps aims to bridge the gap between
development and operations by encouraging collaboration
between development teams (i.e., designers, developers,
testers, etc.) and businesses, resulting in the formation of
additional teams responsible for the development,
management, and support of customer-side systems [3]. The
DevOps technique, by definition, creates a living bridge
between development teams (DEVelopment) and system
users (OPeration), allowing them to cooperate effectively and
smoothly.
Figure 4. CI/CD concept
The performance of the DevOps technique in a company is
tracked by evaluating three main areas: collaboration culture,
procedures, and tools [6]. People are at the core of the
approach, and they're often the biggest roadblock to
establishing a DevOps culture at a company. The
methodology's adoption might result in a comprehensive
overhaul of product development procedures. Monitoring the
efficacy of DevOps integrated processes throughout the
product manufacture and delivery pipeline is also deemed
important. The right tools can help you apply the DevOps
concept correctly and effectively.
Operating time and capacity are two common characteristics
to keep an eye on. Culture, Automation, Measurement,
Sharing, and Services have also been highlighted as the core
aspects of DevOps based on the literature [7]. Continuous
Integration (CI) and Continuous Delivery (CD) are encouraged
in DevOps (CD). Its goal is to reduce the product delivery cycle,
allowing businesses to deploy software products and services
on schedule without sacrificing quality.
A. Infrastructure as Code
Companies who have implemented DevOps have followed
the idea of automating the flow of the software
production process. It is accomplished using configuration
Figure 3. DevOps concept
2
management methods and automated environment
provisioning.
Infrastructure as Code (IaC) is a method of creating the
environment needed for production or testing using
configuration files and tools. The major resources for
implementing IaC techniques are configuration
management systems like Puppet-Ansible and Chef [8].
B. Version Control System
Figure 5. Agile Methodology
The desire to share is a fundamental premise in the
DevOps ecosystem. As a result, the initial software
development line must be set up with this major goal in
mind: sharing code so that the entire team can see what
is being done and developed. As a result, all of the
project's developers make their work public in a sourcecode version management system like Git.
In addition, [9] claims that version control solutions play a
key part in a vast number of DevOps technologies, in
which developers produce source code and distribute it in
these repositories, resulting in a Continuous Integration
pipeline.
D. DevOps Environment
A DevOps-based software development pipeline features
a well-defined automated cycle that starts with
integrating the developers' source code with the code
version control system. When the CI server detects that
the commits are complete, it runs the relevant tests and,
if necessary, provides feedback to the developers.
C. Continuous integration and continuous delivery
CI is a DevOps approach in which members of a
development team exchange their work on a frequent
basis and automate the building, testing, and validation
processes [8]. The CI server triggers the procedures for
developing and testing software when an environment
change is recognized, resulting in the release of reports for
activities connected to the tests.
Following that, if the tests pass, the CI service can make
the production environment available through a process
known as "Continuous Deployment," the goal of which is
to swiftly uncover problems and software faults and have
them rectified.
Continuous Delivery refers to the continuation of a
development cycle (CD). It is a method of software
engineering in which teams produce valuable systems in
short cycles while ensuring that they may be delivered
securely at any time [10]. As a result, customers may have
new functions integrated in the system securely,
continually, and automatically. CD is accomplished by
practicing discipline and automating delivery, which
involves developing, testing, and installing software [11].
Figure 6. Before and after DevOps
II. METHODOLOGY AND RESEARCH QUESTIONS
This work is based on the basic concepts of conducting a
systematic review of the literature.
3
Systematic studies or systematic reviews of the literature are
intended to offer an overview of a field study by categorizing
and quantifying contributions in accordance to those
categories. The process of these studies involves searching
for the necessary literature to know what topics have been
dealt with in it and at the same time where they were
published. As part of the realization of these mapping studies
systematic and systematic reviews of literature, the focus
falls on analysis of primary studies. In this case, a primary
study means a study which
investigates a specific research question. Secondary studies
are the review and mapping studies, so a secondary study
passes in the journal all primary studies relating to a
particular question of research, with the aim of synthesizing
the evidence relating to the that research question. [12]
In a systematic mapping study, there is an extensive review
of primary studies on a given topic in order to identify the
evidence available on the appropriate theme. The process of
carrying out a systematic review of the the literature requires
the use of a well-defined methodology to be able to identify,
analyze and interpret all available resources on a particular
research question, in a way that is impartial.
This section describes the protocols used for conducting this
research with a view to addressing the main issue, by using
Systematic Mapping (SM). The SM process was conducted as
per, in five essential stages, namely: (1) set the research
questions; (2) search for relevant articles; (3) sort the articles
found; (4) select key-words, by using the abstracts; and (5)
map the data.
A. Research Questions
The electronic databases used for the Systematic Mapping
were: ACM Digital Library; IEEE xPlore; Science Direct; and
The following questions (RQ) RQ1 to RQ5 were used as an
instrument to guide this Systematic Mapping:
Following the definition of the search keywords and
databases, the criteria for inclusion were developed so that
they could find a link between the studies chosen and the
questions posed in the Systematic Review.
RQ1.
Springer Link .
C. Search Terms
As we sought to find studies focused on the subject of this
research, we defined the key-words for the search terms
that, according to a proper procedure, must be developed
based on the central terms identified in each research
question. In this context, the keywords from the selected
control articles were applied to the exploratory analysis as
guidelines for this stage, by means of Boolean operators, for
example “AND” and “OR”, as described below:
The same search terms were applied in all the databases
returning 382 papers from ACM digital library, 279 papers
from IEEE, 306 from Science Direct and 504 from Springer.
D. Criteria for the Selected Studies
How does DevOps relate to Content Management?
Tabel 1. Criteria for inclusion
Criteria
Studies that address any of the research questions
Studies that propose or report the use of any DevOps tools
Studies that propose or report any DevOps implementation
models
Papers that tackle DevOps practices in content
management systems
RQ2.
How a DevOps team manages external content
management?
RQ3.
How a DevOps team manages internal content
management?
B. Search Strategy
The search strategy that was adopted to find relevant studies
included making automatic searches in the databases. The
searches were focused on the period from 2010 to May 2022.
We also drew up criteria for exclusion, shown in Table 2 in
order to discard studies that were not related to the research
in any way.
4
Field of study
Tabel 2. Criteria for exclusion
Criteria
The study does not have an abstract
The study was not published in English
Article not accessible
Paper was published as a short paper or
poster
The article does not relate to DevOps
The article does not tackle practices,
implementation techniques nor models for
adopting DevOps
Old publications
E.
Roles and Skills
Models and Deployment
DevOps Practices
DevOps Foundations
0
1
2
3
4
5
Field of study
Figure 8. Field of study
Selection of studies
IV.
The studies were chosen using Table 1's criteria for inclusion
and Table 2's criteria for exclusion. We used a paired analysis
to accomplish this. We also evaluated the paper title and
abstract using the inclusion and exclusion criteria in the first
phase. After that, we analyzed the article's whole content in
the last phase. After all the selection phase, only 9 studies
adressed to our 3 research questions.
Research questions discussion
The main purpose of this systematic study review regarding
DevOps methodology in content management systems is to
observe a proper image of the studies that already exist. The
studies that we found need to match the research questions
that we came up with and that is what we are going to tackle
next.
A. How does DevOps relate to Content Management?
III.
RESULT OF THE SYSTEMATIC MAPPING
In a DevOps environment, a Content Management team's
purpose is to make frequent modifications to fulfill client
expectations. Obviously, this must be done with caution,
professionalism, and within the framework of the system.
Changing user profiles, introducing new dropdown options,
and modifying the user interface are all good possibilities for
quick release cycles in response to user input.
A records management system may benefit less from a
DevOps approach than a customer experience management
system that must develop quickly to suit changing demands
(due to stringent audit controls and external compliance
commitments). As with many other beneficial concepts in our
changing environment, IT professionals must decide which
systems are best suited to the new approach, as well as
which tools and characteristics of DevOps are appropriate for
their teams and businesses to use.
Standard operating procedures must vary when looking at
release and update cycles from a new perspective and on
different time scales. And this is one of the major
breakthroughs. Because of the increasing agility and speed of
release, automated setup and deployment solutions have
become significantly more common. For many years,
WebCenter has been scriptable and may be installed using
scripts. However, a lot of incredibly valuable technologies
The Systematic Mapping resulted in 9 studies being selected.
This section presents several aspects of the papers found.
Kind of study
Grounded theory
Case study
Bibliographic study
0
2
4
6
8
Kind of study
Figure7. Kind of study
5
now exist that enable DevOps teams to handle these
operations much more often and quickly (essential for
consistency between environments and successful loads).
search engine, creating tags, and setting up alerts on
documents or pages so that the right team members are
notified when they are changed. Consider an alternative
strategy to internal documentation content management
that focuses on collaboration rather than publishing
channels.
Atlassian Confluence, for example, provides a straightforward
authoring process as well as integration possibilities for
managing internal team content. Users may also modify
workspaces with reporting, external content, and navigation
from a library of add-ins. They may also construct reusable
templates for development organization workplaces to utilize
when new projects begin.
Another option is to use a cloud repository for content
management, as Dropbox and Box demonstrate. Dropbox, for
example, and, by extension, Dropbox Paper's document
architecture, provide lightweight content authoring and file
storage to serve as a CMS for documentation. It uses an API
to connect to other tools in the DevOps toolchain. Search
capabilities and the ability to invite colleagues to papers are
common characteristics of these tools. Using the
organization's identity access management system or single
sign-on, provide security to this class of collaborative
products.
B. How a DevOps team manages external content
management?
Traditional database-driven CMS methods become
excessively sluggish and redundant when GitHub, Chef,
Selenium, and other documentation-generating pipeline
components demand content posting.
In a DevOps context, a Git-based CMS for documentation
meets the needs of customer-facing content. Git-based
CMSes outperform SQL-based CMSes in terms of
performance and scalability. They use a decoupled design,
with numerous content writing and delivery microservices
running in separate subsystems. The CMS should be placed in
the same cloud as the DevOps team's other CI/CD tools for
security and scalability reasons.Various methods of operation
are used by DevOps-tailored CMS alternatives for project
management and documentation.
As an exemple, Crafter, an open source Git-based CMS,
separates content and code updates, which, the toolmaker
posits, enables code delivery velocity. Content providers may
make ongoing changes and information updates using Git,
unhindered by CI/CD pipeline software pushes. A Git push
automatically takes work from an isolated code branch
through testing and into production. A Git pull creates new
environments with any version of relevant material that is
acceptable. For externally oriented documentation, there are
CMS platforms that can publish material across numerous
digital channels, such as enterprise sites, mobile applications,
microsites, and any other location where your customers can
access information. Assess tools that demand more or less
Git competence, based on the content creators' abilities.
V.
Conclusions
This systematic review shows that DevOps teams still
improve their way into using content management systems.
DevOps engineers do not want to touch the production
environment directly and should not have to. Unfortunately,
traditional CMS platforms force them to do so. Anyway, there
are other CMS platforms that tackle this challenge because
they are Git-based so all the code can live in the same version
control system as the business content, together. This
creates an ideal DevOps process for Continuous Integration
and Delivery (CI/CD).
As APIs become regular features for tool integration, DevOps
teams have more content management options. Successful
document management, on the other hand, requires
planning: Make content management a line item in the
DevOps tools budget and a component of the CI/CD toolchain
from the start, and don't settle for the corporate CMS
platform if it doesn't satisfy the software team's demands.
C. How a DevOps team manages internal content
management?
Content management for internal content utilized by the
DevOps team must be easy, searchable, and auditable. One
solution is to save information in a wiki or cloud repository
with versioning, alerting, tagging, and search capabilities.
While some companies expect DevOps teams to leverage an
existing CMS for documentation and knowledge sharing, be
sure the technology meets all of your requirements and push
back if it doesn't. Spend time fine-tuning the platform's
6
VI.
References
Communications in Computer and Information Science,
2019, vol. 1077, pp. 247–265.
[12]
Kitchenham, B., Charters, S., 2007. Guidelines
for Performing Systematic Literature Reviews in Software
Engineering. Technical Report EBSE 2007-001. Keele
University and Durham University Joint Report
[13]
[1]
WordPress: A Multi-Functional Content
Management Abhilash Kumar1 , Aman Kumar2 , Hina
Hashmi3 , Dr. Shueb Ali Khan4
[2]
Content Management System for Web Portal,
Maciej Nakwaski, Wojciech Zabierowski
[3]
R. Jabbari, N. bin Ali, K. Petersen, and B.
Tanveer, “What is DevOps? A Systematic Mapping Study on
Definitions and Practices”, Scientific Workshop Proceedings
of XP 2016, Edinburgh, Scotland, 24 May 2016
[4]
J. F. Perez, W. Wang, and G. Casale, “Towards a
DevOps Approach for Software Quality Engineering”,
Workshop on Challenges in Performance Methods for
Software Development (WOSP '15), Austin, Texas, 31
January 2015.
[5]
L. Riungu-Kalliosaari, S. Mäkinen, L. E.
Lwakatare, J. Tiihonen, and T. Männistö, ‘‘DevOps adoption
benefits and challenges in practice: A case study,’’ in Proc.
Int. Conf. Product-Focused Softw. Process Improvement.
Cham, Switzerland: Springer, 2016, pp. 590–597.
[6]
Krief, “Learning DevOps: The complete guide to
accelerate collaboration with Jenkins, Kubernetes,
Terraform, and Azure DevOps”, Packt Publishing Ltd, 2019.
[7]
F. Erich, C. Amrit, and M. Daneva, “Report:
Devops literature review”, University of Twente, Tech. Rep
(2014).
[8]
C. Siebra et al., “Empowering Continuous
Delivery in Software Development: The DevOps Strategy,” in
Communications in Computer and Information Science,
2019, vol. 1077, pp. 247–265.
[9]
F. Erich, “DevOps is simply interaction between
development and operations,” in Lecture Notes in Computer
Science (including subseries Lecture Notes in Artificial
Intelligence and Lecture Notes in Bioinformatics), 2019, vol.
11350 LNCS, pp. 89–99
[10]
E. Laukkanen, T. O. A. Lehtinen, J. Itkonen, M.
Paasivaara, and C. Lassenius, “Bottom-up Adoption of
Continuous Delivery in a Stage-Gate Managed Software
Organization,” Proc. 10th ACM/IEEE Int. Symp. Empir. Softw.
Eng. Meas. - ESEM ’16, pp. 1–10, 2016.
[11]
J. Humble and D. Farley, “Continuous Delivery
Huge Benefits, but Challenges Too,” IEEE Softw., p. 497,
2015.
[11]
C. Siebra et al., “Empowering Continuous
Delivery in Software Development: The DevOps Strategy,” in
7
Download