Programming, Environments and Applications
Module 1: Features of Cloud and Grid Platforms, Programming Support of Google App Engine,
Programming on Amazon AWS and Microsoft Azure, Emerging Cloud Software Environments,
Applications
Module 2: Moving application to cloud, Microsoft Cloud Services, Google Cloud Applications, Amazon
Cloud Services, Cloud Applications.
Features of Cloud and Grid Platforms
Cloud Computing and Grid Computing are two model in distributed computing. They are used
for different purposes and have different architectures. Cloud Computing is the use of remote
servers to store, manage, and process data rather than using local servers while Grid
Computing can be defined as a network of computers working together to perform a task that
would rather be difficult for a single machine.
What is Cloud Computing?
Cloud Computing is a Client-server computing architecture. Cloud Computing means storing
and accessing the data and programs on remote servers that are hosted on the internet instead
of the computer’s hard drive or local server. Cloud computing is also referred to as Internet-
based computing, it is a technology where the resource is provided as a service through the
Internet to the user. The stored data can be files, images, documents, or any other storable
document.
Advantages of Cloud Computing
One of the advantages of cloud computing is scalability.
Cloud computing provide on demand self service.
Cloud Computing is cost effective.
Cloud services are accessible from anywhere with an internet connection.
Cloud Computing provide rapid elasticity.
Disadvantages of Cloud Computing
Dependence on Internet Connectivity
Security Concerns
Cloud computing require constant and high speed internet.
Users have less control over the underlying infrastructure and configurations.
What is Grid Computing?
Grid Computing is a Distributed computing architecture. In grid computing, resources are used
in collaborative patterns, and also in grid computing, the users do not pay for use.
Advantages of Grid Computing
Grid Computing provide high resources utilization.
Grid Computing allow parallel processing of task.
Grid Computing is designed to be scalable.
Disadvantages of Grid Computing
The software of the grid is still in the evolution stage.
Grid computing introduce Complexity.
Limited Flexibility
Security Risks
Difference between Cloud Computing and Grid Computing
Cloud Computing Grid Computing
Cloud computing is a Client- While it is a Distributed computing
Cloud Computing Grid Computing
server computing
architecture.
architecture.
Cloud computing is a While grid computing is a decentralized
centralized executive. executive.
In cloud computing,
While in grid computing, resources are used in
resources are used in
collaborative pattern.
centralized pattern.
It is more flexible than grid
While it is less flexible than cloud computing.
computing.
In cloud computing, the While in grid computing, the users do not pay
users pay for the use. for use.
Cloud computing is a high While grid computing is a low accessible
accessible service. service.
It is highly scalable as
While grid computing is low scalable in
compared to grid
comparison to cloud computing.
computing.
It can be accessed through
While it is accessible through grid middleware.
standard web protocols.
Cloud computing is based Grid computing is based on application-
Cloud Computing Grid Computing
on service-oriented. oriented.
Cloud computing uses Grid computing uses service like distributed
service like IAAS, computing, distributed pervasive, distributed
PAAS, SAAS. information.
In Conclusion both cloud computing and grid computing use distributed
computing resources. Cloud computing provides scalable, on-demand services
with a focus on accessibility and cost efficiency, making it suitable for a wide range
of applications, from personal to enterprise. Grid computing, on the other hand,
performs well in contexts that require high-performance computing and resource
sharing across different domains, such as scientific research and complex
computations.
Programming Support of Google App Engine
The Google App Engine is a powerful platform that allows developers to build and scale
applications effortlessly. If you're looking to start your journey in cloud computing and app
development, understanding the programming environment for Google App Engine is essential.
In this article, we'll delve into the features, advantages, and fundamental aspects of the
programming environment tailored for Google App Engine. Let's dive in!
Overview of Google App Engine
Google App Engine is part of the Google Cloud Platform (GCP). It provides a fully managed
serverless solution that enables you to deploy web applications without the hassles of
infrastructure management. This means developers can focus on coding while Google handles
the underlying resources.
Key Features of Google App Engine
Scalability: Your applications can automatically scale to handle your traffic needs.
Managed Service: Google App Engine manages your app's infrastructure, minimizing
operational overhead.
Multiple Language Support: Supports various programming languages including Java,
Python, Go, and PHP.
Integrated Services: Seamlessly integrate with other Google Cloud services like Cloud
SQL, Google Cloud Storage, and more.
Focus on Development: Focus more on writing code and less on managing server
resources.
Setting Up Your Programming Environment
steps:
1. Creating a Google Cloud Account
The first step is to create a Google Cloud account. This account will give you access to the
Google Cloud Console, where you can manage your projects.
2. Installing the Google Cloud SDK
The Google Cloud SDK is essential for interacting with Google App Engine. To install it, follow
these simple steps:
# For Windows
Download the installer from Google Cloud SDK website and follow the setup prompts.
# For macOS
Use the following command in your terminal:
curl [Link] | bash
# For Linux
Run this command in your terminal:
curl [Link] | bash
3. Setting Up Your Local Development Environment
Choose your preferred Integrated Development Environment (IDE) for coding. Popular choices
include:
Visual Studio Code
PyCharm for Python developers
IntelliJ IDEA for Java developers
Choosing the Right Programming Language
Google App Engine supports several programming languages. Choosing the right one depends
on your experience and the specific needs of your project. Popular options include:
1. Java
Java is a robust, widely-used programming language, especially suitable for enterprise-level
applications. Google App Engine supports Java 8 and offers a comprehensive set of libraries and
frameworks like Spring.
2. Python
Python is known for its simplicity and versatility. It's a great choice for web applications, data
analysis, and machine learning projects.
3. Go
Go is a statically typed language developed by Google. It’s designed for high-performance
applications and is gaining popularity among developers.
4. PHP
PHP remains one of the most widely-used languages for web development. It integrates well
with Google App Engine, making it suitable for dynamic websites.
Deploying Applications on Google App Engine
Once you’ve developed your application, the next step is deploying it to Google App Engine. The
deployment process can be broken down into a few simple steps:
1. Configure Your [Link] File
The [Link] file is crucial for Google App Engine deployments. It contains metadata about
your application, including runtime specifications and routing configurations.
runtime: python39 # Specify your programming language
entrypoint: serve main:app # Define the entry point
handlers:
- url: /.*
script: auto # Automatic routing
2. Push Your Code to Google App Engine
Now that you have your [Link] file configured, it's time to deploy your application. Run the
following command in your terminal:
gcloud app deploy
This command uploads your application to Google App Engine. The deployment may take a few
moments based on the size and complexity of your app.
Managing Your Application
Once deployed, managing your application is vital for ensuring performance and user
satisfaction. Here are some management tools and practices you can utilize:
1. Monitoring with Google Cloud Monitoring
Google Cloud Monitoring provides rich metrics and detailed reports. It's essential for observing
your application's performance in real-time.
2. Logging with Stackdriver Logging
Utilize Stackdriver Logging for maintaining logs of your applications. It provides insights into
errors and system behavior, enabling effective debugging.