Presented by Grant Paton-Simpson and Ben Denham
Basil
Build a System Instant-Like
Slide 2
Slide 2 text
Basil - making it easy to spin up
best-practice Python web frameworks
Slide 3
Slide 3 text
Python – an awesome experience!
http:/
/xkcd.com/353
Slide 4
Slide 4 text
Instant gratification
print('Hello World!')
Slide 5
Slide 5 text
Executable pseudocode
for name in names:
print('Hello ' + name)
Slide 6
Slide 6 text
Batteries included
http:/
/www.somethingofthatilk.com/index.php?id=135
Slide 7
Slide 7 text
Lots of fun!
Slide 8
Slide 8 text
Getting started with Python web
frameworks is less so...
Slide 9
Slide 9 text
Sysadmin crash-course
Slide 10
Slide 10 text
Lots of moving parts
●
Python version
●
Python packages
●
System packages
●
Database
●
Web server
– If not using built-in server, lots more
parts: Apache mod_wsgi, NGINX,
Gunicorn, supervisord, etc, etc, etc.
Slide 11
Slide 11 text
Delayed Gratification
Slide 12
Slide 12 text
Python web development
is un-Pythonic
Slide 13
Slide 13 text
Frustration leads to compromised best
practices...
chmod 777
Slide 14
Slide 14 text
…or just giving up
Slide 15
Slide 15 text
The challenge
●
Setting up a new project should be:
– Easy
– Fast
– Best practice
Slide 16
Slide 16 text
Basil makes it so:
●
Install Basil
●
Pick a template
●
Answer a few simple questions
●
Start coding
●
Actually see results on screen!
Slide 17
Slide 17 text
Spinning up a Python web
framework with Basil
Video demonstration
Slide 18
Slide 18 text
Eating our own
dog food
Slide 19
Slide 19 text
So how was it?
●
Basil didn't get
in the way
●
Potential for
template with
batteries included
– jQuery
– Heroku
Basil Flask Blackbox
Slide 20
Slide 20 text
Use cases for Basil
Slide 21
Slide 21 text
New developers
●
Get started in minutes, not hours
●
Reduce the initial learning curve
– Write code straight away!
●
Best practice from day one
Slide 22
Slide 22 text
Experienced developers
●
Make learning new frameworks easy
●
A standard way to start new projects
– Make your own custom template
– Just Vagrant/configuration management
●
E.g. Puppet, Ansible, Salt, etc.
– Share your template with other developers
Slide 23
Slide 23 text
Students and teachers
●
Quickly set up 30 machines with the same dev
environment, even for BYOD situations
– Teach programming; not system administration
●
Students can set up Basil at home
●
Teachers can customise templates to adjust the
starting point for students
Slide 24
Slide 24 text
Alternatives to Basil
●
Your own shell scripts
– High maintenance
– Not cross-platform/shareable
●
Vagrant directly
– No solution for simple templating
Slide 25
Slide 25 text
Goals for Basil
●
Cross-platform (80% already done)
●
Simple installers
●
Command line interface
●
Docker containers instead of VMs
●
Become a standard platform
Slide 26
Slide 26 text
Following Basil
●
Under active development
●
https:/
/github.com/catalyst/basil
●
Works but some rough edges in packaging
and documentation
●
Let us know how you go
●
Questions?