Green Cloud Computing: E-Commerce Case Study

Abstract: Cloud computing is getting probably the most objective, purpose, and dreams in most IT organizations on account of the advantages they are getting by relocating their advancements into it like expense and asset sparing. Green blurring processing is turning into a significant pattern with a solid relationship with distributed computing. It is about green and productivity that won't just prompt a superior business yet in addition a superior world. This paper will discuss a major phase of the software development life cycle, which is an arrangement, and how the selection of sending computerization is superior to the manual one particularly in a manner to make your cloud green.


Introduction
Cloud computing is supplanting the old method of processing. It is pushing us to change our old method of applying the Software Development Life Cycle (SDLC). Particularly in the turn of events and organization stages, we need currently to take an outsider called cloud supplier in our contemplations during the product improvement measures [1]. A great deal of or path in work has been changed, the time we used to spend on improvement is less at this point. Be that as it may, then again, there will be additional work on prerequisites and correspondence with the outsider [1].
It additionally will give us a tremendous zone for computerization and booking for these mechanized assignments, we can apply mechanization in numerous stages like structure our delivery, which contains getting the source code and building it and applying the unit testing. Mechanization additionally applies to the arrangement stage.
In organization computerization, all the cycles will be robotized, the product arrangement itself, and the required pre-designs on the workers. Online business frameworks are the frameworks that are identified with the change of administrations, information, merchandise, reserves, and so on these exchanges organizations could show up as business-to-business, business-to-shopper, customer to-buyer, or purchaser to-business, and so on For E-commerce organizations, there should be an application or multi applications to mirror their organizations and administrations that give a ton of instruments or sub-apparatuses to help the business on the web, similar to messages, diagrams, live talk, web-based media reflection, installment strategies, and so on Having these multi sub-applications or instruments may be difficult to convey or to change once conveyed.
Having the E-commerce business on the cloud will add a ton of advantages to the business itself, including the capacity to apply the computerized conveyance for the subparts for the business with the capacity to return any missteps and to get heat to the most secure point in the pipeline.

Software Deployment
Software deployment is the cycle and's everything initiates that is lead the product to be accessible for its client and to prepare it to utilize [2]. Deployment may contain exercises other than conveying the executable code, it may contain arrangements or properties. These setups should be modified in light of the fact that each organization's climate is not the same as the others [2]. The arrangement cycle is typically done by the product deployer the one that is answerable for conveying the product [2].
All E-commerce frameworks are moved into distributed computing to increase all the administrations required for their organizations, the accessibility, tremendous information stockpiling, and a ton of different administrations that cloud computing gives.
In the deployment cycle, there is normally some cycle to be done after the organization too. It contains the checking, applying the updates if necessary, reset and reconfigure the setup, and un-send the product if necessary [2]. Since each cloud has its design, we may need to change a portion of the necessity to convey the product on the cloud climate [3], we may need to send a portion of the product conditions like other programming or administrations [3].
In a superior manner and proficiently, it is smarter to mechanize the entire organization's programming cycle to diminish the human factor and exertion and to decreases the manual undertakings the might prompt blunders during deployment [3].

Cloud Computing Types
Cloud computing could be classified into these types: public, private. And hybrid clouds:

A. Public Cloud
A public cloud is facilitated on the web and intended to be utilized by any client with a web association with offer types of assistance. The well-known public mists are Amazon Web Services (AWS), Google AppEngine, and Microsoft Azure. [16] In this deployment, Cloud administrations are caused accessible to people in general in a pay-more only as costs arise way. A public cloud can offer any of the three sorts of administrations: IaaS, PaaS, and SaaS. For instance, Amazon EC2 is a public cloud giving framework as assistance, Google AppEngine is a public Cloud giving an application improvement stage as a help, and Salesforce.com is a public cloud giving Software as a Service.
[16]. The fundamental attributes of public mists are its multitenancy, nature of administration, and security. [16]

B. Private Cloud
A private cloud is facilitated inside a venture, behind its firewall, and planned uniquely to be utilized by that endeavour by contributing and dealing with its cloud framework, yet gains profits by pooling fewer halfway kept up superior processing and capacity assets as opposed to conveying countless lower execution frameworks [16].
The private cloud administrations offer more noteworthy command over the foundation, improving security and administrations strength since its entrance is confined to one or not many associations [16]

C. Hybrid Cloud
A hybrid cloud is a deployment that arose because of the dispersion of both public and private mists' preferences. In this model, associations redistribute non-basic data preparing to the public cloud, while keeping basic administrations and information in their control [16].
Three cloud computing administrations are thought of, including storage as a service, processing as a service, and software as a service [16].
Storage as a service allows users to store data in the cloud. Processing as a service gives users the ability to outsource selected computationally intensive tasks to the cloud. Software as a service combines these two services and allows users to outsource all their computing to the cloud and use only a very-low-processing-power terminal at home [16].

E-Commerce and Cloud Computing
Because Customer expectations from E-commerce systems have evolved significantly over some time. Today customers are expecting a better and faster online experience that closely matches the in-store experience. They want to utilize different channels (Web, Mobile, Kiosks, TV, In-Store, and Customer Support, etc.) seamlessly to complete their purchase transactions. Customers have access to several social networking mediums, which they want to utilize to get more information and opinions on the products to make their decisions.
Businesses are facing a tough task in matching these increasing consumer demands. It is not only important for businesses to have an online presence but also to keep the online presence updated with the latest technology and business trends.
Cloud computing through its different service models, addresses many technical and business challenges in building and managing modern E-commerce systems. Many of the E-commerce businesses are already using some form of IaaS, PaaS, or SaaS [14].

Deployment Automation
A lot of the applications now days are very complex and not easy to deploy. A lot of companies are building and deploying their software systems manually, and most likely there are teams to manage these processes [4]. This might lead us to some errors especially the human ones. Even it's not that complex it will take time to finish all the deployments step. Developers need to adopt changes in three terms: [5]  How the application is going to be deployed?  How the software is built?  How the problems and the errors can be debugged?
Automation, in general, is to make a hardware or software to operate automatically and to have a monitor on the delivery for them. If we have automated the whole process, it will lead us to have a lot of benefits like reducing the cost of monitoring and managing the application [6].
Nowadays, we have a lot of tools and approaches to automate the SDLC processes. Also, DevOps community provides a lot of tools and architectures to adopt the automation of deployment process [6].
Build, deployment, and testing automation is a way to achieving reduce in time.
The deployment team should build a deployment schedule or a deployment pipeline to achieve this. A deployment pipeline is a path to production for all changes to a given system, like code, environments, database and references, or configuration and properties [7].
The deployment pipeline handles the building, testing, and deploying the software systems. By using the deployment pipeline, we can manage any changes that the system can adopt after validating if it is fitting in the release, and doing some useful automated tests.
If it is successful, the deployment will become available after a button to deploy in the different environments [7]. The Automated Deployment Pipeline will reduce the risk of errors in the delivery process. In a fully DA, build, test, or deploy a piece of software is recorded and logged, along with its output and the stack flow.
Automation also allows testing for the code change. This has three important results of DA:  Automatic documented and errors log.  Reduce the number of people who need to approve or implement changes.
In another hand, DA helps people to collaborate because all that we need is a script [4]. It will also the documentation is written in a way that handles the level of knowledge for the person who is handling the deployment [4].
DA is controlling the testing, staging, production environment one build and one deploy pipeline can be applied to repeatable re-create every piece of software, configurations, and properties you need to accomplish your deployment [4]. Here are some explanations for some terms we used in describing the DA:

A. Deployment Pipeline
A deployment pipeline is the automation of your process to get your software systems into the end-users. It includes building the software, followed by integration with multiple staging of testing and deployment.
It requires collaboration between many teams. The deployment pipeline contains a release management tool to allow you to control the progress of the whole process [4]. Figure 2 will show an example of DA pipeline [4].

B. DevOps
Because cloud applications expect fast reaction into the changing and requirements as well as fixing all the appearing issues, the applications need to be redeployed frequently to production, several times a week, or on every day. Development and operations (DevOps) need to be coupled and cooperate to enable the redeployments [8].

Figure 2. Example of a DA Pipeline [4]
It aims to reduce the gap between developers and operations to automate the deployment process from the code to the production environment [8].
DevOps is a set of activities or practices to encourage the collaboration between developers and IT operations to reduce the feedback cycle while achieving the goals of both the development and IT operations departments [10].
DevOps is establishing quality measurements and creating a culture of collaboration between people [10]. While DevOps has its methodologies, its adoption is still very limited [9].
For IT, the focus is on deployments across the SDLC from code through to production. There are a lot of tools to handle the whole process and services. The adoption of these tools should associate development and production [9].
DevOps will monitor a lot of automated processes running in the company like the automated delivery and automated build. Check the figure below:

Green Cloud Computing
In 1987 the world came up with Green computing, it starts with the idea of "sustainable development". U.S. Environmental Protection Agency (EPA) established the Energy Star program in 1992. The main goal of the Energy Star program is to reduce energy consumption [11].
One of the principles of Green Computing is how we can let our computers and other technology deal and respect our plant environment by reducing the consumption of resources and energy with keeping the best performance and productivity [11].
The main goal of Green Computing is to develop computers system with:  Low cost  Reduce energy consumption  Minimize harmful materials  Try to use biodegradable materials  Extends the lifetime of the equipment Those above points will help us to create a greener environment for the plant, and also, we have to take care of how we can reduce the power consumption of the data center as cooling, and the infrastructure as you can see the data center of USA consume 1.5% of the total consumption of the country.
Only 50% of this energy goes to useful work performed by servers, and the rest of the energy goes to cooling, and infrastructure [12].

Automation is Green
In the world, where the servers and the cloud are controlled under the cloud models. There is a need for green computing to make these saving more energy, economically reliable, saving cost, and saving time. The service provides should take into consideration to provide energy-efficient services at an economical cost. There is a lot of challenge and complexity in that. We need to minimize the use of energy even in case of huge data [11].
Deployments should be fully automated. There should be only two tasks for a human being to perform to deploy software into a development, just to pick up which version we want to deploy, and then to press the deploy button [4]. It is only a single process that will be applied to all servers and environments. This behavior will reduce the cost of resources, the energy needed, and the time for deployment to be finished successfully.
Imagine that the deployment process is not automated, it will not be reliable and it cause a wasted time on debugging the deployment error [11].
The word efficiency is green by itself, by having a business efficiency beside the energy efficiency will lead to a green cloud and green environment and green business that will reduce the loss of any unneeded cost.
It will accomplish the main three requirements to reaches the green cloud and business:  Resource-saving.  Cost-saving.  Energy-saving.

A. Resources Saving
In the manual way of deployment. It needs a lot of developers and deployers to apply the build steps and to check the errors after the build. Deployment in a manual way will not be error-free also. The human factor will cause many errors during the process.
Also, manually, there is going to be a lot of calls to the team of developers to explain the errors that are appearing in the deployment in the release day (critical time) [4].
A disadvantage of manual deployment is the dependability on the deployment experts, it will cause a big issue if he or she is not available at deployment time and to provide alternative deployers will cost resources and money [4].
Appling the DA in the cloud will reduce the workload for developers who need to use the resources of the cloud [3]. It will reduce the number of needed developers and deployers to apply the build and deploy processes.

B. Cost Saving
By cost saving, we are talking about the cost of time and the cost of money. Losing cost is one of the most losses that the company might have. In another way, cost-saving will not only increase business efficiency, but it also will make the holders focus on environmental issues and performance wellness using the extra time and money they got by reducing the cost in the SDLC.
By applying the manual way of deployment, extra time will be spent in the detailed documentation that describes the deployment steps to figure the steps that lead to errors in the deployment process [4]. Also, by deploying manually, extra time and money will be spent on the frequent correction of the releases during the deployment time to fix the bugs we had [4].
DA will reduce the number of dedicated test environments, no need for a lot of environment for testing. And it will reduce the cost of responsible people for managing these extra environments [8].

C. Energy Saving
Energy saving is the aim of most organizations in the world because of the issues and environmental pollution in producing energy. To solve the energy issue, we must follow these two processes: 1. Find a green source of energy. 2. Reduce the energy we are using.
By deploying software manually, a lot of extra monitors screen will be running outside the normal working hours [4].
Manual deployment usually takes a lot of time, the energy to run the office lights, monitors, air conditioners and food machine suppliers are considered waste energy. DA will reduce the energy of all those mentioned above. It will reduce energy consumption, bandwidth usage, and communication delays substantially [13].

Conclusions
DA has a lot of benefits in improving the SDLC, it also produces a better, stronger, more reliable, and dependable software systems.
Besides all the benefits of DA, the whole organization now are taking the earth in its consideration. The main purpose of technologies is to help humanity, and by saving our homeland (the earth), we will reach to the extreme benefit of the technologies. Also, DA will lead to the efficacy not only for the community but for our business too.