Question number one is what is the interrelationship between microservices containers kubernetes and what's the real difference between containers and vms and how do you get started to make it work?
And we're going to start with matt for this one,
Thanks Jonathan that's a big question that's a big question we thought we'd saw a level set i'm sure there's some people on the call that have got a vast amount of container and kubernetes experience and will probably listen to my answer and go that's not right and there's a bunch of you going you know what i'm here to try and find out what this means how do i get started how do i move from vms to containers i think this kind of started with the convergence of i'll tell you a customer story in fact i met a customer and they said the problem i've got matt is that my code base has become a monolithic ball of mud and the reality is that when i try and make changes that i i poke and product from a payment gateway angle i proc and put it from a front end angle and i you know i try and make changes as often as i can i don't make them as frequently as i can it's complicated the interrelationships of all those layers in the application mean that i can't be as dynamic and agile as i need to be inside my organization so this is really about breaking down that ball of mind if you like into little tiny pieces of mud breaking out these various components of applications into micro services because then they're easy to handle i think netflix um sort of coin that the phrase that you know if it takes more than one pizza to feed the team of people looking after that micro service it's time to break that micro service into two microservices so really it's about making the application as agile so you can develop different parts of it in parallel and hopefully and get a better speed to market now those microservices are better to run in containers because containers by themselves are faster and more agile so this cicd pipeline stuff which i'm sure ray will talk to you about collides with this architecture of microservices moving on from a less agile framework and platforming vms into containers and then kubernetes is really how we deploy manage scale orchestrate our containers once we've got them running inside an environment
Brilliant Okay Andrew can you add to that one,
Yeah no i think i think we'll get off to a good start there with matt um i think i like to look at it from a historical perspective because as we as i say history generally repeats itself but particularly in it uh and so what yeah the way i think about containers is really just the next evolution of a way of abstracting uh applications away from uh physical hardware so we think about um you know the 90s uh we probably had lots of physical servers with operating systems installed and then we head in to the naughties and we ended up with uh with virtualization and platforms like vmware and hyper-v started to really come to the fore and that was separating the entire server and the operating system and the apps within it away from the physical hardware i think then as we evolve on beyond that we end up in a situation now where we're not taking entire servers and operating systems anymore but we're picking the eyes out uh little balls of mud as matt put it into actually identifying what is the pieces that go into making up and delivering the outcome that we're trying to achieve and so what it means is from a from a uh agility perspective and from an efficiency perspective we can really just to pick out those little pieces that are going to deliver us our outcome and run them as a discrete application or as a discrete container if you like and basically it means that from an efficiency perspective we have the ability then to run those anywhere it has been set often that we add kubernetes into a container story so those little pieces are then orchestrated by kubernetes you could think of kubernetes like the operating system for cloud so the ability to run kubernetes across any location whether that be any of the major hyperscalers like amazon or azure or google or indeed in your own data centers as well so it's really a drive towards efficiency uh and agility um and uh i guess ray will probably give us a bit more of a hands-on insight as to as to how he's done that
All right over to you Ray
Um thanks everyone yeah um I probably just want to uh add to what matt and andrew have been saying and that uh it's it's all about the the agility like the the the the migration you know the natural progression from virtual machine delivery uh which was sort of the beginning or particularly if you're using uh packer etc to describe the the encapsulation of this application that you're deploying on a virtual machine and then the evolution in towards a docker file as your infrastructure as code description and the way that that enabled a coherent experience for developers and system administrators um locally and uh on this cloud provider or on that virtual machine that's running docker compose or as as everybody's mentioned the container orchestration ecosystem that's proliferated um yeah and and i think if if you're already in that that that process of trying to uh describe your uh tooling and like the 12-factor application um principles uh then you already understand the the the benefits uh of that portability and then the migration away from virtual machines towards containers this simply increases the the the well it decreases the the time to spin up these additional resources and increases the security or the confidence that you have in the deployment process kubernetes itself is obviously um emerged as the de facto standard for container orchestration i think everybody's cohered around that and it's numerous benefits i guess we're gonna we're gonna start diving into that in the coming questions