Table of contents
As software developers, we are constantly on the lookout for solutions that will allow us to publicize our projects and work for people all over the world to use and benefit from. The thought of managing our own servers and infrastructure, on the other hand, can be intimidating and exhausting. Fortunately, companies like Google recognized this need and provided a solution in the form of Google Cloud Platform (GCP). With GCP, we can easily leverage the power of the cloud to bring our projects to the masses.
Google Cloud is a comprehensive suite of cloud computing services that can assist you in easily building, running, and scaling your applications. Google Cloud provides a wide range of solutions to help you achieve your goals, from data storage and analysis to machine learning and artificial intelligence.
In this blog, we’ll go over the fundamentals of Google Cloud, such as what it is, how it works, and why it’s such a valuable tool for both businesses and developers. We’ll go over the various Google Cloud services and provide real-world examples of how businesses are using Google Cloud to achieve their goals.
A little introduction about me
Hi, I am Arnab Sen. A Software Developer from India. I was an SWE Intern at Google and will be joining them as a Full Time Engineer. I was also a Google Cloud Facilitator where I taught 150+ students about Google Cloud and its tools. Feel free to reach out to me on my social handles at arnabsen.dev/links
Getting a brief idea
Before starting out, I urge you to watch this video by Google Cloud Tech once. It will really inspire you to learn about this new domain of technology.
Wow, after watching that video, it’s clear that Google Cloud is the bomb! It’s like a Swiss Army knife for building innovative solutions that can do some seriously cool stuff. Whether you’re trying to build a chatbot that can talk to customers or a machine learning model that can predict the future, Google Cloud has got your back.
One of the things that really stood out to me was how easy it is to use Google Cloud. The video showed how you can set up a machine-learning model with just a few clicks, and I was blown away by how simple it was. With Google Cloud, you don’t have to worry about all the nitty-gritty details of setting up servers and managing infrastructure. You can focus on building your application and let Google Cloud handle the rest.
What is Cloud Technology after all?
Cloud computing is the delivery of different services through the Internet, including data storage, servers, databases, networking, and software.
Ehh !! That sounds complicated.
So, let’s imagine you have a lot of toys but your room is small and you can’t keep them all. So you approach a friend and ask if you can keep some of your toys in their room. You can still play with your toys whenever you want, but they won’t take up as much space in your room.
Where do Cloud Platforms come into the picture?
Cloud computing is similar in this regard. You have a lot of computer stuff instead of toys, such as pictures, videos, and documents, but your computer doesn’t have enough storage space to keep everything. So you ask the cloud (which is similar to your friend’s room) if you can store your belongings there.
Let’s rewind a little bit
How do you think Cloud became mainstream? There were 3 stages to this. Let’s go through them one by one.
Stage 1: On-Premise
Back in the day, let’s say you created an e-commerce platform. It had 5 users and you had just one server on your desk and you are managing everything. Everything is doing great. All of a sudden someone tweets about your platform and now you have 1000s of users. But your poor server can’t handle those many users so it starts crashing. So you had to do one thing called “Scaling”. Basically, you had to buy a bigger, more powerful computer to handle all the users. Can you imagine how tedious it was back in the day?
Stage 2: Time Sharing
That led to the 2nd stage. Now, big companies like IBM would buy out a million computers cause someday they would definitely need them. But sometimes there might be some computers which are sitting idle and not being used. So what did they do? They started to rent those out, to other companies and small startups. That way it will be cheaper and more affordable for them and companies like IBM started making passive income, which is awesome.
Stage 3: Cloud
This became more and more popular and it got more mainstream for startups to rent out servers. Then bigger companies like Google, and Amazon saw an opportunity to make more active money by providing additional services along with resources. And this is what is called Cloud.
Career Prospects in Cloud
Cloud is a really booming technology, with the big and small tech companies now shifting to Cloud-based architecture. And this shift has generated the requirement for skilled Cloud engineers, who are proficient with cloud technologies and platforms like GCP.
In fact, the Cloud Computing Market is estimated to hit USD 791.48 Billion by 2028. So, if you’re looking to build a career in cloud computing, there’s never been a better time to do so.
Salary? Let’s see how much a Cloud architect makes in Bangalore India:
Yes, 21L per annum 🤑.
Google has this very interesting philosophy:
“Every Company is a Data Company”
In the future, every company regardless of its size and technology will differentiate itself from its competitors through technology. And that technology will be in a form of software and great software always revolves around data. So, every company in some way will be a data company. And cloud gives you the services to manage large volumes, velocity, and variations of data.
With platforms like GCP, you can further analyze those data and gain further insights. By leveraging the power of data analytics and machine learning, businesses can gain valuable insights into customer behavior, market trends, and internal operations. This data-driven approach can help companies identify opportunities for growth, improve efficiency, and ultimately drive business success.
How do people use the cloud?
Cloud is usually broken down into 3 different umbrellas.
Infrastructure as a Service (IaaS)
This is basically Time-Sharing. In simple terms, it allows users to access computing infrastructure, such as servers, storage, and networking, without having to purchase and maintain physical hardware themselves.
Platform as a Service (PaaS)
This takes it one step further. Previously if you had to add 10 more servers, you could reach out to those IaaS providers and ask for more 10 servers. After that, you will have to manually handle the deployment and setup. But with this PaaS, all they need is the code of the application. The providers will take care of handling the load, setting up the OS, and everything and you only have to focus on the business logic.
Software as a Service (SaaS)
For SaaS, you can think of simple software that is available for users to use like this blog hosting tool which is providing a service for users to publish and read blogs.
In the SaaS model, the software provider is responsible for maintaining the application, including security, availability, and performance. Customers typically pay for SaaS on a subscription basis, with fees based on usage or the number of users.
Where does GCP fall in these categories? Well with GCP you can get your own servers, storage disks, and everything. But at the same time, it has features that handle them for you. So it covers both IaaS and PaaS domains.
Let’s dive into some of the GCP tools
Compute Engine is a service that allows users to run virtual machines (VMs) on Google’s infrastructure. In simple words, it lets you run any code on Google servers. If let’s say you have a giant script that takes a couple of hours or days to run. Instead of doing it on your laptop and worrying about your battery dying, etc, you can create a VM instance for yourself and run the code over there.
A scalable and highly available object storage service for storing and accessing data on GCP. In other words, Google Cloud Storage is like your very own storage unit in the cloud, where you can keep all your digital “stuff” — like files, photos, videos, and more — safe and sound. But here’s the really cool part — Google Cloud Storage is designed to be super reliable and secure. It’s backed up across multiple servers and data centers, so even if one server goes down, your files will still be safe and accessible. Plus, you can control who has access to your files, so you can make sure only the right people can see and edit them.
Cloud Load Balancing
Cloud Load Balancing in GCP is a tool that will help you distribute the incoming network traffic to multiple virtual machines (VMs) or zonal or regional managed instance groups across different regions, zones, or across multiple regions. It balances the network traffic in real-time so that no single instance or zone gets overwhelmed, resulting in faster response times and better reliability.
In simple terms, let’s say you have an online store that is getting a lot of traffic. Without load balancing, all the traffic would hit a single server, potentially causing it to slow down or crash. But with Cloud Load Balancing, the traffic is distributed evenly across multiple servers, ensuring that the website stays up and running even during peak traffic times.
Big Query allows you to analyze massive amounts of data quickly and efficiently using a fully-managed, serverless cloud data warehouse. With BigQuery, you can easily load and query data sets, perform data transformations, and visualize your results using Google Data Studio or other third-party tools. It is highly scalable, secure, and easy to use, making it a popular choice for businesses of all sizes that need to analyze large volumes of data.
IAM and Admin Tools
IAM (Identity and Access Management) enables you to manage access control by defining who (identity) has what type of access (role) to which resource. It provides a centralized view of permissions and access for all cloud resources, including Google Cloud Storage, BigQuery, and Compute Engine. IAM allows you to create and manage service accounts, grant permissions to users, and set up custom roles to meet specific business needs.
And there are many more such tools. These tools have been used by companies to drive their software and manage the data that they receive.
Take Spotify for example. Spotify launched a music-streaming service in late 2008, surpassed 1 million customers in early 2011, and today offers 248 million monthly active users in 79 markets access to more than 50 million songs and podcasts. How are they handling this massive user base? Yes, with Google Cloud.
“Google Cloud removes a lot of the operational complexity from our ecosystem. That frees up time,” said Tyson Singer, vice president of technology and platform at Spotify.
“We can iterate quicker on key needs, like data insights and machine learning. Having infrastructure managed for us, with the lower-value details taken away, streamlines our ability to concentrate on what’s important to our users and give them the experiences they know and love about Spotify.”
Here is a great video on the Spotify case study:
The video teaches us a valuable lesson: “Why waste time building something that is already done?” Google is the world’s largest search engine, and it also happens to build the best data centers. And it makes sense; why would a company waste time building a data center when they can simply use a platform like GCP and focus on the business logic and idea they are developing?
Take a quick glance at the scale that Google Cloud works at:
How can you as a student use GCP?
As we say in the first video, you as a student can fully leverage the various tools that GCP provides for a variety of applications like training ML models, starting a server, and many more. Let’s get our hands dirty and learn how to use the Google Cloud Console.
Let’s go through it step by step:
Visit the Google Cloud Console and log in and check the terms and conditions.
Once you are in, you will see a dashboard something like this:
Currently, it’s pretty empty but once you start working on your project you will be able to see some stats.
Let’s dig into the Project Details section. Here we have:
Project Name: This is to make it easy for you to differentiate between the projects that you have. It is not globally unique.
Project ID and Project Number: These are in fact globally unique and different for different projects.
Now, let’s build a resource. Let’s create our own Virtual Machine. If you don’t know what a VM is, it’s like a computer inside a computer. It’s a software-based representation of a computer that can run its own operating system and applications just like a physical computer.
So, now click on the hamburger menu at the top-left. Look for “Compute Engine” and then click on “VM Instances”.
This will open up another dashboard that will show us all the instances that we have created. In my case, I don't have any and will create one so click on “Create Instance”.
That will open up a form for us where we will have to provide details regarding our VM instance.
First, we have to choose the name of our instance. You can name it anything you want, I will be leaving it as “instance-1”.
Then we have Region and Zone. This means where in the world our instance will be located. We already talked about how Google has its data centers spread across the world. We can leverage that scale and set up our VM anywhere we want. This way you can set up your VM closer to your user base which will reduce the latency. I will choose “asia-south1” cause that is closer to where I am right now.
Scrolling down you can select the Machine Type that would suffice your requirements.
I will just go with the e2-micro cause this is just for demo purposes. Next, in the Boot Disk section, you can choose the type of OS you want your VM to have.
You can skip the rest of it and then go to the bottom and click on “Create”. That will take you back to your dashboard and you can see the status of your VM instance.
Once the setup is complete you will see a ✅ in the status. And then click on SSH.
Basically, it will now open up a console and you can literally use the VM like your own machine, set up a server, run some scripts, etc. I created a Python Hello World program and executed it as you can see:
Once you are done with the work, it’s always a good practice to clean up the resources. So, let’s delete our VM instance. Head back to the VM instances dashboard. Click on the 3 dots and choose Delete.
It will ask for confirmation and then after some time, the VM instance that was assigned to you will be wiped out.
Now you must be very interested in learning more about Google Cloud. Well, Google has tonnes of great resources for you. Here are some of them:
https://www.cloudskillsboost.google/journeys This is a great place to learn Google Cloud. You will have step-by-step milestones to cover and learn about a particular tool.
Take part in events like 30 days of Google Cloud where you also earn cool swags along with learning about Google Cloud.
https://youtu.be/kzKFuHk8ovk?list=PLIivdWyY5sqKh1gDR0WpP9iIOY00IE0xL A playlist of Google Cloud Essentials.
So, now you have learned what cloud is, what GCP is, and how to use the platform to build resources. In conclusion, the Google Cloud Platform has revolutionized the way we approach computing and data management. With its vast array of tools and services, businesses of all sizes can harness the power of the cloud to scale their operations, improve efficiency, and drive innovation. From startups to global enterprises, GCP offers a world of possibilities, and with the right knowledge and skills, anyone can leverage it to unlock their potential.
So, don’t be afraid to explore, experiment, and learn. Who knows, maybe the next big thing will be built on the cloud, and it could be yours!