
Python is an integral tool at ITA Software, with a large and growing body of code (almost 200,000 lines checked in). Here are some of the ways we use Python today:
Data distribution
ITA has implemented a reliable multicast transport with congestion control in order to deliver multiple streams of data. The server is a mixture of C++ and Python, running on top of Twisted. In addition, some of the data feeds we receive from our customers and partners are handled by network servers running on Twisted.
Managing complex servers
Airline seat availability is remarkably complex, and ITA has worked closely with our airline partners to build high-performance servers to compute seat availability. These complex servers aggregate data from public and private data sources, including both streaming and file based data. Each server requires a unique set of data feeds, and all the data feeds must be monitored to ensure the data arrives when expected and gets loaded as required all while ensuring that system performance is not impacted by these data management tasks. ITA uses Python to automate all of these tasks to make our systems reliable, easy to maintain and easy to update as our customers' needs change.
Monitoring
ITA Software uses a Python application to monitor our heterogeneous production environment that contains hundreds of servers. In order to do this efficiently, we developed our own monitoring framework that enables the requirements to be expressed in configuration rather than in code.
Regression frameworks
ITA uses agile development methods, which require that our software is always buildable. In order to do this, we need to be able to perform automated regression tests with every build; but our systems require dynamically changing data for meaningful tests. ITA has built regression frameworks in Python to test both availability and reservations systems. This framework enables us to load test data while we test, and has been built around a configuration language so that it is straightforward to add new test cases as needed.
Read About Lisp at ITA Software
Read More
Quality Assurance at ITA Software
Read about interesting things we're working on
|