platform as a service google app engine
DESCRIPTION
TRANSCRIPT
Email: [email protected] | Website: www.qburst.com
US | UK | Poland | UAE | India | Singapore | Australia
GETTING READY FOR THE CLOUD
Pla@orm as a Service -‐ Google App Engine Arun Shanker Prasad February, 2013
Pla@orm as a Service (PaaS) -‐ What is it?
PaaS is a category of cloud compuCng services that provide a compuCng plaGorm and a soluCon stack as a service. Along with soPware as a service (SaaS) and infrastructure as a service (IaaS), it is a service model of cloud compuRng. In this model, the consumer creates the soPware using tools and/or libraries from the provider/vendor. The consumer also controls soPware deployment and configuraRon seVngs. The provider provides the networks, servers, storage and other services. PaaS offerings facilitate the deployment of applicaRons without the cost and complexity of buying and managing the underlying hardware and soPware and provisioning hosRng capabiliRes.
PaaS -‐ Key Features
• Services to develop, test, deploy, host and maintain applicaRons in the same integrated development environment
• Web-‐based management/administraRon consoles o Reducing the need for system administraRon/dev ops
o Resource uRlizaRon monitoring capabiliRes o Easily idenRfy bo[lenecks
• MulR-‐tenant architecture • Certain PaaS offerings a[empt to support use of the applicaRon
by many concurrent users, by providing concurrency management, scalability, fail-‐over and security
• Support for development team collaboraRon • Pay for what you use billing model
Some popular PaaS offerings
PaaS -‐ Popular offerings
Heroku • One of the first cloud pla@orms, has been in development since
June 2007, when it supported only the Ruby programming language, but has since added support for Java, Node.js, Scala, Clojure, Python and (undocumented) PHP
• Heroku is owned by Salesforce.com
• The base operaRng system is Debian or, in the newest stack, the Debian-‐based Ubuntu
PaaS -‐ Popular offerings
Windows Azure • MicrosoP's cloud compuRng pla@orm used to build, deploy and
manage applicaRons through a global network of MicrosoP-‐managed datacenters
• Allows for applicaRons to be built using many different programming languages, tools or frameworks and makes it possible for developers to integrate their public cloud applicaRons in their exisRng IT environment
• Provides both Pla@orm as a Service (PaaS) and Infrastructure as a Service (IaaS) services and is classified as the “Public Cloud” in MicrosoP's cloud compuRng strategy, along with its SoPware as a Service (SaaS) offering, MicrosoP Online Services
PaaS -‐ Popular offerings
dotCloud • Founded in 2008 by Solomon Hykes, dotCloud is the first
applicaRon pla@orm designed from the ground up for modern service-‐oriented development
• Enables developers and IT organizaRons to deploy, manage and scale their applicaRons with unprecedented ease and flexibility by assembling and customizing powerful pre-‐configured stacks and services
• Powerful and easy-‐to-‐use command line script
• Configure stack using a simple YAML config • Deploy to a development sandox
• Roll live
PaaS -‐ Popular offerings
Cloud Foundry • Developed by VMware released under the terms of the Apache
License 2.0 • Primarily wri[en in Ruby
• AppCloud runs on Cloud Foundry • Since it is open sourced, AcRveState has created a commercial
distribuRon of the Cloud Foundry soPware for enterprises to host their own private PaaS
PaaS -‐ Popular offerings
Engine Yard • A San Francisco, California based, privately held pla@orm as a
service company focused on Ruby on Rails and PHP, and recently announced support for Node.js deployment and management
• One of the leading PaaS players for Ruby on Rails and PHP developers
• Handles all the details of pushing the applicaRon to the cloud, and monitors their conRnued operaRon
• SoluRons are charged on a pay-‐as-‐you-‐go basis
PaaS -‐ Popular offerings
Google App Engine (oNen referred to as GAE or simply App Engine, and also used by the acronym GAE/J) • A cloud compuRng pla@orm for developing and hosRng web applicaRons
in Google-‐managed data centers
• ApplicaRons are sandboxed and run across mulRple servers
• Offers automaRc scaling for web applicaRons—as the number of requests increases for an applicaRon, App Engine automaRcally allocates more resources for the web applicaRon to handle the addiRonal demand
• Is free up to a certain level of consumed resources. Fees are charged for addiRonal storage, bandwidth, or instance hours required by the applicaRon
• First released as a preview version in April 2008, and came out of preview in September 2011
More on Google App Engine
What is Google App Engine
Google App Engine lets you run web applicaRons on Google's infrastructure. App Engine applicaRons are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow. With App Engine, there are no servers to maintain: You just upload your applicaRon, and it's ready to serve your users.
The ApplicaRon Environment
Google App Engine makes it easy to build an applicaRon that runs reliably, even under heavy load and with large amounts of data. App Engine includes the following features; • dynamic web serving, with full support for common web technologies • persistent storage with queries, sorRng and transacRons • automaRc scaling and load balancing
• APIs for authenRcaRng users and sending email using Google Accounts
• a fully featured local development environment that simulates Google App Engine on your computer
Your applicaRon can run in one of three runRme environments: the Go environment, the Java environment, and the Python environment, which gives you a choice of Python 2.5 or Python 2.7.
Why App Engine?
Pros • Easy to Get Started • AutomaRc Scalability • The Reliability, Performance, and Security of Google's
Infrastructure • Costs less • There is a generous free usage quota and you only pay for what
you use Cons • Sandboxed environment limits the scope of your applicaRon
• Although we can pay for certain addiRonal resources, there are some that have a hard limit
Why App Engine?
TradiRonal Way • Write your code
• Configure & Deploy Web server (Apache/Tomcat) • Configure & Deploy SQL database • Maintain all of these infrastructure
• Cost of building and maintaining the infrastructure App Engine Way
• Write your code • A set of simple configuraRons to let App Engine know how to
serve your applicaRon That's it....
Tools -‐ Bundled with the SDK
• Development Server • Uploading and Managing an App • Uploading and Downloading Data • ProtoRPC • webapp Framework • Local Unit TesRng • Appstats • Included Libraries (Python 2.5)
o Django, PyCrypto, YAML, zipimport • Included Libraries(Python 2.7)
o Jinja2, PIL, webapp2, etc
Services (APIs)
• Channel • Images • Mail • Memcache • MulRtenancy • OAuth • ProspecRve Search • Search • Task Queues • URL Fetch • Users • XMPP
Services (APIs)
• Blobstore • App IdenRty • CapabiliRes • LogService
Bigtable -‐ M/S & HR Datastore
App Engine currently has two database offerings, they differ on the basis of their implementaRon architecture;
• Master/Slave (M/S)
o TradiRonal (one master/one slave)
o Single point of failure
o Deprecated
o Strong Consistency
• High ReplicaRon (HR) o High performance
o No single point of failure
o Now default and the only supported one
o Eventual Consistency
App Engine also supports a SQL database Google Cloud Storage, which can be easily be linked to an App Engine app
Pricing
App Engine has three pricing modes
• Free
• Paid
• Premier
Paid
• $9/app/month
• Usage based pricing
• Infinetly Scalable
• SLA
Premier version has;
• $500/account/month
• OperaRonal Support
What does QBurst do with App Engine?
QBurst has built a suite of applicaRons that form a cloud based ERP soluRon called Space QBurst had a team of engineers developing applicaRons on App Engine from as early as July 2008 We were one of the first people to get approved when the App Engine for Java was released as an invite only preview We have applicaRons deployed on Python and Java environments, and are experimenRng with Go
QuesRons?
Future Plans - 2012
Thank You !