The evolution from virtual machines to containers
Key Takeaways
The video explains the evolution of application deployment from physical machines to virtual machines, containers, and finally Kubernetes, highlighting the benefits and improvements of each step, using tools like Docker and Kubernetes.
Full Transcript
what's up y'all this is Hossein Nasr from I geometry where we discuss software engineering by example today's topic is actually the difference between physical machines virtual machines and container and I'd like to go through the evolution of all of these components throughout the years but in a very quick manner hopefully explaining why did you go through well why did we go through the path from physical machines down to virtual machines and then finally to containers and eventually to kubernetes orchestrating all these containers so let's start with the very basic very basic things right so you have your computer back in the 90s early 90s mid mid 90s and late 90s early 2000 so you have your machine your machine has certain amount of resources X amount of GB of RAM X amount of CPU and cores so you are an application developer and you started to basically you want to build an application so you want to provision a machine and install your components in order to build the application and serve your customer so what do you do is set up a machine so what do you do in this case right classically that's this machine let's say I took a lens and zoomed in into this machine this is what are the compar the components inside this machine so the first the very basic thing most important piece is actually the operating system that's the it takes a huge amount of resources from your physical machine right so that's your operating system that's your windows that's your Linux that's your mac OS other operating systems right so you have the operating system and with the operating system that you install comes a lot of baggage essentially you you will get the disk i/o drivers you will get display drivers right this will help you for example how to project how to see your windows of essentially on a GUI right display on a screen so this will communicate with your graphic cards or all that drivers rich things obviously sometimes you will need audio drivers right to communicate with that stuff so you'll have audio you'll this comes with printers right drivers all these so kind of stuff is in your comes with your operating system essentially scanner drivers may be right built-in stuff so all this stuff comes with your operating system whether you want it or not right and whether you use it or not in general so what do you do next is you start installing a applications on top of your operating system so if you're building it this is your Photoshop it Ward but if you're a developer of building applications you would need some libraries some basic referenced applications that you will basically difference in your code examples if you're building an application that connects to a database you will need the database drivers or the database client to connect to that database right so that will be for example if you're building Oracle there will be the Oracle client and there is a specific version that you need to install why so just say you're building an application using Oracle the Oracle client you're gonna need an Oracle client a certain version like version 11 G this is an old sign remember guys you know this is the nineties so 11g 32-bit right whatever right so you're gonna install this stuff here whereas our techs man alright as good into back there you go so they you understood then and then you start installing your application on top so that's that so your application comes here application one and the application one will require that Oracle client in general all right so that's a very basic setup and you start building more and more applications more and more references at Crystal Reports version eleven nodejs for example version eight you start installing stuff and then what what is what what is wrong with this is nothing wrong with this approaches except we start running into conflict essentially right so let's say my application one uses the Oracle 11g client here but I built my friend built another application that happened to be more advanced right so he used a record 12c Klein right and what we have here is a conflict essentially my application application to will not be able to run because it requires a later client that is not install so what do you do you install it on top sometimes that works sometimes it doesn't and you start running into all sort of rough dependency problems and this kind of nasty things that we all run into right guys if you remember so what's the solution for this right what is the solution for this someone said ok I'm gonna make my hardware this computer a little bit smaller the hardware a little bit smaller to actually run multiple operating systems dowse cool so let's go here and let's copy all of this stuff including my computer did I get it I think I did that's just paste in here alright so what happened here in this case it says okay that this is a computer out of the box what I am going to do is I am going to install kinda a virtual computer on top of my computer right but it will sit on top of the just think of it as just another big application just sitting on top of that right so I'm gonna install a huge application on top of that and that could be like another operating system Windows right Linux and anything right and then you start what do you start to do is application one will install the required client so for example we will install Oracle 11g client to connect to the database right and the other and then we're gonna install our application on top of that that allow me any second now that well I'll get into stole my application here and that will work essentially without any problem because I'm completely isolated here so what is what is gonna happen is if application to want to do that Oh be my guest just to stole another virtual machine a complete new box on top of my original box and this for example uses the Oracle 12c or think of it like another node.js version alright and other stuff so you can't completely install another virtual machine so what we get here is we got that worked but remember my computer is has limited resources correct so I have very limited resources here so I am essentially using installing another operating system running on top of my existing operating system and that as another operating system with all this stuff the drivers display which is like kind of redundant if you think about it right because with my application if there is like that display drivers already here and then I stole this spread driver here here it's it's all there but it's completely isolated so they're just taking a lot of memory a lot of CPU cycle a lot of resources and that is what the that is admin so this virtualization worked really well with virtual VMware Oracle box VirtualBox works really well right you can just put a lot of machines put your application into two virtual machines problem solve networking I completely forgotten it's working how bad guys miss work it was very important piece here say it's added it's not too late can i dint working guys yeah networking drivers are very very critical piece right they are in every operating system so virtual machines another thing before we go to explain the rise of containers is even my application sometimes I build applications and they are on this running on a server somewhere I do not even need an audio I do not even need a display driver right sometimes you build applications like that but your operating system gives you that stuff anyway so that's if there honor there are like a lot of operating systems that they should strip out these functions or this is like Ubuntu basic or a boon to enterprise Ubuntu or Windows 2012 right the there this release doesn't have that you can install without these drivers if you want and it's become lighter if you want it but again right so still you can't go tweak it but still you have a lot of you're consuming a lot of resources so the right the rise of containers so what what Google did here is this is like I think Google is the first who came up with this idea this is like I'm gonna take let's go to a new one now and then properly I'm just needing that I don't need there a lot of other stuff here so I am going to take my operating system don't forget my computer that's my computer that's my operating system and then what I'm going to do is they actually used only Linux in the beginning Gulf building their borg system as they want to use the a brain system to its maximum capacity so what they did is I they wanted I want to run an application but I want my application to be completely in a single process what they called a jail essentially or a container so my application one if I install it I won't install it will have its phone it's it's it is will have its own memory its own resources its own volume its own ward essentially and only things that you tell it to exist in this container will exist so application one for example only requires the for example networking so it will start pulling the networking from the operating system just the networking piece kinda there will be some communication between that so that operating system still exists with all that stuff yeah but that I'm not duplicating that stuff it just lives in that process and I'm only using that when I need it alright and the same thing I need the Oracle client yeah I feel free install it on top of that since or a call for example the 11g 32-bit whatever ID you can install it on top of that and it will just live as another and another piece in your application and your application will run in all its this the single process will have what do you exactly what do you need and then what you will do is basically you run another container completely isolated and with the stuff you were required so I need networking here I need for example of earthly I need disk i/o I'm gonna need this guy over here Oh for example application to it it does actually print something to the display so I'm gonna need to the display driver as well and then you will install the stuff you will require yeah for example 64 bed or the node.js version 10 so your applications can now be deployed very rapidly and this becomes as small very very small lightweight container that has a very small footprint memory footprint because it doesn't really need a lot of stuff right so that is in general the rise from the physical machines to virtual machines to containers and remember guys like see this is only requite ever requires will basically stop pulling whatever it requires from the container right so there was a lot of something as they start developing this container management system docker came and created this nice layer on top of the operating system where you can essentially create your dirty container make they make it very easy for people to create their own containers and management they revolutionized essentially they are efficient revolutionized the container industry right they a lot of people can write applications on top of their favorite operating system as dr. first game it's only on top of Lenox and you know how to use the jail's of Lenox and as the windows start to support containers in Windows 10 docker start supporting Windows as well and and you start building applications and then you can't build applications that it doesn't really matter that's the beauty of this as look for darker specifically you can build an application and deploy it in any docker instance and it will just run because it will know what drivers it will it will need to consume alright so that is a really cool technology but maybe also give you our bonus guys here so what with all these containers with remember this isn't a one machine right so what if I what if this machine dies all my containers will basically die correct so what should I do how can I run multiple containers into multiple machines into and I and I somehow I orchestrate all these machine are all these containers in a very homogeneous way that I was the birth of kubernetes in general and that helps me I'm not an expert in kubernetes to be honest but that was just like a dozen generals like to manage all these containers you will need this copper Nerys basically will group all these containers into pods and pods could be a single machine could be multiple machines and then if if one machine goes down it will compress it will take care of all you want this application this application on this machine I'm gonna run it for you don't worry about it so we'll keep the balance for you so internal this is the this was a very quick video just explaining the physical machine virtual machine containers and a little bit about kubernetes hope you guys enjoyed this consider subscribing to this channel if you want to see more software engineering topics do comment your favorite topics here we need to discuss next and I'm gonna see you in the next one see you guys
Original Description
In this video, we explain the evolution of application deployment from physical machines to virtual machines through containers and finally kubernetes. Hope you enjoy it.
video created using gliffy tool.
-Hussein
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from Hussein Nasser · Hussein Nasser · 47 of 60
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
▶
48
49
50
51
52
53
54
55
56
57
58
59
60
Extending ArcObjects (IGeometry) - 01 - Getting Started
Hussein Nasser
Extending ArcObjects (IGeometry) - 02 - The Document, The Map and The Layers
Hussein Nasser
Channel Update - New Book, New Job, New Videos
Hussein Nasser
Learn Programming with VB.NET - 01 - Getting Started
Hussein Nasser
Learn Programming with VB.NET - 02 - Classes and Objects (Part 1)
Hussein Nasser
Learn Programming with VB.NET - 03 - Classes and Objects (Part 2)
Hussein Nasser
Learn Programming with VB.NET - 04 - User Interface
Hussein Nasser
Learn Programming with VB.NET - 05 - By Value v. By Reference
Hussein Nasser
Learn Programming with VB.NET - 06 - Variable size, 32 bit vs 64 bit
Hussein Nasser
Learn Programming with VB.NET - 07 - Conditional Statements
Hussein Nasser
Learn Programming with VB.NET - 08 - Inheritance
Hussein Nasser
Learn Programming with VB.NET - 09 - Strategy Design Pattern
Hussein Nasser
Learn Programming with VB.NET - 10 - How did I learn programming
Hussein Nasser
IGeometry 2016 Retrospective - Channel Update
Hussein Nasser
Javascript by Example - The Vook
Hussein Nasser
Vlog - Keep your servers close and your database closer
Hussein Nasser
Vlog - Client/Server Programming Languages
Hussein Nasser
Javascript By Example L1E01 - Getting Started
Hussein Nasser
Persistent Connections (Pros and Cons)
Hussein Nasser
Javascript By Example L1E02 - Building the Calculator Interface
Hussein Nasser
Happy new Year from IGeometry!
Hussein Nasser
Synchronous v. Asynchronous
Hussein Nasser
Javascript By Example L1E03 - Displaying the Digits on Calculator Screen
Hussein Nasser
Show Your Work. Blog, Vlog, Write, Create and Develop!
Hussein Nasser
Relational Database Atomicity Explained By Example
Hussein Nasser
Javascript By Example L1E04 - Operators, All Clear with Arrow Functions
Hussein Nasser
What Comes First, User Experience or Software Architecture?
Hussein Nasser
Javascript By Example L1E05 - Evaluate the Calculator Expressions with eval
Hussein Nasser
Fastest Way to Learn Programming Language or Technology
Hussein Nasser
Javascript By Example L1E06 - Fix Leading Zero Bug with Conditions
Hussein Nasser
Stateful vs Stateless Applications (Explained by Example)
Hussein Nasser
Javascript By Example L1E07 - Running our Calculator on the Mobile Phone
Hussein Nasser
Advice for New Software Engineers and Developers
Hussein Nasser
Why JSON is so Popular?
Hussein Nasser
Building Scalable Software - SLA, HS, VS
Hussein Nasser
Vlog (Istanbul) - Datacenter Proximity
Hussein Nasser
Should Software Engineers Learn Bleeding-Edge Technologies?
Hussein Nasser
Do Developers Build Bad User Interfaces/Experience?
Hussein Nasser
Learn By Doing.
Hussein Nasser
I Wrote Bad Front-End Code That Broke Chrome
Hussein Nasser
My Story
Hussein Nasser
Vlog - Horizontal vs Vertical Scaling
Hussein Nasser
Can User Experience Help Build Better Rest API?
Hussein Nasser
Reverse engineering Instagram in flight mode
Hussein Nasser
The Benefits of the 3-Tier Architecture (e.g. REST API)
Hussein Nasser
Stateless v. Stateful Architecture (Podcast)
Hussein Nasser
The evolution from virtual machines to containers
Hussein Nasser
Proxy vs. Reverse Proxy (Explained by Example)
Hussein Nasser
Canary Deployment (Explained by Example)
Hussein Nasser
No Excuses
Hussein Nasser
Synchronous vs Asynchronous Applications (Explained by Example)
Hussein Nasser
What is an Asynchronous service?
Hussein Nasser
Difference between Client Polling vs Server Push in Notifications
Hussein Nasser
Software vs. Hardware AdBlockers (Explained by Example)
Hussein Nasser
HTTP Caching with E-Tags - (Explained by Example)
Hussein Nasser
Simple Object Access Protocol Pros and Cons (Explained by Example)
Hussein Nasser
Nodejs Express "Hello, World"
Hussein Nasser
Reverse Engineering Instagram feed
Hussein Nasser
Popup Modal Dialog with Javascript and HTML
Hussein Nasser
MIME and Media Type sniffing explained and the type of attacks it leads to
Hussein Nasser
More on: Distributed Systems
View skill →Related Reads
📰
📰
📰
📰
Retell Logged 31 Outages in 11 Months. What Fallback Architecture Should Look Like.
Dev.to · Alfredo Romero
Puppet Enterprise Introduces Database-Backed CA Storage in 2025.11 release
Dev.to · Jason St-Cyr
[Tutorial] Deploying Liferay on Upsun with Postgres and Elasticsearch 🚀
Dev.to · Flora Brandão
Architecting for APAC: Why You Should Deploy Bare Metal in Malaysia 🇲🇾
Dev.to · Alyssa Valdezz
🎓
Tutor Explanation
DeepCamp AI