Daeploy is a tool created to make software deployment, primarily for Machine Learning algorithms, quick and easy for anyone who has basic knowledge of Python. It has two components: a SDK that helps you to create APIs out of Python code and a runtime manager that packages and deploys the code as web services.
In this tutorial we explain how to configure the manager, create, and deploy your first service using Daeploy. This guide gives access to a free trial of the manager, that can be used without restrictions for 12 hours before it needs to be restarted. Daeploy also offers a full free license for private and non-commercial use, that can be requested here.
- Installation
To use Daeploy, you need to have Python 3.6 or newer installed in your development environment and Docker in your deployment environment.
Begin by installing the Daeploy python library with pip.
$ pip install daeploy
Then, start the free trial manager container on localhost by running the following command:
$ docker run -v /var/run/docker.sock:/var/run/docker.sock -p 80:80 -p 443:443 -d daeploy/manager:latest
You can check that it started correctly by opening http://localhost/ in your browser.
This configuration should not be used in production, as it doesn’t include features like authentication and secured communication. An example of a production setup can be found in our documentation.
2. Start with your first service
Once the Manager is up and running you are ready to start using Daeploy. The easiest way to interact with the Manager is to use the Command-line Interface (CLI) that comes packaged with the SDK. The CLI contains a host of useful commands that make the deployment and monitoring of services fast and painless.
To get a list and short description of the available commands, look at the help
$ daeploy --help
Here is how the output looks like:
To get help or a longer description of any command, use
$ daeploy <COMMAND> --help
3. Logging in to the Manager
The first step is to login to the host where the manager is running. If you started the manager with the command above, your host is http://localhost. To do this, we call the daeploy login command. If the manager has authentication enabled, you will be prompted for a username and password.
$ daeploy login
We haven’t enabled the authentication for this example. So we can login without username and password. This is how it looks:
Once you have logged in, you are connected to your specified host and able to communicate with the Manager running there. Logins expire after seven days, then you’ll be prompted to login again. We can check if we are logged in by calling daeploy ls. It should return an empty list.
$ daeploy ls
Currently you don’t have any services so the output looks like this:
4. Creating a new service
When creating a new service, we recommend using a project template with daeploy init. This creates a new directory called my_project in your current working directory, which contains a fully functioning hello world service that can be deployed straight away.
5. Deploying a service
To deploy your service, the CLI will require you to give it a name and version and then specify the path to the project directory. Lets call our first service hello_world with version 1.0.0. The last argument, my_project is the path to the folder containing the project files.
$ daeploy deploy hello_world 1.0.0 my_project
After a few seconds, the service should be up and running. We can check with daeploy ls that it started properly. Here is the result of deploying our first service!
If you open http://localhost in a browser you should see the dashboard where you can get much of the same information as through the CLI. And at http://localhost/services/hello_world_1.0.0/docs you can read the automated API documentation of the service and test its functionality.
6. Communicate with the service
The service documentation is interactive and can be used to test the API.
To communicate with your services from outside the documentation you can use any HTTP library, which are available in most programming languages. In python, requests is commonly used. You can also use curl in bash or applications such as postman.
Here is an example using curl:
$curl -X 'POST' 'http://localhost/services/hello_world_1.0.0/hello'\ -H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{ "name": "world" }'
7. Killing a service
When you are done with a service, you can kill it with the kill command:
$ daeploy kill hello_world
Now that you know the basics of deploying a service using the CLI, take a look at our documentation learn how to write your own service. If you have questions, suggestions or need support, join our Daeploy Slack channel, we’re always there to help. Happy daeploying!