Evaluating Cloudify
Get the latest docs
You are looking at documentation for an older release. Not what you want? Go to the current release documentation.This section is created to assist you to evaluate the Cloudify product suite. It includes a simple and a more complex deployment.
Deploying a Simple ‘Hello World’ Web Server
This procedure enables you to deploy a simple ‘Hello World’ Web server. You must have installed Cloudify in order to run this evaluation process. For more information about installation, click here.
Now that you have installed Cloudify, it is time to get a glimpse of what it can do. In this procedure you:
- Download and extract a sample blueprint from the Cloudify Sample repository.
- Deploy the Web application blueprint locally by executing an install workflow.
- Retrieve the outputs of the installation.
- List the node instances that are part of the installation.
- Access and confirm the ‘Hello World’ message.
- Remove the Web application by executing an uninstall workflow.
1. Downloading and Extracting the Blueprint
Use the following command to download and extract the installation.
$ curl -L https://github.com/cloudify-examples/simple-python-webserver-blueprint/archive/4.0.tar.gz | tar zx
The process creates a directory called simple-python-webserver-blueprint-4.0
.
2. Installing the Blueprint
On the Linux server, use the following command to change directory and begin the install process:
cd simple-python-webserver-blueprint-4.0/
cfy install blueprint.yaml
- You might be prompted to provide permission to listen on the localhost.
- If the install fails, or the Website does not appear, you might need to open your firewall.
You should see the following output.
$ cfy install blueprint.yaml
Initializing local profile ...
Initialization completed successfully
Initializing blueprint...
Initialized blueprint.yaml
If you make changes to the blueprint, run `cfy init blueprint.yaml` again to apply them
2017-03-28 10:52:58.234 CFY <local> Starting 'install' workflow execution
2017-03-28 10:52:58.363 CFY <local> [host_bd1n1g] Creating node
2017-03-28 10:52:58.776 CFY <local> [host_bd1n1g] Configuring node
2017-03-28 10:52:59.185 CFY <local> [host_bd1n1g] Starting node
2017-03-28 10:53:00.243 CFY <local> [http_web_server_1fa7ij] Creating node
2017-03-28 10:53:00.299 CFY <local> [http_web_server_1fa7ij.create] Sending task 'script_runner.tasks.run'
2017-03-28 10:53:00.319 CFY <local> [http_web_server_1fa7ij.create] Task started 'script_runner.tasks.run'
2017-03-28 10:53:00.324 LOG <local> [http_web_server_1fa7ij.create] INFO: Running WebServer locally on port: 8000
2017-03-28 10:53:00.330 LOG <local> [http_web_server_1fa7ij.create] INFO: Setting `pid` runtime property: 59537
2017-03-28 10:53:00.332 CFY <local> [http_web_server_1fa7ij.create] Task succeeded 'script_runner.tasks.run'
2017-03-28 10:53:00.625 CFY <local> [http_web_server_1fa7ij] Configuring node
2017-03-28 10:53:01.145 CFY <local> [http_web_server_1fa7ij] Starting node
2017-03-28 10:53:01.736 CFY <local> 'install' workflow execution succeeded
3. Retrieving Node Instances
Each logical entity in your application that is defined within a blueprint is a called a node. After a deployment is created, each logical node becomes a set of one or more node-instances, which are instances of that node. A node can have multiple node-instances, such as multiple virtual machines.
Run the following command to view each node that is defined in the blueprint, and its attributes.
cfy node-instances list
4. Retrieving the Installation Outputs
When you install a blueprint with Cloudify, a deployment is created. A deployment is a model of the application that will be modified over the Application lifecycle, including all of the node-instances and their runtime properties. A deployment also has outputs, which can be the IP addresses, ports, or other runtime-properties generated during Cloudify workflows, that you want to take and use somewhere else.
Run the following command to retrieve the outputs:
cfy deployments outputs simple-python-webserver-blueprint-4.0
5. Confirming the Application is Working
To confirm the application is working, attempt to access it locally, or remotely. If you are attempting remote access, ensure that the firewall is disabled.
To access the application locally, run:
curl http://localhost:8000
[cloudify@cloudify-manager]# curl http://localhost:8000
<html>
<header>
<title>Cloudify Hello World</title>
</header>
<body>
<h1>Hello, World!</h1>
<img src="cloudify-logo.png">
</body>
</html>[root@centos7 simple-python-webserver-blueprint]#
To test the application remotely, open a browser on a server that has access to the Linux server and browse to http://
:8000 , as shown in the following screen capture.
6. Uninstalling a Deployed Blueprint
An uninstall workflow that enables you to uninstall the application.
To uninstall the application, run cfy uninstall
.
The following output is expected:
$ cfy uninstall
2017-03-28 10:53:12.765 CFY <local> Starting 'uninstall' workflow execution
2017-03-28 10:53:12.899 CFY <local> [http_web_server_1fa7ij] Stopping node
2017-03-28 10:53:13.494 CFY <local> [http_web_server_1fa7ij] Deleting node
2017-03-28 10:53:13.593 CFY <local> [http_web_server_1fa7ij.delete] Sending task 'script_runner.tasks.run'
2017-03-28 10:53:13.620 CFY <local> [http_web_server_1fa7ij.delete] Task started 'script_runner.tasks.run'
2017-03-28 10:53:13.637 LOG <local> [http_web_server_1fa7ij.delete] INFO: Running process PID: 59537
2017-03-28 10:53:13.637 LOG <local> [http_web_server_1fa7ij.delete] INFO: Python Webserver Terminated!
2017-03-28 10:53:13.638 CFY <local> [http_web_server_1fa7ij.delete] Task succeeded 'script_runner.tasks.run'
2017-03-28 10:53:13.910 CFY <local> [host_bd1n1g] Stopping node
2017-03-28 10:53:14.765 CFY <local> [host_bd1n1g] Deleting node
2017-03-28 10:53:15.154 CFY <local> 'uninstall' workflow execution succeeded
This completes the deployment of your first application. You have processed an entire application lifecycle workflow using Cloudify.
Deploying a Complex Sample Application
This procedure enables you to deploy the NodeCellar application locally. NodeCellar is a sample application, created by Christophe Coenraets, that demonstrates the usage of various technologies (Backbone.js, Node.js, MongoDB). You must have installed Cloudify in order to run this evaluation process. For more information about installation, click here.
Prerequisites: This blueprint is intended to be run on a linux machine.
1. Downloading and Extracting the Blueprint
Download and extract the blueprint to your home directory by executing the following commands on your Linux server:
$ curl -L https://github.com/cloudify-cosmo/cloudify-nodecellar-example/archive/4.0.tar.gz | tar zx
cd cloudify-nodecellar-example-4.0
2. Installing the Application
Install the application using the built-in default inputs:
$ cfy install local-blueprint.yaml
You can view the logs as Cloudify downloads the required packages and executes all the actions necessary to install the NodeCellar application locally, and confirm that the install workflow completed successfully. The final line should say CFY <local> 'install' workflow execution succeeded
.
Installation might take some time, particularly when executing the following:
2017-03-28 11:10:03.369 LOG <local> [mongod_g5vfgo.create] INFO: Downloading http://downloads.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz to /tmp/mongodb-linux-x86_64-2.4.9.tgz
2017-03-28 08:16:21.107 LOG <local> [nodecellar_jxl3wz.configure] INFO: Installing nodecellar dependencies using npm
2017-03-28 08:16:09.145 LOG <local> [mongod_expwi7.start] INFO: Running MongoDB liveness detection on port 28017
2017-03-28 08:16:09.463 LOG <local> [mongod_expwi7.start] INFO: [GET] http://localhost:28017 000
2017-03-28 08:16:09.769 LOG <local> [mongod_expwi7.start] INFO: MongoDB has not started. waiting...
3. Listing Node Instances
This procedure enables you to deploy the NodeCellar application locally. NodeCellar is a sample application, created by Christophe Coenraets, that demonstrates the usage of various technologies (Backbone.js, Node.js, MongoDB). You must have installed Cloudify in order to run this evaluation process. For more information about installation, click here.
Run the following command to view each node that is defined in the blueprint, and its attributes.
cfy node-instances
4. Retrieving Installation Outputs
You can retrieve the installation outputs by running $ cfy deployments outputs
.
Depending on the inputs that have been defined, the output will be similar to the following:
$ cfy deployments outputs
{
"endpoint": {
"ip_address": "localhost",
"port": 8080
}
}
5. Confirming the Application is Working
To confirm the application is working, attempt to access it locally, or remotely. If you are attempting remote access, ensure that the firewall is disabled.
Navigate in a browser to the endpoint defined the deployments outputs: http://localhost:8080/.
You should see the following webpage:
6. Uninstalling a Deployed Blueprint
You can uninstall the application by running the built-in uninstall workflow, which calls the stop
and delete
operations on all nodes, and also calls unlink
on all relationships. To remove the nodecellar app, run cfy uninstall
.
To verify that the uninstall completed successfully, look for CFY <_local_> 'uninstall' workflow execution succeeded
in the final log line.
This completes the deployment of your first application using the Cloudify CLI. You have processed an entire application lifecycle workflow using Cloudify.