A shortened version of this post will appear as an upcoming guest post on the Google Cloud Platform Blog.
There have been interesting discussions around lock in and Google Cloud Platform recently. With hosted cloud platforms, there is always a concern that users or customers will find the “barrier to exit” too high and, as a result, they will find themselves beholden to their cloud provider with little recourse.
We believe that these concerns are mitigated by open source cloud platforms like AppScale — a fully integrated distributed software platform that implements public cloud APIs/services anywhere the source code will compile and run. AppScale runs in virtual machines, in public IaaS clouds like Google Compute Engine, or in private clouds like Eucalyptus. As permissively licensed open source, it is freely available, and as a technology backed by AppScale Systems, it is production ready.
Google App Engine — the runtime system and service ecosystem of Google Cloud Platform that simplifies development and deployment of web and mobile cloud apps — introduces a set of best practices (e.g. apps, APIs, programming model, tools) that abstract and automate away the underlying system and infrastructure while encouraging app designs that are amenable to scale, high availability, inexpensive serving, and multitenancy. These best practices, when encountered for the first time, can be unfamiliar or require study and practice (e.g. like when an imperative programmer encounters a functional language for the first time). However, once learned these practices can drastically increase programmer productivity for a wide range of distributed and service/event-based software (including App Engine apps). There is a real productivity incentive to adopting App Engine and its model.
Lock in, for Google App Engine, measures the cost (e.g. time, $$) required to move (port) an App Engine app to a different execution environment. Given how different the App Engine model is, a number of developers comment that this porting effort can be tedious and significant.
We at AppScale Systems have partnered with Google to relieve developers and enterprises of the burden of porting their App Engine apps to other deployment platforms. That is, to make the cost essentially zero.
To enable this, we have designed and developed a runtime system and service ecosystem, called AppScale, that mirrors Google App Engine and other Cloud Platform services using open source technologies. This means that AppScale can execute any App Engine app — without modification. AppScale users deploy their own instance of the cloud platform over virtualized clusters, on-premise data centers, desk/laptops, as well as public and private cloud infrastructures, including Google Compute Engine, Amazon EC2, Eucalyptus and OpenStack. Deploying the platform consists of downloading or creating a virtual machine image with the AppScale code base, and using the AppScale tool chain to start the platform services across a number of virtual machine instances. Videos for doing so and virtual machine images are available via the AppScale downloads page. By making apps portable across systems, developers and CIOs can choose between options that satisfy different use cases and business needs. AppScale customer use cases include on-premise test/dev, App Engine app execution behind a firewall, interoperation of App Engine apps with legacy software (e.g. Oracle and MySQL DBMSs), data repositories, and analytics engines located elsewhere, and automatic failover of App Engine apps across clouds (via an AppScale product plug-in called ScaleSafe).
Like Google Cloud Platform, AppScale exports access to scalable implementations of common application-level services such as authentication, structured and unstructured storage, search, background tasking, data analytics, and more, via APIs and semantics defined by Google. However, instead of providing only a single implementation for each service, AppScale plugs in multiple alternatives. For example, for the App Engine NoSQL (DataStore) API, AppScale plugs in Cassandra, HBase, Hypertable and others. This plug/play design enables developers to compare/contrast competitive offerings (including those from other public clouds as part of hybrid deployments) and to leverage on-premise software investments, for APIs including NoSQL, CloudSQL, Cloud Storage, MapReduce, Search, Task Queue and others. Some of the proven technologies that AppScale integrates include:
- Apache Cassandra
- Apache Hadoop
- Apache HBase
- Apache Thrift
- Apache Zookeeper
- RabbitMQ and others.
AppScale automatically deploys, manages, and scales apps and this service ecosystem so that developers and operations staff don’t have to. Similarly, AppScale provides product plug-ins that automate failover and migration of App Engine apps and data. However, AppScale’s open architecture makes it easy for DevOps to control, secure, and audit the platform, should they so choose. This spectrum of choice between NoOps and DevOps is what we at AppScale call “LeanOps” — the ability for users to identify and employ the most efficient, productive, and responsive app deployment practices for their organizations.
In summary, our goal with AppScale is to extend the reach of Google’s best practices to expedite and facilitate web and mobile cloud software development by a broader developer base. Since AppScale is open source, enterprises and SMBs can take advantage of the simplified deployment model, while customizing and deploying their own test/dev and production App Engine deployments. AppScale enables this by:
- Mirroring Google App Engine using proven open source technologies,
- Simplifying and automating deployment and scaling of apps, data management, services, as well as the cloud platform itself,
- Executing anywhere virtual servers execute,
- Giving developers and CIOs choice over the implementations of the APIs/services,
- Providing a ScaleSafe plug-in to the platform that facilitates automatic failover and migration apps/data to and from Google App Engine that reduces downtime and facilitates portability,
- Offering an Enterprise Edition for on-premise production deployments as well as technical support and training for AppScale deployment options.
AppScale Systems is a Google Cloud Technology Partner and collaborates with RedHat and Google on the Test Compatibility Kit (TCK) project. Learn more about AppScale and try it today at AppScale.com. Follow us on Twitter (@appscalecloud) or join our community of contributors and ask questions via the AppScale Community Google Group and IRC channel (#appscale).