Overview

Background

During the financial year 15/16 a project, INF115 Python Development, was delivered. This project had a vision to establish: An enterprise, production-quality Python web development platform that is:

  • Consistent, flexible, responsive, dynamic and disposable. 
  • In step with our Division’s automation strategy
  • Suitable for use as a replacement for our existing ColdFusion web development platform

Following the completion of that project and in order for this vision to be achieved, IS Applications will undertake another follow-on project to enhance the infrastructure and development components for the Python web development platform. This new project is strategically important in order to allow the University to stop using ColdFusion. 

Scope Objectives and Deliverables

The project will be managed using the Agile methodology in which the budget is fixed and the scope (requirements) prioritised within this limit.  It was agreed that the project will focus on two main elements of the Python platform; Infrastructure and Development Capability with the Product Owner proposing initial high level prioritisation against Containerisation, Edgel, Edgel Menu, Documentation and Migration of the IDM Dashboard. As the project progresses the delivery team team will actively manage the priorities. The initial objectives and deliverables highlighted as priorities by the Project Sponsor include: -

 

Objective / Deliverable Number Description

Priority

(MoSCow)

O1 Enhance the Python platform development capability.  
D1.1 Custom package hosting and Edgel integration.  Must
D1.2 Update developer and support documentation.  Must
D1.3 Improvements to Django starter application.  Must
D1.4

Migrate the existing Production IDM dashboard application to the supported Python platform. 

Must
     
O2 Enhance the Python platform Infrastructure   
  Important: There is a risk that IS as a whole will not be able to finalise our strategy for containerisation within the timescales required for this project. If this risk materialises then the contingency approach will be invoked. Specifically all deliverables against containerisation will be as a PROOF OF CONCEPT ONLY and will not be extended to the production environment.  
D2.1

Prototype containerisation to provide fully isolated, reproducible application environments.   

Must
D2.2 Utilise containerisation for automated testing and local development.  Should
D2.3

Allow applications to deploy gracefully to severs.

Must
D2.4

Provide a more resilient / site independent way to schedule jobs. 

Must
D2.5 Test current DR plan using a python application.  Must 
     

 

A deliverable means working, tested & documented. 

As an agile project more detailed estimation will be performed during the next stage, Foundation. Once this has been done, should it be determined that there is insufficient budget to progress the above items then this will be raised via normal project reporting and escalating processes. 

(Note deliverable D2.3 changed from Must to Should in agreement with Programme Manager and Product Owner at mtg. 30 January. This is to correct an error because D2.3 is dependent upon D2.2 which is rated Should).

Benefits

The core benefit is that we will be able to continue to offer a modern, effective web application development capability required to achieve the IS strategic vision. For the University of Edinburgh this means mitigating the risks associated with using ColdFusion which include: Increasing costs, a requirement to maintain multiple environments, limited scalability, capacity constraints and a solution that offers reduced flexibility when compared to Python. Some of the specific benefits against the above deliverables include:-

  • D1.1: Custom package hosting will encourage standardisation and consistency by enabling us to develop and deploy custom apps using our own infrastructure for use across all our Python applications.

  • D1.2: Improvements to documentation will allow the development platform to be rolled out more easily and quickly across multiple teams and is an essential requirement to scale up the service.

  • D1.3: Improvements to the Django Starter application will make it easier for developers to quickly start new projects, reducing the overhead of application refactoring required each time.

  • D1.4: Currently IS Applications have two IDM dashboards we need to support. None of them are on fully supported infrastructure. This project will mean we are supported infrastructure and we will only have one IDM dashboard to support. 

  • D2.1: By using containerisation to deliver our applications, they exist as independent entities that are identical static artifacts through local development and all infrastructural tiers, ensuring consistency and removing a dependencies on the Python packages provided with the operating systems.

  • D2.2: Using containerisation for automated testing allows testing to take place in a variety of infrastructures while the application behaviour is still representative of Production. Developing in Docker allows for a simpler more consistent development experience where the dependency on local development environment is removed.

  • D2.3: Having a capability to deploy applications gracefully means they can be updated without any impact to users, which is vital for high priority services.

  • D2.4: In order to improve to provide a fully resilient platform, scheduled tasks must also be resilient as the functionality of many services is dependant on scheduled jobs running. Python is a more resilient solution. 

  • D2.5: Testing of a disaster event allows IS Applications to have confidence that services will continue to be available if there is a loss of the primary data centre.

A minimum set of delierables will be defined that will ensure this project allows the University to achieve the strategic objective of replacing ColdFusion and automation, risk 7 refers.  

Success Criteria

Against the above deliverables the success criteria are to have the:-

  • capability to build Python applications in containers.
  • ability to style our applications in Edgel.
  • documentation that can be used to migrate to IDM Dashboard to Python platform and to then migrate this application.   
  • confidence that application will continue to function in the event of site loss

 

Project Info

Project
16-17 Provisioning of Python environment
Code
INF123
Programme
ISG - IS Applications Infrastructure (INF)
Management Office
ISG PMO
Project Manager
Chris Orrell
Project Sponsor
Stefan Kaempf
Current Stage
Close
Status
Closed
Start Date
27-Sep-2016
Planning Date
n/a
Delivery Date
n/a
Close Date
03-Nov-2017
Programme Priority
8
Overall Priority
Normal
Category
Compliance

Documentation

Plan