Chapter 6 Capacity Planning Capacity Planning Capacity planning

  • Slides: 51
Download presentation

Chapter 6 Capacity Planning

Chapter 6 Capacity Planning

Capacity Planning • Capacity planning is the process of determining the production capacity needed

Capacity Planning • Capacity planning is the process of determining the production capacity needed by an organization to meet changing demands for its products. In the context of capacity planning, design capacity is the maximum amount of work that an organization is capable of completing in a given period.

 • Capacity planning examines what systems are in place, measures their performance, and

• Capacity planning examines what systems are in place, measures their performance, and determines patterns in usage that enables the planner to predict demand. • Resources are provisioned and allocated to meet demand.

 • Difference • Capacity Planning and System Optimization. • System optimization aims to

• Difference • Capacity Planning and System Optimization. • System optimization aims to get more production from the system components you have. • Capacity planning measures the maximum amount of work that can be done using current technology. • If system optimization occurs during capacity planning, that is god but capacity planning efforts focus on meeting demand.

Capacity planning Steps 1. Determine the characteristics of the present system. 2. Measure the

Capacity planning Steps 1. Determine the characteristics of the present system. 2. Measure the workload for the different resources in the system: CPU, RAM, disk, network, and so forth. 3. Load the system until it is overloaded, determine when it breaks, and specify what is required to maintain acceptable performance. 4. Predict the future based on historical trends and other factors. 5. Deploy or tear down resources to meet your predictions. 6. Iterate Steps 1 through 5 repeatedly.

Baseline and Metrics • LAMP • Baseline measurements – Page views or hits on

Baseline and Metrics • LAMP • Baseline measurements – Page views or hits on the Web site, as measured in hits per second – Transactions completed on the database server, as measured by transactions per second or perhaps by queries per second • Monitor Web pages to determine their response, latency, uptime, and other characteristics.

LAMP • LAMP comes from – L = Linux – A = Apache –

LAMP • LAMP comes from – L = Linux – A = Apache – M = My. SQL – P = Perl/PHP/Python • The LAMP stack is open source software that enables rapid development of web-based and database-based applications

 • The total workload might be served by a single server instance in

• The total workload might be served by a single server instance in the cloud, a number of virtual server instances, or some combination of physical and virtual servers.

Characteristics are determined by these baseline studies • WT, the total workload for the

Characteristics are determined by these baseline studies • WT, the total workload for the system per unit time • WAVG, the average workload over multiple units of time • WMAX, the highest amount of work recorded by the system

System metrics • A machine instance (physical or virtual) is primarily defined by four

System metrics • A machine instance (physical or virtual) is primarily defined by four essential resources: – CPU – Memory – Disk – Network

Load testing 1. What is the maximum load that my current system can support?

Load testing 1. What is the maximum load that my current system can support? 2. Which resources represents the bottleneck in the current system that limits the system's performance? This parameter is referred to as the resource ceiling. Depending upon a server's configuration, any resource can have a bottleneck removed, and the resource ceiling then passes onto another resource. 3. Can I alter the configuration of my server in order to increase capacity? 4. How does this server's performance relate to your other servers that might have different characteristics?

 • • • Load testing is also referred to as performance testing, reliability

• • • Load testing is also referred to as performance testing, reliability testing, stress testing, volume testing.

Resource ceilings

Resource ceilings

 • WSn. P represents the workload of your physical server(s) • WSn. V

• WSn. P represents the workload of your physical server(s) • WSn. V is the workload of the virtual servers (cloud-based server instances) of your infrastructure.

Server and instance types • Goal of capacity planning is to make growth and

Server and instance types • Goal of capacity planning is to make growth and shrinkage of capacity predictable. • This is done by standardizing on a few hardware types and then well characterizing those platforms. • For eg in amazon Web services use of different machine instance sizes is an attempt to create standard servers. • Reducing the variability between servers makes it easy to troubleshoot problems and deploy new systems.

 • Micro Instance: 633 MB memory, 1 to 2 EC 2 Compute Units

• Micro Instance: 633 MB memory, 1 to 2 EC 2 Compute Units (1 virtual core, using 2 CUs for short periodic bursts) with either a 32 -bit or 64 -bit platform • Small Instance (Default): 1. 7 GB memory, 1 EC 2 Compute Unit (1 virtual core with 1 EC 2 Compute Unit), 160 GB instance storage (150 GB plus 10 GB root partition), 32 -bit platform, I/O Performance: Moderate, and API name: m 1. small • High-Memory Quadruple Extra Large Instance: 68. 4 GB of memory, 26 EC 2 Compute Units (8 virtual cores with 3. 25 EC 2 Compute Units each), 1, 690 GB of instance storage, 64 -bit platform, I/O Performance: High, and API name: m 2. 4 xlarge • High-CPU Extra Large Instance: 7 GB of memory, 20 EC 2 Compute Units (8 virtual cores with 2. 5 EC 2 Compute Units each), 1, 690 GB of instance storage, 64 -bit platform, I/O Performance: High, API name: c 1. xlarge

Network Capacity There are three aspects to assessing network capacity: • Network traffic to

Network Capacity There are three aspects to assessing network capacity: • Network traffic to and from the network interface at the server, be it a physical or virtual interface or server • Network traffic from the cloud to the network interface • Network traffic from the cloud through your ISP to your local network interface (your computer)

 • To measure network traffic at a server's network interface, you need to

• To measure network traffic at a server's network interface, you need to employ what is commonly known as a network monitor, which is a form of packet analyzer(also known as network traffic monitor or protocol analyzer). • Microsoft includes a utility called the Microsoft Network Monitor as part of its server utilities.

Cloud's network performance is a measurement of WAN traffic. A WAN's capacity is a

Cloud's network performance is a measurement of WAN traffic. A WAN's capacity is a function of many factors: • Overall system traffic (competing services) • Routing and switching protocols • Traffic types (transfer protocols) • Network interconnect technologies (wiring) • The amount of bandwidth that the cloud vendor purchased from an Internet backbone provider Eg : Path View Cloud Software

Scaling • In capacity planning, after we have made the decision that we need

Scaling • In capacity planning, after we have made the decision that we need more resources, we are faced with the fundamental choice of scaling our systems. We can either scale vertically (scale up) or scale horizontally (scale out), and each method is broadly suitable for different types of applications. • Scale Vertically (scale up) • Scale Horizontally (scale out)

Scale Vertically (scale up) • • To scale vertically, you add resources to a

Scale Vertically (scale up) • • To scale vertically, you add resources to a system to make it more powerful. For example, during scaling up, you might replace a node in a cloud-based system that has a dual processor machine instance equivalence with a quad-processor machine instance equivalence. You also can scale up when you add more memory, more network throughput, and other resources to a single node. Vertical scaling allows you to use a virtual system to run more virtual machines (operating system instances), or take advantage of more RAM (memory) and faster compute times.

Scale Horizontally (scale out) • • • Horizontal scaling or scale out adds capacity

Scale Horizontally (scale out) • • • Horizontal scaling or scale out adds capacity to a system by adding more individual nodes. In a system where you have a dual-processor machine instance, you would scale out by adding more dual-processor machines instances or some other type of commodity system. Scaling out indefinitely leads you to an architecture with a large number of servers (a server farm), which is the model that many cloud and grid computer networks use. Horizontal scaling allows you to run distributed applications more efficiently and is effective in using hardware more efficiently because it is both easier to pool resources and to partition them. Scaling out indefinitely eventually leads you to an architecture with a single powerful supercomputer.

Chapter 7 Exploring Platform as a Service

Chapter 7 Exploring Platform as a Service

IN THIS CHAPTER • • Understanding the Paa. S service model Learning about Paa.

IN THIS CHAPTER • • Understanding the Paa. S service model Learning about Paa. S development Viewing examples of Paa. S sites and tools Discovering common Paa. S-built application features

 • The Platform as a Service model provides the tools within an environment

• The Platform as a Service model provides the tools within an environment needed to create applications that can run in a Software as a Service model. For this reason, some overlap between vendors has created Software as a Service products, and those vendors have broadened their services to make their Web applications more customizable. • Salesforce. com, the largest CRM application service company in the world, is an example, with Force. com being its Paa. S (Platform as a Service) offering.

Defining Services • With Platform as a Service systems, you are given a toolkit

Defining Services • With Platform as a Service systems, you are given a toolkit to work with, a virtual machine to run your software on, and it is up to you to design the software and its user-facing interface in a way that is appropriate to your needs. So Paa. S systems range from full-blown developer platforms like Windows Azure Platform to systems like Drupal, Squarespace, Wolf, and others where the tools are modules that are very well developed and require almost no coding.

Services Provided by Paa. S Models • Application development: A Paa. S platform either

Services Provided by Paa. S Models • Application development: A Paa. S platform either provides the means to use programs you create in a supported language or offers a visual development environment that writes the code for you. • Collaboration: Many Paa. S systems are set up to allow multiple individuals to work on the same projects. • Data management: Tools are provided for accessing and using data in a data store. • Instrumentation, performance, and testing: Tools are available for measuring your applications and optimizing their performance. • Storage: Data can be stored in either the Paa. S vendor's service or accessed from a third-party storage service. • Transaction management: Many Paa. S systems provide services such as transaction managers or brokerage service for maintaining transaction integrity. • Paa. S systems exist to allow you to create software that can be hosted as Saa. S systems or to allow for the modification of existing Saa. S applications.

 • A good Paa. S system has certain desirable characteristics that are important

• A good Paa. S system has certain desirable characteristics that are important in developing scalable, and hopefully portable applications. On this list would be the following attributes: • Separate of data management from the user interface • Reliance on cloud computing standards • An integrated development environment (IDE) • Lifecycle management tools • Multi-tenant architecture support, security, and scalability • Performance monitoring, testing, and optimization tools

Salesforce. com versus Force. com: Saa. S versus Paa. S • • • There

Salesforce. com versus Force. com: Saa. S versus Paa. S • • • There can be no better example illustrating the difference between a Saa. S and Paa. S system than that of Salesforce. com and Force. com. Salesforce. com is a Web application suite that is an Saa. S. Force. com is Salesforce. com's Paa. S platform for building your own services. Salesforce. com was formed by several Oracle employees in 1999 to create a hosted Customer Relationship Management (CRM) system. CRM has long been one of Oracle's core database services. The Salesforce. com team created hosted software based on a cloud computing model: pay as you go, simple to use, and multifunctional. The Salesforce. com platform looks like a typical Web site such as Amazon. com, with a multi-tabbed interface—each tab being an individual application.

Salesforce. com portal with the multi-tabbed interface exposing the different applications.

Salesforce. com portal with the multi-tabbed interface exposing the different applications.

Some of the applications included in the site are: • Accounts and Contact •

Some of the applications included in the site are: • Accounts and Contact • Analytics and Forecasting • Approvals and Workflow • Chatter (Instant Messaging/Collaboration) • Content Library • E-mail and Productivity • Jigsaw Business Data • Marketing and Leads • Opportunities and Quotes • Partner Relationship • Sales • Service and Support

 • As Salesforce. com developed its Saa. S production, it became obvious that

• As Salesforce. com developed its Saa. S production, it became obvious that many customers wanted to extend their Salesforce. com applications beyond what an Saa. S offering would allow, Salesforce. com developed a Paa. S platform known as Force. com, which allows developers to create applications that could be added to Salesforce. com's offerings and hosted on Salesforce. com's infrastructure.

 • Force. com uses a Java-based programming language called Apex for its application

• Force. com uses a Java-based programming language called Apex for its application building, and it has an interface builder called Visualforce that allows a developer to create interfaces using HTML, Flex and AJAX. • Visualforce uses an XML-type language in its visual interface builder. Using the Force. com platform, more than 1, 000 applications have been created and are offered for sale on Salesforce. com's App. Exchange, which has greatly enhanced its Paa. S offerings. • Because Salesforce. com is browser-based, it is platform-independent. • The company has extended its audience to mobile devices, such as the Android, Blackberry, i. Phone, and Windows Mobile Devices. • Force. com has been a major hit and has served as the model from many of the Paa. S systems of today. The company Salesforce. com is a recognized thought leader in the field of cloud computing. It is a $1. 3 billion company as of 2009, with over 2 million subscribers.

Application development • • • A Paa. S provides the tools needed to construct

Application development • • • A Paa. S provides the tools needed to construct different types of applications that can work together in the same environment. These are among the common application types: Composite business applications Data portals Mashups of multiple data sources A mashup is a Web page that displays data from two or more data sources. The various landmarks and overlays you find in Google Earth, or annotated maps, are examples of mashups.

All Paa. S application development must take into account lifecycle management. As an application

All Paa. S application development must take into account lifecycle management. As an application ages, it must be upgraded, migrated, grown, and eventually phased out or ported. Many Paa. S vendors offer systems that are integrated lifecycle development platforms. That is, the vendor provides a full software development stack for the programmer to use, and it isn't expected that the developer will need to go outside of the service to create his application. • An integrated lifecycle platform includes the following: • The virtual machine and operating system (often offered by an Iaa. S) • Data design and storage • A development environment with defined Application Programming Interfaces • Middleware • Testing and optimization tools • Additional tools and services • Google App. Engine, Microsoft Windows Azure Platform, Eccentex App. Base, Long. Jump, and Wolf are examples of integrated lifecycle platforms. •

 • Some Paa. S services allow developers to modify existing software. These services

• Some Paa. S services allow developers to modify existing software. These services are referred to as anchored lifecycle platforms. • Examples of an anchored lifecycle platform are Quick. Books. com and Salesforce. com. The applications in these two services are fixed, but developers can customize which applications the users see, how those applications are branded, and a number of features associated with the different applications. • An anchored service offers less customization, but has a faster development cycle and may be less prone to software errors.

Using Paa. S Application Frameworks • Application frameworks provide a means for creating Saa.

Using Paa. S Application Frameworks • Application frameworks provide a means for creating Saa. S hosted applications using a unified development environment or an integrated development environment (IDE).

Eccentex App. Base, Long. Jump, and Wolf were chosen as examples of developer-oriented services

Eccentex App. Base, Long. Jump, and Wolf were chosen as examples of developer-oriented services aimed at users and developers who want to create Web-based applications based on Service Oriented Architecture protocols and services. These services vary in some details, but they have these common characteristics: • They separate data-handling from presentation (user interface). • They offer tools for establishing business objects or entities and the relationships between them. • They support the incorporation of business rules, logic, and actions. • They provide tools for creating data entry controls (forms), views, and reports. • They provide instrumentation, tools for measuring application performance. • They support packaging and deployment of applications.

Drupal • • Many Web sites are based on the notion of information management

Drupal • • Many Web sites are based on the notion of information management and organization; they are referred to as content management systems (CMS). Drupal (http: //drupal. org/) is a content management system (CMS) that is used as the backend to a large number of Web sites worldwide. The software is an opensource project that was created in the PHP programming language. Drupal is really a programming environment for managing content, and it has elements of blogging and collaboration software as part of its distribution. Drupal is offered to the public under the GNU General Public License version 2 and is used by many prominent Web sites. The Drupal core is the standard distribution, with the current version being 6. 19; version 7. 0 is in preview.

Eccentex App. Base 3. 0 • Eccentex is a Culver City, California, company founded

Eccentex App. Base 3. 0 • Eccentex is a Culver City, California, company founded in 2005 that has a Paa. S development platform for Web applications based on SOA component architecture to create what it calls Cloudware applications using its App. Base architecture. Figure shows the App. Base platform page.