Monday, September 23, 2013

12 Hard Truths About Cloud Computing


For the past few months, I've been poking around the various commercial clouds, buying new machines, trying software, and running benchmarks. Well, not exactly buying machines -- just renting them for a few hours and plunking down a few pennies on the barrelhead.
Along the way, I noticed it wasn't working out the way I expected. The machines aren't as interchangeable or as cheap as they seem. Moving to the cloud isn't as simple or as carefree as it's made to be. In other words, the machines weren't living up to their hype. Anyone who's been chugging the Kool-Aid and dreaming that the word "cloud" is a synonym for "perfection" or "pain-free" is going to be sorely disappointed.
This isn't to say there's no truth to what the cloud companies proclaim, but there are plenty of tricky details that aren't immediately obvious. At their core, the machines aren't miracle workers, just the next generation of what we've been using for years. The improvements are incremental, not revolutionary. If we dial back our hopes and approach the machines with moderated expectations, they're quite nice.
To keep our expectations in check, here is a list of what to really expect from the cloud.
Cloud computing hard truth No. 1: Machine performance isn't uniform
The cloud is meant to abstract away many of the choices that normally go into shopping for a server. You're supposed to push a button, choose your operating system, and get the root password. Everything else is supposed to be handled by the cloud, a nebulous Great Oz that takes care of all those computational chores behind the curtain.
The one thing the benchmarks have taught me is that machines behave quite differently. Even if you buy an instance with the same amount of RAM running the same version of the operating system, you'll find startlingly different performance. There are different chips and different hypervisors running underneath everything. Then the companies can load up their boxes with different numbers of virtual machines.
Cloud computing hard truth No. 2: Too many choices
Sure, many machines pretend to be commodities, but what does it really mean for something to be a high-CPU machine? Then there's the CUDA architecture.
Here, the great promise of the cloud rings true: You can rent something souped-up by the hour and see what it can do. Your boss may not want to give you the money to actually purchase a rack of Nvidia cards to test out the parallel-processing power of the CUDA architecture. A rack of video cards on the purchase order looks like it might support too many time-wasting games of Call of Duty. But a few hours on an Nvidia cloud box is an easy decision for a purchase manager to make.
Expect more complicated hardware as the infatuation with big data grows bigger. Renting out the machines by the hour is an ideal way to get people interested in trying the devices. But with increased choice comes increased complexity and increased uncertainty about what is truly needed.
Cloud computing hard truth No. 3: Hours turn into eternity
Was it several weeks ago that I built up a machine just to try something? The machine only cost a few cents per hour, so I said, "Why not start with a clean slate? It's just a few pennies."
But by the time I got done installing the software and configuring everything, I didn't want to shut it down. This was something neat that I built. Pushing Delete hurt my insides. Now it sits on the back burner waiting for me to get around to find the time to do more -- and the meter keeps clicking.
One of the biggest dangers for the bean counters will be making sense of these long lists of cloud instances that are all running up the bill at a few cents an hour. Simply auditing the lists of machines will take longer than the cost of leaving them up for another month. I think the cloud companies will make plenty of money on servers that sit there waiting, like those mythical primitive islanders, for the plane filled with gods to descend again with instructions.
Cloud computing hard truth No. 4: Software services are hard to price
Software as a service is another temptation from the cloud. You don't need to purchase, license, or install anything. You just ship your bits to an API and it does everything for you.
The prices seem simple. If you're going to store N things, you'll pay the basic price N times. If you have K customers and they each generate M things, you'll need to pay to store K times M bags of bits. Who cares how big K and M happen to be? The prices are always quoted in millipennies.
Ah, but will you really have K customers? Will they really store M things, even on average? The danger is that your neat new project will be wildly successful and 3,000 or even 10,000 people will show up. That means your data budget just went up by a factor of 3 or 10.
The problem is that the bean counters aren't budgeting a flexible amount. They gave you $X and told you to make them last. They're going to be happy that you're getting 3 or 10 times as many people, but they won't be happy when you tell them your data storage budget will be 3 or 10 times bigger.
In these events, buying a fixed infrastructure is a simple way to limit your spending. If you're wildly successful, the server will probably be able to handle it by just slowing down. This sluggish behavior may not make your customers happy, but it is better than the bank shutting you down for overdrawing your account.
Cloud computing hard truth No. 5: Totally integrated solutions are scary
When Google first announced App Engine, it looked like a great appliance that would make cloud computing simple. Upload some Python, and Google would do the rest.
Alas, hand-holding is also handcuffing. The neatest features are proprietary, and that means you'll be locked into the proprietary solution until you can rewrite your software. Who has time to do that?
The smartest clouds are pushing flexibility and openness. The OpenStack standard is gaining traction because everyone is leery about locking themselves into one provider, no matter how good the provider happens to be.
Cloud computing hard truth No. 6: Security is still a mystery
At first glance, it looks like you completely control your machine. You and you alone set the root password. If the OS is secure and the patches are installed, you should be set, right? But all of the clouds are far from clear about what is really going on underneath where the hypervisor lives.
One cloud tech told me that the versions of Linux his company sold came with bastardized monitoring utilities to block the customers from seeing some of the extra backdoors they had installed themselves. It was all for the good of the customer, he said, and he was probably right most of the time.
The cloud companies are working on securing their machines by partitioning the networks and locking down access. However, they have a long way to go before they can offer anything as secure as a locked cage in the server room of your home office.
Cloud computing hard truth No. 7: Calculating cost is no easy algorithm
It looks simple: The providers sell you something by the hour for pennies. Heck, you can afford a few pennies, right? But should you buy one faster machine for 7 cents an hour or three slower machines for 2.5 cents an hour? Each shop charges slightly differently for bandwidth, storage, and other features.
Expect to spend hours benchmarking your application on various sizes of servers. Then put all of this data into a spreadsheet to determine the cheapest configuration.
Cloud computing hard truth No. 8: Moving data is not easy
You've been smitten by the idea of buying the machines by the hour, but buying the machine is often the smallest part of the job. Getting your data into the distant racks in the cloud can be a substantial chore. If you're loaded down with log files or big, big data sets, you could be spending a long time just moving the data where you need it to be.
The best configurations are making it easier to store data locally, then buy computation time when you need it. Amazon even has its intriguing storage Glacier that's much cheaper than its regular cloud, but only promises that the data will be available in hours (hours!).
Cloud computing hard truth No. 9: Little is guaranteed
The marketing message may try to imply that the magical cloud will lift all of these responsibilities from your shoulders, but those are just the warm, fuzzy feelings from the department of warm, fuzzy feelings. The legal department buries scary things in that sea of words you clicked past when you were experimenting.
If you think that the cloud will save you from the responsibility of backing up your data, you're mistaken. Underneath it all, the machines are as fragile as the machines on your desk. They're built from many of the same components. The cloud companies don't have access to magical disk drives and chips.
The best clouds are starting to be upfront about their guarantees. Some have terms of service that explain a bit better what they do and don't cover. They are also starting to surface geographic differences, and that's making it easier to understand what you have to do when you're designing your server farm. If you want your data backed up across the country, you must design it into your system and pay for the bandwidth to carry that data.
Cloud computing hard truth No. 10: No one knows which laws apply
It's easy to imagine that the cloud of data services is living off in some Shangri-La away from those pesky laws and rules that weigh down the lives of humans living on earth. The clouds are floating in cyber space, and we'd all like to believe that's a beautiful place filled with so much harmony and mutual respect that lawyers aren't needed.
This is sort of true because no one really knows what laws apply. It's possible that all the laws apply because the Web stretches everywhere. If you ask a cloud to give you the first instance available, you might end up being governed by Texas, Virginia, California, or wherever your bits happen to end up. What if your code runs in a Virginia server owned by Amazon, a company governed by the state of Washington and the city of Seattle? Are you under only the thumb of Virginia, or do the Seattle cops have a say? It could be all of the above!
Corporate lawyers are trying their best to create Acceptable Use policies that seem to focus on the really bad things people do, but the language appears overly broad. Amazon's Web Service Acceptable Use Policy, for instance, bans content that is "invasive of privacy." Has Amazon seen its own tracking cookies? It also bans "defamatory" and "objectionable" behavior. Who decides what qualifies? It might be too late when you find out.
No one has a clue how this will all shake out, and the cloud lawyers are crossing their fingers as they type.
Cloud computing hard truth No. 11: The extras will get you
Businesses have it tough when the customers start buying on price. The only choice is to cut expenses to the bone, then pray.
The cloud business seems to be following the paths of the hotel and airline businesses. They'll do anything to get the core cost as low as possible because they know that people buy on price. But then they'll try to make up for this cheap price with add-ons. Didn't one airline investigate charging to use the bathroom? Shh. Don't tell the cloud companies; they'll wonder if they can charge you to use the rm command with your server.
The trouble for most server customers is that it's hard to guess how many extra services you'll use. It's easy to count the number of instances and keep a lid on them, but can you estimate how much data will flow between your machines? Some cloud companies charge for that. If one programmer uses a fat data structure like XML, it could quadruple your bandwidth charges.
The companies aren't the only ones to blame. The customers who buy on price alone push the clouds to adopt this model, and there's no easy way out of this dynamic.
Cloud computing hard truth No. 12: Responsibility for backup still rests on you
It's tempting to buy into the marketing hype and think of the cloud as one giant, perfect collection of computing resources. When you need to crunch numbers, you cast your spell across the ocean and the answers rise from the mists.
In practice, the machines are just machines. When you get root on some instance, that machine is as delicate as a server downstairs. Do you build a backup plan for your server today? Then you should build one for your software in the cloud, too. It can fail as well.
The best cloud companies are making it obvious how to accomplish this. They're telling you where the computers are located and allowing you to spin up machines in different locations with disk drives protected by various levels of RAID. More transparency about these features is cluing you in on the necessity. You should take the hint.
Some cloud providers are also building services that offer rather abstract promises that stop just short of perfection. No one can come up with perfection, so you shouldn't be surprised when the cloud can't do it either. Instead, find a way to create your own backup of the data periodically and store that in a vault. Back it up outside the cloud to a nice box on your desk or down the hall. Then check this data periodically.">poking around the various commercial clouds</a>], buying new machines, trying software, and running benchmarks. Well, not exactly buying machines -- just renting them for a few hours and plunking down a few pennies on the barrelhead.
Along the way, I noticed it wasn't working out the way I expected. The machines aren't as interchangeable or as cheap as they seem. Moving to the cloud isn't as simple or as carefree as it's made to be. In other words, the machines weren't living up to their hype. Anyone who's been chugging the Kool-Aid and dreaming that the word "cloud" is a synonym for "perfection" or "pain-free" is going to be sorely disappointed.
This isn't to say there's no truth to what the cloud companies proclaim, but there are plenty of tricky details that aren't immediately obvious. At their core, the machines aren't miracle workers, just the next generation of what we've been using for years. The improvements are incremental, not revolutionary. If we dial back our hopes and approach the machines with moderated expectations, they're quite nice.
To keep our expectations in check, here is a list of what to really expect from the cloud.
Cloud computing hard truth No. 1: Machine performance isn't uniform
The cloud is meant to abstract away many of the choices that normally go into shopping for a server. You're supposed to push a button, choose your operating system, and get the root password. Everything else is supposed to be handled by the cloud, a nebulous Great Oz that takes care of all those computational chores behind the curtain.
The one thing the benchmarks have taught me is that machines behave quite differently. Even if you buy an instance with the same amount of RAM running the same version of the operating system, you'll find startlingly different performance. There are different chips and different hypervisors running underneath everything. Then the companies can load up their boxes with different numbers of virtual machines.
Cloud computing hard truth No. 2: Too many choices
Sure, many machines pretend to be commodities, but what does it really mean for something to be a high-CPU machine? Then there's the CUDA architecture.
Here, the great promise of the cloud rings true: You can rent something souped-up by the hour and see what it can do. Your boss may not want to give you the money to actually purchase a rack of Nvidia cards to test out the parallel-processing power of the CUDA architecture. A rack of video cards on the purchase order looks like it might support too many time-wasting games of Call of Duty. But a few hours on an Nvidia cloud box is an easy decision for a purchase manager to make.
Expect more complicated hardware as the infatuation with big data grows bigger. Renting out the machines by the hour is an ideal way to get people interested in trying the devices. But with increased choice comes increased complexity and increased uncertainty about what is truly needed.
Cloud computing hard truth No. 3: Hours turn into eternity
Was it several weeks ago that I built up a machine just to try something? The machine only cost a few cents per hour, so I said, "Why not start with a clean slate? It's just a few pennies."
But by the time I got done installing the software and configuring everything, I didn't want to shut it down. This was something neat that I built. Pushing Delete hurt my insides. Now it sits on the back burner waiting for me to get around to find the time to do more -- and the meter keeps clicking.
One of the biggest dangers for the bean counters will be making sense of these long lists of cloud instances that are all running up the bill at a few cents an hour. Simply auditing the lists of machines will take longer than the cost of leaving them up for another month. I think the cloud companies will make plenty of money on servers that sit there waiting, like those mythical primitive islanders, for the plane filled with gods to descend again with instructions.
Cloud computing hard truth No. 4: Software services are hard to price
Software as a service is another temptation from the cloud. You don't need to purchase, license, or install anything. You just ship your bits to an API and it does everything for you.
The prices seem simple. If you're going to store N things, you'll pay the basic price N times. If you have K customers and they each generate M things, you'll need to pay to store K times M bags of bits. Who cares how big K and M happen to be? The prices are always quoted in millipennies.
Ah, but will you really have K customers? Will they really store M things, even on average? The danger is that your neat new project will be wildly successful and 3,000 or even 10,000 people will show up. That means your data budget just went up by a factor of 3 or 10.
The problem is that the bean counters aren't budgeting a flexible amount. They gave you $X and told you to make them last. They're going to be happy that you're getting 3 or 10 times as many people, but they won't be happy when you tell them your data storage budget will be 3 or 10 times bigger.
In these events, buying a fixed infrastructure is a simple way to limit your spending. If you're wildly successful, the server will probably be able to handle it by just slowing down. This sluggish behavior may not make your customers happy, but it is better than the bank shutting you down for overdrawing your account.
Cloud computing hard truth No. 5: Totally integrated solutions are scary
When Google first announced App Engine, it looked like a great appliance that would make cloud computing simple. Upload some Python, and Google would do the rest.
Alas, hand-holding is also handcuffing. The neatest features are proprietary, and that means you'll be locked into the proprietary solution until you can rewrite your software. Who has time to do that?
The smartest clouds are pushing flexibility and openness. The OpenStack standard is gaining traction because everyone is leery about locking themselves into one provider, no matter how good the provider happens to be.
Cloud computing hard truth No. 6: Security is still a mystery
At first glance, it looks like you completely control your machine. You and you alone set the root password. If the OS is secure and the patches are installed, you should be set, right? But all of the clouds are far from clear about what is really going on underneath where the hypervisor lives.
One cloud tech told me that the versions of Linux his company sold came with bastardized monitoring utilities to block the customers from seeing some of the extra backdoors they had installed themselves. It was all for the good of the customer, he said, and he was probably right most of the time.
The cloud companies are working on securing their machines by partitioning the networks and locking down access. However, they have a long way to go before they can offer anything as secure as a locked cage in the server room of your home office.
Cloud computing hard truth No. 7: Calculating cost is no easy algorithm
It looks simple: The providers sell you something by the hour for pennies. Heck, you can afford a few pennies, right? But should you buy one faster machine for 7 cents an hour or three slower machines for 2.5 cents an hour? Each shop charges slightly differently for bandwidth, storage, and other features.
Expect to spend hours benchmarking your application on various sizes of servers. Then put all of this data into a spreadsheet to determine the cheapest configuration.
Cloud computing hard truth No. 8: Moving data is not easy
You've been smitten by the idea of buying the machines by the hour, but buying the machine is often the smallest part of the job. Getting your data into the distant racks in the cloud can be a substantial chore. If you're loaded down with log files or big, big data sets, you could be spending a long time just moving the data where you need it to be.
The best configurations are making it easier to store data locally, then buy computation time when you need it. Amazon even has its intriguing storage Glacier that's much cheaper than its regular cloud, but only promises that the data will be available in hours (hours!).
Cloud computing hard truth No. 9: Little is guaranteed
The marketing message may try to imply that the magical cloud will lift all of these responsibilities from your shoulders, but those are just the warm, fuzzy feelings from the department of warm, fuzzy feelings. The legal department buries scary things in that sea of words you clicked past when you were experimenting.
If you think that the cloud will save you from the responsibility of backing up your data, you're mistaken. Underneath it all, the machines are as fragile as the machines on your desk. They're built from many of the same components. The cloud companies don't have access to magical disk drives and chips.
The best clouds are starting to be upfront about their guarantees. Some have terms of service that explain a bit better what they do and don't cover. They are also starting to surface geographic differences, and that's making it easier to understand what you have to do when you're designing your server farm. If you want your data backed up across the country, you must design it into your system and pay for the bandwidth to carry that data.
Cloud computing hard truth No. 10: No one knows which laws apply
It's easy to imagine that the cloud of data services is living off in some Shangri-La away from those pesky laws and rules that weigh down the lives of humans living on earth. The clouds are floating in cyber space, and we'd all like to believe that's a beautiful place filled with so much harmony and mutual respect that lawyers aren't needed.
This is sort of true because no one really knows what laws apply. It's possible that all the laws apply because the Web stretches everywhere. If you ask a cloud to give you the first instance available, you might end up being governed by Texas, Virginia, California, or wherever your bits happen to end up. What if your code runs in a Virginia server owned by Amazon, a company governed by the state of Washington and the city of Seattle? Are you under only the thumb of Virginia, or do the Seattle cops have a say? It could be all of the above!
Corporate lawyers are trying their best to create Acceptable Use policies that seem to focus on the really bad things people do, but the language appears overly broad. Amazon's Web Service Acceptable Use Policy, for instance, bans content that is "invasive of privacy." Has Amazon seen its own tracking cookies? It also bans "defamatory" and "objectionable" behavior. Who decides what qualifies? It might be too late when you find out.
No one has a clue how this will all shake out, and the cloud lawyers are crossing their fingers as they type.
Cloud computing hard truth No. 11: The extras will get you
Businesses have it tough when the customers start buying on price. The only choice is to cut expenses to the bone, then pray.
The cloud business seems to be following the paths of the hotel and airline businesses. They'll do anything to get the core cost as low as possible because they know that people buy on price. But then they'll try to make up for this cheap price with add-ons. Didn't one airline investigate charging to use the bathroom? Shh. Don't tell the cloud companies; they'll wonder if they can charge you to use the rm command with your server.
The trouble for most server customers is that it's hard to guess how many extra services you'll use. It's easy to count the number of instances and keep a lid on them, but can you estimate how much data will flow between your machines? Some cloud companies charge for that. If one programmer uses a fat data structure like XML, it could quadruple your bandwidth charges.
The companies aren't the only ones to blame. The customers who buy on price alone push the clouds to adopt this model, and there's no easy way out of this dynamic.
Cloud computing hard truth No. 12: Responsibility for backup still rests on you
It's tempting to buy into the marketing hype and think of the cloud as one giant, perfect collection of computing resources. When you need to crunch numbers, you cast your spell across the ocean and the answers rise from the mists.
In practice, the machines are just machines. When you get root on some instance, that machine is as delicate as a server downstairs. Do you build a backup plan for your server today? Then you should build one for your software in the cloud, too. It can fail as well.
The best cloud companies are making it obvious how to accomplish this. They're telling you where the computers are located and allowing you to spin up machines in different locations with disk drives protected by various levels of RAID. More transparency about these features is cluing you in on the necessity. You should take the hint.
Some cloud providers are also building services that offer rather abstract promises that stop just short of perfection. No one can come up with perfection, so you shouldn't be surprised when the cloud can't do it either. Instead, find a way to create your own backup of the data periodically and store that in a vault. Back it up outside the cloud to a nice box on your desk or down the hall. Then check this data periodically.
- See more at: http://www.computerworld.in/opinion/12-hard-truths-about-cloud-computing-86052013#sthash.koFcduua.dpuf

SaaS (software as a service) technology adoption picking up by all sizes of companies

Email, Calendaring, HR Top List of SaaS Buyers' Priorities: Survey

Companies of all sizes are picking up their adoption of SaaS (software as a service), with email, calendaring and human resources applications garnering the most interest, according to a new survey from Constellation Research. Email and calendaring is the most popular choice for SaaS among the survey respondents, with 37 percent saying such products are on their radar, wrote Constellation vice president and principal analyst Frank Scavo. "Most IT decision makers have had personal experience with personal webmail or Web calendaring applications, such as Google Calendar," Scavo wrote. "It is not surprising, then, to see these personal productivity applications leading the list of SaaS investment plans." Human resources applications is the next most popular SaaS category, with 32 percent saying they'll invest in it. Such applications "often include access by widely dispersed employee populations, making them a good candidate for SaaS deployment," Scavo wrote. HR is closely followed by CRM (customer relationship management) and collaboration applications, with 31 percent of respondents denoting both areas as investment priorities. Some 25 percent of respondents indicated interest in SaaS ERP (enterprise resource planning) applications. "Although ERP and accounting systems are the most widely implemented category of business applications generally, they fall farther down in terms of popularity for SaaS deployment," likely due to their "more entrenched nature and more comprehensive scope," Scavo wrote. Respondents placed significantly less priority on some other application areas. For example, only 11 percent expressed interest in SaaS for expense reporting. The atomization of SaaS buyers' interests is also reflected in that 24 percent checked off "other" as a product category. Overall, SaaS uptake is growing because its benefits "are clear," Scavo wrote. Respondents named speed of implementation as the top benefit, followed by reduced IT infrastructure, scalability and easier upgrades, according to the report. However, they ranked high availability/disaster recovery and lower costs as less important when it comes to SaaS, the report adds. "Traditional software vendors argue that long term, on-premises licensed software often costs less than SaaS applications," Scavo wrote. "IT decision makers may believe this argument." Nor did subscription pricing, a hallmark of SaaS, rank particularly high on respondents' list of benefits. There may be a reason for this as well, according to Scavo. Cloud vendors "argue that subscription pricing also turns software from a capital expenditure to an operating expense, which for some companies provides a more favorable tax treatment," he wrote. "However, vendors of traditional on-premises software also can easily provide the same benefit, turning a capital investment into an operating expense by financing the software license purchase as an operating lease." Respondents also listed their concerns with SaaS, with data privacy risks coming in highest, followed by security, loss of control, integration challenges and performance. The survey found that SaaS grew overall in 2012, with 49 percent of organizations having systems in place compared to 47 percent in 2011. Expect this trend to continue, Scavo wrote."We believe that within the next five years, new SaaS application sales will exceed new on-premises application sales," he added. The study was based on information collected by Computer Economics, a research firm where Scavo serves as president. Computer Economics surveyed some 244 companies from around the world between July and September 2012. The companies' average yearly revenue was US$2.1 billion, while the median was $287 million, according to the study.

Sourch

Sunday, September 22, 2013

Cloud computing

Cloud computing, or the cloud, is a colloquial expression used to describe a variety of different types of computing concepts that involve a large number of computers connected through a real-time communication network such as the Internet.[1] Cloud computing is a term without a commonly accepted unequivocal scientific or technical definition. In science, cloud computing is a synonym for distributed computing over a network and means the ability to run a program on many connected computers at the same time. The phrase is also, more commonly used to refer to network-based services which appear to be provided by real server hardware, which in fact are served up by virtual hardware, simulated by software running on one or more real machines. Such virtual servers do not physically exist and can therefore be moved around and scaled up (or down) on the fly without affecting the end user - arguably, rather like a cloud.
The popularity of the term can be attributed to its use in marketing to sell hosted services in the sense of application service provisioning that run client server software on a remote location.

Advantages

Cloud computing relies on sharing of resources to achieve coherence and economies of scale similar to a utility (like the electricity grid) over a network.[2] At the foundation of cloud computing is the broader concept of converged infrastructure and shared services.
The cloud also focuses on maximizing the effectiveness of the shared resources. Cloud resources are usually not only shared by multiple users but are also dynamically re-allocated per demand. This can work for allocating resources to users. For example, a cloud computer facility, which serves European users during European business hours with a specific application (e.g. email) while the same resources are getting reallocated and serve North American users during North America's business hours with another application (e.g. web server). This approach should maximize the use of computing powers thus reducing environmental damage as well since less power, air conditioning, rackspace, etc. is required for a variety of functions.
The term "moving to cloud" also refers to an organization moving away from a traditional CAPEX model (buy the dedicated hardware and depreciate it over a period of time) to the OPEX model (use a shared cloud infrastructure and pay as you use it).
Proponents claim that cloud computing allows companies to avoid upfront infrastructure costs, and focus on projects that differentiate their businesses instead of infrastructure.[3] Proponents also claim that cloud computing allows enterprises to get their applications up and running faster, with improved manageability and less maintenance, and enables IT to more rapidly adjust resources to meet fluctuating and unpredictable business demand.