In 2005 Linus Torvalds, the creator of Linux, began working on a version control system that would soon revolutionize the way developers collaborated. Realizing that proprietary source control management systems were not sufficient to achieve what Torvalds needed, he decided to design his own that would meet his needs.
Torvalds also implemented a design criteria to look at Concurrent Version System, a client-server revision control system, as an example of what not to do, and when in doubt, make the exact opposite decision (as explained in a 2007 Google Tech Talk).
This project became known as Git, and eventually became the most widely used source code management tool. In my opinion, Linus Torvalds is a true champion of humankind, his impact on the “information age” has been tremendous, giving us both Linux and Git. It is also hard to overstate his impact on the world of open-source software which has played a major role in accelerating the technological advancements over the last several decades.
Embrace Open Source and a Choice of Reverse Proxies
When we set out to build section.io, I took inspiration from the design criteria Torvalds laid out while developing Git. Following Torvalds’ philosophy when he built Git, we looked at legacy Content Delivery Networks as an example of what not to do as we built section.io. Doing the opposite of legacy CDNs became a sort of internal manifesto, and led to the following decisions.
- Don’t hide your reverse proxies.
- Legacy CDNs lock their reverse proxies in black boxes making it impossible for developers to understand what is happening. Hiding reverse proxies leads to difficult or impossible troubleshooting and slow deployments, while slowing innovation in the CDN industry.
- Don’t pretend that your Reverse Proxy structure is the right structure.
- Every website and application has different priorities, and truly great performance and security cannot be achieved with a one-size fits all approach. Giving developers the flexibility to customize their reverse-proxy stack will lead to better performance and security outcomes.
- Don’t deploy hardware
- Rather than building a closed network, aggregate existing infrastructure and make it flexible enough to meet the performance, security, and scalability needs of all websites.
- Don’t treat it as “black-box” infrastructure
- The best performance comes from putting the developers in the driver’s seat. Give them a platform rather than a network to push the limits of what’s possible in content delivery and achieve truly great experiences for their customers.
- Don’t hard-code the stack
- A modular approach to the reverse proxy stack that incorporates both open-source and proprietary software spurs innovation and allows websites to take advantage of cutting edge technology without needing to change vendors.
- Don’t leave diagnostics to the end user - build them in.
- Comprehensive diagnostic tools need to be in the hands of developers in order for them achieve great results. The ability to analyze logs, metrics, synthetic testing, and real user monitoring need to be a standard feature set in a performance and scalability solution.
- Don’t hide open source.
- Don’t leverage open-source software to create a proprietary reverse-proxy. Give developers access to unaltered open-source software and leverage the open-source communities to help them achieve the best outcomes.
Legacy CDNs will not survive in a world created by Linus Torvald. We built section.io from the same values that led to the creation of Linux and Git. Transparency, collaboration, and community.