-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathout.html
1 lines (1 loc) · 12.5 KB
/
out.html
1
<body><p><strong></strong><strong></strong>What is the goal? </p><p><w:ilvl w:val="0"/><w:numId w:val="2"/><w:ind w:hanging="359" w:left="0" w:right="0"/><strong></strong>Minimize the cost of running a business using an <strong></strong>IaaS/cloud platform by automatically allocating and <strong></strong>deallocating cloud server instances to and from a cloud server network as the ratio of <w:shd w:fill="FFFF00" w:val="clear"/>resource capacity vs <w:shd w:fill="FFFF00" w:val="clear"/>resource demand fluctuates compared to a calculated/configurable <w:shd w:fill="FFFF00" w:val="clear"/>threshold. </p><p><strong></strong><strong></strong>Field</p><p>The invention is generally directed toward cloud server network monitoring and management systems, and more <em></em>particularly, allocating and deallocating cloud server instances to and from a cloud server network according to a cloud server balancing and consolidation algorithm which <w:color w:val="44546A"/>continuously monitors the loads on the cloud <w:color w:val="FF0000"/>servers and deploys or <strong></strong><em></em>releases cloud server instances according to the distribution of workload on server resources across a cloud server <w:bookmarkStart w:id="0" w:name="_GoBack"/>network.</p><p><strong></strong>Background <w:tab/></p><p>Conventional<a href="#"><w:rStyle w:val="style16"/><w:color w:val="1155CC"/><u></u> load balancers</a> in computer systems “balance the load on a plurality of servers using a load balancing algorithm which continuously examines the loads on the plurality of servers and makes adjustments in the loads accordingly. Among the factors considered in the load balancing are the power of each server relative to other servers, the load on each server relative to the other servers, and a ‘credit’ for each server based on their power and load.”</p><p>Conventional load balancing, as defined in the preceding, is helpful when applied to an internal server network, but companies that host their server instances with a cloud service provider are introduced to a new load balancing problem that conventional load balancers cannot address.</p><p>“<a href="#"><w:rStyle w:val="style16"/><w:color w:val="1155CC"/><u></u>Cloud service providers offer programs</a>, such as infrastructure as a service (IaaS), which use different pricing schemes when charging for use of cloud resources.” While a conventional load balancer may help ensure a company’s cloud server instances operate efficiently in a cloud <w:bookmarkEnd w:id="0"/>server network, especially during times of peak usage, a conventional load balancer cannot minimize the cost of using a cloud server network because it balances the load among the cloud servers rather than assessing whether a new cloud server instance should be allocated or an old one deallocated.</p><p><em></em>Comparable to the way conventional load balancers allocate or deallocate resource demand to or from a server instance, this cloud server network management system allocates and deallocates cloud server instances from the cloud server network. However, resource demand must be allocated differently in this scenario to accommodate efficient allocation and deallocation of cloud server instances. </p><p>Allocation and deallocation of resource demand, for example, could be completed using strategies similar to those found in the patents below:</p><p><strong></strong><w:tab/><strong></strong>bin packing</p><p><w:ind w:hanging="0" w:left="720" w:right="0"/><w:rStyle w:val="style16"/><w:color w:val="1155CC"/><u></u><a href="#"><w:rStyle w:val="style16"/><w:color w:val="1155CC"/><u></u>https://www.google.com/patents/US20130235416</a></p><p><w:ind w:hanging="0" w:left="720" w:right="0"/><w:color w:val="222222"/><w:sz w:val="20"/><w:shd w:fill="FFFFFF" w:val="clear"/><w:color w:val="222222"/><w:sz w:val="20"/><w:shd w:fill="FFFFFF" w:val="clear"/>“<w:color w:val="222222"/><w:sz w:val="20"/><w:shd w:fill="FFFFFF" w:val="clear"/>Cloud computing services, such as production services, offer customers many benefits including reduced capital expenditures, scalability, managed upgrades and access to new workflows. Often, Infrastructure-as-a-Service cloud systems rent the use of virtual machines by the hour. Production jobs typically have an associated deadline by which the production job needs to be completed. Accordingly, it is important to schedule production jobs efficiently in order to maximize the use of a virtual machine during a rental period and therefore minimize the production cost.”</p><p><w:ind w:hanging="0" w:left="720" w:right="0"/></p><p><w:ind w:hanging="0" w:left="720" w:right="0"/><strong></strong><strong></strong>scheduler</p><p><w:ind w:hanging="0" w:left="720" w:right="0"/><a href="#"><w:rStyle w:val="style16"/><w:color w:val="1155CC"/><u></u>https://www.google.com/patents/US8429659</a> </p><p><w:ind w:hanging="0" w:left="720" w:right="0"/>(this patent is also really good for teminology)</p><p><w:ind w:hanging="0" w:left="720" w:right="0"/><w:color w:val="222222"/><w:sz w:val="20"/><w:shd w:fill="FFFFFF" w:val="clear"/><w:color w:val="222222"/><w:sz w:val="20"/><w:shd w:fill="FFFFFF" w:val="clear"/>a method for prioritizing jobs within a <w:color w:val="222222"/><w:sz w:val="20"/><w:shd w:fill="FFFFCC" w:val="clear"/>cloud<w:color w:val="222222"/><w:sz w:val="20"/><w:shd w:fill="FFFFFF" w:val="clear"/> computing environment, comprising: determining a processing capacity of the <w:color w:val="222222"/><w:sz w:val="20"/><w:shd w:fill="FFFFCC" w:val="clear"/>cloud<w:color w:val="222222"/><w:sz w:val="20"/><w:shd w:fill="FFFFFF" w:val="clear"/> computing environment; determining an income, a processing need, a set of service level agreement (SLA) terms for each of a plurality of jobs; and prioritizing the plurality of jobs based on their respective income, processing need, and SLA terms, wherein the prioritizing ensures that the set of SLA terms are met while maximizing the income and without exceeding the processing capacity.</p><p><w:ind w:hanging="0" w:left="720" w:right="0"/></p><p><w:ind w:hanging="0" w:left="720" w:right="0"/><w:rStyle w:val="style16"/><w:color w:val="1155CC"/><u></u><strong></strong>NOTE: This patent app, written in Chinese, is very similar to this patent <a href="#"><w:rStyle w:val="style16"/><w:color w:val="1155CC"/><u></u>https://www.google.com/patents/CN102495759A</a></p><p><a href="#"><w:rStyle w:val="style16"/><w:color w:val="1155CC"/><u></u>Because </a>resource demand often changes, over or under utilization of these resources can be an issue. For example, as a cloud server instance process progresses, resource demand may decrease with the amount of tasks it has left to process. Conversely, resource demand may increase as new tasks are requested. Because conventional systems do not dynamically adapt to changing resource requirements, cumbersome manual intervention may be required to allocate new cloud server instances and increase capacity, or deallocate assigned cloud server instances and reclaim unused resources.</p><p>The pdf diagram shows a high level flowchart of how this idea will work, but processes will need to be described at the server level too.</p><p><strong></strong><strong></strong>Schedule tasks/resource demand/workload</p><p>I don’t think I need to describe this too thoroughly, but I will note that it is very important that tasks be assigned to cloud server instances in such a way that each cloud server instance has minimum surplus resources. </p><p>Although tasks can be assigned in such a way that each cloud server instance has minimum surplus resources, tasks will be completed at different rates and servers will inevitably be left with disparate amounts of surplus resources ranging from 0% to 100%. </p><p><strong></strong><strong></strong>continuously calculate distribution of tasks/resource demand/workload</p><p>Since the cloud server instances will inevitably have different resource demands on them as processes progress, it will be necessary to continuously monitor each server instance to make sure they are operating at maximum capacity. </p><p><strong></strong><strong></strong>consolidate resource demand when possible</p><p>If cloud server instances are found to not be fully utilized, then measures must be taken to maximize resource demand on cloud server instances. This will usually mean moving tasks from an under-utilized cloud server instance to a cloud server instance that has more tasks to process. However, by moving tasks away from the cloud server instance, the cloud server instance is even more underutilized. When this happens, the system must determine if it is cost-effective to deallocate the underutilized cloud server instance. If it is cost-effective, then the cloud server instance needs to be configured to refuse all future tasks from the cloud scheduler (this is the first time I’ve used this term, I should probably go back and give the scheduling step a name for a part of the system) so it can be deallocated without the risk of negatively impacting the processing of tasks in the cloud server network. </p><p>It is important to note that it may not always be feasible to deallocate a cloud server instance, even when it’s underutilized. For example, tracking historical peak demand for a company’s cloud network may reveal that resource demand will likely increase before the end of the hour. If this is the case, then it may be more cost-effective to extend the contract to run the cloud server instance instead of deallocating it because allocating another cloud server instance to meet the future increased resource demand will cost more money than would be saved by deallocating the underutilized server.</p><p>This system will take these scenarios into account as it manages the cloud server network. In the case described above, the system may need to take into account the pending increase in resource demand and stop consolidating resource demand on the cloud server network in order to more efficiently process jobs. That way the underutilized cloud server instance can still process tasks. </p><p><strong></strong><strong></strong>When there are surplus computing resources in the cloud server network</p><p>If there are surplus resources, then the system should calculate the cost of deallocating as cloud server instance. Depending on the resource cost and savings associated with deallocatng a cloud server instance, the system may or may not deallocate the cloud server instance. There are a lot of factors to take into account:</p><p><w:ilvl w:val="0"/><w:numId w:val="3"/><w:ind w:hanging="359" w:left="0" w:right="0"/>Time needed to deallocate a cloud server instance</p><p><w:ilvl w:val="0"/><w:numId w:val="3"/><w:ind w:hanging="359" w:left="0" w:right="0"/>Time needed to allocate a new cloud server instance when one is needed</p><p><w:ilvl w:val="0"/><w:numId w:val="3"/><w:ind w:hanging="359" w:left="0" w:right="0"/>Cost of deallocating a cloud server instance</p><p><w:ilvl w:val="1"/><w:numId w:val="3"/><w:ind w:hanging="359" w:left="0" w:right="0"/>if a cloud server instance is bid to run for 8 hours and has only ran for 6 hours, how much money is lost?</p><p><w:ilvl w:val="1"/><w:numId w:val="3"/><w:ind w:hanging="359" w:left="0" w:right="0"/>if a cloud server instance is deallocated, how many jobs will not be processed during the cloud server instance’s contract that otherwise could have</p><p><w:ilvl w:val="0"/><w:numId w:val="3"/><w:ind w:hanging="359" w:left="0" w:right="0"/>Cost of allocating a new cloud server instance</p><p><w:ilvl w:val="1"/><w:numId w:val="3"/><w:ind w:hanging="359" w:left="0" w:right="0"/>Bidding for new cloud server instances costs money</p><p> If the underutilized cloud server instance is not deallocated, then the system will continue monitoring and consolidating resource demand as cost-effectively as possible. </p><p><a href="#"></a></p><p>How to achieve this?</p><p><w:ilvl w:val="0"/><w:numId w:val="1"/><w:ind w:hanging="359" w:left="0" w:right="0"/>Calculate resource demand on each cloud server instance</p><p><w:ilvl w:val="1"/><w:numId w:val="1"/><w:ind w:hanging="359" w:left="0" w:right="0"/></p><p><w:ilvl w:val="0"/><w:numId w:val="1"/><w:ind w:hanging="359" w:left="0" w:right="0"/>Keep track of resource demand history</p><p><w:ilvl w:val="0"/><w:numId w:val="1"/><w:ind w:hanging="359" w:left="0" w:right="0"/>Calculate</p><p><strong></strong><strong></strong>Calculate Allocation/De-allocation of Cloud Server Instance</p><p><w:rStyle w:val="style16"/>Can I use this? <a href="#"><w:rStyle w:val="style16"/>http://technet.microsoft.com/en-us/library/cc181325.aspx</a></p><p>We will have functions called:<br/>double getServerLoadCapacity()<br/>double getServerLoad()<br/>double getServerLoad</p></body>