By Fatskills Exam Guides Team — the exam nerds behind 28,500+ quizzes and 2.1M practice questions across 500+ global exams.
Objective: Explain the factors that contribute to capacity planning. In this guide you will learn about capacity planning, which is the ongoing process of ensuring that your resources meet the needs of your consumers (employees, customers, clients, and so on). You will first be introduced to requirements; you can use them to define what levels of components, such as hardware and software, are needed to meet consumer needs. This guide will also cover licensing models, which are necessary to determine the best cloud-based solution for your organization’s business needs. You will also learn the basics of performance capacity planning, which is used to determine how many resources are needed during the lifecycle of your project or program. Topics: - Requirements - Standard Templates - Licensing - User Density - System Load - Trend Analysis - Performance Capacity Planning Questions: 1. What are some of the hardware requirements that you should consider when implementing a cloud-based resource? 2. Name two common cloud template data formats. 3. Which licenses are based on the CPU? 1. vCPUs, GPUs, RAM, Storage, Network performance 2. JSON and YAML 3. Socket-based and core-based Requirements One of the first steps to capacity planning is to determine your business and technical requirements. Cloud-based projects tend to be very flexible and have different requirements. To best ensure you meet both current and future business and/or technical needs, you should explore the following requirements before performing any of the other steps of capacity planning. Hardware Requirements Some of the services that you deploy in the cloud provide you with the option of choosing different hardware. For example, if you create a virtual machine or a database, you are normally provided with the option of choosing how much RAM, hard disk space, and other hardware components you need. The choice of hardware profile is important in regard to capacity planning. The more RAM, hard disk space, vCPUs, and so on that you choose, the more your service will end up costing. However, if you opt for less hardware resources, you risk having the service fail to perform. The hardware that you need to consider when performing capacity planning includes: - vCPUs: Virtual CPUs provide the processing power. If your instance needs to perform a lot of processing, you need to take that into consideration when determining how many vCPUs to allocate to your instance. - GPUs: The graphics processing unit has a large impact on how images are processed on the system. - RAM: Random-access memory is used to store data for applications that are running. You should consider reviewing the software requirements for all the applications that you intend to install on the instance(s). This also has an impact on your machine learning models as well as the capability to execute other functions. - Storage: You not only need to consider how much storage your instance(s) would need but also the different storage types that the cloud vendor provides. They may differ based on storage requirements for databases, application data, or archival needs. See Chapter 12, “Storage in Cloud Environments,” for more details on storage types. - Network performance: Most of the data transiting into or out of your cloud instance will be across either a public network, such as the Internet, or one of the private channels offered by cloud platform providers, such as Direct Connect (AWS), Inter Connect (GCP), or Express Route (Azure). As a result, the speed of the network for your instance will be an important decision when it comes to capacity planning. Software Requirements The software that you need to deploy in your cloud environment is another key requirement to determine during the capacity planning phase. In fact, what software you decide to use may determine which cloud provider you will end up using. For instance, consider a situation in which you have decided to migrate an existing on-premises database solution to the cloud. The constraints of the existing database solution will have an impact on which cloud database solution you migrate to. And, because different cloud providers have different database solutions, the cloud solution you decide to migrate to may be available only from some cloud providers. When determining a software solution, consider your needs and evaluate solutions to ensure they can meet your needs. Determine a schedule of deployment and clearly define constraints during the capacity planning phase to limit any scope creep (when additional features are required after a solution is in the implementation phase). Budgetary Requirements If money were not a consideration, then capacity planning would be a much simpler process. However, any viable solution must take the bottom line into consideration. The budget of any cloud project should be determined in the capacity planning phase, and any solution that is selected should include some flexibility/buffer. Business Need Analysis There must be a strong reason to implement any new feature or software project in an organization. This reason is typically defined by a business need analysis. When you are conducting a business need analysis, the requirements of the business (the need) are clearly defined. Additionally, potential solutions are proposed that could meet the needs of the business. This analysis gives the decision makers in the organization the data needed to make the best choices of solutions. Standard Templates In cloud computing, a template is a reusable model that enables you to quickly implement a resource within the cloud. For example, if you want to implement a virtual machine in the cloud, you would normally need to provide information such as the amount of RAM, the type of operating system, the storage space, and so on. A template can provide some or even all of this information automatically, making the process of implementing multiple virtual machines much quicker compared to manually providing this information. Templates can be used to automate the creation of many different types of cloud resources. They typically use a well-defined data format, such as Java-Script Object Notation (JSON) or YAML Ain’t Markup Language (YAML). For example, the following is a simple template in JSON format to create an AWS S3 bucket (a storage container): { - "Resources" : { "SampleBucket" : { "Type" : "AWS::S3::Bucket" } - } } The next example creates the same S3 bucket using YAML: Resources: - SampleBucket: - Type: AWS::S3::Bucket Licensing When using the services of a cloud provider, you are utilizing resources (hardware, software, expertise, and so on) of the cloud provider. The cloud provider’s business model is to make money by exchanging these resources for money. How this exchange is determined is based on the license. A license is a component of the agreement or contract between the cloud provider and the client that determines how the client will be charged for the resources provided by the cloud provider. Most cloud providers offer a wide variety of license models to meet the various needs of their clients. Per-user With a per-user license, the client is charged a fee for each user who uses the resource. This model is very common in SaaS cloud resources, such as an email service or a service that manages customer contact data. Socket-based For licensing purposes, a socket refers to a CPU socket. The socket provides the connection between the CPU and the motherboard. Socket-based licenses are common on virtual machines and resources based on virtual machines, such as database servers. This sort of license is not typically applicable to public cloud providers, but if your organization is deploying its own private cloud, this license may apply. Virtual machine software, like VMware, may include a socket-based license structure. Compare socket-based licenses to core-based licenses, which are covered later. Volume-based If a cloud client has the need for a large amount of resources, the cloud provider will often provide a volume-based license. With this license, a discounted price is provided to the client for agreeing to use a larger amount of resources. Volume-based licenses either require the client to pay in advance for the resources or agree to a long-term contract (typically one to three years in length). Core-based Older CPUs had just a single processing core. Modern CPUs typically offer multiple cores. A core is a part of the CPU that can perform the calculations required by the operating system or applications. Core-based licenses are common on virtual machines and resources based on virtual machines, such as database servers. Often novice users tend to prefer core-based licenses to socket-based licenses because understanding the concept and purpose of a CPU core is generally easier than understanding the concept and purposes of CPU sockets. Subscription A subscription is a license model that is typically reserved for SaaS resources, such as M365 or Google Workscape. With a subscription the resource is made available to the client for a specific period of time, typically one year. Subscription models normally include either a per-user cost or a volume-based cost. User Density Consider a situation in which you need to deploy virtual machines for your employees to perform their work. You find yourself asking, “How many virtual machines do I need to deploy?” This is an important question to ask when planning your cloud implementation. A major consideration in determining the answer to this question is user density. Think of the user density as a calculation of how many users can utilize a single system or resource without that resource being overutilized or underutilized. This is a critical calculation because - If you miscalculate with a lower-than-optimal user density, you will end up paying more for resources. For example, if you have 100 users and calculate that 5 users should be assigned to each resource, but really 20 users could use each resource, you end up paying for 20 resources when 5 resources would be optimal. - If you miscalculate with higher-than-optimal user density, you will end with resources that don’t provide timely services to the user base. For example, if you calculate that a web server can handle 100 simultaneous user requests when it really can handle only 75 user requests, the server will likely respond slowly or become entirely unresponsive. Calculating the right user density requires testing and a bit of guesswork. Anticipating exactly how users will utilize a resource can typically only be done by making educated guesses because users may be unpredictable. There are tools that help with these calculations, including tools that provide system load information and trend analysis tools. System Load System load is a term that refers to how busy a resource or its components are. For example, if the resource is a database, system load can refer to the average read and write operations to the database. The statistics of the system load vary based on the resource itself and should be measured over time. The performance of your resources will be critical for capacity planning, and the system load provides a good insight into this performance. A sudden spike in system load typically is considered an anomaly, but a continuous or routine spike over a period of time, such as a day or week, could indicate that more resources are needed. Trend analysis is used in conjunction with system load statistics to determine if additional (or even fewer) resources are required for optimal performances of a resource. Trend Analysis Consider this scenario: Your organization currently has three web servers to handle web traffic from customers and clients. Lately, some customers have been complaining that your web servers seem slow and sometimes unresponsive. You need to determine if this is an issue with your web servers or another problem (network, customer-side problems, and so on). Using trend analysis can help you with this process. Using data accumulated over time, you will be able to determine if you need to add more resources or, in some cases, scale back and reduce the number of resources. To perform trend analysis, you will need to understand baselines, patterns, and anomalies. Baselines A baseline is statistical information that demonstrates the system load of a resource when under “normal” usage. A baseline is typically created when the resource is first deployed, and additional baselines are created as your environment evolves (such as when you add additional resources or increase the capabilities of a resource). Baseline values are compared with future system loads to determine if a resource is being overtaxed or underutilized. Patterns A pattern can help you make smart and flexible capacity planning decisions. For example, consider a situation in which your company offers a new release of your software product every six months. By looking at previous baselines, you have determined that when a new version is released, there is a spike in traffic to your web servers. As a result of this, you can plan for this spike by increasing the number of web services prior to the release of the new version of the software. You can also plan on reducing the number of web servers a week after the software release, which patterns indicate is when web server traffic typically returns to normal. Anomalies An anomaly occurs when statistical information deviates from the standard or norm. These anomalies can be useful in some situations but can also cause problems when not properly understood. For example, consider a sudden spike in traffic to your web server. This anomaly could be the result of hacking attempts against your company or the results of new interest in your company’s products and services. Determining the cause for the anomaly is important because the reaction to the anomaly (if there is a reaction) should be carefully considered. For example, if the cause for the spike in network traffic is a press release made by your company about a new software feature, you may decide to take the following actions: - Temporarily include the number of web servers to respond in a timely manner to the new volume of requests. - Contact the person who is responsible for press releases in your organization to coordinate future press releases with an increase in available web servers. However, if the spike is due to massive hacking attacks, you likely don’t want to increase the number of web servers because doing so just provides more availability to the hackers. Performance Capacity Planning The purpose of performance capacity planning is that you determine the number of available resources based on performance. In other words, your resources must meet the needs of the internal or external consumers in order for the performance to be acceptable to the consumer. Performance capacity planning makes use of the system load statistics and trend analysis described in previous sections of this guide. Keep in mind that this is an ongoing process, not something that you do once and then forget about it. Quiz Questions: Answer these questions. The answers follow the last question. If you cannot answer these questions correctly, consider reading this section again until you can. 1. When conducting a _____ analysis, the requirements of the business (the need) is clearly defined. A.Business need B.Trend C.Hardware D.Software 2. In what format is the following template? { "Resources" : { A.XML B.HTML C.JSON D.YAML 3. In what format is the following template? Resources: SampleBucket: Type: AWS::S3::Bucket 4. _____is a term that refers to how busy a resource or its components are. A.Trend analysis B.System load C.User density D.Anomaly Quiz Questions: Answers 1. Business need analysis 2. JSON 3. YAML 4. System load Code Snippets
Join 4M+ learners. Unlock unlimited quizzes, wrong-answer tracking, flashcards + reminders, study guides, and 1-on-1 challenges.