Cloud Computing
Python Based Scalable Cloud Application Development
(GAE/ Amazon EC2/ Windows Azure)
By Chathuranga Bandara
Software Engineer
99X Technology
1Thursday, May 23, 13
2Thursday, May 23, 13
Introduction to Cloud Computing
“ Cloud computing is a model for enabling ubiquitous,
convenient, on-demand network access to a shared pool
of configurable computing resources (e.g., networks,
servers, storage, applications, and services) that can be
rapidly provisioned and released with minimal
management effort or service provider interaction“ - NIST
3Thursday, May 23, 13
> on-demand network
> shared pool of configurable computing resources
> rapidly provisioned and released with minimal management
4Thursday, May 23, 13
Myths & Facts
Myths
> Cloud Computing will eliminate the need for IT Infrastructure
personnel
> Cloud Computing will eliminate IT expense
5Thursday, May 23, 13
Myths & Facts (cont..)
Facts
> This technology should not be ignored
> Cloud technology is real
> This presentation will assist you in understanding “The
Cloud” :P
6Thursday, May 23, 13
Real Facts
> It is not Network Computing –
> Application and Data are not confined to any specific
Company’s Server
> Encompasses multiple companies, multiple servers and
multiple networks
> It is not Traditional Outsourcing
> Not a contract to host data by 3rdparty Hosting Business
7Thursday, May 23, 13
Features?
> Scalability
> Performance
> Reliability
> Uptime
> Security
> Maintenance
> Service Based Model
8Thursday, May 23, 13
9Thursday, May 23, 13
10Thursday, May 23, 13
Three Types?
> IaaS – (Infrastructure as a Service) – the consumer uses
"fundamental resources" such as processing power, storage,
networking components or middleware. The consumer can control
the operating system, storage, applications and possibly
networking
> PaaS – (Platform as a Service) - the consumer uses a hosting
environment for their applications and has control over the
applications (and some control over the hosting environment), but
does not control the infrastructure on which they are running
> SaaS – (Software as a Service) - the consumer uses an
application, but does not control the infrastructure on which it's
running (OS, hardware)
11Thursday, May 23, 13
Different Providers for each?
> IaaS –
> PaaS –
> SaaS -
12Thursday, May 23, 13
Other Type Definitions?
> Public Cloud: a public cloud consists of a service or set of
services that are purchased by a business or organization and
delivered via the Internet by a third-party provider. These
services use storage capacity and processor power that is not
owned by the business itself. Instead, this capacity (in the form of
servers and datacenters) can be owned either by the primary
vendor (e.g. an online storage/backup company) or by a cloud
infrastructure vendor.
> Private Cloud: A private cloud is essentially an extension of an
enterprise's traditional datacenter that is optimized to provide
storage capacity and processor power for a variety of functions.
“Private” refers more to the fact that this type of platform is a
non-shared resource than to any security advantage
13Thursday, May 23, 13
Benefit Public Private
Illusion of infinite
resources on-demand Yes Unlikely
Elimination of up-front
commitment by users Yes No
True pay-as-you-go on
short-term basis Yes No
Economy of scale
Yes No
Better utilization &
simplified operations
through virtualization
Yes Yes
14Thursday, May 23, 13
Private + Public = Hybrid
> A hybrid cloud is a composition of at least one private cloud and
at least one public cloud. A hybrid cloud is typically offered in one
of two ways: a vendor has a private cloud and forms a
partnership with a public cloud provider, or a public cloud
provider forms a partnership with a vendor that provides private
cloud platforms.
Ex: For example, an organization might use a public cloud service,
such as Amazon Simple Storage Service (Amazon S3) for
archived data but continue to maintain in-house storage for
operational customer data.
Ideally, the hybrid approach allows a business to take advantage of
the scalability and cost-effectiveness that a public cloud computing
environment offers without exposing mission-critical applications
and data to third-party vulnerabilities.
15Thursday, May 23, 13
16Thursday, May 23, 13
When to Use Cloud Computing?
> On-demand
> Scalability
> Performance
> High multi tenancy
> Vendor Specific Features
17Thursday, May 23, 13
Examples
> Provide data management and analytical capabilities to
public
> Provision on-demand IT infrastructure for new projects
> Provide agile high capacity computing
> Provide on-demand online productivity tools
> Provide secure and precertified software deployment
platforms
18Thursday, May 23, 13
Things to keep in mind when Cloud Computing
> Always try to give all most all the client side doable stuff to be done in
the client side
> Do your database design very well. Make sure to eliminate data
redundancy
> Always use Open Standards (REST)
> Always keep up-to date and try to take advantage of technologies like
NoSQL /MapReduce
> Think of Backup plans (Multi Region Instances, Regular Backups,
Vendor specific backup solutions)
> Think Like an Engineer/ Software Architect or at least hire one!!
19Thursday, May 23, 13
Concerns in Cloud Computing
20Thursday, May 23, 13
Security, Security and Security!
> Why Security an Issue?
> Shared Resources
> Your data at their premises
> Not everyone is ethical
> What we can do?
> Read the cloud vendor’s Privacy Policy and Terms &
Conditions
> Go for IaaS when ever its possible
There will be a Risk in Cloud Computing anyways.
21Thursday, May 23, 13
Windows Azure
PaaS
22Thursday, May 23, 13
23Thursday, May 23, 13
24Thursday, May 23, 13
Amazon Web Services
IaaS
25Thursday, May 23, 13
26Thursday, May 23, 13
Amazon EC2 Features
> Amazon Elastic Block store
> Multiple Locations
> Amazon Cloud Watch
> Auto scaling
> Elastic Load Balancing
27Thursday, May 23, 13
Amazon EC2 Usage
> Create Machine Image
> Build application on top of the EC2 instance
> Create multiple instances
28Thursday, May 23, 13
29Thursday, May 23, 13
Google Apps
SaaS
30Thursday, May 23, 13
31
31Thursday, May 23, 13
Different APIs available
> Application APIs
> Calendar API, Gmail API, Drive API, Sites API, Spreadsheets
API
> Auth APIs
> OpenID API
> Domain Admin APIs
> Audit APIs
> Email Settings API
> Reporting API
32
32Thursday, May 23, 13
Google App Engine
PaaS
33Thursday, May 23, 13
34
34Thursday, May 23, 13
Development Google App Engine
> Write your web program in Python or VM based technologies
including JAVA/ PHP and GO and submit to Google. It will take
care of the rest (is that good or bad?)
How to use?
> Download App Engine SDK
> Develop your program locally
> A set of python programs, input = requested url, output = return
message
> Debug locally
> Register for an application id
> Submit your application to Google
35Thursday, May 23, 13
Datastore
> Based	
  on	
  BigTable,	
  distributed	
  column-­‐store
• En$$es	
  and	
  mul$-­‐valued	
  proper$es	
  
• En$$es	
  have	
  unique key &	
  a	
  type	
  (kind)	
  
• Flexible	
  schema	
  
• Queries	
  by	
  GQL	
  
36
36Thursday, May 23, 13
AppScale
> Platform that allows users to host their own Google App
Engine application in their own hot (ex: Amazon EC2)
> Supports Python, Java, Go (no PHP support yet)
> https://github.com/AppScale/appscale
37
37Thursday, May 23, 13
Demo – Python/ Google App Engine
Using Linux based machine (Windows is easier)
38Thursday, May 23, 13
Demo Agenda
> Part One - “Hello World” in GAE
> Part Two - Application development in GAE
39Thursday, May 23, 13
Which App you think Most Suitable for the Cloud?
> Engine where any List (integers/ strings) will be given by the
client and the server (cloud application) will compute and
send back the sorted List
> Guestbook which millions of people going to use and will
grow, where it will keep the comments of each guest, either
as Anonymous or Email Verified user
> Web based system which will display the list of Items/
Inventory to the client computer. This will only server one or
two clients in the business.
40Thursday, May 23, 13
Lets do some coding..
41Thursday, May 23, 13
Q & A*
* Refer Google for any Question I fail to answer!
42Thursday, May 23, 13
www.99xtechnology.com
Thank You!
43Thursday, May 23, 13

Introduction to Cloud Computing

  • 1.
    Cloud Computing Python BasedScalable Cloud Application Development (GAE/ Amazon EC2/ Windows Azure) By Chathuranga Bandara Software Engineer 99X Technology 1Thursday, May 23, 13
  • 2.
  • 3.
    Introduction to CloudComputing “ Cloud computing is a model for enabling ubiquitous, convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction“ - NIST 3Thursday, May 23, 13
  • 4.
    > on-demand network >shared pool of configurable computing resources > rapidly provisioned and released with minimal management 4Thursday, May 23, 13
  • 5.
    Myths & Facts Myths >Cloud Computing will eliminate the need for IT Infrastructure personnel > Cloud Computing will eliminate IT expense 5Thursday, May 23, 13
  • 6.
    Myths & Facts(cont..) Facts > This technology should not be ignored > Cloud technology is real > This presentation will assist you in understanding “The Cloud” :P 6Thursday, May 23, 13
  • 7.
    Real Facts > Itis not Network Computing – > Application and Data are not confined to any specific Company’s Server > Encompasses multiple companies, multiple servers and multiple networks > It is not Traditional Outsourcing > Not a contract to host data by 3rdparty Hosting Business 7Thursday, May 23, 13
  • 8.
    Features? > Scalability > Performance >Reliability > Uptime > Security > Maintenance > Service Based Model 8Thursday, May 23, 13
  • 9.
  • 10.
  • 11.
    Three Types? > IaaS– (Infrastructure as a Service) – the consumer uses "fundamental resources" such as processing power, storage, networking components or middleware. The consumer can control the operating system, storage, applications and possibly networking > PaaS – (Platform as a Service) - the consumer uses a hosting environment for their applications and has control over the applications (and some control over the hosting environment), but does not control the infrastructure on which they are running > SaaS – (Software as a Service) - the consumer uses an application, but does not control the infrastructure on which it's running (OS, hardware) 11Thursday, May 23, 13
  • 12.
    Different Providers foreach? > IaaS – > PaaS – > SaaS - 12Thursday, May 23, 13
  • 13.
    Other Type Definitions? >Public Cloud: a public cloud consists of a service or set of services that are purchased by a business or organization and delivered via the Internet by a third-party provider. These services use storage capacity and processor power that is not owned by the business itself. Instead, this capacity (in the form of servers and datacenters) can be owned either by the primary vendor (e.g. an online storage/backup company) or by a cloud infrastructure vendor. > Private Cloud: A private cloud is essentially an extension of an enterprise's traditional datacenter that is optimized to provide storage capacity and processor power for a variety of functions. “Private” refers more to the fact that this type of platform is a non-shared resource than to any security advantage 13Thursday, May 23, 13
  • 14.
    Benefit Public Private Illusionof infinite resources on-demand Yes Unlikely Elimination of up-front commitment by users Yes No True pay-as-you-go on short-term basis Yes No Economy of scale Yes No Better utilization & simplified operations through virtualization Yes Yes 14Thursday, May 23, 13
  • 15.
    Private + Public= Hybrid > A hybrid cloud is a composition of at least one private cloud and at least one public cloud. A hybrid cloud is typically offered in one of two ways: a vendor has a private cloud and forms a partnership with a public cloud provider, or a public cloud provider forms a partnership with a vendor that provides private cloud platforms. Ex: For example, an organization might use a public cloud service, such as Amazon Simple Storage Service (Amazon S3) for archived data but continue to maintain in-house storage for operational customer data. Ideally, the hybrid approach allows a business to take advantage of the scalability and cost-effectiveness that a public cloud computing environment offers without exposing mission-critical applications and data to third-party vulnerabilities. 15Thursday, May 23, 13
  • 16.
  • 17.
    When to UseCloud Computing? > On-demand > Scalability > Performance > High multi tenancy > Vendor Specific Features 17Thursday, May 23, 13
  • 18.
    Examples > Provide datamanagement and analytical capabilities to public > Provision on-demand IT infrastructure for new projects > Provide agile high capacity computing > Provide on-demand online productivity tools > Provide secure and precertified software deployment platforms 18Thursday, May 23, 13
  • 19.
    Things to keepin mind when Cloud Computing > Always try to give all most all the client side doable stuff to be done in the client side > Do your database design very well. Make sure to eliminate data redundancy > Always use Open Standards (REST) > Always keep up-to date and try to take advantage of technologies like NoSQL /MapReduce > Think of Backup plans (Multi Region Instances, Regular Backups, Vendor specific backup solutions) > Think Like an Engineer/ Software Architect or at least hire one!! 19Thursday, May 23, 13
  • 20.
    Concerns in CloudComputing 20Thursday, May 23, 13
  • 21.
    Security, Security andSecurity! > Why Security an Issue? > Shared Resources > Your data at their premises > Not everyone is ethical > What we can do? > Read the cloud vendor’s Privacy Policy and Terms & Conditions > Go for IaaS when ever its possible There will be a Risk in Cloud Computing anyways. 21Thursday, May 23, 13
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
    Amazon EC2 Features >Amazon Elastic Block store > Multiple Locations > Amazon Cloud Watch > Auto scaling > Elastic Load Balancing 27Thursday, May 23, 13
  • 28.
    Amazon EC2 Usage >Create Machine Image > Build application on top of the EC2 instance > Create multiple instances 28Thursday, May 23, 13
  • 29.
  • 30.
  • 31.
  • 32.
    Different APIs available >Application APIs > Calendar API, Gmail API, Drive API, Sites API, Spreadsheets API > Auth APIs > OpenID API > Domain Admin APIs > Audit APIs > Email Settings API > Reporting API 32 32Thursday, May 23, 13
  • 33.
  • 34.
  • 35.
    Development Google AppEngine > Write your web program in Python or VM based technologies including JAVA/ PHP and GO and submit to Google. It will take care of the rest (is that good or bad?) How to use? > Download App Engine SDK > Develop your program locally > A set of python programs, input = requested url, output = return message > Debug locally > Register for an application id > Submit your application to Google 35Thursday, May 23, 13
  • 36.
    Datastore > Based  on  BigTable,  distributed  column-­‐store • En$$es  and  mul$-­‐valued  proper$es   • En$$es  have  unique key &  a  type  (kind)   • Flexible  schema   • Queries  by  GQL   36 36Thursday, May 23, 13
  • 37.
    AppScale > Platform thatallows users to host their own Google App Engine application in their own hot (ex: Amazon EC2) > Supports Python, Java, Go (no PHP support yet) > https://github.com/AppScale/appscale 37 37Thursday, May 23, 13
  • 38.
    Demo – Python/Google App Engine Using Linux based machine (Windows is easier) 38Thursday, May 23, 13
  • 39.
    Demo Agenda > PartOne - “Hello World” in GAE > Part Two - Application development in GAE 39Thursday, May 23, 13
  • 40.
    Which App youthink Most Suitable for the Cloud? > Engine where any List (integers/ strings) will be given by the client and the server (cloud application) will compute and send back the sorted List > Guestbook which millions of people going to use and will grow, where it will keep the comments of each guest, either as Anonymous or Email Verified user > Web based system which will display the list of Items/ Inventory to the client computer. This will only server one or two clients in the business. 40Thursday, May 23, 13
  • 41.
    Lets do somecoding.. 41Thursday, May 23, 13
  • 42.
    Q & A* *Refer Google for any Question I fail to answer! 42Thursday, May 23, 13
  • 43.