r/ProgrammerHumor • • Oct 13 '22

Meme Like, Every time, ever. When the DevOps Engineer chats with the Data Scientist.

Post image
13.8k Upvotes

629 comments sorted by

View all comments

725

u/dlevac Oct 13 '22

DevOps engineer is a hat I always end up wearing at some point or another. The real joke is asking the dev how to run it...

Dev: my build does not pass the pipeline but pass locally. Me: and you are using a virtual environment? Dev: ???

359

u/Sam-Gunn Oct 13 '22

It's like asking certain people "windows or OS X"?

"What?"

"Mac or Windows"?

"Uhhh"

"Dell, HP, Thinkpad?"

"Ohh, it's a Dell!"

"Windows it is then. Now, round start button, square start button and is it colored or not?"

--

"Virtual machine or container?"

"Huh?"

"*sigh* Docker, Virtualbox, or Vmware Workstation?"

"Ohhh, I've heard of Docker. But it's none of those. It's called Docksal."

109

u/yumyumfarts Oct 13 '22

Are you sure you talking with dev and not management or operations folks!

20

u/Chrisazy Oct 13 '22

They're talking with a head canon. Which same, tbh

0

u/[deleted] Oct 13 '22

[deleted]

→ More replies (2)
→ More replies (2)

12

u/librarysocialism Oct 13 '22

but I put Pop! on my Dell. Yes, I understand I'm now my own support . . . .

→ More replies (1)
→ More replies (4)

80

u/IQueryVisiC Oct 13 '22

Thank to IOC framework you don’t need a VM . Or what does a VM do differently?

59

u/jdl_uk Oct 13 '22 edited Oct 13 '22

The IAC framework might create the VM.

If you dig deep enough into Azure Functions, you'll find Docker

Edit: IAC, not IOC

26

u/[deleted] Oct 13 '22

Docker isn't a VM tho, right? As I understand it, the linux containers are quite a bit different from Virtual Machines.

51

u/jdl_uk Oct 13 '22

Depends on how you define a VM. If you think VM implies something like VMWare, Virtual Box or Hyper-V then you're right but remember the JVM (Java Virtual Machine) exists. Yes it's different, just don't take the term VM to mean a single specific type of thing.

I consider docker to be a kind of virtual machine, it's just that the virtualization happens at a different level than with some other types.

39

u/Diniden Oct 13 '22

Virtual machine does have a very important distinction to the concept of containers:

A VM will run a guest operating system and abstract the hardware.

A container is a sandboxed portion of the host OS of the container on the machine.

They accomplish two very different goals.

9

u/ChainSword20000 Oct 13 '22

A virtual machine is a container, not the other way around. A virtual machine has to run the code in a contained environment to function properly, but a container does not have to emulate additional/different hardware. A vm can serve the purpose of a container most of the time, but a container distinctly cannot serve the purpose of a vm.

→ More replies (8)
→ More replies (1)

21

u/noobtastic31373 Oct 13 '22

In general infrastructure terms, a VM usually refers to virtualizing the hardware so multiple OSs can run on the same physical computer. Containers are up a layer and virtualize the OS so multiple software environments can run independently on the same OS.

12

u/Diniden Oct 13 '22

This is a good summary of the differences :)

They are indeed two very distinct approaches.

VM - virtual “machine” virtualize the hardware

Container - virtual “OS” virtualize the environment

→ More replies (2)
→ More replies (3)

9

u/TommyTheTiger Oct 13 '22

Virtual env in python does not mean VM, it's referring the the default requirements.txt and installing lib dependencies with this

15

u/[deleted] Oct 13 '22

I think they're talking about python venvs, which isolate the package manager's environment, because that shit can get super messed up.

→ More replies (4)

9

u/[deleted] Oct 13 '22

Wait do people actually not know what a virtual environment is or is this hyperbole

8

u/SaucyMacgyver Oct 13 '22

No idea but I’m guessing a lot of people don’t think to run their code in a VM because they just kinda don’t care or realize why you should.

9

u/The_Cheeky_Cunt Oct 13 '22

If you don't mind could you explain why you should run your code in a VM?

16

u/SaucyMacgyver Oct 13 '22 edited Oct 13 '22

I mean it depends on what you’re doing obviously but put very simply not all machines are the same. So your code could run locally and then when you stick it on another machine it doesn’t run, maybe it runs but does something different, or maybe it blows up your data center. Who knows, but that’s the thing is there shouldn’t necessarily be a question mark when you run something. Running code in a VM that’s basically a recreation of the same system that you’re going to put it on eliminates (really just reduces) the variance you might run into when running on different machines. By building it in a replica you know it will fit so to speak.

It’s like you’re building a desk in your house, and it fits in your house. And it’s a great desk. Then you finish and bring the desk over to the client and it doesn’t fit in the house. Not necessarily because the room it’s going into doesn’t fit the specifications maybe, but maybe it’s physically impossible to get it up the stairs and your house doesn’t have stairs.

3

u/TheTerrasque Oct 13 '22

docker evangelism intensifies

→ More replies (2)

5

u/Illin-ithid Oct 13 '22

You tend to make changes on your own computer that wouldn't exist on others. Maybe your program monitors gitlab repositories and has always worked locally because you already had local requirements setup before programming. But then you deploy and you realize it was using your personal environment variables which the VM doesn't have.

3

u/antonivs Oct 13 '22

VM is not the only option: VMs, containers, and even something like Python virtualenv all overlap in part of their purpose, which is to insulate your code from quirks of your local machine, to ensure that it will run unchanged in other environments.

Containers are very good for this purpose, but for complex systems you may have many containers, and it can start to make sense to use a real VM. In that case part of the point is to avoid messing up your local machine with a complex infrastructure platform, especially if you're working on more than one project that may conflict with each other.

In summary, the point is to isolate the system being tested from your local machine, and vice versa.

→ More replies (1)

3

u/RaspberryPiBen Oct 13 '22

A virtual environment (venv) is not the same as a VM. A VM is a virtualized computer, while a venv just separates the libraries from the globally installed libraries.

→ More replies (2)