• Ei tuloksia

Capacity Management Process

3. CLOUD CAPACITY MANAGEMENT

3.2 Capacity Management Process

Sabharwal and Wali’s (2013) capacity management process prior to moving workloads to a cloud environment is depicted in the figure below.

Capacity management process prior to the cloud (adapted from Sabharwal & Wali 2013)

Capacity needs should be translated from business to service to component level re-quirements as discussed in section 3.1. Consumers should have the ability to make ap-propriate forecasts, as forecasting is essential when attempting to determine capacity requirements. (Sabharwal & Wali 2013) Reese (2009) further emphasizes how consum-ers must be able to make demand forecasts and undconsum-erstand how they affect applications.

Monitoring tools provide consumers with data and information on current utilization and optimization requirements. Therefore, in the case of new cloud deployments, capacity requirements are collected from existing tools. (Reese 2009) Allspaw and Kejariwal (2017) similarly state how capacity planning requires the measurement and historical details of systems and application-level metrics. Microsoft further highlights that in order to estimate costs, understanding of the current resources required to run a workload is important. An inventory of current assets which include servers, Virtual Machines (VM), databases and storage assists in giving transparency to the capacity needs in the cloud.

(Micorsoft Azure 2018) Allspaw and Kejariwal (2017) identify a process for capacity fore-casts:

• Determining and measuring the essential metric for each resource, i.e. disk con-sumption

• Identifying constrains of each resource, i.e. total disk space

• Predicting when usage will exceed constrains using trend analysis

Allspaw and Kejariwal (2017) further mention how capacity planning should include the understanding of a systems upper performance boundaries. Knowledge on this matter assists in decreasing the risk of reaching upper boundaries. This includes knowing the fundamental hardware resources, such as CPU, memory, disk and network usage. (All-spaw and Kejariwal 2017) In addition, consumers must try to evaluate future demand in order to forecast capacity utilization. Consumers should have knowledge of how an ap-plication experiences seasonal variations or varying demand levels depending on the time of day. It is also important that during this stage of the capacity management pro-cess, the consumer weighs the different cost and performance related factors of both on-premise and cloud options. (Sabharwal & Wali 2013)

Singh and Chana (2015) identify that the management of resources in cloud environ-ments is highly complex. The extent of the complexity pushes for the need of efficient techniques to manage resources (Singh & Chana 2015). The capacity design focuses on resource utilization and optimum performance, while keeping costs in mind. The fac-tors included in the design for capacity stage are, establishing a capacity approach, es-tablishing an architecture, applying capacity techniques and checking for cost optimiza-tion possibilities. The capacity approach includes being aware of over and under provi-sioning. Both over and under provisioning of cloud resources effect cloud economies in a negative manner. (Sabharwal & Wali 2013) Faulty provisioning of resources results in wasted time and resources, which cause an increase in costs (Singh & Chana 2015).

The capacity architecture should aim at developing applications to consume the lowest amount of capacity, in other words avoiding poor utilization of resources and emphasiz-ing scalability. Applyemphasiz-ing capacity techniques includes application dependency mappemphasiz-ing.

Moreover, ensuring cost optimization entails identifying which service and cost models to use according to the applications needs. Cloud consumers have many options to choose from, which further complicates the migration of applications to a cloud environ-ment, as mentioned in prior sections of this thesis. Testing the application in a cloud environment prior to moving the application to the cloud should be considered during the capacity design phase. (Sabharwal & Wali 2013) Similarly, prior to moving any workloads to a cloud environment, the case company identifies how it is extremely important to focus on the design of the application. This makes the biggest difference cost optimiza-tion wise, as utilizing cloud capabilities and automaoptimiza-tion is essential. (Case Company 2019b) In order to take full advantage of cloud computing, consumers must rethink how to design and develop software (Hähnle & Johnsen 2015).

Once the requirements for capacity and capacity design are clear, the capacity plan is formulated as an accumulation of the prior two stages of the capacity management pro-cess. The plan should cover the business, service and component aspects of capacity management, and needs to be based on existing and future business demand. The ca-pacity plan should include, but not be limited to, application details, user task scenarios, forecasting, monitoring and metrics. When consumers deploy new applications to a cloud environment, the capacity plan ensures that the maximum benefits are reaped from the use of cloud computing. In other words, the capacity plan aims at ensuring applications are cost efficient. For applications that are already deployed in a cloud environment, the capacity plan aims at keeping capacity requirements optimized and tuned. (Sabharwal

& Wali 2013)

Figure 11 demonstrates Gartner’s practice-based model of the application optimization process prior to moving workloads to a cloud environment (Anderson 2018).

Application optimization process prior to the cloud (adapted from Anderson 2018)

The planning phase includes the determination of the application profile. This comprises of sizing the application, mapping all dependencies, identifying all data repositories, iden-tifying integrations and monitoring resource usage. (Anderson 2018) Sabharwal & Wali (2013) similarly agree that when developing new applications, consumers should focus on creating the base case of utilization. These could include factors such as the number of users, or number of transactions. Monitoring tools provide information on current ap-plication capacity usage. This data can be used to size the new systems. (Sabharwal &

Wali 2013) Both Anderson (2018) and Sabharwal and Wali (2013) emphasize how in addition to gathering all the technical capacity requirements, the planning phase must also take capacity related costs into consideration, while staying in line with business objectives. Wang, Hayat, Ghani & Shaban (2017) further state that services deployed in a cloud environment by cloud consumers must have adequate computing resources to primarily satisfy consumer requirements.

The deployment phase activities depend on the chosen cloud service model. Rehosting (IaaS) means migrating the application. This entails moving the virtualized application

components, re-establishing integrations and moving data or reconnecting application components to data repositories. Recoding (PaaS) considers rebuilding the application.

This service model includes the identification of cloud platform services, recoding the application using cloud APIs and relinking using PaaS components. (Anderson 2018) Sabharwal and Wali (2013) also discuss the importance of considering the deployment model during the capacity design phase. Section 2.3 of this thesis covers the different service models in more detail.

The case company points out various scenarios where moving to a public cloud environ-ment is highly recommended. Figure 12 depicts the different scenarios:

Workloads that experience i.e. weekly, monthly or seasonal variations are most likely best suited for a public cloud envi-ronment especially from a service and cost point of view.

The cloud can be configured to handle un-predictable bursts in service demands that originate from varying events.

When future growth of a solution is un-known, the cloud can be configured to scale up alongside the increase in de-mand. The scaling activity can be auto-mated.

Capacity that is needed on an occasional basis, such as batch workloads that need a lot of capacity at certain points in time can be very cost efficient in the cloud.

Case company’s view on workloads that are the most suitable for the public cloud (adapted from Case Company 2019b)