Introduction to Cloud Computing

Cloud computing - image of cloud with the word cloud

For the last few posts we’ve been looking at some interesting aspects of floating point mathematics. There’s a lot more where that came from (which we’ll revisit at a later stage), but this week we’ll take a brief detour to look at something totally different.

The other day I was asked about cloud computing — what it was, and what’s it good for.

Introduction

Cloud computing is the delivery of computing services over the Internet (the “cloud”). The cloud consists of servers in data centres across the world. Cloud computing offers a wide variety of services. These can range from simple off-site file storage to web and database servers to full-blown software with business intelligence and data analytics.

By using these cloud services, we do not have to manage our own physical servers or run applications on our own computers. This has the potential to allow faster product innovation and economies of scale.

The typical business model is that we only pay for the services we use. This can help lower operating costs and manage our existing infrastructure better. The flexible resources that cloud services offer allow our business to scale up or down easily as demand changes.

The “cloud” started off as a slang term in the IT field. In the early days of the Internet, technical diagrams often used a cloud symbol to represent the networks and servers that made up the Internet. As more processing moved off local servers onto remote servers, people started talking about moving to “the cloud”. This is now a commonly used term.

The Internet consists of servers, clients, and the networking infrastructure that connects them. Most of the Internet uses a request-response architecture. Clients send requests to servers. Servers process these requests and send appropriate responses. Cloud computing differs from this request-response model. Cloud servers don’t merely respond to requests — they store data and run software applications for clients.

Think about Facebook, Instagram or Twitter. We can access our accounts from anywhere in the world and on any computer. Cloud storage providers like Google Drive or Dropbox work the same way, as do cloud email providers like Gmail. Software platforms like Microsoft Office 365 allow us to work in the cloud, without needing an installed application on our computer.

Cloud Service Models

The most common service models of cloud computing are the following:

Infrastructure-as-a-Service (IaaS)

IaaS is the most basic level of cloud services. A service provider sets up and manages a server that we access remotely. We rent the servers and storage we need from the provider, and then use that cloud infrastructure to build our applications.

IaaS is like renting a piece of land on which we can build whatever we want. But we must provide our own building equipment and materials.

This is a good option for companies that need scalability and redundancy, but don’t have the in-house expertise to maintain their own servers.

IaaS providers include DigitalOcean, Google Compute Engine and OpenStack.

Platform-as-a-Service (PaaS)

PaaS vendors provide everything that we need to build and run our application. This includes the programming languages, development tools, databases, infrastructure and operating systems.

PaaS is like renting all the equipment needed to build a house, instead of renting a ready-built house.

With PaaS, companies don’t pay for hosted applications. They only pay for the things they need to build their own applications. This is ideal for software development companies. It allows them to focus on developing their applications without worrying about any underlying infrastructural requirements.

PaaS providers include Heroku and Microsoft Azure.

Software-as-a-Service (SaaS)

SaaS vendors provide and host pre-built industry-specific software. Companies access that software as a service. This is ideal for companies that need industry-specific applications, but don’t have the resources to build their own. Users access the SaaS applications over the Internet without installing any software.

SaaS is like renting a house. We can use the house as if we owned it, but the landlord owns, maintains and upgrades the house.

Examples of SaaS applications include Mambu, Salesforce, MailChimp, and Slack.

Function-as-a-Service (FaaS)

FaaS is the newest kid on the block. It is also known as serverless computing. FaaS breaks cloud applications down into even smaller components that only run when they are needed. FaaS applications still run on servers, but do not run on dedicated machines. The companies building the applications also do not have to manage any servers.

FaaS would be like renting a house one room at a time. Imagine only paying for the kitchen when we’re cooking, the dining room when we’re eating, the lounge while we’re watching TV, the bedroom when we’re sleeping. And when we’re out of the house, paying nothing at all.

Serverless functions scale up, or duplicate themselves, as demand grows and more clients use the application. This is at the heart of microservices (a topic for a later post). Imagine if our rented lounge could expand when friends come over to watch the big game on TV!

Is Cloud Computing For You?

There’s definitely a lot of hype about the cloud. Cloud vendors promise the earth. But whether the promises hold up for you is another story.

You will have to undertake a thorough investigation of your requirements. Don’t believe everything you read on the web (there are still Flat Earth and Big Foot websites out there…). Don’t just take the vendors’ quotes at face value. Read the quotes carefully. Remember RTFM! Ask lots of questions. Do a detailed financial analysis. Even create a spreadsheet (always remember to get someone else to verify that you haven’t made any mistakes in it).

Without a thorough knowledge of your application and the services it requires, it is almost impossible to calculate how much it will actually cost to move it to the cloud.

Anecdotally I’ve heard some horror stories where costs have risen far beyond the initial calculations and quotations (sometimes in the order of magnitudes higher); much so that companies have de-clouded/un-clouded their systems (doing a reverse cloud migration and moving their applications back to a local data centre).

To quote Wednesday Addams from The Addams Family Values movie, “Be afraid. Be very afraid.”

Conclusion

Next week we’ll have a brief look at virtualization, the technology behind the majority of cloud services.

Don’t forget to share your comments and experiences.

Stay safe, and I’ll see you next week!

PS. The useful house comparison examples came from Cloudflare.

Leave a Comment

Your email address will not be published. Required fields are marked *

Code like a Java Guru!

Thank You

We're Excited!

Thank you for completing the form. We're excited that you have chosen to contact us about training. We will process the information as soon as we can, and we will do our best to contact you within 1 working day. (Please note that our offices are closed over weekends and public holidays.)

Don't Worry

Our privacy policy ensures your data is safe: Incus Data does not sell or otherwise distribute email addresses. We will not divulge your personal information to anyone unless specifically authorised by you.

If you need any further information, please contact us on tel: (27) 12-666-2020 or email info@incusdata.com

How can we help you?

Let us contact you about your training requirements. Just fill in a few details, and we’ll get right back to you.

Your Java tip is on its way!

Check that incusdata.com is an approved sender, so that your Java tips don’t land up in the spam folder.

Our privacy policy means your data is safe. You can unsubscribe from these tips at any time.