Under the hood: Teletraan deploy system

Pinterest Engineering
4 min readbeginner
--
View Original

Overview

The article discusses Teletraan, Pinterest's internal deploy system designed to streamline and enhance the deployment process for developers. It emphasizes the importance of reliable deployment tools and outlines the core functionalities and advanced features of Teletraan, which aim to improve deployment reliability, speed, and efficiency.

What You'll Learn

1

How to implement rollback and hotfix features in a deployment system

2

Why visibility and usability are critical in deployment tools

3

When to use staging and testing environments before production deployment

4

How to configure auto deploy settings for a deployment pipeline

Key Questions Answered

What functionalities should a deploy system support?
A deploy system should support rollback, hotfix, rolling deploy, staging and testing, visibility, and usability. These functionalities ensure that deployments are reliable, efficient, and minimally disruptive to services.
What is Teletraan and how does it work?
Teletraan is Pinterest's internal deploy system that follows a client-server model with MySQL as the backend. It uses deploy agents on hosts to execute deployment scripts and manage service states during deployments.
What advanced features does Teletraan offer?
Teletraan includes advanced features such as pause and resume for deployments, qualification tests for successful deploys, and auto deploy capabilities that promote builds automatically based on schedules or new availability.

Technologies & Tools

Some links below are affiliate links. We may earn a commission if you make a purchase.

Key Actionable Insights

1
Implementing rollback functionality in your deployment system can significantly reduce downtime during failures.
This feature allows developers to revert to a previous stable state quickly, which is crucial for maintaining service reliability.
2
Incorporating visibility tools in your deployment process can enhance tracking and accountability.
By easily identifying which code changes are deployed and by whom, teams can better manage deployments and respond to issues.
3
Utilizing staging environments can mitigate risks associated with direct production deployments.
Testing in a staging environment helps catch issues before they affect users, though it may require additional setup.

Common Pitfalls

1
Neglecting to use a staging environment can lead to higher risks during production deployments.
Many engineers skip staging due to the overhead involved, which can result in undetected issues making it to production.