Practical Files of Cloud Computing
Practical Files of Cloud Computing
The cloud refers to how and where data is stored — perhaps more importantly, where it isn’t. The cloud
allows software and services to run on the internet instead of only locally on one device because the
data is stored remotely across various servers. IaaS, PaaS, and SaaS are the three main categories of
cloud computing. Cloud computing is using a network of different servers that host, store, manage, and
process data online — in "the cloud," as I mentioned earlier. Let’s go over a quick definition for each of
these services. • IaaS (Infrastructure as a Service): IaaS products allow organizations to manage their
business resources — such as their network, servers, and data storage — on the cloud. • PaaS (Platform
as a Service): PaaS products allow businesses and developers to host, build, and deploy consumer-facing
apps. • SaaS (Software as a Service): By far the most common cloud service, SaaS products offer both
consumers and businesses cloud-based tools and applications for everyday use. You can access all three
via internet browser or online apps available on different devices. A great example is Google Docs, which
allows your team to collaborate online instead of needing to work on one Microsoft Word document
and send it around to each other.
1
Compare these to on-premise software, which is installed locally on a server or device at an
organization’s physical location.
IaaS Examples •
Amazon Web Services (AWS): AWS is overseen by Amazon and is used for on-demand cloud
computing and purchased on a recurring subscription basis. AWS helps companies store data and deliver
content — in fact, it's helping you read this blog post right now.
Microsoft Azure: Microsoft Azure is a cloud-computing IaaS product that allows for building, testing,
and managing applications through a network of Microsoft data centers.
• Google Cloud: Google Cloud is an IaaS platform that businesses can use to natively run Windows,
Oracle, and SAP. Additionally, a business can manage its enterprise database and use AI solutions to
increase operational efficiency within the firm.
• IBM Cloud: IBM Cloud is another IaaS product that allows businesses to “allocate your computer,
network, storage and security resources on demand.” In other words, businesses only use resources
when needed, increasing efficiency.
PaaS products let developers build custom applications online without having to deal with data serving,
storage, and management. You can think of PaaS as a scaled-down version of IaaS. It still provides
customers with servers and data centers to store their information (in this instance, an app), but its
2
customer is a developer creating an app that will then be delivered over the internet to consumers. SaaS
applications are developed on PaaS platforms.
PaaS Delivery
PaaS provides a secure platform for developers can create software and apps for consumer use.
Developers access PaaS tools over the web. For instance, the Heroku dashboard, prompted me to
create an app.
PaaS Examples
• Google App Engine: Google App Engine allows developers to build and host web applications in
cloud-based data centers that Google manages.
• Kinsta: Kinsta provides Application, Database, and Managed WordPress Hosting solutions that make it
quick and easy to deploy any web application in minutes, without worrying about the hosting
infrastructure.
• Red Hat OpenShift: Red Hat OpenShift is an on-premises containerization PaaS software.
• Heroku: Developers can use this PaaS tool to build, manage, and grow consumer-facing apps.
• Apprenda: Apprenda is a PaaS product that allows developers and businesses to host an entire
application portfolio. Build and deploy applications of all types on this platform. Next up, let's dive into
SaaS — the acronym you're likely most familiar with.
SaaS Examples
• HubSpot: HubSpot is a CRM, marketing, sales, and service SaaS platform that businesses use to
connect with and retain customers.
• JIRA: JIRA is a project management software that's delivered by Atlassian and can be purchased on a
subscription basis by customers.
• Dropbox: Dropbox is a file-sharing SaaS tool that allows multiple users within a group or organization
to upload and download different files.
• DocuSign: DocuSign is a SaaS product that businesses use to send contracts and other documents
that require signatures.
3
2. Using public cloud service providers tools for exploring the
usage of IaaS, PaaS and SaaS cloud services.
1. Sign-in to the Google Cloud Console and create a new project or reuse an existing one. If you don't
already have a Gmail or Google Workspace account, you must create one.
• The Project name is the display name for this project's participants. It is a character string not used by
Google APIs. You can update it at any time.
• The Project ID must be unique across all Google Cloud projects and is immutable (cannot be changed
after it has been set). The Cloud Console auto-generates a unique string; usually you don't care what it
is. In most codelabs, you'll need to reference the Project ID (it is typically identified as PROJECT_ID). If
you don't like the generated ID, you may generate another random one. Alternatively, you can try your
own and see if it's available. It cannot be changed after this step and will remain for the duration of the
project.
• For your information, there is a third value, a Project Number which some APIs use. Learn more about
all three of these values in the documentation.
Caution: A project ID must be globally unique and cannot be used by anyone else after you've selected
it. You are the only user of that ID. Even if a project is deleted, the ID can never be used again.
Note: If you're using a Gmail account, you can leave the default location set to No organization. If you're
using a Google Workspace account, then choose a location that makes sense for your organization.
2. Next, you'll need to enable billing in the Cloud Console to use Cloud resources/APIs. Running through
this codelab shouldn't cost much, if anything at all. To shut down resources so you don't incur billing
beyond this tutorial, you can delete the resources you created or delete the whole project. New users of
Google Cloud are eligible for the $300 USD Free Trial program.
While Google Cloud can be operated remotely from your laptop, in this codelab you will be using Cloud
Shell, a command line environment running in the Cloud.
4
Activate Cloud Shell
1. From the Cloud Console, click Activate Cloud Shell .
If you've never started Cloud Shell before, you're presented with an intermediate screen (below the
fold) describing what it is. If that's the case, click Continue (and you won't ever see it again). Here's what
that one-time screen looks like:
It should only take a few moments to provision and connect to Cloud Shell.
This virtual machine is loaded with all the development tools you need. It offers a persistent 5GB home
directory and runs in Google Cloud, greatly enhancing network performance and authentication. Much,
if not all, of your work in this codelab can be done with simply a browser or your Chromebook. Once
connected to Cloud Shell, you should see that you are already authenticated and that the project is
already set to your project ID.
2. Run the following command in Cloud Shell to confirm that you are authenticated:
Command output
Credentialed Accounts
ACTIVE ACCOUNT
* <my_account>@<my_domain.com>
Note: The gcloud command-line tool is the powerful and unified command-line tool in Google Cloud. It
comes preinstalled in Cloud Shell. You will notice its support for tab completion. For more information
3. Run the following command in Cloud Shell to confirm that the gcloud command knows about your
project:
5
Command output
[core]
project = <PROJECT_ID>
Command output
6
3. Create a warehouse application using tools supplied by any SaaS provider.
To create a warehouse application using tools supplied by a Software as a Service (SaaS) provider, you
can follow these steps:
1. Choose a SaaS provider: Research and select a SaaS provider that offers tools suitable for building a
warehouse application. Some popular options include Amazon Web Services (AWS), Microsoft Azure,
and Google Cloud Platform.
2. Define requirements: Clearly define the requirements for your warehouse application. Consider
factors such as inventory management, order processing, tracking, reporting, and integration with other
systems.
3. Select appropriate tools: Explore the tools provided by your chosen SaaS provider and select the ones
that align with your requirements. Common tools for building warehouse applications include
databases, storage services, serverless computing, messaging queues, and analytics services.
4. Design the application architecture: Plan the architecture of your warehouse application. Determine
how different components will interact with each other and how data will flow through the system.
Consider scalability, fault tolerance, and security aspects.
5. Develop the application: Use the selected tools to develop the warehouse application. This may
involve writing code, configuring services, and integrating different components. Follow best practices
for software development, such as modular design, version control, and testing.
6. Implement data storage and retrieval: Set up a database or storage service provided by the SaaS
provider to store and retrieve warehouse data. Design the database schema or data model based on
your requirements.
7. Implement business logic: Write the necessary code to implement the business logic of your
warehouse application. This may include functions for inventory management, order processing, and
data validation.
8. Integrate with external systems: If required, integrate your warehouse application with other
systems such as ERP (Enterprise Resource Planning) software, e-commerce platforms, or shipping
providers. Use the integration capabilities provided by the SaaS tools or develop custom connectors.
9. Implement security measures: Ensure that your warehouse application is secure by implementing
appropriate security measures. This may include access control, encryption, and regular security audits.
7
4. Setting up a private cloud infrastructure using open-source tools.
• Planning and Design:
Define your needs: Identify the workloads you plan to migrate to the cloud and the resources required
(compute, storage, network).
Choose your open-source tools: Popular options for building private clouds include OpenStack,
CloudStack, and OpenNebula. Each has its strengths and complexities. Research to find the best fit for
your needs and expertise.
• Hardware Selection:
Server hardware: Select servers with enough processing power, memory, and storage capacity to handle
your anticipated workload.
Networking equipment: Choose reliable switches, routers, and firewalls to ensure efficient network
communication within your private cloud.
- KVM (Kernel-based Virtual Machine): KVM is a popular open-source virtualization platform for Linux.
It's built into the Linux kernel, providing efficient and reliable virtualization capabilities.
- Xen: Xen is another open-source virtualization platform known for its performance and security
features. It supports both paravirtualization and hardware-assisted virtualization.
- Install a compatible Linux distribution (e.g., Ubuntu Server, CentOS) on physical servers that will act
as hypervisor hosts (a virtual machine monitor (VMM), is software that allows a single physical machine
to run multiple virtual machines (VMs).)
- Configure the servers with adequate resources (CPU, memory, storage) to accommodate virtual
machines (VMs) and other cloud services.
- Apache Cloud Stack: Cloud Stack is an open-source cloud orchestration platform that simplifies the
deployment, management, and scaling of private and public clouds..
8
• Configure Networking:
Design a secure virtual network: Create subnets, assign IP addresses, and configure security groups or
firewall rules to control traffic flow within your private cloud.
- Ceph: Ceph is a distributed storage system that provides scalable and reliable storage for cloud
environments.
- GlusterFS: GlusterFS is an open-source distributed file system that can be used for scalable and
resilient storage in private cloud environments.
- Configure identity and authentication services using tools like LDAP or Active Directory to manage
user accounts, roles, and permissions.
• Security Implementation:
Implement access controls: Use IAM (Identity and Access Management) to restrict access to resources
based on user roles and permissions.
Data encryption: Encrypt data at rest and in transit to safeguard sensitive information within the cloud
environment.
Regular security audits: Conduct vulnerability assessments and penetration testing to identify and
address potential security risks proactively.
- Implement monitoring and logging tools (e.g., Nagios, Zabbix, ELK stack) to track resource utilization,
performance metrics, and security events in the private cloud environment.
- Conduct testing and performance tuning to optimize resource utilization, scalability, and reliability of
the private cloud infrastructure.
- Document the architecture, configurations, and operational procedures for the private cloud
environment.
9
5. Implementation of Paravirtualization in VMware Workstation / Oracle VirtualBox . learn
creation migration cloning and managing virtual machine.
1. Guest OS Modification: Paravirtualized VMs require changes to the guest OS kernel to enable direct
communication with the hypervisor. This might involve using special APIs or drivers that allow the guest
OS to make hypercalls, which are requests to the hypervisor.
2. VMware Workstation Configuration: While VMware Workstation primarily supports full virtualization
with binary translation, you might need to use specific settings or drivers for paravirtualization,
depending on the guest OS. For example, you might need to enable specific SCSI controller types like
Paravirtual SCSI controllers, or install paravirtualized drivers for network or disk access.
4. Compatibility and Portability: Paravirtualization can limit compatibility and portability because it
requires OS modifications. If the hypervisor or OS needs to be updated, the VM might no longer be
compatible.
5. Example: Xen Hypervisor: Xen is a well-known hypervisor that relies heavily on paravirtualization. To
use Xen with VMware Workstation, you might need to install Xen-specific drivers and configure the
guest OS to use them.
Paravirtualization in Oracle VirtualBox involves enabling specific interfaces that allow the guest
operating system (OS) to communicate directly with the hypervisor, bypassing the need for full
hardware emulation. This results in improved performance and efficiency for timing-critical tasks and
instructions that are not compatible with full virtualization.
Implementation Steps:
10
1. Enable Paravirtualization Interface: In VirtualBox, you can enable the paravirtualization interface
through the settings of the virtual machine. Oracle Help Center states you can do this by selecting the
"Processor" tab and enabling the desired paravirtualization option (e.g., Minimal, KVM).
2. Guest OS Support: Ensure the guest OS supports the chosen paravirtualization interface. Most
modern guest OSes (Windows, Linux) come with built-in support.
3. Install Guest Additions (If Necessary): For certain OSes or specific features, you might need to install
VirtualBox Guest Additions within the guest OS to fully utilize the paravirtualization capabilities,
according to a post on Parrot Security.
4. Start and Test: Start the virtual machine and verify that the paravirtualization interface is working
correctly.
• Creating a VM:
What it is: Think of it like making a copy of your computer within your computer. This copy, the VM, has
its own operating system and applications, but it uses your computer's resources.
How it works: You use software called a hypervisor to create and manage the VM. The hypervisor
allocates resources like CPU, memory, and storage to the VM.
• Migrating a VM:
What it is: Moving a VM from one physical computer (or server) to another.
Why do it: This might be to move a VM to a different physical host for maintenance, load balancing, or
to take advantage of a cloud provider's infrastructure.
How it works: There are different ways to migrate VMs, including live migration (while the VM is
running) and cold migration (with the VM shut down).
• Cloning a VM:
What it is: Creating a copy of an existing VM, including all its operating system, applications, and
settings.
Why do it: Cloning can be used to create identical environments for testing, development, or creating
multiple instances of a particular application.
Managing VMs:
What it is: Tasks like starting, stopping, configuring, and monitoring VMs.
How it works: You typically use a hypervisor or cloud platform to manage VMs.
11
12
13