Hello Folks! Let's learn about learn about cloud computing via three key real life anecdotes.
Lesson 1: What is Cloud Computing?
Story 1: Squashed Entrepreneurial Dreams
It was 1999. After graduation, my business partner and I wanted to create a tech business. We were lucky to have a department within the defense group offer us a project to automate few portions of their procurement process. We bought three PCs. We would develop on two of those, convert the third one to a database servers. We needed an expert in all things networking to help us connect them. A friend of us would help us get setup. Our three PCs and a bunch of design flow documents maxed out the 4-seater circular dining table at the business partner's house.
We demonstrated the prototype to our client. The client loved it. Now we needed to scale it. It meant more computers, more servers, more networks, more space, and an incremental portion of it as back ups. We then needed an air conditioned room to cool all those computers.
This was pre-venture capital frenzy and entrepreneurial dreams of middle class Indian entrepreneurs. The excess capital requires brought that journey to a halt.
Story 2: Big Company Complexity
I started working for a large company that was going to setup a satellite office in another state. I was lucky enough to see that journey. After selecting the office location, we had designate room for servers. The room was secured, air conditioned and would support security, file server, and back up for the 200+ member team. We then setup a Local Area Network (LAN) to connect all computers within the office and then connected the satellite office to the headquarters via Wide Area Network (WAN). At the scale, we needed more computers for back up or risk running out of storage. Our network administrator was a sought after guy. If we needed to install additional software or database, we would wait for his availability, walk into the secure server room, and install the software. If we ran out of infrastructure, then it was a 4-6 week wait. The problems at this big company was no different that the two want to be entrepreneurs.
It was just that the big-company was well prepared to handle the capital requirements. The barriers to entry was simply high and complex.
Story 3: Modern Entrepreneurs and Companies
Fast forward, I had the opportunity to both re-create a startup. The experience was very different. We walked into the office with a laptop, connected them to the Internet, logged into a cloud platform, pushed a few buttons to configure our servers, database and security with minimum requirements. We told the cloud platform that we want to create an App, have people login, store the data on to a database, be able to push all that data into one location, and run complex reports. We also told the cloud platform that it should automatically scale and add regions as our user base grew across countries.
We started coding...
Cloud Computing was the differentiator
Cloud Computing provides IT infrastructure on-demand. Just like us, anyone could start a server, database, security, analytics, and other software applications by simply clicking a few buttons. Instead of huge upfront time investments into procuring all this infrastructure, one could start coding an app in less than 30 minutes, focus on launching it to the marketplace, and scale it relatively easily. Instead of huge capital investments on servers, databases, and others, one could pay as you go, share the infrastructure costs with several other companies, pay as you go, and launch and scale solutions with speed.
By reducing barriers to entry and unlocking speed, Cloud Computing has changed how startups get started, big companies operate efficiently, and companies can scale from 1 user to billions of users relatively easily.
History of Cloud Computing
The early beginnings of Cloud Computing dates back to 1960s. However, the real visible impact began to take shape in the 2000s. According to a Techcrunch article titled "How AWS came to be?", Amazon was struggling with similar problems discussed in "What is Cloud Computing?". Amazon was launching a merchant.com that would allow retailers like Target to create their own marketplace and sell via Amazon. The initiative ran into an issue as Amazon really didn't plan for an explosive growth oriented future.
Amazon took a pause and re-engineered the platform into APIs or Application Programming Interface. APIs allow different software programs to talk to each other. If architected well, one could write software program once and reuse it. That still didn't help. The issue was later isolated to having to procure servers, networks, storage, and other capabilities. Amazon then took the next step to create the ability for engineers to spin-up these components on demand and quickly start developing their software programs. As Amazon began to mature it internally, it recognized that there is a worldwide need for something like that and launched Amazon Web Services or AWS.
Today, AWS generates $10Bn in revenue quarterly and is an important part of Amazon's offerings. The offering caught many of the competitors like Google and Microsoft flatfooted. This gave AWS an unfair advantage in the marketplace. Today, Google offers Google Cloud, and Microsoft offers Azure both of which are considerable competitors.
More importantly, AWS helped springboard several large startups. Netflix, Dropbox, Pinterest are three public companies that all found their beginnings on AWS. Today you name a startup, they are either on AWS, Google Cloud, or Azure and you pick any large company they are thinking about a cloud strategy.
How Cloud Computing Works
Cloud is a metaphor for Internet. Companies like Amazon, Google, and Microsoft that have already made substantial investments into technology infrastructure now have created solutions to allow others to use that infrastructure.
Very simply stated, it is a portal that you can login and make choices on number of servers, operating systems, gigabytes of storage, network, and several other services. The portal will then spin off several complicated code behind the scenes to spin-up the request on one of the shared infrastructure and make it available to the requestor. As these platforms have matured they have continued to add services to make things easier for the end-users.
For example, Google via its Firebase allows develop mobile applications with relative ease. It provides the ability to jumpstart the signup screens by securely managing usernames and passwords, launch a database, capture events, and other data required from the user. It also allows you to integrate all that information into another database called BigQuery that is optimized for reporting and analytics. Big Query is what Google uses for its main product called Search. As of March 2020, AWS offers approximately 212 services. Many other software developers such as SalesForce, SAP, Slack, and others have all moved their programs to cloud.
As cloud computing continues to mature, companies are beginning to build powerful software programs that are all deployed via cloud. In the old days, Microsoft shipped its Office program on a compact disk (CD) that someone needed to install on their computers. Users paid for it once and stuck with it until they found a need to upgrade again. Today, via Office 365, people can log into a website and start using it. Microsoft charges a nominal fee monthly, quarterly, or yearly, and continues to update the software frequently so you are always using the latest version.
Key Terms and Definitions
Like with everything, we end up finding ways to create new terms, abbreviations, acronyms, and what not. Cloud Computing is no different. Here are a few key terms that will build your Cloud Computing lingua-franca (a language that is adopted as a common language between speakers whose native languages are different).
The public cloud is defined as computing services offered over the public Internet. Anyone who wants to use a public cloud can simply purchase via a credit card, and configure it as needed. Most startups and companies start via a public cloud.
Unlike the public cloud, private cloud is offered via the Internet or via a specific network or to a select user group. This is ideal for large companies or special circumstances. The private cloud is just like the IT department of a company. Instead of buying and deploying servers and other infrastructure, they administer it via the private cloud.
Hybrid Cloud as the name suggests combines both public and private clouds. Companies can leverage the setup via one common interface and choose when to use private and public cloud based on specific requirements. Like with many things, companies swung the pendulum to public cloud, then to private cloud, and are now seeking to find middle ground with Hybrid Cloud.
Infrastructure as a Service (IAAS)
It is also called Hardware as a Service (HAAS) refers to the ability to spin up networks, servers, storage, and other IT computing services on-demand. These services are offered by a provider like Amazon, Google, Microsoft or others for a fee.
Platform as a Service (PAAS)
PAAS refers to the ability to configure infrastructure with operating system (OS), server management software, and other components required to build software. For example, installing Linux with a web server, and other software components to start building new software is an example of PAAS.
Software as a Service (SAAS)
SAAS refers to the ability to sign up for a software program that is hosted on one of the cloud infrastructures and use it as needed. Microsoft Office 365, Google Suite like Spreadsheets and Documents are all examples of Software Programs offered as a service.
If there are other terms and definitions, please add it via the Discussion Forum and we will continue to update the lesson.
What's Next for you?
The answer to that really depends. If you are in C-Suite i.e. CIO or CDO or CEO, you should look at foundations of AWS, GCP, and Azure so you know have a better understanding of the platforms as well as find ways to implement a cloud strategy.
If you are a fullstack developer, software engineer, programmer, network administrator, or some form of a technology expert, you will soon have to make choices on areas of specialization. You can specialize in AWS, GCP, or Azure by diving deep into various areas of specialization.
If you were just curious about what is Cloud Computing, then we hope this overview helps!
Thank you for taking the time and come back again for more!