{"video_id":"fp_lYpWxdYAQE","title":"TQ: This Little Trick Keeps Netflix Running","channel":"Techquickie","show":"Techquickie","published_at":"2020-01-05T19:57:50.385Z","duration_s":250,"segments":[{"start_s":0.0,"end_s":3.52,"text":"Imagine sitting down at a fancy $50 a plate restaurant","speaker":null,"is_sponsor":0},{"start_s":3.52,"end_s":6.8,"text":"and tearing into a 60-ounce steak with your teeth","speaker":null,"is_sponsor":0},{"start_s":6.8,"end_s":10.4,"text":"instead of cutting it. Not only would this be a pretty frustrating experience,","speaker":null,"is_sponsor":0},{"start_s":10.4,"end_s":16.4,"text":"but you'd probably be getting a look from your boss as he wonders why he's still letting you expense dinner.","speaker":null,"is_sponsor":0},{"start_s":16.4,"end_s":19.76,"text":"And as with steak, software becomes much easier to manage","speaker":null,"is_sponsor":0},{"start_s":19.76,"end_s":24.72,"text":"if you split it up into smaller chunks before eating or rather using it.","speaker":null,"is_sponsor":0},{"start_s":24.72,"end_s":28.52,"text":"This approach is actually used by lots of larger services today,","speaker":null,"is_sponsor":0},{"start_s":28.52,"end_s":33.96,"text":"where they split whatever it is they're providing into lots of small microservices.","speaker":null,"is_sponsor":0},{"start_s":33.96,"end_s":37.92,"text":"And our friends at IBM sponsored this video so we could tell you all about it.","speaker":null,"is_sponsor":0},{"start_s":37.92,"end_s":42.84,"text":"To explain what a microservice is, let's imagine you're using a site like Netflix.","speaker":null,"is_sponsor":0},{"start_s":42.84,"end_s":46.16,"text":"Every time you perform some small action on the website,","speaker":null,"is_sponsor":0},{"start_s":46.16,"end_s":49.36,"text":"skipping forward, logging in, paying a bill,","speaker":null,"is_sponsor":0},{"start_s":49.36,"end_s":53.84,"text":"all of these functions are handled by different dedicated microservices,","speaker":null,"is_sponsor":0},{"start_s":53.84,"end_s":59.8,"text":"a concept that Netflix actually pioneered and all of them are held in virtual containers.","speaker":null,"is_sponsor":0},{"start_s":59.8,"end_s":63.56,"text":"You see, the traditional way for a site to handle tons of users at once","speaker":null,"is_sponsor":0},{"start_s":63.56,"end_s":67.48,"text":"was to run lots of separate instances of the same code","speaker":null,"is_sponsor":0},{"start_s":67.48,"end_s":72.48,"text":"in virtual machines or VMs. You can learn more about virtualization in this video,","speaker":null,"is_sponsor":0},{"start_s":72.48,"end_s":75.64,"text":"but the basic idea is that a VM is a separate session","speaker":null,"is_sponsor":0},{"start_s":75.64,"end_s":79.16,"text":"of an operating system running inside another OS.","speaker":null,"is_sponsor":0},{"start_s":79.16,"end_s":82.2,"text":"And a typical server can run many VMs at once,","speaker":null,"is_sponsor":0},{"start_s":82.2,"end_s":85.68,"text":"which helps a great deal when many people are accessing a site.","speaker":null,"is_sponsor":0},{"start_s":85.68,"end_s":91.88,"text":"But running a full VM and the associated software that you need typically requires millions of lines of code.","speaker":null,"is_sponsor":0},{"start_s":91.88,"end_s":97.04,"text":"And oftentimes, a user wanting to complete just a simple task might require the server","speaker":null,"is_sponsor":0},{"start_s":97.04,"end_s":100.6,"text":"to open up more full VMs, which is pretty inefficient","speaker":null,"is_sponsor":0},{"start_s":100.6,"end_s":103.88,"text":"and can end up hogging CPU cycles and other resources.","speaker":null,"is_sponsor":0},{"start_s":103.88,"end_s":107.0,"text":"Microservices in containers, by contrast,","speaker":null,"is_sponsor":0},{"start_s":107.0,"end_s":110.68,"text":"only contain the code for a specific task.","speaker":null,"is_sponsor":0},{"start_s":110.68,"end_s":115.04,"text":"So we could be talking about just a few thousand lines of code instead of millions.","speaker":null,"is_sponsor":0},{"start_s":115.04,"end_s":119.28,"text":"Going back to our Netflix example, you might have one container for credit card","speaker":null,"is_sponsor":0},{"start_s":119.28,"end_s":125.68,"text":"authentication, another for the review system, another for the volume slider, and so on and so forth.","speaker":null,"is_sponsor":0},{"start_s":125.68,"end_s":129.72,"text":"So if lots of people are using certain microservices,","speaker":null,"is_sponsor":0},{"start_s":129.72,"end_s":135.12,"text":"the system can just create more instances of that specific container instead of having","speaker":null,"is_sponsor":0},{"start_s":135.12,"end_s":141.4,"text":"to open up more full-fat VMs. In fact, Google runs about 2 billion containers","speaker":null,"is_sponsor":0},{"start_s":141.4,"end_s":144.68,"text":"at any given time because they're so easy to scale,","speaker":null,"is_sponsor":0},{"start_s":144.72,"end_s":150.28,"text":"thanks in part to a system called Kubernetes, the Greek word for captain, which Google developed","speaker":null,"is_sponsor":0},{"start_s":150.28,"end_s":154.0,"text":"to manage containers automatically. And although this sounds like it might only be relevant","speaker":null,"is_sponsor":0},{"start_s":154.0,"end_s":158.96,"text":"to network engineers, it actually has real benefits for you, the home consumer.","speaker":null,"is_sponsor":0},{"start_s":158.96,"end_s":163.48,"text":"If there's a problem with a service, or if the developers want to add a new feature,","speaker":null,"is_sponsor":0},{"start_s":163.48,"end_s":166.52,"text":"they don't have to search through 10 million lines of code","speaker":null,"is_sponsor":0},{"start_s":166.52,"end_s":170.64,"text":"to find the issue and then possibly break the entire thing in the process.","speaker":null,"is_sponsor":0},{"start_s":170.64,"end_s":173.92,"text":"Instead, they can just change the one or two microservices","speaker":null,"is_sponsor":0},{"start_s":173.92,"end_s":179.28,"text":"that they want and leave the others untouched, meaning that fixes and new features can be pushed out quickly","speaker":null,"is_sponsor":0},{"start_s":179.28,"end_s":184.6,"text":"with less risk of causing other problems. The container paradigm also offers speed enhancements,","speaker":null,"is_sponsor":0},{"start_s":184.6,"end_s":187.76,"text":"as servers can run smaller microservices much more easily","speaker":null,"is_sponsor":0},{"start_s":187.76,"end_s":192.96,"text":"without tons of VMs slowing them down. This has backend reliability implications too,","speaker":null,"is_sponsor":0},{"start_s":192.96,"end_s":196.92,"text":"because it usually takes mere seconds to deal with a problematic container,","speaker":null,"is_sponsor":0},{"start_s":196.92,"end_s":201.08,"text":"meaning that the potential for lengthy amounts of downtime is lower.","speaker":null,"is_sponsor":0},{"start_s":201.08,"end_s":205.16,"text":"So all this means that containers are being used for tons of applications.","speaker":null,"is_sponsor":0},{"start_s":205.16,"end_s":209.68,"text":"Games like League of Legends and Fortnite rely heavily on containers to reduce lag","speaker":null,"is_sponsor":0},{"start_s":209.68,"end_s":214.88,"text":"by easing the load on their servers. And Pokemon Go also used containers to fix issues","speaker":null,"is_sponsor":0},{"start_s":214.88,"end_s":219.36,"text":"shortly after the game's launch and add new features without disrupting the millions of users","speaker":null,"is_sponsor":0},{"start_s":219.36,"end_s":223.28,"text":"who were playing the game at the time. Banks are also using containers with Kubernetes","speaker":null,"is_sponsor":0},{"start_s":223.28,"end_s":226.76,"text":"to handle loads of transactions at once without slowdowns,","speaker":null,"is_sponsor":0},{"start_s":226.76,"end_s":231.92,"text":"and even IBM's supercomputer, Watson, which has been heavily utilized in the healthcare industry,","speaker":null,"is_sponsor":0},{"start_s":231.92,"end_s":235.96,"text":"has transitioned to using containers instead of monolithic virtual machines.","speaker":null,"is_sponsor":0},{"start_s":235.96,"end_s":240.04,"text":"So it turns out that small containers have actually made life a lot easier,","speaker":null,"is_sponsor":0},{"start_s":240.04,"end_s":243.32,"text":"kind of like digital Tupperware. So thanks for watching guys, like, dislike,","speaker":null,"is_sponsor":0},{"start_s":243.32,"end_s":246.92,"text":"check out our other videos, leave a comment if you have a suggestion for a future video,","speaker":null,"is_sponsor":0},{"start_s":246.92,"end_s":249.96,"text":"and don't forget to subscribe and follow.","speaker":null,"is_sponsor":0}],"full_text":"Imagine sitting down at a fancy $50 a plate restaurant and tearing into a 60-ounce steak with your teeth instead of cutting it. Not only would this be a pretty frustrating experience, but you'd probably be getting a look from your boss as he wonders why he's still letting you expense dinner. And as with steak, software becomes much easier to manage if you split it up into smaller chunks before eating or rather using it. This approach is actually used by lots of larger services today, where they split whatever it is they're providing into lots of small microservices. And our friends at IBM sponsored this video so we could tell you all about it. To explain what a microservice is, let's imagine you're using a site like Netflix. Every time you perform some small action on the website, skipping forward, logging in, paying a bill, all of these functions are handled by different dedicated microservices, a concept that Netflix actually pioneered and all of them are held in virtual containers. You see, the traditional way for a site to handle tons of users at once was to run lots of separate instances of the same code in virtual machines or VMs. You can learn more about virtualization in this video, but the basic idea is that a VM is a separate session of an operating system running inside another OS. And a typical server can run many VMs at once, which helps a great deal when many people are accessing a site. But running a full VM and the associated software that you need typically requires millions of lines of code. And oftentimes, a user wanting to complete just a simple task might require the server to open up more full VMs, which is pretty inefficient and can end up hogging CPU cycles and other resources. Microservices in containers, by contrast, only contain the code for a specific task. So we could be talking about just a few thousand lines of code instead of millions. Going back to our Netflix example, you might have one container for credit card authentication, another for the review system, another for the volume slider, and so on and so forth. So if lots of people are using certain microservices, the system can just create more instances of that specific container instead of having to open up more full-fat VMs. In fact, Google runs about 2 billion containers at any given time because they're so easy to scale, thanks in part to a system called Kubernetes, the Greek word for captain, which Google developed to manage containers automatically. And although this sounds like it might only be relevant to network engineers, it actually has real benefits for you, the home consumer. If there's a problem with a service, or if the developers want to add a new feature, they don't have to search through 10 million lines of code to find the issue and then possibly break the entire thing in the process. Instead, they can just change the one or two microservices that they want and leave the others untouched, meaning that fixes and new features can be pushed out quickly with less risk of causing other problems. The container paradigm also offers speed enhancements, as servers can run smaller microservices much more easily without tons of VMs slowing them down. This has backend reliability implications too, because it usually takes mere seconds to deal with a problematic container, meaning that the potential for lengthy amounts of downtime is lower. So all this means that containers are being used for tons of applications. Games like League of Legends and Fortnite rely heavily on containers to reduce lag by easing the load on their servers. And Pokemon Go also used containers to fix issues shortly after the game's launch and add new features without disrupting the millions of users who were playing the game at the time. Banks are also using containers with Kubernetes to handle loads of transactions at once without slowdowns, and even IBM's supercomputer, Watson, which has been heavily utilized in the healthcare industry, has transitioned to using containers instead of monolithic virtual machines. So it turns out that small containers have actually made life a lot easier, kind of like digital Tupperware. So thanks for watching guys, like, dislike, check out our other videos, leave a comment if you have a suggestion for a future video, and don't forget to subscribe and follow."}