Understanding Cloud based Online Spatial Delivery System
Task: You are required to prepare a report for DSI Board on the cloud based Online Spatial Delivery System.
The web application that contains web services and applications is termed as DSI Online Spatial Delivery System (OSDS). A well-known State Government Department aka Department of Spatial Information (DSI) purposes to distribute spatial information to other sister departments. This information has to be precise. Some part of it is also made available to public hence a web application is developed in order to allow both government and public information. Several web services are developed by DSI to offer the spatial information to its specific targets. These services and applications are internally intended to work in collaboration to provide information to government departments and public. The list of services provided by OSDS is as given below:
- All time access to web application
- Availability of precise spatial information for the users
- Online Spatial Delivery System is expected to be available even at heavy traffic
- Allows downloading the information if requested
- It should highly resistant to security attacks
- It must provide usage reports on demand
DSI is planning to develop new applications which in turn will increase the demand of their spatial information among the users. The DSI management team have decided to migrate Online Spatial Delivery System to a cloud platform for attaining the above listed features of OSDS. With this migration task, DSI on one part would focus on developing the spatial information whereas all the internal services and other applications would refine it and the final data is expected to be moved on the cloud system where it will be permanently published for user access.
Online Spatial Delivery System Architecture Evaluation
Delivery and Deployment Model
The cloud-based system needs adapt a certain kind of deployment and delivery model. The possible kinds are: public, private, community and hybrid. A public cloud model offers services to public on Internet without any confined boundaries for users. A private cloud model offers services to limited users under an organization where security is of prime importance. A community cloud model lies between public and private model. It allows sharing of resources and services among the organizations intending to seek for almost similar requirements. A hybrid cloud model is the mixture of two or more other models. The services and hardware components are maintained at together when combined structure is offered to the customers.
When the model is selected, the next step is to delivery model for Online Spatial Delivery System. The available approaches for cloud-based system are Infrastructure as a Service (IaaS), Platform as a Service (PaaS) and Software as a Service (SaaS). For the current Online Spatial Delivery System, SaaS is irrelevant as it doesn’t offer any software as a service on it cloud. Hence the focus shifts on IaaS and PaaS. Following section describes both the approaches along with their advantages and disadvantages (Al-Faifi, 2017).
IaaS for Online Spatial Delivery System
Infrastructure of a system includes the network, storage and servers. To provide these as service is termed as Infrastructure as a Service (SaaS). The traditional data centres were the similar to provide such services to their users. Using these computer resources in sharing has proved to be cheaper as there is no need for buying hardware separately and hence no maintenance efforts and cost is needed. The applications of users’ can be easily deployed at the service provider’s virtual machine that serves the other users with similar sort of technologies and platforms. IaaS provides the services but the right of choosing operating system, applications and their upgrade is solely users’ choice. It allows its users to select security constraints as well rather than imposing it on them. In short, a single interface allows users to avail services under one roof. An IaaS delivery model must have some features to make it usable. This includes scalability, the resources must be scalable so that any new upgrade or alternative can be easily deployed for users. The cost of IaaS depends on its consumption. It means, the users have to pay for only those resources those have been used by them. The client has complete control on the infrastructure. IaaS is known well for its multitenant architecture which means many users can work on a single hardware component (Amara, 2017).
Effective usage of IaaS for cloud-based system
- If a company is just settled up and has limited funding, it is always wise decision to opt for IaaS.
- If an organization is large and it is expected to be growing rapidly with several different platforms, network and servers in demand, IaaS is the best solution for ever-increasing needs.
Many large organizations use IaaS for accessing resources by gaining control over infrastructure quite easily and the feature of paying for the used resources makes it more reliable to use.
Advantages of IaaS:
- It is scalable
- It is cost-effective
- It is easy to use
- It allows user’s control over infrastructure
- Virtual Machines handle all the management related operations hence employees of the organization can sit back and relax for a while.
- It is the most dynamic delivery model out of all the models offered.
- Multitenant architecture can make system vulnerable to security risks
- In cases when resources are unavailable for maintenance purpose, users may experience access cut of the resources for some time.
- Infrastructure management is bit poor.
What is the role of PaaS for Online Spatial Delivery System?
Platform as a service is a delivery model that offers programmers and developers a way for creating software over Internet without actually installing heavy platforms on their PCs. The platform hence comprises of all the necessary tools and components that can help programmers to code and create new applications within no time. The users of PaaS use the services offered by platform to customize apps but the providers have to keep up-to-date software, servers, OS updates and security components well in working conditions. The users need not to focus on maintenance part at all, they just need to focus on development part. The control access provided to users differentiates PaaS and IaaS.
PaaS allows not just development but testing as well hosting the applications developed on cloud. The PaaS vendors keep track of each platform provided by them since every user or organization may have different needs and PaaS vendors have to fulfil them. The platforms those are licensed and cannot be accessed openly, PaaS makes it easier to access for minimum costs as it also allows same copy of platform to be accessed by other users as well. Unlike IaaS, PaaS never allow complete control to users on the infrastructure it offers. Some restrictions are made to the users for security reasons. Web Services are combined with databases in PaaS. Most importantly, it allows people at remote collaborated as a team to work on same environment virtually which is the major perk of PaaS (Hayyolalam, 2018).
Effective usage of PaaS for cloud-based system
- PaaS is usable when developers at remote locations collaborate as a team
- It is highly reliable to use when developing customized apps.
- If a company doesn’t want to spend much on testing.
- Like any other delivery model, PaaS is scalable
- It is available anytime for users
- Multitenant architecture is a great benefit as it offers a platform to be used by many users at a time.
- Platform on cloud can make it easier for developers to develop applications in simpler ways
- With platform-based testing tool, expenses for testing a project is dramatically decreased.
- Automatic updates and platform maintenance allow users to concentrate only on coding.
- The coding efforts are reduced.
- Code migration is quite simpler while hosting the developed application.
- Security is always a concern with PaaS.
- Not all the platforms can be deployed over cloud.
- The developer has to work as per platform’s speed.
Possible Online Spatial Delivery System Architecture
Consider the scenario of Online Spatial Delivery System where an application used currently servers public as well as employees within the organization with spatial information. A Monolithic approach is depicted in following figure.
Figure 1 Possible Architecture for Online Spatial Delivery System (Monolithic)
As clearly seen, an application as GUI is presented to users for accessing information from database. The system contains application servers that handles all the requests from users for fetching spatial information of their choice. Since multiple users are accessing the same application for a particular instance of time, load balancer is also installed in order to efficiently handle all the requests. The application servers contact database clusters for requested information which is also responsible for presenting it to the users at the front-end. Online Spatial Delivery System follows this architecture at present but when DSI is planning to develop new applications, there is need to migrate the application on cloud. With new applications developed with DSI, it will be difficult to deploy the whole application over again for the changes in code. For this reason, microservices architecture is projected for adaptation. With reference to operations in Online Spatial Delivery System, following figure shows the microservices architecture for DSI’s Online Spatial Delivery System. The architecture is scalable to every aspect: front-end application as well as individual microservices.
When an application is migrated, the existing individual code block for specific functionality on the web application are extracted and converted them into microservices. This is usually termed as code refactoring. After refactoring codes, databases are split. With each microservice, a database attached so that each service can function independently.
Figure 2 Possible Architecture for OSDS
Online Spatial Delivery System on the Edge
As discussed in initial sections about the services provided by Online Spatial Delivery System now and in future it is better to migrate Online Spatial Delivery System on cloud. The migration will be proved to be beneficial to DSI in many different ways. Cloud computing has several advantages and few drawbacks as given below.
- Cost Minimization: For every resource that user is intending to get served on cloud, makes it cheaper to use since user just have to pay for the consumed resources. All those resources owning personally and physically can result in high expenses which is not at all practically fair to choose for. When DSI is planning to allow new projects, spatial information will be on rise and to store them will be over expensive as many servers will then be involved to store raw data at first. Hence using cloud can be beneficial in such regards.
- Flexibility: Cloud computing allows users to access their data whenever possible, access resources even if they aren’t at their workplaces. The flexibility offered by cloud can make it easier for employees to work even remotely for the company. Similarly, Online Spatial Delivery System also allows users to download information which will demand to be downloadable at any location. Hence cloud for Online Spatial Delivery System is a good option.
- Automatic Infrastructure Updates: Every cloud vendor keeps track of each infrastructure, platform and software maintenance and updates which gives a major sigh of relief to the maintenance personnel as they just have to focus on the services and not on their maintenance. When an IT company makes employees to work on platforms and software installed on individual PCs, the maintenance staff has to keep track of updates and maintenance of each PC which can be tedious. With cloud, all the maintenance tasks should be expected at service provider’s end. DSI will not have to bother for maintenance as it will all be performed at cloud provider’s side.
- Agile: Cloud based systems are agile in nature and has proven many times that services on cloud are delivered in the smallest possible time which leads to rapid growth.
- Data Theft: The information on cloud is safe it is said but not all the while. The hackers these days are working as hard as security engineers to find a way get into the cloud data storage. Though cloud is secured in many ways, it may happen that the servers may get hacked and data could be stolen.
- Malware Injection Attack: Stealing is now common and hackers may provide your data back if you pay the sum of amount to recover them. But hackers may also damage your data after getting into the cloud storage system. SQL injection is the most common type of attack.
- Denial of Service Attack: As cloud system allows multiple users to access the services at a time, the hackers may flood many requests which may result in temporary breakdown till the services resume.
- Authentication Attack: On targeting specific users’ account, hackers may break the secure authentication system and can get access to users’ files and other personal credentials.
Software Architecture Approaches
A monolithic application is a server-side application consisting of three parts: API on client-side, application server-side and a database. The server-side application is responsible for taking HTML requests and process them. It also performs back-end operations of fetching and updating database entries. For each monolithic application, changes in the code needs to deploy the unit all over again. With regards to Online Spatial Delivery System features and services provided by it, monolithic approach would be ideal for it since it has following advantages.
Advantages of Monolithic Approach
- For several applications, logging, audit trails, Denial of Service protections and other concerns surface up while designing them. Using everything on same platform or space could minimize all the issues relating to cross-cutting of their compatibilities or versions.
- With monolithic approach, Online Spatial Delivery System will be easier to code, test, build and deploy since single application will be needed to lookup. This will cut most of the cost for application development, testing and deployment too.
- With applications deployed on cloud comes with performance perks as shared-memory requests are relatively faster than inter-process communication. This helps application to be available all the time and reply faster to the requests.
Disadvantages of Monolithic Approach
- Monolithic applications are difficult to maintain since small change in any small chunk can lead to deployment of entire unit over again.
- Sometimes, monolithic applications for much complex system can be difficult to understand as there are many applications and services involved working in collaboration to achieve the functionality. These dependencies are sometimes difficult to understand.
Microservices architecture allows several smaller units of codes known as microservices which are developed separately, executed separately and can be deployed separately. Each microservice in an application is intended to work for small functionality within the application. The most important perk of using microservices is, it is possible to deploy each microservice independently if the change in code is reflected only within that particular chunk (Chumpolsathien , 2019).
Advantages of Microservices Architecture
- It is scalable since any number of microservices can be inserted in a large application.
- It is easy to understand
- Deployments are faster since only that microservice is deployed which was changed
- If single module fails, entire application remains unaffected leaving just the small chunk in failed state (Joe, 2019).
Disadvantages of Microservices Architecture
- The data transfer among microservices are usually complex.
- With each growing service, resources need to be expanded which is difficult to manage (Joe, 2019).
Comparison of Microservices and Monolithic Approach
Consider and e-commerce application where users have to search the products, buy them and review them as per their usage experience. For this, monolithic architecture is as shown in figure below. It contains single application performing all three functionalities. This means it can posses downtime when any one of the functionality fails.
Figure 3 Monolithic architecture for E-commerce application (guru99)
On the contrary microservices architecture consists of different microservice for each functionality as shown in figure below.
Figure 4 Microservices Architecture for E-commerce Application (guru99)
All the microservices execute differently containing their own database which never affects unavailability even at high workloads. These microservices communicate with each other to provide the complete functionality of the application. Searching microservice may execute perfectly even if review and rating microservice fails. This way, Online Spatial Delivery System can be designed in microservices architecture for effective user experience even if workload is at its peak.
Software Architecture Evaluation
Possible Architecture for Online Spatial Delivery System is beneficial for following reasons:
High Availability: Microservice architecture makes the application highly available since failure in one service will never affect other different services of the applications resulting in highest availability than Monolithic architecture.
Faster Deployments: For every deployment of new service or existing one, microservices architecture never requires entire code to be deployed. Rather, it just deploys the affected microservice within no time, this never let users experience any sort of system failure.
Online Spatial Delivery System Recommendation
The DSI management team have decided to migrate Online Spatial Delivery System to a cloud platform for offering service to the users. The target users are public as well as employees from Government departments. For the Online Spatial Delivery System, it is recommended to use hybrid deployment model that can be combination of private and public cloud. Private for Government departments and public cloud model for public access of spatial information. The hybrid cloud model for OSDS can handle all the spatial information securely over the cloud without any security issues and this will also save space of DSI at personal storage servers as all the data can be stored over hybrid cloud. Since much spatial information is involved in web application, hybrid cloud can act as a backup storage as well which will mitigate the risk of data loss. DSI hence can use private cloud for information sharing among government departments whereas public cloud for public information display. PaaS architecture allows users to code online and IaaS offers infrastructure such as servers, network and storage for its users to use on cloud. Hence by keeping OSDS requirements in focus, it is good to use IaaS as cloud architecture for Online Spatial Delivery System. OSDS also allows users to download information which will demand to be downloadable at any location. Hence cloud for Online Spatial Delivery System is a good option. There are few drawbacks of cloud systems, but the advantages of the same should be considered over it since Online Spatial Delivery System on cloud will be a good decision.
Al-Faifi, A. M., Song, B., & Alamri, A. (2017). A survey on multi-criteria decision making methods for evaluating cloud computing services. Journal of Internet Technology, 18 (3), 473-494.
Amara, N., Zhiqui, H., & Ali, A. (2017). Cloud Computing Security Threats and Attacks with Their Mitigation Techniques. Proc. of the IEEE International Conference on Cyber-Enabled Distributed Computing and Knowledge Discovery (CyberC), 244-251.
Chumpolsathien, N. (2019). Microservices: the Future of Distributed System. ResearchGate.
Hayyolalam, V., & Pourhaji, K. A. (2018). A systematic literature review on QoS-aware service composition and selection in cloud environment. Journal of Network and Computer Applications, 110, 52-74.
Joe, N. (2019). Advantages and Disadvantages of Microservices Architecture. cloudacademy. https://cloudacademy.com/blog/microservices-architecture-challenge-advantage-drawback/
(n.d.). Microservices Tutorial: Architecture and Example. guru99. https://www.guru99.com/microservices-tutorial.html