Python Production Environment (PyPE)
Last Updated: April 10, 2014 @ 5:28 pm
Next Review Date: 01/01/2015
Service Manager: Edward Christopher Horvath
Governance Group: Business Services
Document Status: Published
- Availability of PyPE deployment service: 98.58%
- Availability of the PyPE execution environment: 98.64%
- Response time for 90% of Web requests to the PyPE execution server: <2 seconds
- Requests per second for the PyPE exection server: Up to 75
- Availability of the PyPE Batch execution environment: 98.58%
This document defines the service level agreement for Python Production Environment (PyPE).
The Production Python Environment (PyPE) service consists of a set of tools and servers that enable the development and delivery of Python and Django applications in a centrally hosted environment. Features include:
- A Developer VM with a pre-installed set of client tools to enable desktop Python/Django development and testing on local developer workstations. These tools include Python, Java and Subversion clients, Django, Python broker libraries, and Stunnel to secure connections from developer workstations to the broker server.
- A deployment server to manage and deploy Python/Django projects from UTForge to production and staging servers and to manage group authorizations for projects.
- Python/Django execution environments for TEST, QUAL, BETA, and PROD. The TEST environment is only available from hosts within the utexas.edu domain or off-campus hosts connecting via a VPN.
Python Production Environment (PyPE) can be used by staff.
Supported computing environment
The PyPE Developer VM is supported on any platform supported by Oracle VirtualBox and Vagrant; that includes all reasonably current versions of Windows, MacOS X, Redhat Enterprise Linux and Ubuntu, see the respective websites for details.
The PyPE Deployment Server is browser-based and supports Firefox, Safari, Chrome, and Internet Explorer.
The PyPE Service depends upon many externally provided applications, frameworks, and libraries. As these externally provided tools release new versions, their development teams will discontinue support for older versions. This in turn will have an impact on the PyPE service. The PyPE administrators will make all attempts to notify the campus user community a minimum of nine months before discontinuing support for a version of the PyPE environment used at the university. In circumstances where support must be discontinued for a version because of security issues, nine months' notice of discontinued support may not be possible.
Given historical activity in the Python and Django communities, a default lifecycle of 18-24 months is anticipated for a supported PyPE version. The PyPE system supports multiple concurrent versions, and allows ready deployment of an application under different versions, to facilitate the safe transition of applications to an updated environment.
Both Tier 1 and Tier 2 technical support is available during normal business hours. Routine requests are typically addressed within one business day.
Tier 1 and Tier 2
Tier 1 and Tier 2 support for the PyPE Developer VM, PyPE Deployment Service, and the PyPE Execution Environments (utdirect/dpdev1/beta.dp/qual.its) is provided by ITS Systems via the email@example.com list. Peer developer support can often be had via the firstname.lastname@example.org list.
Tier 1 and Tier 2 support for Stunnel is provided by ITS Systems via the email@example.com list.
Support for issues related to the operating system, storage, or network connectivity to the execution environments is provided by ITS Systems, issues must be escalated from Tier 2.
ITS will notify customers about both scheduled and unscheduled maintenance using the ITS Services Status page of service availability and service delivery issues. Services may not be available during the maintenance periods.
Scheduled maintenance for PROD and BETA environments occurs on the fourth Sunday of each month from 9 to 10 p.m., and on TEST and QUAL on the first Monday of each month from 3:30 to 5p.m. Application updates are scheduled as needed, typically at 7 to 9 a.m. Thursdays with 5 business days' notice. To the maximum extent possible, installation of service, application, and security updates will be performed during scheduled maintenance.
Unscheduled maintenance tasks that require service downtime will be announced as soon as possible on the ITS Services Status page.
ITS will notify customers using the ITS Services Status page and the firstname.lastname@example.org mailing list of service availability and service delivery issues for Python Production Environment (PyPE).
Subscribers (users) of the service and identified owners/administrators agree to be aware of and adhere to The University's Acceptable Use Policy.
Application Developers agree to be responsible for the following:
- Monitoring the email@example.com list for announcements
- Installing and configuring the developer VM.
- Updating the developer VM at least once per quarter to acquire the latest security and other patches, or immediately if advised that a critical patch update is available.
- Reviewing and contributing to documentation and best practices for the use of the PyPE Service.
- Providing Tier 1 support for end users of Python/Django applications.
- Migrating their applications to new versions of the PyPE environment as mandated by 3rd-party support expirations and informed by the PyPE Administrators
In addition to the items listed above, departmental IT support staff agrees to:
- Be responsible for installing, configuring, and maintaining any local development tools not supported by the PyPE Service and Toolkit.
Cost of Service
Cost information for this service can be found on the Python Production Environment (PyPE) web site.
The "voice of the customer," who set priorities for PyPE extension and development, are the PyPE Working Group which meets monthly. The PWG is a subcommittee of the AITL.