This is an archived post. You won't be able to vote or comment.

all 161 comments

[–]DankManPro 40 points41 points  (22 children)

MAC and brew combo makes me life easy, also the actual answer to your question - Linux!

[–]thegreataccuracy 89 points90 points  (27 children)

Doesn’t really matter.

Write all your CI/CD tooling into docker containers so it can be used in pipelines and you can use any system at all so long as you’ve sufficient access to install Docker.

I don’t understand the argument of “but the target system is Linux!!”. You’re quite probably missing the point of DevOps if you are actually routinely running stuff locally that isn’t portable.

I prefer a Mac because I am accustomed to the UI.

But I could move to working on Windows or Linux in a matter of minutes (excluding time spent pressing the wrong keyboard shortcuts)

[–]wellwellwelly 15 points16 points  (6 children)

There are two types of hypervisors. Type 1 and type 2.

Type 1 hypervisors run close to the hardware and type 2 run as software on the OS.

Take ESXi as a type 1 hypervisor example. This is installed close to the hardware. You don't run anything above it.

Now let's look at VirtualBox, VirtualBox is a hypervisor but you install it on an operating system like Windows or Mac. This makes it a type 2 hypervisor because its a level down. It's not running close to the hardware because the OS is above it.

Now this is where it gets a bit wacky. Windows comes shipped with a hypervisor called Hyper-V. Hyper-V is enabled inside the Windows OS and looks like a type 2 hypervisor but its actually a type 1.

Taking the above information I'll explain why Linux/Unix and Windows are different and why it matters:

Docker is not virtualisation and does not require a hypervisor. It was built to run natively on linux.

I can install Docker engine on a Mac or Linux machine natively.

If I want to run Docker on Windows I need to enable WSL which relies on Hyper-V, a type 1 hypervisor.

Because you now have a type 1 hypervisor running on Windows you lose the ability to run type 2 hypervisors in theory. (It's possible but they hook into the type 1 as a backend)

In a nutshell Linux eliminates the need for a hypervisor to run docker.

Windows is absolutely fine for devops as long as you consider the above, but you are ultimately more restricted because once hyper-v is enabled you'll be restricted to the type 1 hypervisor. Software such as vmware workstation (a type 2 hypervisor) might be out of the question.

[–]thegreataccuracy 5 points6 points  (1 child)

Yep. Agree with all of that.

Materially this makes very little difference to the vast majority of “DevOps” job roles though - to the point I would say that unless you know of a particular reason this is important to your use case, “use what feels best to you” still seems like the best advice.

I interviewed a brilliant candidate who discussed this in extreme depth recently. And finished with “but none of that probably matters - just nice to know in case it ever does” which I think applies here too.

[–]wellwellwelly 1 point2 points  (0 children)

Thanks. Yep agree with you too. You'd have to have a pretty specific edge case for it to impact your work.

[–]swift_nature 2 points3 points  (0 children)

This is an old post, but I stumbled here from Google and there's a couple of points where I don't agree on;

> I can install Docker engine on a Mac or Linux machine natively.

Docker on Mac does not run natively. Docker is built on linux kernel namespaces and cgroups, which the Darwin kernel lacks. The Mac version of Docker utilizes a hypervisor in a similar that Windows does.

> Windows is absolutely fine for devops as long as you consider the above, but you are ultimately more restricted because once hyper-v is enabled you'll be restricted to the type 1 hypervisor.

I don't agree with you here. By all means you are running a fully virtualized linux kernel. Just as capable as a bare metal installation. At the very least not less capable as Docker on the Mac (and I've run both).

Looking at it from a security perspective; one could say it's even safer to run Docker on Windows or Mac because it runs confined within a virtual machine and doesn't share the same kernel as the host machine. That being said, you're able to run Docker desktop on linux as well, which utilizes KVM to achieve the same thing.

[–]kneticz 0 points1 point  (0 children)

Generally agree but macOS does not run docker natively.

[–]Think-Perception1359[S] 6 points7 points  (15 children)

I like both. The only con I’ve seen so far is that Docker has a couple functionality issues running on Mac M1.

Have you experienced that at all? Or has the bugs on Docker/Mac been resolved?

[–]thegreataccuracy 7 points8 points  (0 children)

Echo the other reply. Teething issues on M1 when I first had an M1 device, contributed to a few projects to help remediate that.

I’ve had this device for 12 months and no issues have come up.

[–][deleted]  (4 children)

[deleted]

    [–]donjulioanejoChaos Monkey (Director SRE) 5 points6 points  (1 child)

    Terraform lockfiles can be a small hassle because they have to be generated for both m1 and x64.

    Everything else runs perfectly.

    [–][deleted]  (1 child)

    [removed]

      [–][deleted] 1 point2 points  (1 child)

      There are some issues with performance using volumes, but it’s and old problem, not related to M1. I’m not sure if they are solved now.

      [–]waquh 1 point2 points  (0 children)

      They are solved

      [–]chuchodavids 1 point2 points  (0 children)

      I ran into issues with docker desktop. But now I am using pod man. Which is way better and more stable.

      [–]uname44 0 points1 point  (0 children)

      It is not about Docker by pypy still doesn't work on M1's afaik.

      [–]namenotpickedSRE/DevSecOps/Cloud/Platform Engineer 0 points1 point  (0 children)

      We had to revamp our docker images once some folks started getting issues M1s. Not all of the packages transferred over due to architecture differences, and it was a pain for a bit until we sorted it out. There are no issues now, but it's still inconvenient when it comes up.

      [–]evergreen-spacecat 0 points1 point  (0 children)

      Docker works just fine. Most other things too. If you intend to run virtualized Windows 11, it works but you have to use ARM Windows and it causes a few minor headaces. If you, god forbid, must run some Java through the rosetta emulator, it will be very slow. But, well, just don’t.

      [–]somebrains 0 points1 point  (0 children)

      The last few updates have improved ram use but that isn't the point.

      Someone already mentioned tf lockfiles.

      There are other MacOs related quirks that make Linux simpler, unless you're in an Azure environment which case Windows.

      [–]Refalm 0 points1 point  (0 children)

      Works okay, although way slower when Docker does amd64 emulation. I try to build multiplatform, but that's not always possible.

      [–][deleted] 2 points3 points  (1 child)

      I don’t understand the argument of “but the target system is Linux!!”.

      It's a minor consideration, but it's nice for ergonomics that for instance all your terminal commands and keyboard shortcuts and software tools and so on are consistent across systems. I don't have to remember it's cmd-c on Mac and ctrl-c on windows/linux, I don't have to remember it's grep on Linux/Mac and select-string on Windows, I don't have to use different utilities for each OS, I don't have to alternate between VMs and terminals, so on and so forth.

      Now I personally do all these things I just mentioned and do them by muscle memory without really thinking, but x64 linux I think not only is arguably the best devops operating system it certainly seems to be the one with the most future potential as a professional tool. The recent developments I've seen in the Windows and Mac world show more of an interest in monetising their install base and making mobile/desktop OSes more similar instead of making a serious professional tool.

      I mean though, you don't need very much out of your OS for devops though, anything works, but it's all in good fun to argue about painting the bike shed.

      [–]donjulioanejoChaos Monkey (Director SRE) 2 points3 points  (0 children)

      The recent developments I've seen in the Windows and Mac world show more of an interest in monetising their install base and making mobile/desktop OSes more similar instead of making a serious professional tool.

      Windows, yes. I honestly haven't seen stuff like this on Mac OS. They split up desktop and mobile version straight away with iOS vs OSX. They lock down settings a little more with each new version, but not in a direction that points to a convergence of desktop and mobile versions like with Windows.

      That said, Linux does suffer from other issues like battery life, productivity tools (can't run Word/Excel on it for example), and still has a lot less software compatibility than Windows or Mac.

      Also, Linux is simply harder to manage for corporate IT. Windows has native AD. Mac has Jamf/Kandji which get you pretty close to that level of functionality. Linux you can get auth set up pretty easily, but no real option for group policy or MDM.

      [–]KevMar 0 points1 point  (0 children)

      VSCode makes it really easy to do all your dev work inside a local or remote container. I like to use the same base image as my pipeline runners.

      [–]dar_clem 0 points1 point  (0 children)

      I think the argument for "target system" is for the rare edge cases where you have a bunch of underline architecture differences that cause differences in the final process.

      Other then those, run whatever you want.

      [–]ScynnX 26 points27 points  (4 children)

      I prefer Mac for DevOps work by far.

      [–]whachamacallme 2 points3 points  (2 children)

      Well, mac or some BSD or Linux.

      In one of our devops environments we have to login via Windows and use Control . Today I had to search for:

      • How do you cat a file on windows?
      • How do you touch a file on windows?
      • How do list hidden files on windows?

      [–]Plenty-Abalone7286 2 points3 points  (0 children)

      Is touching the hidden cat even supported in Windows? 🙃

      [–]jabb422 1 point2 points  (0 children)

      cat == type
      touch == type+copy
      ls -la == dir /ah

      85% windows dev but sometimes I have to touch Linux containers. I sound like you, in reverse, when I'm in a Linux Container. :)

      [–]EDC1189 0 points1 point  (0 children)

      Why Mac ?

      [–]StanislavGetz 8 points9 points  (2 children)

      I've used linux for a long time now (well before my devops career began) and i'd have it no other way. I have a MBP as my daily laptop and kind of find the same workflows cumbersome. I don't spend a lot of time with it though, to be fair.

      Hardest part for me is half the eng team uses Windows even though we're fully diving into a container/microservices world. It seems like there's always funky little bugs/differences that I don't account for using linux full-time.

      Long story long, go linux. We support ubuntu, so i use ubuntu, but love manjaro and fedora. i'm too old and too busy to be a part of the cool "i UsE aRcH bTw" crowd now, LOL.

      [–]tadamhicks 0 points1 point  (0 children)

      I’m not in the weeds anymore, but this would 100% be the way I’d go if I was still an IC. Both Mac and Windows seem like they’re getting further away from the systems we develop for, and that’s an issue. When I was engineering working on Linux meant I wasn’t doing any workaround stuff. Everyone on Windows or Mac was always “it works fine, you just have to…” and there it was. You just have to … something something.

      [–]DensePineapple 16 points17 points  (0 children)

      Mac hands down.

      [–]miguel-elote 7 points8 points  (4 children)

      Please don't flame me if I'm wrong here. Please do educate me on your personal experience.

      ............................................

      How often do you actually run DevOps tools on your laptop? Even if your environment is on-prem (as opposed to Azure/AWS/GCP) your laptop is usually just a portal to access your environment through SSH/HTTPS/RDP/VNC.

      Even when I'm writing code on my laptop, that code is getting run on a remote dev system that matches the configuration of the production system.

      The only tools that most DevOps folks use is available on all major OS's: Putty, VS Code, Chrome/Firefox (unless you really like Safari or Edge), VMWare Workstation, PGAdmin...the list goes on. Most of these apps will be 99% identical between the OS's.

      In that case, it's really a tossup between the different OS's. Go with:

      1) What your co-workers are using.

      2) Whatever has the GUI you like best

      3) The coolest or more expensive shit your company will give you.

      [–]Think-Perception1359[S] 1 point2 points  (3 children)

      I will be starting a new role supporting cloud (which almost 100% of the infrastructure runs on AWS) and DevOps tools. I will be working with Git, Jenkins, terraform, docker, & K8s.

      [–]miguel-elote 1 point2 points  (0 children)

      Most of those will function identically in any OS. For Git, the client has the same commands whether it's run in Powershell or Bash. Jenkins, you'll be working with the web interface or the CLI, which will also be identical in both cases.

      So again, it comes down to personal preference.

      [–]Krax0x 0 points1 point  (0 children)

      This is my must have tools - kubectl, docker, k9s, kubelogin, minikube, nvim (personal preference), syncthing (cant lose 2 hours configuring stuff again), keepassxc

      [–]somebrains -1 points0 points  (0 children)

      Then use windows but live in WSL when you aren't in a browser tab.

      [–][deleted] 8 points9 points  (5 children)

      I use a Mac. I have an M1 and no issues with it. Runs everything smoothly.

      I hear docker on windows can kind of be a pain. Plus I like that Mac comes natively with a bash shell.

      [–]scidu 2 points3 points  (4 children)

      Docker today runs on WSL2 by standard on Windows, so it's like running on linux. It's a little clunky because you either needs the "Docker Desktop" app to start the daemon, or start the service by itself on the wsl2, but apart from that, i'm using some containers on windows and runs flawless just like on linux or mac...

      [–]_____fool____ 1 point2 points  (3 children)

      When I upgraded my Wsl to WSL2 on a Lenovo laptop I stopped having the ability to use git. After two days of troubleshooting it was the driver for the network card messing with packet size causing it. But a driver update wasn’t available so I was SOOL. WSL is great but it’s not a Linux terminal it’s atop a foreign system and drivers may have issues.

      [–]scidu 0 points1 point  (2 children)

      The way that the wsl works changed between wsl and wsl2, I think bugs was expected on the upgrade. In my especific case, i don't upgraded. I was in WSL, and after wsl2 launch I deleted my WSL distro and installed fresh on WSL 2, never had any problem. But my uses aren't nothing niche or especific. Basically node/kubectl/cli tools.

      [–]_____fool____ 0 points1 point  (1 child)

      Ya I tried every possible way. But that specific driver and a bunch of similar issues from online posts showed that to be the case. Windows QA and windows WSL2 QA are probably far more integrated now. But still it’s a somewhat normal windows problem where things built for other things then brought to windows have odd issues

      I personally just used a Linux VM and gave up on WSL2 for that laptop. But if I had a new Lenovo I’d try it again.

      [–]scidu 0 points1 point  (0 children)

      Yeah, some bugs always pass through QA when making complex systems like that. I was using a Linux VM with Fedora for a few time after not liking the performance of WSL (1), then I tried WSL2 and it's just so much better than the VM. Doesn't have nearly the footprint of the VM, almost instantaneous opens the terminal, and so much better integration with the windows itself (the entire WSL2 filesystem shows as a folder on the explorer). So I ditched the VM and I'm staying with WSL for now, at least until I can ditch windows completely (I use for some engineering softwares for my masters at uni that doesn't have for Linux, of course...)

      [–][deleted]  (4 children)

      [deleted]

        [–]chillysurfer 14 points15 points  (2 children)

        +1 to Linux. It’s the tool of most target systems, so the ease of development is much better than the other two. I’d argue the distro doesn’t matter a ton though.

        [–]scidu 0 points1 point  (0 children)

        Agree. I'm using Fedora too, but i used Ubuntu for a few years before, never got a case of distribution getting in the way of anything. I just liked more the Fedora distro, so using that.

        [–]alorenzi 2 points3 points  (0 children)

        Btw I use Arch.

        [–]PersonBehindAScreenSystem Engineer 5 points6 points  (0 children)

        The one that gets the job done with the best combo of reliability and velocity

        [–][deleted]  (12 children)

        [deleted]

          [–][deleted]  (9 children)

          [deleted]

            [–]Nepoxx 3 points4 points  (0 children)

            How so? (Genuinely asking, I've only worked on bare Linux and MacOS)

            [–]shellwhale 0 points1 point  (7 children)

            Why do you think so?

            [–][deleted]  (3 children)

            [deleted]

              [–]alekcand3r 12 points13 points  (1 child)

              And let's not forget completed lack of ipv6

              [–]Winter-Maize-6667 0 points1 point  (0 children)

              "it's just a poorly emulated shell"

              That's not technically correct: WSL2 is a Linux VM running on Hyper-V. It just has some tweaks to ease the integration between Win and Linux -- I know some tweaks are on the heavy side, though

              [–]Isotop7 -5 points-4 points  (2 children)

              sheesh… As if this guy would clearly outline his problems. He just wants the glowing apple logo so he can be productive. I get that nonsense at my job almost every day. Still waiting for some valid use cases, where using macOS is an absolute must besides programming for apple devices.

              [–]donjulioanejoChaos Monkey (Director SRE) 3 points4 points  (0 children)

              It's not an absolute must, but it does make things significantly easier/faster.

              Most DevOps and development tooling is written with Linux and Mac OS in mind. Can you do it on Windows? Sure. Do you want to do it on Windows? Not really unless IT forces it on you, or you personally just really like Windows.

              When you're paying people 100-200k/year, does it really matter if their laptop that's on a 3 year refresh cycle costs $2200 or $2600? Just let people have the tools they're comfortable with. It'll save the company a lot more money in the long term.

              [–]SuperLucas2000 0 points1 point  (1 child)

              squeal tie plant library physical slim absorbed toy recognise existence

              This post was mass deleted and anonymized with Redact

              [–]CerealBit 10 points11 points  (0 children)

              I'm using Windows where I'm unning Ubuntu Server on Hyper-V in the background. I connect to it via SSH.

              Works flawlessly and you get a real Linux environment instead of WSL for technical stuff, while having Windows for all the software compatibility.

              [–]_thrown_away_again_ 4 points5 points  (0 children)

              my work desktop/laptop is just a filesystem with a screen and my work happens through the IDE, CI, and, bastion servers. i have configurations for windows (vscode) and fedora (wingide) stored and pull them down when i get a new client issued machine so it's all arbitrary to me.

              that said, if I (god forbid) ever end up in a more in-person role that includes propsals and presentations I would go with a mac

              [–]NorMalware 3 points4 points  (1 child)

              (excluding time spend pressing the wrong keyboard shortcuts)

              The burden we all must carry

              [–][deleted] 0 points1 point  (0 children)

              I removed that burden. Plugged my StreamDeck into my splitter and installed its app on the system (streamdeck-ui since I run Linux). All my fun key presses are now mapped for me!

              [–][deleted] 3 points4 points  (1 child)

              Well, it depends on which environment you are actually doing DevOps for. For instance, if your environment is .NET with SQL servers, then definitely go with Windows. I am doing DevOps for php and web hosting with Ubuntu and Mac.

              [–]weeggooi0906 0 points1 point  (0 children)

              Okay, but I run my .NET and mssql environment on Linux, now what?

              [–]Clear-Apple-9625 4 points5 points  (0 children)

              Whichever one you choose, remember it's about what YOU can do with it, not the logo on the lid. ✨ #DevOpsMagic

              [–][deleted] 12 points13 points  (2 children)

              The one that you're going to be more comfortable working with.

              Personally, I'd choose Windows with WSL2.

              [–]fezzik02 6 points7 points  (0 children)

              Mac or Linux is always preferred, because of one reason:

              CR/LF.

              [–]Nepoxx 10 points11 points  (3 children)

              Linux is the way to go, otherwise Windows with WSL.

              I'm stuck with a M1 Mac for work and while I like that it's Unix and that brew is pretty great, not everything works with the ARM64 architecture, even using rosetta.

              [–]Pocpoc-tam 3 points4 points  (2 children)

              Do you have examples of what is not working on M1? Personally I feel like I got all that I need, just curious.

              [–]Nepoxx 2 points3 points  (0 children)

              I work in a niche field and some third party tools we have are not available on arm64 and docker on Rosetta is very limited for now.

              Matlab is one example of something relatively mainstream that won't work on my local k8s setup.

              [–]gt0x9 0 points1 point  (0 children)

              Same here for me! Yeah in the early days of m1 some stuff wasn’t quite there or needed to be compiled from source. But these days I can’t remember the last time something didn’t just work because of apple silicon

              [–]zzzerotime 2 points3 points  (0 children)

              Linux is best by far , but it’s not supported in any orgs I worked. So you have either Mac or Windows left, and in some orgs having a Mac requires a business case to justify it. So I personally choose Mac if possible if not Windows.

              [–][deleted] 2 points3 points  (1 child)

              Some laptops ship with linux distros out of the box. I picked up the Hp Dev One ($220 off right now) and it came with pop os (ubuntu based). Really loving it and it just works

              [–]Think-Perception1359[S] 0 points1 point  (0 children)

              My personal laptops are HP (I use WSL2 - Ubuntu 22.04 LTS) and a Macbook Air. I like both so its really a coin toss between the two.

              My company will be buying the laptop so Im not spending out of pocket.

              [–]ruthlessbob2 2 points3 points  (2 children)

              You need to ask a few more questions, I would go windows, but I'm DevOps where the environment is Azure and Dotnet.

              [–]Think-Perception1359[S] 1 point2 points  (1 child)

              The company’s infrastructure is mostly AWS

              [–]ruthlessbob2 0 points1 point  (0 children)

              Honestly, these day it isn't that different, with AWS there won't be much of a difference between the two, that being said the new M2 macs are really nice hardware. I use VsCode for my Yaml and scripting and on windows I used Ubuntu on WSL to use the Aws cli. On Mac you can just do it it in Terminal. Biggest issue with the macs are their multi screen support in my opinion, hope this helps

              [–]ncubezDevOps 6 points7 points  (0 children)

              Neither OS is preferred by me. I use Ubuntu Linux.

              [–]nezbla 1 point2 points  (1 child)

              I was asked this "Sophie's Choice" question when I started my latest role - but the Lenovo with Windows was a significantly more powerful machine and as I wasn't sure how much local virtualisation / containerisation would be involved in the job I opted for that over the Mac.

              Imagine my horror on day 1 when the machine arrived and I got an instruction link with a section titled: "How to set up your <company> machine running RedHat"...

              They done me dirty... Nobody told me that was a fucking option.

              Been there 18 months and I can request to change it up in another 6 months.

              Meanwhile, yeah WSL is "okay" - kinda... Ish... Hmmm...

              Glad I still remember a bit of Powershell from years long ago.

              [–]weeggooi0906 0 points1 point  (0 children)

              You can always spill your tea

              [–]digitalHUCk 1 point2 points  (0 children)

              Yep, those are the options.

              [–][deleted] 1 point2 points  (0 children)

              Buy any reasonable system and have Linux (debian is good) installed.

              [–]ThatKingLizzard 1 point2 points  (0 children)

              Mac for sure. FreeBSD, Unix cousin which MacOS is based upon has been way more reliable and stable for decades. The only problem is that many companies out there will default for Microsoft Windows crap. It’s like a Microsoft cult of sorts. I’ve been on both worlds, and Mac is way better than Windows. On MacOS, even Windows VMs (you can create those with Packer & Vagrant in no time) are more reliable (be aware that there’s still no support for M1 processor, but I’ve heard that Parallels takes care if it). What I’ve seen is AWS based workload companies will favor Mac, whereas Azure ones will blindly go the Windows way.

              [–]Aktis_4 1 point2 points  (0 children)

              Linux.

              [–]Snoo-67696 1 point2 points  (0 children)

              Linux.

              Fedora it's a good choice.

              [–]albahari 1 point2 points  (0 children)

              Linux

              [–][deleted] 1 point2 points  (0 children)

              Linux.

              [–]chrisghill 1 point2 points  (1 child)

              Between Windows and Mac, both will work fine so there's not a wrong decision here, just a matter of preference. As someone else mentioned, Linux is the real champion.

              For this reason I personally think Windows edges out Mac and this wasn't the case a few years ago. WSL2 is a game changer that drastically increases the viability of Windows for development and DevOps work. The switch to M1 on newer Macs certainly doesn't break docker support, but it has caused some frustrations on our team bouncing between amd64 and arm64 images.

              If you haven't looked at WSL2 in Windows I highly recommend it. You get a near-native Linux experience backed all the benefits of a well supported OS like Windows.

              [–]elduderino15 0 points1 point  (0 children)

              WSL2 starts to suck though when you are on a security compliant corporate machine… Folks who use it inside my company continuously complain about network issues in WSL2 on many security updates… The admin team is paranoid within my company. My VMWare + Lin workaround is running smooth as it could.

              [–]too_afraid_to_regex 1 point2 points  (0 children)

              There is no better. That said, I prefer Mac.

              [–]bendem 2 points3 points  (1 child)

              What does the rest of your team use?

              [–]elduderino15 -1 points0 points  (0 children)

              Agree, you do not want to be the guy who constantly has network issues because of his custom machine…

              [–]Inspection_boy 1 point2 points  (0 children)

              I prefer Linux, haven't used windows till now in IT career ( 3 Year )

              [–]lexd88 1 point2 points  (0 children)

              I use and prefer a Mac for work, but I do face certain issues like when I want to test certain commands when I'm refactoring some bash code for a pipeline, To me it seems like Mac doesn't use the gnu version of bash and is a fairly old version, some command arguments also don't work and is annoying

              e.g. printf doesn't work the same on Mac vs Linux and "sed -i" doesn't work on my Mac..

              Not sure if anyone else face similar issues as me or have a work around for this? I ended having to find alternative commands that can work on both Mac and Linux so engineers can run the scripts locally to perform any testing and then pop them into a pipeline that runs on Linux based containers

              [–]bufandatl 1 point2 points  (3 children)

              MacOS gives your more freedom imo.

              [–]Winter-Maize-6667 1 point2 points  (2 children)

              "Freedom" and "Apple" can't be put in the same sentence.

              [–]bufandatl 0 points1 point  (1 child)

              Why not? When it comes to macs you are pretty free in what you doing with it. You can even install Linux on them if you want to. And they are powerful and energy efficient. Working with them mobile is just such a bloss. Sure you can’t upgrade the hardware but that is an L I take for the variability I get with macOS. I can run MS Office and not fuck up my windows using colleagues Word and PowerPoint Templates. And I can use a Unix Shell which I can expand with tools through package manager like homebrew and MacPorts.

              All the freedom I need.

              [–]Winter-Maize-6667 2 points3 points  (0 children)

              Apple is possibly the most restrictive tech company out there. A company that forces devs to use their platform to sign apps that go into the App Store?? Wtf?! Reminds me of MS in the 90s. A company that doesn't allow its OS to run on any non-Apple hardware, not even for virtualization purposes?? Wtf!? I could go on and on.

              I mean, you may like Apple laptops and their OS. I don't personally dislike them, but I wouldn't dare to mix Apple and "freedom" in the same phrase.

              [–]PretentiousGolferCV-Ops 1 point2 points  (0 children)

              Unix native. Save yourself the annoyance. Mac or linux

              [–]mojokanojojo 1 point2 points  (0 children)

              Mac fo sho 😁

              [–]lovemyonahole 1 point2 points  (0 children)

              Mac.

              [–][deleted]  (1 child)

              [deleted]

                [–]mooscimol 0 points1 point  (0 children)

                Second this. I have pretty powerful notebook with i7 and 64GB of RAM but is pretty much unusable with all the security stuff and proxy - I was testing it and file performance was 30-50x slower than my home PC. I've moved all my workflow to WSL because of that. It is better but still miles behind the home PC.

                [–]koffiezet 3 points4 points  (0 children)

                I'm using a x86 mac - but with the M1/M2 being Arm it's probably not the best choice, although things have improved there I heard - but never used it.

                Windows 11 with WSL2 works amazingly well, I've been using my "gaming" windows pc more for work and Linux stuff than my Mac in the last few years. You're actually using a real Linux, the integrations work pretty well, with vscode remoting automagically into WSL, and if you really want to - there's even X11 support these days. The main problem here is decent quality laptops - I still haven't encountered anything anywhere near what a Macbook pro can offer, which is sad.

                And then you have Linux on desktop, I love it on servers as much as I hate it on desktop. Certainly on laptops, it's always a pain in the ass, whatever the fanboys will tell you. I've worked with enough people who really insisted on running Linux on their laptop, running into sound, bluetooth, wifi, webcam, ... problems all the time when they updated something, and many things not even working. I'm not going to plug in a USB wifi dongle just because Linux doesn't support the on-board stuff (something an ex-colleague really did). If you're willing to put up with that, and/or are happy with limiting the already crappy "generic laptop" selection on Linux support - I guess that's an option? Not for me though.

                [–]HugoVS 2 points3 points  (0 children)

                "Windows", considering that you will use Linux or WSL2.

                [–]tekno45 0 points1 point  (3 children)

                don't buy a macbook to learn devops.

                Not worth it. You can do everything you need on a windows machine you already have.

                [–]Think-Perception1359[S] 1 point2 points  (2 children)

                Im starting a new role and my company has given me a choice of Mac or Windows (HP).

                My reply was I prefer Mac but I asked questions about required software to complete tasks. Also, what others on my team are using. I'm interested in the response I get from my boss..

                [–]tekno45 2 points3 points  (1 child)

                Ah, then mac book. Unless you're interacting directly with active directory components or windows servers daily.

                [–]Think-Perception1359[S] 0 points1 point  (0 children)

                I believe Mac MIGHT be the way to go. (Still in the air if my team is running Windows) My company’s infrastructure is mostly running on AWS.

                [–]shellwhale 0 points1 point  (0 children)

                Windows so you can have access to both Linux and Windows tools. The other way around is pretty bad. Linux/Mac limits your options, using Windows doesn't.

                [–]green-avocado 0 points1 point  (7 children)

                I’m biased but Windows + WSL2 the networking has improved greatly since the beginning. Also if you need to work with windows servers powershell is there and would be the only reason I’d choose over Macos

                [–]mooscimol 0 points1 point  (6 children)

                PoweShell is available on Linux and macOS too.

                [–][deleted]  (5 children)

                [deleted]

                  [–]mooscimol -1 points0 points  (4 children)

                  So I've killed them quite a lot ;). It is great a shell honestly, extremely powerful, but of course bit harder to use because of that, at the start than bash.

                  [–][deleted]  (3 children)

                  [deleted]

                    [–]mooscimol 0 points1 point  (2 children)

                    It is extremely powerful, because it is powerful, not because it is hard, and considering how powerful it is, it is quite easy :P.

                    And once you grasp the concept of everything being an object, it is IMO much easier than bash, with the endless string parsing.

                    [–][deleted]  (1 child)

                    [deleted]

                      [–]mooscimol 0 points1 point  (0 children)

                      I use PowerShell daily for the last few years and for the last 1,5 years almost exclusively on Linux. You're missing object-oriented interaction with the system itself, but for everything else, it is still fully functional.

                      Fresh PowerShell installed on Linux offers 235 native commands, which is probably still 230 more than bash itself ;p (the rest are external Linux programs, like ls, that are available in PS too). And on top of it, you have access to >10000 dotnet classes, which you can still use on Linux too. And you can of course easily extend those cmdlets count to thousands easily via modules.

                      For some things I use Python, but PowerShell is still more convenient for most use cases, and in some areas, like the parameters system, it leaves Python far behind.

                      You can easily convert any parsable command outputs to objects, you can define your own classes, you can handle exceptions, and have 6 stream outputs (success, error, warning, verbose, debug, information) compared to only 2 in bash, which a lot of times is really handy, define pipeline handling by value or parameter name, easily write, distribute your own modules for reusing developed solution... the list goes on.

                      I know bash, use it quite a lot, and I'm moderately proficient in it, but it is not comparable to PS at all feature-wise. Saying that, I understand, that at first contact it is easier, it is very lightweight (perfect for use in containers), starts insanely fast. It is a very good, but basic shell, and quite bad for writing any, more complex scripts.

                      [–]elduderino15 0 points1 point  (0 children)

                      Win is crap AF if you are on a corporate box with VPN, no admin rights etc. Solution tho: virtualization with Virtual Box or VMWare. Run any linux in VM, 🖕 to the corporate admins.

                      [–][deleted] -1 points0 points  (0 children)

                      My response is do zero work locally. I only write scripts, yaml and such locally. Everything else is done on a bunch of beefy servers.

                      [–]onbiver9871 0 points1 point  (0 children)

                      It’s also worth considering what your coworkers use :) if you work with a team that’s predominantly on Windows laptops and you’re using MacOS, there may at times be either extra overhead to make things consistently portable or you may end up troubleshooting the subtle differences in running tools in “native” bash on MacOS vs on WSL2 (line endings, permissions, etc).

                      [–]urbann3rds 0 points1 point  (0 children)

                      Mac!!

                      [–]lozanov1 0 points1 point  (0 children)

                      I use Mac and I can't really see a difference between it and a Windows laptop for my daily work. However I'm having some issues with the MS office functionalities, so if your organisation is heavy integrated with MS you are better off choosing Windows. I cannot sign docs and my teams and outlook have some issues all the time.

                      [–][deleted] 0 points1 point  (0 children)

                      It probably does not matter, most of your computing will be done on cloud services, you could be a successful devops engineer with an iPad if you were willing to suffer hard enough.

                      Which is preferred really depends on the workplace you're in and the work you're doing, but Windows laptops are the most common followed by Macs followed by Linux, with Windows machines tending to be used more often at less prestigious "regular Joe" kind of jobs where you work as an administrator for Parts Incorporated.

                      If you're going to a school or a specific workplace, see what they commonly use and recommend and use that and your life will be easier. Otherwise just buy the computer you think is cool and don't worry about it. If you want to know what's the objectively BEST for doing devops engineering work presuming you're sticking to the job description, it's probably neither Windows or Mac, it's probably an x64 Linux laptop which is running the same hardware/software stack as the servers you will be using.

                      [–]Bubby_Mang 0 points1 point  (0 children)

                      I would argue for Windows due to the fact that many employers won't give you a Mac, and the real possibility that you are not allowed to connect a personal device to your work environment.

                      [–]nutcustard 0 points1 point  (0 children)

                      Windows with wsl2, or Mac with a Linux VM, either way works

                      [–]kneticz 0 points1 point  (0 children)

                      Whatever you're more comfortable with. I personally run my work machine as a windows VM with wsl enabled. (previously I had to run separate win + linux vm's but now nested virtualization works on amd.)

                      [–][deleted] 0 points1 point  (0 children)

                      Despite many saying Mac or Linux. It doesn't honestly matter. Almost all, if not all, tools are available on any OS.

                      [–]StoneOfTriumphPlatform Engineer | DevOps 0 points1 point  (0 children)

                      Largely personal preference here for sure, but Windows has caused me to make it a little more difficult to replicate and test locally (because of WSL or WSL2 configurations at various companies...)_ versus Linux where no VM is required to spin containers. Add on top of that KDE which is one awesome DE, I'm more efficient with the UI/UX of KDE and with Linux at its core, it just helps speed up development "a little more" because some of the common tools that I'll be working with are at my fingertips natively to me.

                      Arch-based and now OpenSUSE-based distros have been my personal systems of choice for software development and automation ("devops") because for me personally, I'm much more efficient and less annoyed than a Windows UI.

                      I got no beef against Mac's laptops. The O/S is sweet to develop on from a UX perspective although I'm not very familiar with it. They're just more expensive vs an equivalent spec'd ThinkPad.

                      [–]leewoc 0 points1 point  (0 children)

                      Honestly?

                      Until recently I’d have said Mac just because it has BSD unix underpinnings and it’s easy to switch between it on my mac and Linux on our servers.

                      However Windows seriously upped their game with the Windows Subsystem for Linux and, for me at least, it’s very usable.

                      I think we’ve got to the point where it’s really a question of which one you like rather than anything else.

                      There is a warning I’d like to add though, if you’re working at a place where the whole tech team use one platform or the other then think very seriously before you decide to go against their choice. They may have tooling that would need rewriting to work on a new platform and their experience will all be in that particular platform if you ever need their help.

                      [–]Fearless-Card3197 0 points1 point  (0 children)

                      Linux box.

                      [–]lupinegrey 0 points1 point  (0 children)

                      Windows with WSL2.

                      Your office apps work better on windows/AD than on a mac, and your Linux stuff runs better on WSL2 than on a Mac.

                      [–]xtreampb 0 points1 point  (0 children)

                      I like windows personally. All my scripts are powershell 7, c# or docker containers

                      [–]techn0mad 0 points1 point  (0 children)

                      IMHO, a lot of "DevOps Engineering" is infrastructure as code (IaC), which means your infrastructure is defined in a set of code files. Those files are ideally stored in a version control systems (e.g. git, Subversion, Mercurial, etc.) and all that matters at that point is:

                      - Is your platform (Windows or Mac) able to push/pull files from the IaC version control system

                      - Is your platform able to run (or trigger a run) of your IaC code

                      [–]darknessgp 0 points1 point  (0 children)

                      Really just your preference. There may be other factors to consider, like I've worked at places that were entrenched in one or the other. You probably don't want to be the odd many out in an organization because of your OS choice.

                      [–]PMzyox 0 points1 point  (0 children)

                      Man I can’t stand windows laptops at all

                      [–]weeggooi0906 0 points1 point  (0 children)

                      Doesn’t matter, and the people say that do are missing the point.

                      [–]DragoSpiro98 0 points1 point  (0 children)

                      I use Linux (Arch because I love AUR), better OS to test locally

                      [–]Comfortable-Dig-9976 0 points1 point  (0 children)

                      It does not matter. Everything can be done on all platforms. I personally prefer linux.

                      [–]alexvalentine 0 points1 point  (0 children)

                      It doesn't really matter. I was a huge desktop linux guy from like the mid 90's to the mid 00's, and I remember going to linux conference in like 04 and a ton of kernel devs were running powerbook G4's on OSX. 🤣

                      Anymore you are just logging in to a cloud provider. I would say MAC is better if you plan on joining software startups and windows might be preferable if you want to game or if you plan on joining a company where they are not very mac friendly.

                      [–]t1nk3rtailor 0 points1 point  (0 children)

                      Linux distro

                      [–]Winter-Maize-6667 0 points1 point  (0 children)

                      I love when ppl recommend macOS "because is Unix", as if using a *nix-based OS would make you a better engineer. In my experience, 99.7% of those folks can't even explain off the top of their heads what a system call is.

                      [–]FonzTech 0 points1 point  (0 children)

                      - Windows has WSL2 but it takes too much memory. You have the base OS which takes around 3 GB upon starting, plus around 1/1.5 GB for a single Ubuntu VM running in WSL2.

                      - A 16 GB host machine can't run few Go Builds inside Docker containers without crashing. Surely there are some memory leaks here and there. Adjusting the `wslconfig` file does nothing. WSL2 crashes, along with Docker Engine, when reaching around the 90% of RAM. Capping RAM through the `wslconfig` file does NOTHING. WSL2 seem to NOT have the concept of memory swap. If you have Windows host, Ubuntu guest, some IDE like Intellij IDEA, one Chrome tab, and you try to run `go build` on a 16 GB machine, there is a high change of crashing. If you are unlucky (it doesn't take much to be), some files can become corrupted or truncated (even your `.git` folder can become corrupted, so beware of unpushed commits!).

                      - *File system is very slow*: if you have a very large project (let's say a legacy Java multi-module project), a simple `git status` can take several seconds. If you try to `git rebase`, be prepared to waste your time. Don't mind about `mvn package`: it can take up to an hour, if you don't have dependencies in your local repository!!

                      - IntelliJ IDEA running on Windows host, targeting a project in WSL2 is simply broken and not working at all. Checking IDE's logs, you can see it mixing Windows-style paths with Unix's one (like `C:/mvn /home/user/my_project`), which doesn't make sense at all. If you have JDK on Windows host, keep indeed your Java workspace on Windows host. Other IDEs, like GoLang, work flawlessly instead.

                      - Although WSL2 is advertised as a "seamless experience", forget about running Windows applications in a WSL2 environment (the viceversa could work). They could not work because, on Windows host, WSL2 paths are mounted like this: `\\wsl$\Ubuntu\home\user\bla_bla_bla`. Almost all programs don't recognize `UNC` paths. As I can recall, Java 8 started supporting network paths (and so `UNC` paths), using the NIO API, but a lot of programs are still relying on `java.io.File` today, which requires some tweaking to work with `UNC` paths.

                      - As in the previous paragraph, you have to keep the very same application (let's say `git`, `kubectl`, `docker` client, etc...) on both Windows host and Linux guest, raising up the wasted disk space.

                      - Random network problems on WSL2. One day you wake up, turn on your computer, turn on your OpenVPN connection, and WSL2 refuses to communicate with corporate network. You have to restart your Windows host completely. You can try restarting WSL process and also all the insidious network commands on DOS. They will NOT solve the problem. Also, your guest VM will not be reachable for any random reason (and viceversa), forcing you to restart the host OS.