Open-sourcing Teletraan, a code deployment system
Baogang Song | Pinterest engineer, Infrastructure
Teletraan is a code deployment system we built to deploy hundreds of our internal services. It supports tens of thousands hosts and has been running in production for over one year. Teletraan empowers engineers to deliver their code to Pinners quickly, safely and reliably, at scale. As shared in a previous blog post that details Teletraan’s features, we’re proud to announce Teletraan as our latest open-source project. Check out GitHub for all the code and documentation.
The benefits of using Teletraan
Teletraan is designed to do one thing — deploy code. Not only does it support critical features such as zero downtime deploy, rollback, staging and continuous deploy, it also has convenient features, such as displaying commit details, comparing different deploys, notifying deploy state changes through either email or chat room, displaying OpenTSDB metrics and more. Teletraan doesn’t support container-based deploy yet, but it’s on our roadmap to support in the future.
How to integrate with Teletraan
Teletraan is designed to be a flexible building block. It’s highly configurable and not opinionated on the programming languages your applications use. You can plug Teletraan into existing release workflows, if the following requirements met:
- Run Deploy Agents on each host through your provisioning process
- Add Deploy Scripts into your applications
- Publish build artifacts to Teletraan in the end of each build
For additional information, check out our detailed documentation.
We use Teletraan heavily. Currently we have about 500 deploys per day, including the auto deploys. Teletraan is constantly under active development to make it even better. This year, among other features, such as finer deploy velocity control, sharing common deploy scripts, we’ll add support for container-based deploys. Stay tuned for future development.
Acknowledgements: Teletraan was built by Jinru He, Nick Dechant, Linda Lo and Baogang Song from the Cloud Management Platform team, a subteam of the Infrastructure team that drives reliability, speed, efficiency and security for Pinterest and its infrastructure.