You are on page 1of 4

ICT 273 Information Technology Management

Comparative Analysis between On-premises and


Cloud Servers.
Lucman M. Abdulrachman*
1
Conding St, Lomidong, MSU Main Campus, Marawi City, Lanao del Sur, Philippines
a
lucman.abdulrachman@g.msuiit.edu.ph

Abstract—Understanding the differences between On- B. Cloud Servers


premises and Cloud Servers are vague for some with minimal
background on both. Cloud computing has become the ideal way to Cloud Servers are also known as Cloud Computing refers
deliver enterprise applications [1]. But still, On-premises servers to running workloads remotely over internet in a commercial
are important part of enterprise infrastructures: they provide file provider’s data center, also known as “public cloud”. Cloud
and networking support and host line-of-business applications [2]. Computing also refers to virtualized pool of resources, from
This paper aims to compare On-Premises servers or Cloud servers compute power to application functionality, available on demand
and identify the advantages and trade-offs of using either or both. [1].
On-premises servers refers to the use of the company’s own server
and IT environment – on site (local/private network). Cloud Server III. ARCHITECTURE COMPARISON
refers to services running on servers in the internet.
On-premises server setup were the default setup of
To compare both the author discusses the differences applications during the earlier years information systems. During
from the two in terms of architecture aspects; quality attributes that time, most on-premises approach uses but not limited to
such as modularity, scalability, usability, and security; and costs in Client-Server or N-tiered/Layered architectural design patterns.
development and maintenance based on his present knowledge and
experience in the IT industry in chronological approach. With Client-Server, clients are desktop applications
developed with development platforms such as Java Forms,
Delphi, Borland C++ and connects to remote database server which
Keywords—architecture, on-premises server, cloud were mostly relational database such as PostgreSQL, MySQL. thru
server, non-functional, quality attributes. connector ODBC connector. See Fig 1.

I. INTRODUCTION
Every organizational technical issue in terms of network Desktop Application
setup and challenges may have several solutions that fits and/or
not. This is one of the important decision makings that needs to
done by the software architects during early stage or analysis phase ODBC
of software development. Considering the customer constraints
such as networks issues or available IT infrastructure is necessary.
Leaning to a full cloud solution has equivalent trade-offs that on-
premises servers can provide. And on the other-hand, inclining to DB
full on-premises server setup has trade-offs that cloud solution can
provide. Some organizational problems can be solved by full cloud
solutions, on-premise, or hybrid. To help readers understand the Fig 1: Application using Client-Server Design Pattern
how experience architects decides which approach are taken by the
development team, this paper defines and compares the With N-Tiered/Layered Architecture is the improvement
differences, pros and cons between on-premises servers and cloud of Client-Server design pattern where Clients are desktop or mobile
server setups. browsers using HTML/CSS technology and connects to web-
servers using PHP/Apache, JSP/Tomcat, ASP/.NET that serves
II. Definitions application server by hosting HTTP protocol and source its data
from remote or local database that usually relational database such
as PostgreSQL, MySQL. See Fig 2.
A. On-Premises Servers

On-premises refers to the use of the company’s own


servers and IT environment – on site [2]. With this usage model, a
customer often buys or rents server-based software as a licensee or
develops own software, which is installed on their own servers or
rented servers. Since the software runs in their own data center on
their own or rented hardware, this is also called “inhouse” [5].
ICT 273 Information Technology Management

program should have responsibility over single part of the


program’s functionality, which it should encapsulate [3]. It can
Browser apply on vertical or horizontal aspect of the program components
or application modules. But modularity quality attribute is close
horizontal aspect of Separation of Concern.
Web Server
With application using layered architecture, separation of concern
in horizontal aspect can be applied on all layers in code level,
component level, or modular level. Modularity refers to modular
DB level of SoC.

Fig 2: An Application using Layered Architecture


Module Module Module
To address quality attributes such as efficiency, usability Component Component
in the modern software development, design approach that are
compatible to cloud setup have raised such as SPA (Single-Page- Code
Application) which loads UI resources and UI logics on client’s
browser at first-load or bootstrap and PWA (Progressive-Web- Functions
Application) which improves SPA by allowing some of application Component
logics to run on client-side and allows offline runtime by allowing Functions
users to install the app for offline.

In contrast, cloud computing did likely start with


development of SOAP web-services thru WSDL (Web Services
Description Language) an XML based communication protocol Fig 3: Separation of Concern at various levels
allowing RPC (Remote Procedure Call) method calls of an object
remotely. SOAP web-services later lead the introduction of REST Separation of Concern can be applied UI layer,
web-services an JSON based web-services but mostly used for Application Layer, and/or Data/Service Layer of the application.
CRUD operations which is now standardized as RESTful web- Regardless of the application whether it is running in an on-
services. premises server setup or cloud setup. Modularity is applicable and
necessary to be considered in the analysis and design of the
RESTful Web-services have refined the use of layered application. Modularity is the quality attributes being address by
architecture by allowing web-services to focus on data SOLID design principles Single-Responsibility-Principle and
management or CRUD operations, and introduce application Interface-Segregation-Principle [3].
servers to focus on business logics, while UI to focus on UI logics
thus refined the use Separation of Concern (SoC) in vertical In microservice architecture, microservices are
aspects. With the use RESTful services also introduces the modularized in terms of domain subjects and database sources of
modularity of services applying domain-based SoC in horizontal each microservice are advised to be using a different database from
aspect which is now known as microservice architecture. other microservices. In-fact, an enterprise application may use
multiple types databases from relational database to NoSQL
Microservice architecture is now widely used in databases at the same time. Relational databases are usually used
enterprise applications running on cloud data-centers that on for services dealing operational information with multiple entities
internet. Microservice architecture also allows the use non- with relationships. NoSQL databases such as Key-Value Store, or
relational databases or NoSQL databases information about data Column-oriented databases are used for big-data with minimal
science dealing with big-data. entity relations. Graph NoSQL databases are used for domains with
too many entities and relationships that are difficult to manage in
Hosting applications in an On-Premises server setup does relational database.
not limit software developers to use technologies and/or
architectures that are designed for cloud platform. Some cloud
applications are developed in an On-Premise setup and was B. Scalability
deployed on cloud thru CI/CD (Continuous Integration/Continuous Scalability is the measure of a system’s ability to
Deployment) pipeline. increase or decrease in performance and cost in response to
changes in application and system processing demands [4].
IV. Quality Attributes Scalability is a quality attributes that relates to another quality
attributes availability.

In software architecture, application of design principles In an On-premise server setup, has scalability issue
such as SOLID principles [3] to address non-functional especially with desktop application using Client-Server design
requirements such as modularity, scalability, usability, and security approach. Multiple instances of client applications that connects to
are necessary. single relational database thru ODBC connector. With instances of
having higher traffic of database connections to the database
causing higher number DB session in the database. Relational
A. Modularity databases are designed to multiple DB sessions by implementing
With modularity, also known as Separation of Concern transactional approach but performance is also sacrificed causing
(SoC) or Single-Responsibility-Principle (SRP) in SOLID too much consumption on memory (RAM). Increasing the memory
principles which states that every module or function in a computer capacity of the database would not address it.
ICT 273 Information Technology Management

The performance or memory issue caused by too many server adds more layer of security on application layer by having
DB connections can be address in layered architecture by using authorization and authorization mechanism.
singleton database connection on web-server or application server. In cloud computing using microservice architecture,
In this application serves and middle layer that has the only access additional layer of security is handled by API gateway,
to the database which minimizes the memory load of database microservices under the API gateway are freed from burden on
server. But these setup increases the workload of application handling security measures except security management for
servers. For some organizations, such as school institutions with database connections such as relational database. Microservices are
manageable traffic on-premises with layered architecture is only accessible via single API gateways that handles security and
acceptable. orchestration of information thus minimize the negative effects of
tighter security.
But cloud servers with information systems that cater
huge number of traffic such as social media sites such as YouTube,
Facebook, and Google. The need scale in web-service layer and
III. COST IN DEVELOPMENT,
database layer is necessary to be clustered in different geographical DEPLOYMENT AND MAINTANCE
locations.
Cost refers the resources necessary to be accomplished
for the development, deployment and maintenance of a software
C. Usability
application. The cost differs whether it is done, on-premise or on-
Usability refers to the quality of a user's experience when cloud.
interacting with products or systems, including websites, software, On-premise server setup has higher cost at start but does
devices, or applications [6]. Usability is a quality attributes that not have reoccurring maintenance cost. Cloud services on the other
relates to another quality attribute efficiency. Usability is mostly hand is cheaper at start but comes with reoccurring maintenance
realized on UI on multiple dimensions that includes intuitive cost. In business perspective, going cloud is better because
design, culture, satisfaction and others. consumers have the options to continue or discontinue
subscriptions to cloud subscriptions and expenses cloud
In an On-premises servers with desktop applications that subscriptions can be charged from revenue of the company.
uses client-server design, it has issue on cross-platform
functionality and with higher risk for future technology deprecation In software development, going cloud is almost free.
being outdated from support and trends. These issues about cross- GitHub for examples, open their services to private organizations
platform and technology-proof can be minimized by using layered host private repositories, with CI/CD support via GitHub Actions
architecture where UI is implemented using browser web elements for free with some integration limitations. For development
using HTML5. Development of SPA UI frameworks such as servers, VMs with VMWare or VirtuaBox can be used.
Angular, React, and Vue and the standardized UX element with Containerized server setup with docker which is easier to setup
Materials Designs developed by Google have addressed mostly than VM is also possible for free.
usability issues.
In deployment, On-premises is free of charge, but could
In cloud computing, usability by efficiency is even more be costly in time if managing big enterprise application setup. Thu,
improved by packaging applications into different platforms such this can be minimized by establishing CI/CD setup for your
iOS (IPA), android (APK), progressing-web-application (PWA). enterprise application.

With PWA, web application can be used by the end-users IV. CONCLUSION
online and can install the web-application to his/her machine that
works even in offline-mode. With HTML5, it can support local In conclusion, the decision of using on-premise server or
caching of information by the use local database thru localstorage cloud server depends on business needs and constraints that the
and/or indexedDB which are NoSQL databases that allows PWA consumers or end-users have. For organizations like school
application to run fully offline. institutions and/or retail institution where importance of
availability quality attributes of the system is very high, the use of
on-premises or hybrid is necessary. For end-users with limited
D. Security
internet connections, cloud solutions could be possible with PWA
Security refers to providing a protection system to applications similar to Messenger App of Facebook that works
computer system resources such as CPU, memory, disk, software even offline and synchronizes to the cloud when it gets online
programs and most importantly data/information stored in the again.
computer system.
In my experience in the IT industry, I have worked with
In an on-premise server using desktop application that system in retail industry, for retails stores like super-markets on-
uses client-server architecture. The database security is handled by premises or hybrid is used. But on specialty retail stores like
the relational database itself. This approach is critical for possible boutique cloud platform is used.
security bridges since the database is expected to cater multiple
database connections, and is difficult to determine malicious access None of the two is perfect for every problem, the best
to the database with proper firewall setup. But even with strict solution I could think of in the perspective architectural approach
firewall setup, security bridges to the database is still at risk. combination of both (hybrid).

With layered architecture, security risks to the database


can be minimized by limiting the number of connections to
singleton in web-server or application server. Plus, the application REFERENCES
ICT 273 Information Technology Management

[1] Eric Knorr, “What is cloud computing? Everything you need


to know now”.
https://www.infoworld.com/article/2683784/what-is-cloud-
computing.html
[2] Simon Bisson, “Microsoft: Why Windows Server will
continue to be delivered on-premises”
https://www.techrepublic.com/article/microsoft-why-
windows-server-will-continue-to-be-delivered-on-premises/
[3] Rober C. Martin
Principles of OOD
http://butunclebob.com/ArticleS.UncleBob.PrinciplesOfOod

[4] Gartner
Information Technology Glossary > Scalability
https://www.gartner.com/en/information-
technology/glossary/scalability
[5] IONOS
On-premises: the license model for server-based software
https://www.ionos.com/digitalguide/server/know-how/what-
is-on-premises.

You might also like