GETTING READY FOR THE CLOUD Email: firstname.lastname@example.org | Website: www.qburst.com US | UK | Poland | UAE | India | Singapore | Australia
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 conﬁguraRon seVngs. The provider provides the networks, servers, storage and other services. PaaS oﬀerings 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 oﬀerings 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
PaaS -‐ Popular oﬀerings Heroku • One of the ﬁrst 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 oﬀerings Windows Azure • MicrosoPs 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 diﬀerent 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 classiﬁed as the “Public Cloud” in MicrosoPs cloud compuRng strategy, along with its SoPware as a Service (SaaS) oﬀering, MicrosoP Online Services
PaaS -‐ Popular oﬀerings dotCloud • Founded in 2008 by Solomon Hykes, dotCloud is the ﬁrst 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 ﬂexibility by assembling and customizing powerful pre-‐conﬁgured stacks and services • Powerful and easy-‐to-‐use command line script • Conﬁgure stack using a simple YAML conﬁg • Deploy to a development sandox • Roll live
PaaS -‐ Popular oﬀerings 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 oﬀerings 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 oﬀerings 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 • Oﬀers 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
What is Google App Engine Google App Engine lets you run web applicaRons on Googles infrastructure. App Engine applicaRons are easy to build, easy to maintain, and easy to scale as your traﬃc and data storage needs grow. With App Engine, there are no servers to maintain: You just upload your applicaRon, and its 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 Googles 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 • Conﬁgure & Deploy Web server (Apache/Tomcat) • Conﬁgure & 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 conﬁguraRons to let App Engine know how to serve your applicaRon Thats 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
Bigtable -‐ M/S & HR Datastore App Engine currently has two database oﬀerings, they diﬀer 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 • Inﬁnetly 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 ﬁrst 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