GoLang: The Technology Behind YouTube

By Eddie Lui, Senior Agile Project Manager  

We’re all familiar with YouTube. The force behind endless how-to videos, vlogger cult followings and cute cat videos. But how much do you know about the technology behind the platform, and what makes it work? 

Since launching in 2005, YouTube has become the most used platform for uploading and viewing video content online. Over 1 billion people use the platform, and users watch a billion hours of video each day, according to YouTube’s 2017 user statistics. Supporting this amount of traffic requires a robust system of hardware, software and computer programs that are constantly evolving.  

The machine behind the platform 

Thousands of computer servers in Google’s data centers work night and day to power the platform. These centers sit across the world and are responsible for storing every video that’s uploaded. On top of the sheer hardware required to make things work, computer programs enable the servers to communicate with one another and support the thousands of keywords searches made every day. 

These computer programs are created as languages in that they contain specific instructions that tell the servers what to do – upload, watch or download a video. But not all computer programs are created equal. GoLang, or Go for short, is a language specifically designed for high performance computing. Created in 2007 by a group of computer scientists at Google, it was created to use multiple cores of Central Processing Unit (CPU) in a server simultaneously, which enables more efficient processing of high volume requests. With distinct advantages over existing programming languages, Google is working towards implementing Go to support YouTube and the growing amount of traffic on the platform. With Go, YouTube can process over 400 hours of video every minute.  

Google data center

Google data center

What sets Go apart 

Manufacturers like Intel and AMD are adding more cores and cache to their CPU to increase computing performance. But without efficient software, the power of the multi-core processors cannot be fully leveraged. This is where Go shines, as it is designed to take full advantage of latest multi-core CPUs that are widely used in enterprise servers.  

Programming languages like Java, C# and Python created in the 1990’s were primarily designed for single-core CPU computing. They do not perform well with concurrent execution using multi-core CPUs. Using these languages to support a high-traffic and evolving platform like YouTube amounts to inefficient processing and decreased user experience when compared to a language like Go.  

 “Modern processors are like nitro fueled funny cars, they excel at the quarter mile. Unfortunately, modern programming languages are like Monte Carlo, they are full of twists and turns,” says computer scientist David Ungar of the University of California, Berkeley.  

According to the long-running Tiobe Index – an indicator of the popularity of programming languages – Go was the programming language of the year in 2016. With growing usage and popularity among software developers, Google is gradually replacing C, C++, Java, and Python and replacing them with Go as it evolves the YouTube platform. 

Faster, higher quality video on the horizon 

As digital marketing evolves, online video traffic will see a massive increase in the next few years. “Video traffic is growing exponentially. But it’s not just the quantity of video that matters, it’s the quality of that content too,” says Thomas Barnett of Cisco.  

Over 66% of internet video will be HD quality and nearly 16% will be UHD by 2020, according to Cisco. This increase in video quality means there will be increasingly higher requirements for enterprise server networks to support higher definition digital content. With its promise of speed, simplicity and scalability, Google-backed Go has great potential to become a dominating programming language in computer servers beyond YouTube.  

Connect with Eddie on LinkedIn.

 


Wavefront’s engineering team is constantly looking to implement future technologies like GoLang to adopt, as they design and develop client solutions. Curious about what we do? Learn more about our Enterprise Solutions.

Share this Post

Leave a Reply

Your email address will not be published. Required fields are marked *