Professional Documents
Culture Documents
Introduction To Cloud Computing
Introduction To Cloud Computing
On Demand Self Service: Cloud-computing customers use an automated interface and get
the processing power, storage, and network they need, with no need for human
intervention.
Broad Network Access: Resources can be accessed anywhere over the network.
Resource Pooling: Provider of those resources has a big pool of them and allocates them to
customers out of the pool. That allows the provider to get economies of scale by buying in
bulk. Customers don’t have to know or care about the exact physical location of those
resources
Rapid Elasticity: Customers who need more resources can get more rapidly. When they need
less, they can scale back
Measured Service: the customers pay only for what they use or reserve, as they go. If they
stop using resources, they stop paying.
IaaS offerings provide you with raw compute, storage, and network, organized in ways familiar to
you from physical and virtualized data centres. Where you pay for what you allocate.
PaaS offerings, on the other hand, bind your code to libraries that provide access to the
infrastructure your application needs, thus allow you to focus on your application logic. Where you
pay for what you use.
Google gives customers the ability to run their applications elsewhere if Google becomes no longer
the best provider for their needs. Which includes:
Using Open APIs. Google services are compatible with open-source products
Google publishes key elements of its technology, using open-source licenses, to create
ecosystems that provide customers with options other than Google
Google provides interoperability at multiple layers of the stack. Kubernetes and Google
Kubernetes Engine give customers the ability to mix and match microservices running across
different clouds. Google Stack driver lets customers monitor workloads across multiple cloud
providers
Google Cloud Platform lets you choose from computing, storage, big data/machine learning, and
application services for your web, mobile, analytics, and backend solutions.
Resource Manager and Hierarchy:
Virtual Machines in the Cloud:
Compute engine lets us run the VM in the Google Cloud Infrastructure
Each VM has a power of a full-fledged operating system and can configure them like we
build a physical server by specifying CPU power and memory, amount and type of storage,
operating system.
VMs needs a physical storage and can choose between two kinds
o Persistent storage/disks – Stored data is not lost when VM terminates
o SSD – Local SSD gives high performance scratch space, but data stored gets lost
when the VM terminates.
GCP offers Linux and Windows ready to go versions, also there is an option of loading own
images as well.
In GCP VM we can include start up scripts that can install software packages on first boot
etc. We can even take a durable snapshot of the disks from the running VM and can use
them as backup when migrating VM to another region.
A preemptible VM is different from ordinary compute engine VM in one aspect, where
compute engine is given permission to terminate if the bash jobs completes and if its
resources are needed elsewhere. This can save money as well.
Using customer build VMs we can create “huge VMs – which are great for in memory DB and
CPU intensive analytics”, Also Compute engines has the feature called Auto scaling which
adds and removes VMs based upon work load and balancing the incoming traffic across
VMs.
Above 4 are for the traffic that is coming into Google network from the internet.
o Internal – to Load Balance the traffic inside any project, like between the
presentation layer and business logic layer.
Multi-Regional (High Regional (High Nearline (Backup and Cold line (Backup and
Performance) Performance) Archival) Archival)
Most frequently Accessed Frequently Accessed less than Accessed less than
accessed data. within a region. once in a month. once in a year.
Very High Price per GB High Price per GB Low Price per GB Very low price per GB
Stored per month. Stored per month. Stored per month. Stored per month.
Very low Price per GB low Price per GB High Price per GB Very high Price per GB
transferred. transferred. transferred. transferred.
Example: website Example: to store data In scenarios where For data archiving,
content, interactive close to their compute you plan to read or online backup, and
workloads, or data engine, virtual modify your data once disaster recovery
that's part of mobile machines, or their a month or less on
and gaining Kubernetes engine average.
applications clusters
IaaS:
It allows to share the computing resources by virtualizing the hardware using virtual
machines.
Here one must install web server, database, middleware, configure the underlying system
resources such as disk space, disk IO or networking. However, as demand for the application
increases, we need to copy the an entire VM and install OS for each instance of the app
which can be slow and costly as well.
PaaS:
With App engine we get access to programming services, so all we can do is write the code
and self-contained workloads that uses these services and include any dependent libraries.
As Demand for the application increases, the platform scales your app seamlessly and
independently by workload and infrastructure. But the underlying infrastructure cannot be
finetuned to save cost.
Kubernetes/Containers:
The idea of container is to give independent scalability of workload and an abstraction layer
of OS and Hardware.
All you need on each host is an OS kernel that supports containers, and a container runtime.
You’re virtualizing the OS, it scales like paths, but gives you nearly the same flexibility as
IAAS. With this abstraction, your code is ultra-portable, and you can treat the OS and
hardware as a black box.
'll use an open source tool called Docker, that defines a format for bundling your application,
its dependencies, and machine specific settings into a container. You could use a different
tool like Google Container Builder.
Kubernetes is tool that helps in orchestrate many containers on many hosts, scale them as
microservices, and deploy rollouts and rollbacks.
Kubernetes is an open source orchestrator that abstracts containers at a higher level so you
can better manage and scale your applications. At the highest level, Kubernetes is a set of
APIs that you can use to deploy containers on a set of nodes called a cluster. The system is
divided into a set of master components that run as a control plane, and a set of nodes that
run containers.
App Engine:
The App engine (PaaS) platform manages the hardware and networking infrastructure required to
run the code. To Deploy an application in App engine, we just need to deploy app engineer code and
the App engine service takes care of the rest. App Engine provides built in services that many web
applications need like No SQL DB, in memory caching, load balancing, health checks, logging and
authenticate users. App engine will scale the application in response to the amount of traffic it
receives. App Engine is suited for application where the workload is highly variable or unpredictable
like web application and mobile backend. It offers to 2 environments: Standard and flexible.
Cloud Endpoints: developing a software service and one of GCP's backends, you'd like to
make it easy to expose this API, you'd like to make sure it's only consumed by other
developers whom you trust, you'd like an easy way to monitor and log its use, you'd like for
the API to have a single coherent way for it to know which end user is making the call. That's
when you use Cloud Endpoints.
Apigee Edge: Focus on Business problems like rate limiting, quotas and analytics. Many
users of Apigee Edge are providing a software service to other companies and those
features come in handy. Because of the backend services for Apigee Edge need not be in
GCP, engineers often use it when they are taking apart a legacy application.
Cloud Source repositories:
It provides GIT version control to keep code private to a GCP project and use IAM permissions to
protect but not to maintain the Git repositories. Using this we can have any number of private Git
repositories. It also provides source viewer so that we can view and browse repository files within
GCP console.
Cloud Functions:
Cloud functions can trigger on events in the cloud storage, cloud pub/sub or in a HTTP call. You
choose which events you care about. For each event type, you tell cloud functions you're interested
in it. These declarations are called triggers. Then you attach JavaScript functions to your triggers.
From now on, your functions will respond whenever the events happen.
Stackdriver: Monitoring
Monitoring – Platform, system and application metrics, health checks, Dashboards and alerts
Logging – Platform, system and application logs: log search, view, filter and export
Trace – Latency reporting and sampling, per-URL latency and statistics
Debugger - Debug Applications
Error Monitoring – Error Notifications and Error Dashboard