by Jean-Paul Smets for EuroPython 2012
This presentation provides an overview of open source Cloud technologies in python and shows how python community is driving Cloud Computing innovation beyond traditional infrastructure based on data centers and towards Edge Computing.
We will first provide an overview of existing open source technologies written in python which can be used to implement a fully open source Cloud Computing environment: libcloud, OpenStack, NiftyName, Juju, appscale, SlapOS, buildout, supervisord, PyOCNI etc. Python is probably one of the most popular languages among open source cloud computing projects.
We will then show how recent trends in Cloud Computing are driving service computing away from the data center and towards the end-user, an approach which is also known as Edge Computing.
Edge Computing is a form of Decentralized Cloud Computing. It is gaining attention with recent takeover of Cotendo by Akamai. Edge Computing, which acts like an application cache, uses a decentralized network of servers located within the premises of telephone companies, next to DSLAM or Optical Concentrator. Edge Computing provides higher interaction performance for Web applications, just like Content Distribution Networks (CDN) accelerate static Web data. Edge Computing, through its decentralized nature, can also provide higher resilience to natural disasters, electricty shortage or strikes by decentralizing the Cloud.
A successful implementation of open source Edge Computing based on SlapOS by VIFIB startup company will then be introduced. SlapOS itself is a pythonish decentralized Cloud Operating system. SlapOS relies on three mature python open source software: buildout (for configuration automation), supervisord (for process control) and ERP5 (for accounting and provisionning). It is developped by a team of 30 engineers in 5 companies and 6 countries (Brazil, China, France, Germany, Romania, Sénégal) and supports already more than 100 applications in python, PHP, Java, Javascript, C and C++. It is already used in banking, governement and chemical industry.
An example of deployment of WSGI application is introduced step by step, using SlapRunner platform as a Service (PaaS) and Cloud9 (http://c9.io/) IDE. Through this example, we show how to deploy a WSGI Web application with SlapOS: on a Debian server in data center in the USA, on an OpenSuSE server connected to an IPv6 Optical Fiber concentrator in France and on an Android phone connected to a 4G LTE in Japan. Same code with same data is deployed in 3 totally different environments with different architecture and operating system. We then demonstrate how Web application migrates from one environment to another automatically and optimizes user interaction or resilience. We explain also how a developer can build his own Edge Computing environment with SlapOS in a couple of hours without necessarily relying on VIFIB or on any company.
Future directions of SlapOS research will be presented in conclusion. SlapOS is moving towards personal device owned by users: smartphone, mobile phones. By combining thousands of personal device and an overlay IPv6 mesh network, we can create a Cloud environment which is controlled by a large community of citizens and independent companies rather than by a few blue chip companies. A demonstration of OfficeJS (previously named UNG Docs), an open source “Unhosted” Web Office Suite which relies on WebDAV storage deployed by SlapOS on a smartphone, will conclude the presentation.
The presentation will be delivered as interactive HTML5 with illustrations, videos, live demonstration and detailed comments.
Credits
SlapOS and OfficeJS R&D are partly sponsored by Europe’s Eureka ITEA2, Paris Regional Government and by French Ministry of Economy.
Note
For now “Edge Computing” is probably a buzzword (like Cloud Computing in its early days). But we see the term being adopted in large companies and R&D projects sponsored by the European Commission. Having a presentation about Edge Computing at Europython will raise attention by large companies, by the European Commisison and by national governments for python implementations of open source cloud (vs. Java).
From a python developer perspective, the presentation shows that it is possible to deploy WGSI applications on 100% open source Cloud at very low cost (< 0.5 EUR / month / application) in a way which is compatible with any WSGI framework (ex. Flask) or any IaaS (Amazon, Rackspace, etc.). It shows how to make WSGI applications resilient to Cloud outage. Parts in this presentation overlap with Leonard Rochael’s presentation. They could be removed and the focus on “how to do Edge Computing in python” increased with deeper discussion on relevant APIs for edge computing.