Slide 1

Slide 1 text

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?