WEBVTT 00:00:07.830 --> 00:00:11.604 So it is a tremendous amount of variability on the software. 00:00:11.604 --> 00:00:14.690 Each of those have versions, each of those have dependencies. 00:00:14.859 --> 00:00:19.091 And each of those are tough to get working on their own. 00:00:19.148 --> 00:00:21.528 Now when it comes to the ecosystem of dependencies, 00:00:21.528 --> 00:00:23.201 it's pretty challenging. 00:00:23.598 --> 00:00:27.758 Now when it comes to the machines that they run on, a similar story takes place. 00:00:28.047 --> 00:00:30.527 It used to be that there was just a handful of machines. 00:00:30.720 --> 00:00:34.270 But today, there's a tremendous ecosystem of devices 00:00:34.896 --> 00:00:37.231 that your code could potentially run on. 00:00:37.231 --> 00:00:42.351 Everything from a variability of a single user, to specialized machines, 00:00:42.435 --> 00:00:48.037 to specialized clouds, to the big data centers that a lot of businesses use. 00:00:48.518 --> 00:00:50.362 And so when it comes down to it, 00:00:50.362 --> 00:00:53.415 we have more complexity when it comes to the software stack 00:00:53.685 --> 00:00:54.996 and we have more complexity 00:00:54.996 --> 00:00:57.393 when it comes to the hardware environment, as well. 00:00:57.764 --> 00:00:59.836 And so, if we were to create a matrix here 00:00:59.836 --> 00:01:03.584 and we were to consider the web scenario that we were thinking of, 00:01:04.161 --> 00:01:06.595 there is this static website within itself. 00:01:06.634 --> 00:01:10.219 All of the different versions, all of the different possibilities, the front end. 00:01:10.563 --> 00:01:13.857 That on its own is tremendously complex. 00:01:13.857 --> 00:01:17.580 This is why the emergence of UX, the user experience, 00:01:17.580 --> 00:01:19.872 is so well-regarded in the market. 00:01:20.217 --> 00:01:21.848 And if you went down that list, 00:01:21.848 --> 00:01:24.729 you could see that there's a great deal of complexity 00:01:24.729 --> 00:01:28.159 to be able to provision when it comes to the execution environment. 00:01:28.496 --> 00:01:30.609 And down on the horizontal you have the same. 00:01:30.643 --> 00:01:34.100 You have a lot of devices in which your code could potentially run. 00:01:34.538 --> 00:01:38.827 And so how you could make all of this work is very, very challenging. 00:01:39.300 --> 00:01:42.457 Now the group that provided a solution 00:01:42.864 --> 00:01:46.654 searched for a metaphor, searched for a similar problem. 00:01:47.576 --> 00:01:50.285 And they identified that of shipping. 00:01:50.735 --> 00:01:52.620 At one point in the world, 00:01:53.024 --> 00:01:58.451 it was very hard to be able to send or ship goods with predictability. 00:01:58.616 --> 00:02:00.846 That means that for every type of car 00:02:01.176 --> 00:02:05.413 and every type of shipment vehicle that was possible, 00:02:05.729 --> 00:02:08.854 there would have to be a lot of configurations and customizations, 00:02:08.854 --> 00:02:11.645 and it was a very tough thing to do. 00:02:11.826 --> 00:02:13.879 In fact, this was one of the big problems 00:02:13.879 --> 00:02:18.980 that the world was trying to solve in the 1950s. 00:02:19.504 --> 00:02:20.604 And they solved it. 00:02:20.604 --> 00:02:21.776 They came up with a solution. 00:02:21.776 --> 00:02:23.354 And the solution was the container. 00:02:23.354 --> 00:02:24.690 And if you read some of the history, 00:02:24.770 --> 00:02:29.401 there's many arguments that say that this revolutionized the world, 00:02:29.401 --> 00:02:33.304 and that it was on the back of this that globalization happened, 00:02:33.304 --> 00:02:37.687 and that it dropped the cost of shipping, 00:02:37.687 --> 00:02:39.936 and that it made shipping more predictable. 00:02:40.228 --> 00:02:42.818 And there's a lot to be learned from that journey.