iEx.ec application deployment
Following the EDCON conference, we continue our series of articles to introduce the technology behind the iEx.ec Blockchain-based Distributed Cloud. The XtremWeb-HEP being introduced in previous posts, this article presents the Application Deployment.
Introduction
As described in a previous article, iExec belongs to the well known paradigm of global computing platforms that implement a three tier architecture where a set of centralized services are instantiated and reachable via an Internet connection by decentralized services: the “client” and the “worker”.
The client, on one hand, offers the interface that permits users to interact with the platform; using the client, one can easily register applications as shown in the next section. The worker, on another hand, aggregates volunteer IT resources to run applications that process end user data.
The following figure shows the different applications available in iEx.ec from http://xw.iex.ec/dashboard/ where we can see the iEx.ec platform is very versatile and suited to multiple types of applications.
Communication
iEx.ec distributes applications to volunteer resources on demand using communication initiated by decentralized services only because of firewalls, roaming etc.
Applications are securely stored on server side. They are distributed according to a two phases process. They are sent from the client to the scheduler, and then from the scheduler to the workers. Application distribution is under security control as described in our “security” article.
Application registration
Using the decentralized client, a user may register their own application. Doing so consists of sending expected metadata, as well as providing binary, package, library or any expected resource with which to run the application. These application resources may be sent to an iExec scheduler or described by an endpoint (i.e: a URI) in order to retrieve these resources. It is the user’s responsibility to ensure application resources are accessible. As described in the “security” article, registration follows the security rules.
Using the client, an application can be registered as follows:
$> xwsendapp [name] DEPLOYABLE ARCH OS <URI | FILE>
Where:
- xwsendapp: is the iEx.ec client
- DEPLOYABLE: is a reserved verb that authorizes to send the binary to workers.
- name: the application name (must be unique)
- ARCH: is the architecture for this application (e.g: x86_64)
- OS: is this operating system for this application (e.g: Linux)
- URI | FILE: is the application binary or a URI link pointing to the application binary. Data may be automatically registered for any local file. Data registration will be the subject of a forthcoming article.
The iEx.ec client accepts a lot more options we won’t detail here for simplicity (library, different architectures, OSes etc.). Please refer to the documentation for more details.
Example
Let’s take a very simple example: we want to insert the “ls” application with the Linux binary, for X86_64 architecture.
Using the client, an application can be registered as follows:
$> xwsendapp ls DEPLOYABLE X86_64 linux /bin/ls
Retrieve applications
Using the decentralized client, a user may retrieve an application. As described in the “security” article, retrieval follows the security rules.
Using the client, an application can be retrieved as follows:
$> xwapps
UID=’3fb96415-be5d-4300–8ae5–87af64733826', NAME=’ls’
Remove application
Using the decentralized client, a user may remove registered applications. As described in the “security” article, removal follows the security rules.
Using the client, an application can be retrieved as follows:
$> xwrm UID|URI
Where:
- xwrm: is the iEx.ec client
- UID | URI : is the application identifier
Application deployment
Using a decentralized worker, an application is automatically deployed as soon as an execution task has been submitted by the user. The worker retrieves the metadata and all resources described in the metadata (binary, package, library etc.). If any metadata or file is not reachable, the worker cowardly refuses the application. As described in the “security” article, deployment follows the security rules.
Conclusion
This article introduced the iEx.ec application deployment. We will introduce data management in a next article.
Media
You are kindly invited to:
- join our Slack: https://iexec-team.slack.com
- follow us on Twitter: https://twitter.com/iEx_ec
- interact with us on Reddit : https://www.reddit.com/r/iexec/
Resources
- iEx.ec Github
- XtremWeb-HEP Github
- XWHEP documentation
- Video introducing XWHEP, presented at CrowComputing 2014, in Almere, NL. https://vimeo.com/113122296