cloud computingIntroduction

Cloud computing is the on-demand delivery of IT resources via the Internet with pay-as-you-go pricing. Instead of buying or owning and maintaining physical data centers and servers, you can access technology services such as computing power, storage and databases on an as-needed basis from a cloud provider like Amazon web services. 

Organizations of every type, size and Industry are using the cloud for a wide variety of use cases. Such as data backup, disaster recovery, email, virtual desktops, software development and testing, big data analytics and customer-facing web applications. 

For example, healthcare companies are using the cloud to develop more personalized treatments for patients, financial services companies are using the cloud to power real-time fraud detection and prevention and video game makers are using the cloud to deliver online games to millions of players around the world. With cloud computing, your business can become more agile and reduce costs. 

Use Cases of Cloud Computing

Cloud computing gives you instant access to a broad range of technologies. So you can innovate faster and build nearly anything you can imagine. From infrastructure services such as compute, storage and databases to Internet of Things, machine learning, data analytics and much more. You could deploy technology services in a matter of minutes and get from idea to implementation, several orders of magnitude faster than before. This gives you the freedom to experiment and test new ideas to differentiate customer experiences and transform your business. 

So just adding machine learning and intelligence to your applications in order to personalized experiences for your customers and improve their engagement. Cloud computing also makes it easy to expand to new regions and deploy globally in minutes. 

Types of Cloud Computing

October 23rd, 2019 Google announces it has achieved the impossible goal of QUANTUM SUPREMACY, a machine more than 100 million times faster than your 16 inch MacBook. Only one month later AWS releases Quantum Computing as a service in the cloud. If you’re a software developer in today’s world. There’s a good chance your infrastructure is on the cloud and very likely with a big divider like AWS, Azure, TCP or IBM. 

Using cloud is a huge win for companies instead of buying and managing their own hardware. A starter today has all the infrastructure could possibly need right at its fingertips the startup only pays for what it actually uses. It takes almost no effort to scale things up or down and you don’t need to hire an IT guy to wire the thing up. I mean imagine if I tried to build a server room in Phoenix, Arizona my air conditioning bill alone would likely far exceed than my cloud bill would be for the same set of resources. 



That’s because they build these highly optimized Cloud campuses next to rivers to optimize cooling with state-of-the-art equipment. They can guarantee uptimes of 99.99% and beyond I like to think of cloud computing like a power plant. You don’t care where or how that power is being generated you just plug in your device and then pay the bill. In fact, we might as well just call that electricity as a service. Because as a developer, it’s important to distinguish between the different categories of cloud services out there. 

The modern Cloud can trace its roots back to 2006 when Amazon launched ec2 and s3. 

ec2 stands for elastic compute cloud and it’s essentially a virtual computer with its own RAM and CPU along with an operating system. You can administer with an IP address for networking. When you spin up a server in the cloud it’s called a virtual machine because you haven’t actually allocated any specific piece of hardware rather the cloud has virtualized a simulated environment for you that resembles a piece of hardware where there’s a lot going on behind the scenes to make this possible.

The other big service launched by AWS back in 2006 was s3, which is basically a hard drive with a file system in the cloud where you can store things like images and videos. 

Things like storage buckets and virtual machines are known as Infrastructure as a Service (Iaas). They’re the low level building blocks of the cloud. So it’s up to the developer to manage and scale them. 

Once infrastructure became available and it created explosive growth in a new type of software Software as a Service (SaaS). A great case study is Dropbox, in the early days the company didn’t have the money to roll out its own infrastructure. So it uploaded its users files to s3. So it didn’t even really start out as a file storage company. It was more of a software company that helped people get their files uploaded to the cloud and it just goes to show you that you can build a billion-dollar business by focusing primarily on the front end-user experience. 

So infrastructure-as-a-service abstracts away hardware, it took no more than a couple of years to see cloud computing rise to another level Platform as a Service (PaaS). When developing an application developers have more concerns than just hardware. You have to think about security and how to scale the workload and how to put all the pieces together into a cohesive unit.

That’s what a platform as a service aims to do. Some famous examples include Elastic Beanstalk, Heroku and Google App Engine. 

Let’s imagine a developer has built an app with Ruby on Rails, in order to be used by people around the world that app needs a database and a web server with a very specific configuration. The platform is designed to take care of the configuration part in theory. The only thing that a developer has to do is upload their code and the cloud takes care of the provisioning of the database, provides security and scales the traffic. So what we have here is a Platform for trading software as a service. 

But we can still take things one step further, the cloud can also provide sdks that bring the cloud directly into our front-end applications. That means a developer might not need any back-end code at all. Giving us a back end as a service the two big players in this space include Firebase from Google and Amplify from AWS, with just a few lines of JavaScript anybody can create a real-time application with user authentication hooked up to a cloud database. That’s way more reliable than any back-end.