Python Production Environment (PyPE)
Last Updated: June 6, 2016 @ 4:29 pm
Next Review Date: 01/01/2017
Service Manager: Edward Christopher Horvath
Governance Group: Business Services
Document Status: Published
- Availability of PyPE deployment service: 98.76%
- Availability of the PyPE execution environment: 98.76%
- Response time for 90% of Web requests to the PyPE execution server (<2s): 1.18s
- Trivial (static data) requests per minute for the PyPE execution server (>4500): 5,400
- Simple (page load) requests per minute for the PyPE execution server (>1000): 1,475
- Availability of the PyPE Batch execution environment: 98.62%
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, Vagrant and a Subversion (SVN) client; 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 eight (8) 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, eight months' notice of discontinued support may not be possible.
Given historical activity in the Python and Django communities, a lifecycle of 16 or 36 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. Currently supported are
- 27.8.0 (April 2015 through March 2018)
- 27.9.0 (December 2015 through March 2017)
Support is anticipated for
- 27.10.0 (September 2016 through November 2017)
- 27.11.0 (April 2017 through March 2020)
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 Applications 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 OS 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 5 p.m. PyPE tools updates are scheduled each week, 7 to 9 a.m. Thursday. Updates are deployed to the TEST environment each Thursday. Updates are made available as patches to the desktop developer VM no later than their application to the TEST environment, and usually earlier. Beginning May 2016, updates are pushed to Qual, Beta and Prod the last Thursday of the first month of each calendar quarter (January, April, July, October). 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). Communications are documented in this SLA and reviewed as part of the SLA at least annually.
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.
- Application testing (quarterly or more frequently). Frequent Regression testing is strongly encouraged. We specifically recommend testing between the first Monday and the fourth Sunday of the first month of each calendar quarter (January, April, July, October) since OS patches are applied then, and PyPE libraries are updated in Production the end of those months.
- 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. Major releases are approximately once every 2 years (next: April 2018), Minor releases once per quarter. However, security patches may be applied with higher urgency.
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.