Mastering Google cloud: building the platform that serves your needs
Khalil Maad M.a, Adadurov S.E.b, Mahmood M. Sh.c
a University of Diyala, Baghdad old rd., Baquba, Iraq b JSC "VNIIZHT", 3rdMytischinskaya Street, 10, Moscow, Russia c Ministry of Higher Education and Scientific Research, Baghdad, Iraq
Abstract
The work describes the concept of cloud computing generally and the Google cloud platform specifically, a minor comparison between the three major cloud providers (AWS, M.S. Azure and GCP) is discussed and reasons for choosing GCP are shown. A step-by-step procedure to create a GCP account with a free $300 from google is also shown and creating an instance is described in great details. Other aspects are covered such as Billing, Storage, Networking, Security and much more not to mention where to find all the documentary and necessary classes and code-labs to completely master all the products and services of GCP.
Keywords 1
Cloud Computing, GCP, AWS, M.S. Azure, Virtual Machines.
1. Introduction
Cloud Computing has been with us for many years now, but still for many medium and small size companies there are many doubts and questions about why and how to migrate there business to the cloud. Should they invest in a team of IT specialists? Is the process very complicated? Would it take a very long time that the company cannot afford? And many other issues that keep MSB's (Medium & small size business) afraid to approach Cloud providers. Cloud hosting offers great flexibility, which is a good fit for situations where you do not know (or cannot know) how much computing power you need. You do not need to overprovision to handle situations where you might need a lot of computing power in the morning and less or almost none overnight. In addition, cloud hosting comes with the maintenance built in for several products, which means that cloud hosting results in minimal extra work to host your systems compared to other options where you might need to manage your own databases. Google is
one of the world's leading Cloud computing providers, providing a very wide variety of services and products that can make migrating to the cloud very easy and cost efficient. This workshop shows how easy it is to learn and master all the products and services that Google Cloud Platform GCP can offer.
2. Why Google Cloud Platform?
There are many cloud providers out there, including Amazon, Microsoft, Google, Rackspace, DigitalOcean, and many more. With so many competitors in the market, each of these companies must have its own take on how to best serve customers. It turns out that although each provides many similar products, the implementation and details of how these products work tends to vary quite a bit[ 1].
Google Cloud Platform (GCP) is a portfolio of cloud computing services that grew around the initial Google App Engine framework for hosting web applications from Google's data centers [2]. Since the launch of Google App Engine in 2008, GCP has grown into one of the
Models and Methods for Researching Information Systems
in Transport, Dec. 11-12, St. Petersburg, Russia
EMAIL: [email protected] (A. 1); [email protected] (A.
2); [email protected] (A. 3)
ORCID: 0Q00-0002-9674-739X (A. 1);
i^v \ © 2020 Copyright for this paper by its authors. Use permitted under Creative
Commons License Attribution 4.0 International (CC BY 4.0).
=1 CEUR Workshop Proceedings (CEUR-WS .org)
premier cloud computing platforms on the market, though it still trails Amazon Web Services (AWS) and Microsoft Azure in terms of market share [3]. According to Google, Google Cloud Platform users can expect 99.95% reliability [4]. They achieve this level of performance by building in safety nets to their application and network architecture, assuming that any one element is fallible. With integrated redundancy and robust failover capabilities, data is always accessible through another system. Last but not least, Google is constantly running performance tests -pressure-testing systems in order to proactively prevent problems and troubleshoot quick remedies.
3. Creating a GCP account
Creating a GCP account couldn't be easier and can be established in three easy steps:
1. Go to cloud.google.com
2. Click on Create a new GCP account.
3. Enter location and credit card
information.
In order to benefit from the $300 free credit that google provides for new users to help them in learning and training with the GCP services, It is very important to choose the choice "individual" when choosing the account type in the step 2 window, the other option "business" doesn't include the free offer as shown in Figure 1.
Choose the payments profile that will be associated with this account or transaction. A payments profile is shared and used across all Google products
Figure 1: Creating GCP account
After that you just need to enter your address and credit card information and you are all set.
4. The main console (Dashboard)
After creating a new GCP account a welcome screen message appears and then automatically go to console.cloud.google.com where you will find your dashboard. The dashboard is where you will spend most of your time after migrating your project to the cloud. In this page you can find all the information, resources and controls needed to monitor and control your project. Performance Dashboard gives you visibility into the performance of your Virtual Private Cloud (VPC) network. It provides packet loss and latency (Round Trip Time, or RTT) metrics between the zones where you have virtual machine (VM) instances [5] as shown in Figure 2.
Figure 2: The Dashboard
From the console a new project can be created where the user only need's to give the project a name and GCP will do all the rest including giving the project a unique identifier.
Projects are primarily a container for all the resources we create. For example, if we create a new VM, it will be "owned" by the parent project. Further, this ownership spills over into billing—any charges incurred for resources are charged to the project. In addition to acting as the owner of resources, projects also act as a way of isolating things from one another, sort of like having a workspace for a specific purpose. [6]
This isolation applies primarily to security, to ensure that someone with access to one project doesn't have access to resources in another project unless specifically granted access.
5. Creating an Instance
To create a new instance you must go to the main left hand side menu on the console and from there go to the compute engine menu and choose VM instances. The first time you click this link, Google initializes a Compute Engine for you, which should take a few seconds. Once that's complete, you should see a Create button, which brings you to a page, where you can configure your virtual machine as shown in Figure 3. After giving the instance a name it is necessary to choose in what region you want your instance to be, google has many data centers around the world and in a specific region they have multiple zones as shown in Figure 4.
Name
Figure 3: Creating an instance
GCP Regions and Zones
9
■ Cunen! R«kxis & njmdet of Zoom* □ Future Refpons & Numbe* oi Zones*
Figure 4: GCP regions and zones worldwide.
It is recommended to choose a data center nearer to the customers or users of your project to reduce latency, or a data center in your own country if you have security reasons. Now you must choose and configure what type of virtual machine you need to use for your project, google provides a wide variety of computing power with a suitable amount of memory to assist it, as shown in Figure 5.
General-purpose Compute-optimised Memory-optimised Machine types for common workloads, optimised for cost and flexibility
CPU platform selection based on availability
Figure 5: Compute power options in GCP
Starting from a small micro processor with only 1GB of memory to up to 96 high performance multicore processors with over multiple Terabytes of memory in some data centers.
Now the computing power has been configured it is time to choose what image or operating system your project is going to run on. Google also provides a wide variety of images and multiple versions of each image to choose from as shown in Figure 6.
OS images Application images Custom irric
□ Show images with Shielded VM features
• Debian GNU/Linux 9 (stretch) amd64 built on 20190213 CentOS 6
x86_64 built on 20190213 CentOS 7
x86_64 built on 20190213 CoreOS alpha 2051.0.0 amd64-usr published on 2019-02-11 CoreOS beta 2023.2.0 amd64-usr published on 2019-02-11 CoreOS stable 1967.6.0 amd64-usr published on 2019-02-13 Ubuntu 14.04 LTS
amd64 trusty image built on 2019-02-09 Ubuntu 16.04 LTS
amd64 xenial image built on 2019-02-12
Figure 6: OS images provided by google.
Next the firewall and security options should be configured as required and click create. It will take a couple of seconds for the
GCP data centers to prepare the VM, when prepared, your instance shall appear and you can click on SSH to enter the shell where you can use your VM as you need as shown in Figure 7.
Google Cloud Shell
F4m, pre-mnillcd wnh iht tool* |roun««d Forth« Googl. Cloud Rilform Li
Starting update of app: teat-project, version: 1
10:33 PM Cloning 1 static file.
10:33 PM Cloning 3 application riles.
10:33 PM compilation starting.
10:33 PM Compilation completed.
10:33 PM Starting deployment.
10:33 PM Chicking If deployment succeeded.
10:33 PM Deployment successful.
10:33 PM Checking If updated app version Is serving. 10:33 PM Completed update of app: test-project, versl devstar3193(cloudshell:-/appenglne-exa>ple?
Real Linux environment
Configured for Google Cloud
Google Cloud SOK Google App Engine SDK
Popular language support
All of these events can be monitored by different triggers, which can then run different functions—it's this unique ability to knit different pieces together that makes Cloud Functions so interesting. Cloud Functions allows you to associate small pieces of code to different events and have that code run whenever those events happen. For example, you could hook up a function so that it runs whenever a customer uploads a file into a Cloud Storage bucket, and that function might automatically tag the image with labels from the Cloud Vision API.
7. Storage
CANCEL START CLOUD SHELL
Figure 7: Google Cloud Shell
6. Creating Cloud Functions
With Cloud Functions, instead of thinking about virtual servers (like Compute Engine), containers (like Kubernetes Engine), or even "applications" (like App Engine), you think only about single functions that run in an entirely serverless environment.
Instead of building and deploying an application to a server and worrying about how much disk space you need, you write only short, narrowly scoped functions, and these functions are run for you on demand. Creating a cloud function can be shown in Figure 8.
(•••) Cloud Functions <r Create function
\
When it comes to storage, you should ask yourself a couple of questions: do you want your data to be edge-cached to speed up downloads for users on the internet? Are you optimizing for throughput or latency? Is it OK if the "time to first byte" is a few seconds? How available do you need the data to be? How many concurrent readers do you need to support? The answers to these questions will define what kind of cloud storage is most suitable for your project [8]. The more your storage is frequently accessed and spread on data centers near your users, the less the latency but on the other hand the more the cost, and the opposite is also true, as shown in Figure 9.
Public Processed Long Term Storage
Characteristics 99.95% wtiaHity Ge>redundant Sa:a storec In a narrow gragrafhc regier MOV jvjilati&f W.OT ».ailabiltj 3May™imum storage Airaticn 90day rrinlirun storage Anticr.
Uses Cases iiofWAudwce 3lg Daia se:s tcr orccessng Bachp Disaseriecovwy Long lo M muttlmecie Cotroter« archives
Storage Cost Gfltaionth «« SOI $.007
Retrieval Cost GB 8.01 S.06
Storage Type Region«! IMta CM™
Figure 8: Creating Google cloud function
Figure 9: Terms of storage.
8. Other GCP Services
GCP provides many services that can support your project or your migration to the cloud, here are some of them:
In the world of Cloud Functions, other types of events from lots of different cloud services can trigger requests (in addition to regular HTTP requests). For example, a function can be triggered by someone uploading a file to Cloud Storage or a message being published via Cloud Pub/Sub [7].
• Artificial intelligence & machine learning: AI Hub (beta), Cloud AutoML (beta), Cloud TPU, Cloud Machine Learning Engine, Diagflow Enterprise Edition, Cloud Natural Language, Cloud Speech-to-Text, Cloud Text-to-Speech,
Cloud Translation, Cloud Vision, Cloud Video Intelligence, Cloud Inference API (alpha), and more.
• API management: API Analytics, API Monetization, Cloud Endpoints, Developer Portal, Cloud Healthcare API
• Data analytics: BigQuery, Cloud Dataflow, Cloud Dataproc, Cloud Datalab, Cloud Dataprep, Cloud Composer, and more.
• Databases: Cloud SQL, Cloud Bigtable, Cloud Spanner, Cloud Datastore, Cloud Memorystore.
• Developer tools: Cloud SDK, Container Registry, Cloud Build, Cloud Source Repositories, Cloud Tasks, and more, as well as Cloud Tools for IntelliJ, PowerShell, Visual Studio, and Eclipse.
• Internet of Things (IoT): Cloud IoT Core, Edge TPU (beta).
• Hybrid and multi-cloud: Google Kubernetes Engine, GKE On-Prem, Istio on GKE (beta), Anthos Config Management, Serverless, Stackdriver, and more.
• Management Tools: Stackdriver, Monitoring, Trace, Logging, Debugger, Cloud Console, and more.
• Migration: Cloud Data Transfer, Transfer Appliance, BigQuery Data Transfer Service, Velostrata, VM Migration, and more.
• Networking: Virtual Private Cloud (VPC), Cloud Load Balancing, Cloud Armor, Cloud CDN, Cloud NAT, Cloud Interconnect, Cloud VPN, Cloud DNS, Network Service Tiers, Network Telemetry.
• Security: Access Transparency, Cloud Identity, Cloud Data Loss Prevention, Cloud Key Management Service, Cloud Security Scanner, and more.
In security matters, once the users have identified the Google Cloud Platform services that would benefit them, owners can manage which team members or admins have access to which services.
Encryption keys are essential for encrypting data at REST [9]. For this purpose, Google launched Cloud KMS (Key Management Service). Cloud KMS is a managed service that lets users create, rotate, and handle encryption keys for Google Cloud services such as Cloud SQL databases and Compute Engine disks. By using Cloud KMS, you can handle AES256,
RSA 2048, RSA 3072, RSA 4096, EC P256, and EC P384 cryptographic keys.
9. Conclusion and Documentation
As shown, Google cloud has a very wide variety of products and services that can be implemented to your project very easily and at a low cost. These services can not all be illustrated in this document, but google has provided a number of methods and documentation to help understand and master each service, making GCP one of the easiest to learn and use cloud services on the market. For more details about each service you can go to cloud.google.com/docs where there is an answer for almost everything. As for training and step by step illustration it is recommended to go to g.co/codelabs/cloud where you can find many examples and codelabs that you can benefit from when learning and using the $300 free credit that google generously provides each new learner.
References
[1] S. P. T. Krishnan, Jose L. Ugia Gonzalez, The Google Cloud Platform Difference, Building Your Next Big Thing with Google Cloud Platform, Apress, Berkeley, CA, 2015, pp 3-12.
[2] Future of cloud computing, Google cloud platform,
https://services.google.com/fh/files/misc/f uturecloudcomputing .pdf
[3] Larry Dignan, Top cloud providers in 2020: AWS, Microsoft Azure, and Google Cloud, hybrid, SaaS players, https: //www .zdnet. com/article/the -top -cloud-providers-of-2020-aws-microsoft-azure-google-cloud-hybrid-saas/.
[4] Google Cloud Platform: What it is, how to use it, and how it compares, Acronis, https://www.acronis.com/en-us/articles/google-cloud-platform/#:~:text=According%20to%20G oogle%2C%20Google%20Cloud,any%20 one%20element%20is%20fallible..
[5] Jonathan Bartlett, Using the Google Cloud Platform, Building Scalable PHP Web Applications Using the Cloud, 2019, pp 153-162.
[6] S. P. T. Krishnan, Jose L. Ugia Gonzalez, Getting Started with Google Cloud
Platform. In: Building Your Next Big Thing with Google Cloud Platform. Apress, Berkeley, CA., 2015, pp. 13-25.
[7] Mandeep Kumar, Google Cloud Platform: A Powerful Big Data Analytics Cloud Platform, International Journal for Research in Applied Science & Engineering Technology (IJRASET), Volume 4 Issue XI, November 2016.
[8] Storing and Analyzing Your Data in Google's Cloud, Google Cloud Platform, https://cloud.google.com/files/articles/goo gle-cloud_technical-article_overview-of-storage-options.pdf.
[9] Google Infrastructure Security Design Overview, Google Cloud Whitepaper, https://cloud.google.com/security/infrastr ucture/design/resources/google_infrastruc ture_whitepaper_fa.pdf.
[10] Khalill M.M., Khomonenko A.D., Gindin S.I. (2020) Load Balancing Cloud Computing with Web-Interface Using Multi-channel Queuing Systems with Warming up and Cooling. In: Kotenko I., Badica C., Desnitsky V., El Baz D., Ivanovic M. (eds) Intelligent Distributed Computing XIII. IDC 2019. Studies in Computational Intelligence, vol 868. Springer, Cham pp385-393.
[11] Khomonenko A.D.; Gindin S.I.; Khalil M.M. A cloud computing model using multi-channel queuing system with cooling, 2016 XIX IEEE International Conference on Soft Computing and Measurements (SCM). Year: 2016. Pages: 103 - 106.
[12] Khomonenko A.D., Khalil M.M., Kassymova D.T., Probabilistic Models for Evaluating the Performance of Cloud Computing Systems with Web Interface // SPIIRAS Proceedings. 2016. № 6 (49). pp. 49-65.