Digital Analysis South Africa

Cloud computing and its potential for software development companies

What is the cloud? How do I connect to the cloud? What can the cloud do for me?

These are some of the questions asked by millions of people worldwide in an effort to understand the phenomenon that is cloud-based computing and how it impacts their lives. This article will introduce you to the world of cloud computing and the aspects of its features. The various advantages and disadvantages of the technology will also come under the spotlight.

What is cloud computing?

In simple terms, cloud computing involves storing and accessing data and programs over the Internet instead of from a computer's internal hard drive. The "cloud" is just a metaphor for the Internet.

In a cloud computing system there is a significant workload shift where local computers no longer have to do all the heavy lifting when it comes to running applications. The network of computers that make up the cloud handles them instead, resulting in hardware and software demands on the user's side decreasing. The user's computer simply needs to be able to run the cloud computing system's interface software, which can be as simple as a Web browser, and the cloud's network takes care of the rest.

The origin of the term cloud computing is unclear although the expression "cloud" is commonly used in science to describe a large collection of objects that visually appear from a distance as a cloud and describes a collection of objects whose details are not examined further in a given context. The term is also known to be used as a metaphor for the Internet where a cloud-like shape illustrates the Internet in computer network diagrams.

Outside of the information technology and software industry, the term "cloud" references a wide range of services, some of which fall under the category of cloud computing, while others do not. The cloud is often used to refer to a product or service that is discovered, accessed and paid for over the Internet, but is not necessarily a computing resource.

The cloud aims to cut costs and help users focus on their core business instead of being hindered by technical obstacles. To this end cloud, computing provides all of its resources as services where users can access these facilities using networked client devices such as desktop computers, laptops, tablets, and smartphones.

Even though cloud computing has expanded greatly in areas of personal capacity its chief implementation is still firmly grounded in business applications and services. The main challenge that many software development companies face today is how to approach the implementation of cloud computing not only for internal usage, but also for deployment at clients, and as a means of expanding their product catalogue.

A "private cloud" is a cloud system operated with the focus on a single organisation, whether managed and hosted internally or by a third party. As one might imagine, incorporating a private cloud setup into an existing company infrastructure requires a substantial level of understanding and commitment to transform the enterprise into a virtualised business environment. This requires the organisation to re-evaluate decisions about existing resources, security, and overall infrastructure. When done right, it can provide significant advantages to the business, but every step in the project requires careful analysis of the impact this upgrade might have on the company and the various security issues that must be addressed to prevent serious vulnerabilities from being exposed.

Internal application

An example setup for a company such as Digiata, where staff usually operate off-site, would involve providing a self-service portal that hosts all the relevant products of the company that staff need access to, in order to fulfil their job requirements at clients. A personalised workspace could be set up for each employee where software products are installed and various projects set up for individuals to customise their own virtualised workspace. This in turn, could be shared with other staff to create a network of mutual knowledge.

Cloud computing implemented in a large corporate environment mostly operates to sell hosted services that run client server software at a remote location. Such services are given popular acronyms like 'SaaS' (Software as a Service), 'PaaS' (Platform as a Service), and 'IaaS' (Infrastructure as a Service). End users of such services usually access cloud-based applications through a web browser or a client or mobile app. The business software and user's data are stored on servers at a remote location.

Application for clients

The deliverables of each model in a typical cloud-service implementation may consist of one or more of these services:

• IaaS - physical or virtualised computers and other resources
• PaaS - a computing platform, typically including operating system, programming language execution environment, database, and web server
• SaaS - cloud providers install and operate application software in the cloud and cloud users access the software from cloud clients

With PaaS, cloud users do not have to allocate computer and storage resources manually, as this is handled automatically to match application demand. Users in SaaS do also not manage the cloud infrastructure and platforms where applications operate - this eliminates the need to install and run the application on the cloud user's own computers, which simplifies maintenance and support.

The pricing model for SaaS applications is typically a monthly or yearly flat fee per user, so pricing is scalable and adjustable if users are added or removed at any point. SaaS allows a business the potential to reduce IT operational costs by outsourcing hardware and software maintenance and support to the cloud provider. This enables the business to re-allocate IT operations costs away from hardware/software spending and personnel expenses, towards meeting other goals. In addition, with applications hosted centrally, updates can be released without the need for users to install new software.

A typical cloud-based solution could include any or all of the discussed services, depending on the clients' needs and budget. A proposed solution for a customer could be the provision of a virtualised server with all the required software already set up, including the applications required to perform the work for the client. This provides an advantage to both the client and the provider as the environment can be configured well before access is given to the client's site, and it relieves the client from having to spend time and resources creating a suitable platform for IT analysts to operate on.

A fully functioning "suite" of applications could also be offered in this regard where clients log onto a site hosted by the provider where various products and client implementation data are stored. The client has choice over items in the relevant product group set up for it, with the expansion of disk space, memory allocations, and other infrastructure decisions handled dynamically by the host instead of the client.

As with any emerging technology, there are upsides and drawbacks to weigh up against each other when considering the implementation of cloud computing in either a private capacity or public setup. Some of the advantages of the technology are:

Advantages and disadvantages of cloud computing

• Clients would be able to access their applications and data from anywhere and at any time.
• Cloud computing systems could bring hardware costs down. Clients would not need to worry about purchasing advanced hardware for a project or staff, as the cloud system would take care of those needs.
• The cloud focuses on maximising the effectiveness of the shared resources. With virtualisation, it is possible to fool a physical server into thinking it is actually multiple servers, each running its own independent operating system - reducing the need for more physical machines.
• Faster deployment of applications and project deliverables, which leads to improved overall productivity.

Unfortunately, several deterrents to the widespread adoption of cloud computing remain. Among them are:

• Reliability and availability of services and data - what happens if the system "crashes" or is off-line for a prolonged period? Is there a chance that data and productivity could be lost?
• Privacy concerns exist, as there is a risk of unauthorised access to the data stored on the cloud provider's server, either by employees of the service or threats from outside the system.
• Possession of data becomes a muddled affair, as different rights and legal jurisdiction apply depending on the view taken of which party (client or cloud host) is the legal owner of the data.
• The complexity and limited customisation of a company's infrastructure and associated supporting costs could escalate beyond expectations - especially during the initial phases of implementation.

Cloud computing - the new buzzword for the 21st century

Cloud computing has become the new buzz word for the 21st century and, as its adoption by various industries and the role players in it increases, a bigger and clearer picture will be formed of its applicability to the industry, whether public or private. There are still numerous challenges and risks associated with the technology, yet many more benefits can also be gained from its implementation. For software development companies, specialising in the provision of customised IT solutions to their clients, it opens up new and exciting avenues for development and deployment at clients. Only time will tell whether the cloud will become the new holy grail of technological innovation or fade into obscurity.

References
http://en.wikipedia.org/wiki/Cloud_computing
http://www.infoworld.com/d/cloud-computing/what-cloud-computing-really-means-031
http://www.pcmag.com/article2/0,2817,2372163,00.asp
http://computer.howstuffworks.com/cloud-computing/cloud-computing.htm

About Rudolph von Abo

Senior Systems Analyst at Digiata Technology Services
    Let's do Biz