Web Service Efficiency at Instagram with Python
Instagram currently features the world's largest deployment of the Django web framework, which is written entirely in Python. We initially chose to use Python because of its reputation for simplicity and practicality, which aligns well with our philosophy of "do the simple thing first." But simplicity can come with a tradeoff: efficiency. Instagram has doubled in size over the last two years and recently crossed 500 million users, so there is a strong need to maximize web service efficiency so that our platform can continue to scale smoothly. In the past year we've made our efficiency program a priority, and over the last six months we've been able to maintain our user growth without adding new capacity to our Django tiers. In this post, we'll share some of the tools we built and how we use them to optimize our daily deployment flow.
Why Efficiency?
Instagram, like all software, is limited by physical constraints like servers and datacenter power. With these constraints in mind, there are two main goals we want to achieve with our efficiency program:
- Instagram should be able to serve traffic normally with continuous code rollouts in the case of lost capacity in one data center region, due to natural disaster, regional network issues, etc.
- Instagram should be able to freely roll out new products and features without being blocked by capacity.
To meet these goals, we realized we needed to persistently monitor our system and battle regression.
Read full article from Web Service Efficiency at Instagram with Python
No comments:
Post a Comment