New web development platform for IS Apps

IS-Apps Development Services have launched a new corporate web development platform based on the Python language. It has been designed as a replacement for our existing ColdFusion platform and our vision is to create an enterprise, production-quality Python platform that is: consistent, flexible, responsive, dynamic and is in step with our Division’s automation strategy.

The technology stack at launch comprises Python 3.4 and the Django web framework (v1.9).  Database support has been included for: MySQL, Oracle as well as SQL Server.

Automation is a key theme for this platform and environment creation and maintenance makes extensive use of Puppet and Bamboo automation tools.

Developers are provided with a standard local virtual development environment that is representative of the corporate Python environment.  Built with Vagrant, the VM provides developers with support for application build and automated testing.  Other features include support for: database connectivity, Basic Auth, automatic schema updates and externalised config.  It also comes with a default starter application that can be used as a framework for new applications providing a significant head start or as a demonstrator for how to incorporate key features.

The adoption of Python for web application development is a hugely significant move forward for Development Services.  It provides an ideal platform to fully implement our automation strategy and will provide a level of consistency, flexibility and responsiveness we haven’t been able to achieve with our current architecture.  Applications built with Python will use the gitflow branching model for source control and be fully integrated into our continuous integration tool Bamboo; we will standardize on a single IDE (PyCharm); testing will be baked into how we code both at individual developer level and at peer testing (including the use of a linting tool, Flake8) to name but a few of the new features we will adopt.

Our partners too should see benefits.  Python has an extensive array of third party modules and support libraries that should shorten the length of code to be written and therefore make it possible to do more for less.  This is further supported by Python’s inherent design philosophy which supports the development of clean object-oriented code which should result in increased speed and productivity.  For funded work, there is no longer the need to consider licencing costs as Python is developed under an OSI-approved open source licence.

Full details on our blog post at http://www.appsdev.is.ed.ac.uk/blog/?p=875