All about cloud computing
This post will answer your questions whether you want to start using ‘the cloud’ service as a developer, or you are intrigued as how it can save you costs as a project manager or director.
Put simply, cloud computing means that your computing resources live outside of your computer or computer room.
The Cloud is being touted as the key driver behind a new emerging economy based on lower costs and higher productivity than before: an economy holding great potential for smaller, agile businesses
Cloud Architectures address key difficulties surrounding large-scale data processing:
- In traditional data processing it is difficult to get as many machines as an application needs.
- It is difficult to get the machines when one needs them.
- It is difficult to distribute and co-ordinate a large-scale job on different machines, run processes on them, and provision another machine to recover if one machine fails.
- It is difficult to auto- scale up and down based on dynamic workloads.
- It is difficult to get rid of all those machines when the job is done
Cloud Architectures solve such difficulties
- Applications built on Cloud Architectures run in-the-cloud where the physical location of the infrastructure is determined by the provider.
- They take advantage of simple APIs of Internet-accessible services that scale on-demand, that are industrial-strength, where the complex reliability and scalability logic of the underlying services remains implemented and hidden inside-the-cloud.
Business Benefits of Cloud Architectures
There are some clear business benefits to building applications using Cloud Architectures:
- Almost zero upfront infrastructure investment: If you have to build a large-scale system it may cost a fortune to invest in real estate, hardware (racks, machines, routers, backup power supplies), hardware management (power management, cooling), and operations personnel. Because of the upfront costs, it would typically need several rounds of management approvals before the project could even get started. Now, with utility-style computing, there is no fixed cost or startup cost.
- Just-in-time Infrastructure: In the past, if you got famous and your systems or your infrastructure did not scale you became a victim of your own success. Conversely, if you invested heavily and did not get famous, you became a victim of your failure. By deploying applications in-the-cloud with dynamic capacity management software architects do not have to worry about pre-procuring capacity for large- scale systems. Thesolutions are low risk because you scale only as you grow. Cloud Architectures can relinquish infrastructure as quickly as you got them in the first place (in minutes).
- More efficient resource utilization: System administrators usually worry about hardware procuring (when they run out of capacity) and better infrastructure utilization (when they have excess and idle capacity). With Cloud Architectures they can manage resources more effectively and efficiently by having the applications request and relinquish resources only what they need (on-demand).
- Usage-based costing: Utility-style pricing allows billing the customer only for the infrastructure that has been used. The customer is not liable for the entire infrastructure that may be in place. This is a subtle difference between desktop applications and web applications. A desktop application or a traditional client-server application runs on customer’s own infrastructure (PC or server), whereas in a Cloud Architectures application, the customer uses a third party infrastructure and gets billed only for the fraction of it that was used.
- Potential for shrinking the processing time: Parallelization is the one of the great ways to speed up processing. If one compute-intensive or data- intensive job that can be run in parallel takes 500 hours to process on one machine, with Cloud Architectures, it would be possible to spawn and launch 500 instances and process the same job in 1 hour. Having available an elastic infrastructure provides the application with the ability to exploit parallelization in a cost-effective manner reducing the total processing time.
Examples of Cloud Architectures
There are plenty of examples of applications that could utilize the power of Cloud Architectures. These range from back-office bulk processing systems to web applications. Some are listed below:
- Document processing – Convert hundreds of thousands of documents from Microsoft Word to PDF, OCR millions of pages/images into raw searchable text
- Image processing – Create thumbnails or low resolution variants of an image, resize millions of images
- Video encoding
- Create an index of web crawl data
- Data mining – Perform search over millions of records
- Back-office applications (in financial, insurance or retail sectors)
- Log analysis -Analyze and generate daily/weekly reports
- Perform nightly automated builds of source code repository every night in parallel
- Automated Unit Testing and Deployment Testing
- Testing (functional, load, quality) on different deployment configurations every night
- Websites for conferences or events (Super Bowl, sports tournaments)
- Promotion, Viral or Seasonal Websites – websites that only run at a certain time of year
Services offering cloud hosting and storage: