Translator’s note: This is the 7th article of the series “Cloud Foundry 100-day Challenge selection”. “#023” in the title means that it is 23rd (published on July 06, 2015) in the original Japanese series.
Original Author: Takehiko AMANO (Twitter) (blog)
The 23rd topic of “Cloud Foundry 100-Day Challenge” is IPython Notebook.
Recently, we are increasingly hearing buzzes about a job called “data scientist”, and phrases like “Baye’s theorem” seem to be thrown around more and more.
The R language, Python, etc. are being used for scientific computing, and I had been interested in SciPy for some time. Although I have been thinking that it would be a useful tool in building my career, I have been procrastinating. I have been hearing that IPython Notebook is being used increasingly, especially among data scientists. Although the way to operate IPython with Bluemix is widely known (see link), it has always seemed quite complicate. However, I found an easier way to do it, so I would like to share my findings with you.
Basic Information
- Official site
http://ipython.org/notebook.html - Source code (buildpack)
https://github.com/ihuston/ipython-notebook-buildpack.git - References
- http://www.scipy.org/
- http://www.slideshare.net/ihuston/python-on-cloud-foundry
Deploying Application
1. No retrieval of source
This method requires only the buildpack. How wonderful it is to be able to deploy an application only with the buildpack.
2. Deploying the application
Since the buildpack to be used does not seem to include mathematical modules by default, enter additional modules in the requirements.txt file.
$ cat requirements.txt
numpy
pandas
matplotlib
Having done that, let’s start deployment on Cloud Foundry. Here, I have used Bluemix.
$ cf push amntip -b
https://github.com/ihuston/ipython-notebook-buildpack.git -m 512M
requested state: started
instances: 1/1
usage: 512M x 1 instances
urls: amntip.mybluemix.net
last uploaded: Wed Jul 1 07:14:35 UTC 2015
stack: lucid64
state since cpu memory disk
details
#0 running 2015-07-01 04:17:11 PM 0.0% 119.3M of 512M 254.4M of 1G
Cloud Foundry’s buildpack is utilized to build the operating environment, and it is common for the user to provide source files and binary on top of that.
However, we can also install the application itself, like I did here. The compile script of the buildpack is the script that installs the software, but in taking a look at the buildpack’s compile script in this example, I see that it isn’t too complicated. It is written just as if a user would normally write installation scripts. This is the type of freedom that is characteristic of Cloud Foundry. In a way, it could be easier than writing Docker scripts.
And now, let us try it out.
Checking Application Behavior
Let’s start with the usual greeting, “Hello World”!. Please push the New button and select Python 2 from the drop-down.
Enter print "Hello"
to the In
section, and let it run.
… then I got a Hello
output.
Now let’s also try plotting; Please enter and run the following command.
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 3*np.pi, 500)
plt.plot(x, np.sin(x**2))
plt.title('A simple chirp');
… and the following output should be displayed.
On the presentation slides (Translator’s note: slide #14) in the link under the References section, Mr. Ian Huston mentions there are the following benefits for data scientists:
– Easy to get web apps up and running
– Create and bind to your favourite data services
– Don’t get locked in to one cloud provider
– Python is officially supported
There definitely is a benefit in, for example, being able to get your hands on IPython’s operating environment in a matter of minutes when you want to run a few calculations.
Extras
It should be noted that we were only able to run the application in this occasion, and that we could not get too far into testing the application in various ways. The difficulty of learning a skillset is really hitting home, but as they say, the journey of a thousand miles begins with a single step. I now have an environment that is easy to operate, so I will find the time to hone my skills.
References
- http://www.scipy.org/
- http://www.slideshare.net/ihuston/python-on-cloud-foundry
The Environment Used in This Post
- cf-release Bluemix (v210)
- IPython Notebook buildpack
https://github.com/ihuston/ipython-notebook-buildpack/tree/02ca4d69805ba50f4afa77e6a4db5e75287b046f