Home > Computer science essays > Cloud Services and DevOps Report

Essay: Cloud Services and DevOps Report

Essay details and download:

  • Subject area(s): Computer science essays
  • Reading time: 8 minutes
  • Price: Free download
  • Published: 4 November 2022*
  • Last Modified: 22 July 2024
  • File format: Text
  • Words: 2,286 (approx)
  • Number of pages: 10 (approx)

Text preview of this essay:

This page of the essay has 2,286 words.

1. Azure Web App Service

Azure web app service provides a platform for hosting web applications. Many organizations or individuals choose this to host their web applications for its powerful functionalities, though they may have encountered some problems during the process of development, deployment and management of their application.

1.1 Strength and Weakness

Unlike what company bought physical servers in the old days, one of the biggest strength of the service is that you do not have access to the server at all. This would save a lot of time for the software engineers for not maintaining the server since Microsoft takes care of deploying the latest version of the code to the actual server and keeps the server running. Physical servers do break down occasionally (sometimes due to attack) and takes quite a long time to restore it especially for a small company. Having the servers in their controll decreases the chance of sudden breakdown of the server as they protect the server from DDoS attack and even if the server did break down by any chance, it would require less time to restore it. Also, various logs are provided so that you can actually identify any applications issues on the server.

However, alongside with the biggest benefit, it seems that there is no way to install any 3rd party softwares for managing the Windows server. Most of the potential solutions in the Azure market place can only work on VM services, not for web app service. Though Microsoft has been working to solve the problem, this can cause some inconvenience for people who have been using traditional management tools for the time being.

If the current price tier has reached its limit in performance, scaling up your app with webapp service takes only a few seconds to be done just by changing the price tier. Without any change to your code or redeployment, CPU, memory storage, disk space can be upgraded and the server can handle more frequent requests. This also brings the inexpensive cost for the company by beginning the web using a free tier with less demanding workload and scaling up as needed.

1.2 Applications

Azure web app service is certainly the best choice for most of the traditional web apps. Those apps have a web front end and a database running in the backend. Azure web app service makes it easy by turning MySQL on in app. The service is also recommended for web apps that is not so dependent on customized Windows or Linux environment. As long as the web apps follow a particular architecture, web app service makes the deployment jobs much easier in a few seconds and additional features can be added alongside with the application. Since they offer the customers pay-as-you-go pricing, this lowers the cost of the service for a small company who can host the site with possible future growth.

1.3 Usability

The overall user experience is quite good for a beginner, judging from my own experience of deploying a python web app in the last project and from the exercise. Things do get complicated when deploying the web app with frameworks, but the official guide is always there to help. The actual process of deploying a simple sample website through Azure web app service and having it running normally online takes less than 30 minutes. This is considered to be rather short since this includes the time taken to set up the database. However, the initialization of the database did not seem to be processed for the first time and the whole app was deleted and recreated in order to get the database working. On the other hand, the instructions are easy to follow and ways of deployment varies from using the local code to linking to a github repository, which can grab the code from github instantly and update the latest version of the application without doing it manually.

2 VM service

Azure VM service provides the infrastructure as service. Either Windows virtual machine or Ubuntu virtual machine can be an ideal solutions to many requirements. The VM service, as IaaS (Infrastructure-as-a-Service), is totally different from web app service, which is PaaS(Platform-as-a- Service).

2.1Strength and weakness

Virtual machine service has familiar terminals to most of the software engineers. For those who is used to doing the deployment locally using Apache or Nginx, it is the same way to do it with the virtual machine provided with azure. The similar experience and performance of the virtual machine will not require extra skill from the engineers, thus less time consuming to use the VM service.

On the other hand, the service may not be so friendly to the beginners.Virtual machines require fully control of the system. This means that the users have to manage the whole system by themselves. With a high level of flexibility in customizing the environment and ability of not just hosting web apps but also doing data analytics and the potential to behave as a supercomputer, configuring and maintaining the VMs takes much more time than using web app services while Azure takes care of the server. Also, security of the machine is another thing to be considered. Extra time is needed to protect the machine from viruses and encrypting sensitive data.

Similarly to the web app services, VM service also provides pay-as-you-go pricing. The users only pay for what they use at a per-minute cost and they can just simply switching off the machines when not in use. Scaling out to multiple machines can also be done easily without redeployment of the code. However, VM is considered to be more expensive than the web app service since the minimum pricing tier available is over 50 pounds per month while you can find a free pricing tier in the web app service.

2.2 Applications

VM service is more suitable for the apps which is highly dependent on the customized system environment. It is also the best solution for existing apps running locally which would require modification if choosing web app services. Just by simply migrating every thing to cloud, the existing app will be good to run in no time. VM is certainly more than just hosting web apps. Big data analysis, artificial intelligence, machine learning, anything that relys on high performance of the computer can be done on the virtual machine as long as you can afford the price to pay for the use of a super computer in cloud.

2.3Usability

Setting up the virtual machines does take longer time than using the web app service. It is possible use SSH key to log into the VM and I find it quite easy and secure. Downloading the Apache server and having the dependency, such as MySQL database, installed to the virtual machine certainly takes time. Cloning the github repository that contains the sample code to local is necessary since it works exactly like normal ubuntu system. This means that extra work needs to be done manually every time to update the code to the latest version. On the other hand, everything is under the control of the user, so there is no such problem that database can not be initialized. The code that works on a local machine under ubuntu should behave exactly the same with all the dependencies installed onto the virtual machines, thus no extra worries are needed.

3 Architecture for a scalable cloud application

The image below shows an architecture for a scalable cloud application. The application basically uses Azure services and the design of the architecture is able to provide a stable performance to the application if all features are correctly implemented.

Fig 3.1

3.1Features

When the user sends in a HTTP request, the application gateway is in charge of routing them to the frontend. More than one servers are used in a scalable cloud application and some might be unavailable due to overloading traffic or just simply not turning on. The application gateway acts as a traffic load balancer, determines which server in the pool is available and then directs the request to that server. It is also possible for it to add or remove servers depending on the demand. In this way, the request can be responded in a short time and the network efficiency is optimized since all the servers have a nearly equal amount of workload determined by the gateway.

The application gateway provided by Azure also comes with a web application firewall. It mainly provides centralized protection of the application from common attacks without any change to the backend code. Modification of the back end code in order to prevent SQL injection attacks or scripting attacks can be time consuming, but the firewall makes securing the application much simpler. It blocks any ways of attack before routing the request to the server. Furthermore, it enables the administrator to monitor the web application against attacks using real-time log.

Correct use of caching is one of the most important steps to speed up the respond. For a large cloud application, it will take ages if every request is passed to the database eventually. Cache enables the most frequent requests and their results to be stored separately from the database. Instead of handling every request by the database, caching allows the filtration of the request and a faster retrieval of the requested data. Not only data, static pages can also be stored in cache. For example, some websites are using customized home pages for the users. Though every user has a different page, there must be some commonalities between some. These pages can be pre-rendered and stored in cache to decrease the time responded to the HTTP request and lower the pressure of the server. Though code becomes much more complicated than not using the cache, considering the potential to decrease the number of the servers and eventually lower the cost, caching is still a necessary component in a scalable cloud application.

With the growth of the application, it is possible to have some servers in different regions. The use of virtual private network, instead of having physical wires to connect the servers, decreases the cost. Internal communication of the data, status of the servers and others can all be achieved by the virtual private network. In order to provide the users with the best experience of using the application, it is recommended that there is one database in each area. All the databases share the same data and needs mutual communication provided by the VPN constantly. If all the servers in one region becomes unavailable for various reasons, traffic manager can notice the status of that region through VPN and pass on the request to servers in other regions. Since the database would have the exact same data, the service of the website will not be influenced and will continue to respond the request from the users.

4.DevOps

4.1Overview

The word ‘DevOps’ comes from software ‘development’ and information technology ‘operation’. It is now more refering to the unique culture of merging development team and operation team together to shorten the development cycle and deliver the application at high velocity in a reliable way at a large scale. Since bug fixing, more features adding and version updating frequently become possible under DevOps, it enables the organization to provide better service to their customers, thus more competitive in the market.

4.2 Key practices and Tools

Building up an application from a relatively large number of small service that co-operate to give a rather large system is called microservices architecture. As an important practice in Devops, the team can be split up into smaller team working on separate components of the system, optimizing the human resource and effectively increasing the speed of development.

Continuous integration is another practice where the developers constantly merging the code together to a central repository after automated tests are run independently. This would help to find the address bugs quickly, improve the software quality and eventually speed up the software updates. A version control system such as Git is used so that the team commit to a shared repository. Each time after the code is changed, automated tests can be run to surface any errors immediately.

In order to achieve rapid delivery, continuous delivery is necessary. It allows the code to be automatically prepared for a release to production. The process comes right after continuous integration and deploys all the changed code to the test environment or directly to the production environment. At this point, automated tests which tests the application as whole and are beyond unit tests enable the developers verify the updates before the deployment. Cloud services can be an easy and cost-effective solution to replicate differen environments for the actual testing.

With the increase in scale of the application, operating and managing the infrastructure and development process is a difficult thing to do. However, with the use of infrastructure as code, the developers can manage the complex and constantly changing system more efficiently with decreased risk. Instead of setting up and configuring the resources manually, developers would treat the whole infrastructure as programmable code and interact with it using cloud’s API models. With the infrastructure as code, configuration management and policy as code are both possible to be achieved. Configuration management automates the operation system to make configuration changes repeatable and standardized. Policy as code enables the developers to govern the changes made to the resources and security can be enhanced in a distributed manner since the code of the infrastructure can be tracked and configured in a automated way. In this way, latest version can be quickly deployed to the servers using the standardized patterns.

2018-11-25-1543187449

About this essay:

If you use part of this page in your own work, you need to provide a citation, as follows:

Essay Sauce, Cloud Services and DevOps Report. Available from:<https://www.essaysauce.com/computer-science-essays/cloud-services-and-devops-report/> [Accessed 14-04-26].

These Computer science essays have been submitted to us by students in order to help you with your studies.

* This essay may have been previously published on EssaySauce.com and/or Essay.uk.com at an earlier date than indicated.