Containers for Windows



  • @Bulb said:

    most components either have a standard location or have their mechanism for discovery

    @Yamikuronue said:

    Pop quiz: How do you restart Apache?

    apachectl restart
    /etc/init.d/apache2 restart
    service apache2 restart
    restart apache2
    service httpd restart



  • @accalia said:

    that's also a statement i have never said, ever.

    Yes well next time if you're trying to make some kind of point, please feel free to type the point you were making instead of making it look like I was calling Sun Microsystems super-awesome and the best.

    Because if that wasn't what you were doing, I have no idea why the fuck you wrote that post.


  • FoxDev

    @blakeyrat said:

    lease feel free to type the point you were making instead of making it look like I was calling Sun Microsystems super-awesome and the best.

    :wtf:

    how does me saying

    @accalia said:

    To be fair, at least with Java, Sun Microsystems wasn't any better in their install experience

    equal

    @totallyNotAccalia said:

    You know blakey thinks that Sun microsystems is the best ever lololololololol, but you know, they aren't any better than oracle wehn it comes to the java installer

    ⁉



  • But that's exactly what you did do. You made two statements - Oracle is crap, Sun is awesome - and then said there was no correlation between them, implying a certain belief in both statements being some level of accurate in your world.


  • BINNED

    I'd hope you know how your distro manages services if you're admining it but:

    • apachectl is possibly a Debian-ism? Not sure if it's a standard component TBQH, but then I never really used it
    • /etc/init.d/ thing should work both on SystemV and Upstart. Also will work on systemd through the compatibility layer
    • is pretty much the same as above, that's what service command will do
    • never saw that syntax anywhere
    • service again, Debian uses apache2 as service name, RHEL uses httpd, no idea why, yes, it's retarded


  • @Arantor said:

    You made two statements - Oracle is crap, Sun is awesome - and then said there was no correlation between them, implying a certain belief in both statements being some level of accurate in your world.

    ...

    ...

    ...

    ... what?

    Ok, you know what, fuck it. I have better things to do than talk to insane people.



  • @blakeyrat said:

    Here's two statements:

    • Oracle sucks

    • Sun Microsystems is really awesome

    Guess the relationship between these two statements!






    Give up?

    Ding! Time's up!

    The answer is: fucking NOTHING.

    @blakeyrat said:

    ...

    ...

    ...

    ... what?

    Ok, you know what, fuck it. I have better things to do than talk to insane people.

    See above. You posted that. Does it have some meaning to it other than what I've derived because, fuck, I couldn't work it out either other than what I came to because this is totally your style, make vague comments that you can claim meant something else when called on it.



  • ISTR apachectl being the script Apache itself used to ship but that was like 13 years ago when I cared about it and couldn't be arsed/couldn't work out how to get the distro to play nice and do it itself via things like upstart or systemd or whatever was back then.


  • Garbage Person

    This post is deleted!


  • My point was that many Linux defenders refer to things as "standard" when there are no standards. I believe you just reinforced my argument.


  • Garbage Person

    @boomzilla said:

    Probably lots of Java where it happens. That's my experience, at least.

    Java guys aren't human beings.

    Source: Just had a 30 second call with a team of them wherein they reported a bug. They sent me fucking meeting minutes.



  • Oh, there are standards. There are just so many standards everyone is following a standard - almost entirely their own.

    There are a few actual standards, which amount to 'whatever Debian does (and Ubuntu copies)', 'whatever Red Hat does (and CentOS copies)' and 'whatever everyone else might choose to do because either of the above are Doing It Wrong'.


  • Discourse touched me in a no-no place

    @Weng said:

    Source: Just had a 30 second call with a team of them wherein they reported a bug. They sent me fucking meeting minutes.

    😆 :facepalm:



  • That is the definition of "not a standard". Thanks for playing.



  • No, it's the very literal embodiment of https://xkcd.com/927/


  • ♿ (Parody)

    @Weng said:

    Java guys aren't human beings.

    I'M A JAVA GU...oh, yeah, I see what you mean.


  • ♿ (Parody)

    @NedFodder said:

    That is the definition of "not a standard". Thanks for playing.

    So any time there isn't a single unifying standard there's no true standard? So Windows can't be standard because there is Linux and it does stuff differently?

    What word should we use with you when the rest of us would talk about standards?



  • Thanks for the 🚎, now I know why blakey hates everyone.


  • ♿ (Parody)

    What‽ How did I become the troll in that exchange?


  • Discourse touched me in a no-no place

    @boomzilla said:

    What‽ How did I become the troll in that exchange?

    Because you're blakeyrat?


  • ♿ (Parody)

    Harsh but fair.



  • I was typing a response along the lines of "we're just talking about Linux, Linux != Windows, where's your reading comprehension, etc, etc". I abandoned the post because it sounded like a blakeyrant, which led me to believe you were trolling. Please excuse my mistake, and enjoy the rest of your day here at WTDWTF.



  • Thank you, come again?



  • You pick one standard (read: distribution flavor-ish) and stick with it. It's way too much pain trying to master all of them unless you like pain. Fortunately systemd is bringing some level of consistency how you configure services.

    These days the one-size-fits-all seems to be Ubuntu. YMMV.



  • @hifi said:

    These days the one-size-fits-all seems to be UbuntuDebian. YMMV.

    FTFY


  • ♿ (Parody)

    @NedFodder said:

    I was typing a response along the lines of "we're just talking about Linux, Linux != Windows, where's your reading comprehension, etc, etc".

    Ah, so it's OK for you to switch contexts to a higher level (from distro families to all distros using the same kernel) but not me (operating systems using the same kernel to all operating systems). Got it.



  • He's learning the art of :moving_goal_post: from the master?



  • @Arantor said:

    @hifi said:
    These days the one-size-fits-all seems to be UbuntuDebian. YMMV.

    FTFY

    Debian's not enterprisey enough, why would anyone trust anything in production to run on it?



  • @boomzilla said:

    @NedFodder said:
    I was typing a response along the lines of "we're just talking about Linux, Linux != Windows, where's your reading comprehension, etc, etc".

    Ah, so it's OK for you to switch contexts to a higher level (from distro families to all distros using the same kernel) but not me (operating systems using the same kernel to all operating systems). Got it.

    Not gonna ride the 🚎, sorry.



  • @hifi said:

    Debian's not enterprisey enough, why would anyone trust anything in production to run on it?

    Because under the hood that's all Ubuntu actually is, a veneer over Debian?



  • @apapadimoulis said:

    cause those graybeards ... are so much cooler than me



  • @Arantor said:

    @hifi said:
    Debian's not enterprisey enough, why would anyone trust anything in production to run on it?

    Because under the hood that's all Ubuntu actually is, a veneer over Debian?

    Ubuntu has LTS releases and enterprise support. Debian EOLs in around 3 years while enterprise grade distributions have an actual planned lifetime which is usually a lot longer than that (up to 10 years in some cases). Ubuntu doesn't really take anything away from Debian either.



  • @NedFodder said:

    which led me to believe you were trolling.

    YMBNH. Anyone who isn't trolling on WTDWTF is in the wrong place.


  • ♿ (Parody)

    @NedFodder said:

    Not gonna ride the 🚎, sorry.

    Of course not. As I pointed out, you're driving it.



  • Other than leaning heavily on it to the point where the real standard is, and continues to be, Debian rather than Ubuntu.



  • Meh, installing full OSes is the wrong approach to containerization; a containerizing hypervisor is basically an exokernel OS by a different name (or arguably vise versa, as hypervisors go back a lot further than the exo-kernel concept), and should be used as such. There is no need for a most types of server to have a full OS, and that's where exo-kernels could potentially come into their own, IMHO. They are completely unsuited for desktop systems, but for running an HTTP or database server, they would really shine, I think.

    Of course, I am biased regarding this; my own development/research path is currently aimed at using a three-tier system consisting of Kelephstis (an exo-kernel), Kether (a general-purpose kernel) and Goetia (a UX manager). Kelephstis ('coxswain' or 'boatswain' in Attic Greek - yeah, all the names have these cutesy pseudo-thaumaturgical names, as a nod to the whole Thelema thing - which became a general term for a naval petty officer in modern Greek) is designed to work either as an exo-kernel or as a containerized hypervisor for full operating systems, with the idea that you would only configure as much f a system for what you currently need. Servers could run in true exo-kernel fashion, with any services (e.g., file systems) needed provided by user-land libraries.

    While Kether would be a full OS, it would always run paravirtualized, to allow multiple copies of the kernel (and stand-alone containerized applications with no actual kernel at all) to share common resources while running side-by-side.



  • No end of trouble using docker here. Once a day the VM runs out of memory and hangs until you force-quit it, docker/boot2docker doesn't properly report when it's done doing something, configuration is weird because your code files live in the VM but also on your HDD, running the container is slow because of some networking issue (moving files over SMB or something) that I don't fully recall, setting it up is a pain in the ass, sometimes it refuses to start/stop, the list goes on.

    All this to avoid running our ruby apps directly so we can avoid local environment issues. Not that we don't see local environment issues, we just have another layer to debug when they (inevitably) appear.


  • Discourse touched me in a no-no place

    @apapadimoulis said:

    If they were built with proper, modern (i.e. 2000 and later) approaches for Windows, they should be installable in minutes using an installer.

    As an example, my company's product, written in a weird 4GL called Progress[1], uses an installer. Now, building the installer is a bit funky, but on the customer's end it's pretty easy: Install Progress, then run our installer. Give it the key, and tell it whether you're doing a client, server, or upgrade install, and tell it where you want it to live, and a couple of similar bits of information, and it does the rest--including only installing the components you've licensed. And as part of the installer, it actually compiles the entire application, which is shipped as encrypted source, and it's only slightly harder than installing Office.

    [1] By way of analogy, you can consider Progress like Java and my application like a java app.


  • ♿ (Parody)

    @powerlord said:

    I know DLL Hell caused a lot of trauma, but you've completely blocked out all memory of it?

    I do have a selective memory, but I swear DLL Hell was hardly a problem in NT if you deployed the dependencies with your application; processes could load different versions of the same dll. They did some weird shit later on (which i guess the article mentions) to make things loaded side-by-side despite being shared.

    @TwelveBaud said:

    Windows kernel-mode driver that binds to port 80 and handles serving static files itself

    Technically any port, and it doesn't do static files. It handles all of the typical plumbing rubbish that any application utilizing HTTP/S would need to do. Or you could just open a socket yourself.

    @TwelveBaud said:

    Screw that. Let's make that all live in the kernel. No syscalls needed because you're already there, and it's a lot easier to lie to the userland applications.

    See, that's a fundamental difference between a shitty (Linux) and good (NT) kernel. Linus has corrupted your thinking about what a kernel is by emulating the 1970's architecture. The kernel doesn't need to DO EVERYTHING or DO NOTHING. It can be separated into many layers and share memory space for fast.

    @TwelveBaud said:

    completely secure

    OK yes, there was an HTTP.SYS bug, but it wasn't nearly as much of a fuck as Heartbleed.


  • ♿ (Parody)

    @hifi said:

    I don't think running a server per user is really worth the trouble.

    Yeah exactly, this is why HTTP.SYS makes sense: user isolation for requests (i.e. different web apps) is a good idea from a security standpoint.

    @powerlord said:

    From memory, Lighthttpd ran into a slew of security problems. nginx arrived around the same time and basically stole Lighthttpd's current user base and has continued to grow as people become frustrated with Apache's "heaviness."

    Oh for fucks sake. This is why we (I'm pointing to @blakeyrat) hate the linux ecosystem. Windows, you have one server: IIS. And it's great, and runs circles around all of these rubbish servers.


  • ♿ (Parody)

    @Bulb said:

    Docker is absolutely horrible from security point of view as it makes it harder to keep the important dependencies up-to-date, since each application comes with its own copy. Which was always the case in Windows anyway.

    Well, sort of, except Windows/Microsoft implements most of the stuff your LOB applications need, so you really need to take few dependencies on anything, really at all.

    @Bulb said:

    And there are package managers that allow declaring that component has to be installed, which Windows lack altogether. They've introduced Live Store in Win8, but as far as I can tell, applications from store can't depend on each other and must bundle everything.

    I'll concede, the Live Store is probably bigger WTF than Docker for Windows, on so many levels. Then there is Chocolatey, which is a hack on top of the shitpile that is NuGet (see: the long rant I did on here that i can't find because search is so terrible on Discourse).

    @Bulb said:

    MSI is a joke compared to any Linux package manager.

    I don't know about Linux package managers, but I can confirm MSI is also a fuckpile. It's actually fairly decent at doing one thing: managing updates to Windows itself, but they should have never used it for installing applications. Several Microsoft teams have abandoned it (we did, long ago).



  • @apapadimoulis said:

    Oh for fucks sake. This is why we (I'm pointing to @blakeyrat) hate the linux ecosystem. Windows, you have one server: IIS

    No you don't. Both Apache and nginx run on Windows.

    As to whether IIS runs circles around them, I couldn't say. That definitely wasn't true in the IIS 5 days, not sure about modern versions.


  • Discourse touched me in a no-no place

    @apapadimoulis said:

    I do have a selective memory, but I swear DLL Hell was hardly a problem in NT if you deployed the dependencies with your application; processes could load different versions of the same dll.

    I wasn't going to bother, but since you mentioned it, IIRC you could always[1] avoid the problem, except for COM DLLs[2], by putting a copy of the version of the DLL you needed in your application's directory.

    [1] I don't mean in every circumstance, I mean as far back as you care to go in Windows versions.

    [2] not sure when registration-free COM or whatever it's called came out, but that let you avoid the problem including for COM DLLs, with an app manifest.


  • ♿ (Parody)

    @powerlord said:

    Both Apache and nginx run on Windows.

    And you can also cook a filet or strip steak well done....

    @powerlord said:

    As to whether IIS runs circles around them, I couldn't say. That definitely wasn't true in the IIS 5 days, not sure about modern versions.

    IIS5 wasn't so great, and I could see other things being better. IIS6 was I think IIS5 was supposed to be, except they ran out of time. IIS7+ is great. It's still pretty new (2008), but it's damn good.



  • @apapadimoulis said:

    IIS5 wasn't so great, and I could see other things being better. IIS6 was I think IIS5 was supposed to be, except they ran out of time. IIS7+ is great. It's still pretty new (2008), but it's damn good.

    Not running IIS8 yet? Our .NET app team is being forced to move to it by our Enterprise Security team.


  • Discourse touched me in a no-no place

    @powerlord said:

    our Enterprise Security team

    They wearing red shirts?


  • ♿ (Parody)

    @FrostCat said:

    I wasn't going to bother, but since you mentioned it, IIRC you could always[1] avoid the problem, except for COM DLLs[2], by putting a copy of the version of the DLL you needed in your application's directory.

    [1] I don't mean in every circumstance, I mean as far back as you care to go in Windows versions.

    [2] not sure when registration-free COM or whatever it's called came out, but that let you avoid the problem including for COM DLLs, with an app manifest.

    Goddammit. Yeah, that takes me back. Um, yeah, I think if you were relying on the COM querying (like __createObject("shittylib.feces"), then there was a lot of fucky-fuck going on. I think it wasn't until 2003 that they fixed that. OK, so I retract the "DLL HELL WAS SOLVED IN 2000" with "2003".

    @powerlord said:

    Not running IIS8 yet? Our .NET app team is being forced to move to it by our Enterprise Security team.

    I thought it was tied to the OS version? Anyway, IIS8 is basically IIS7 with a few extra things. I don't think anything major is being planned; probably minor rubbishes here and there. It can be extended to do anything if needed, I think. A lot more modular than IIS5/6.

    Less marketingy numbers would be helpful.



  • @apapadimoulis said:

    See, that's a fundamental difference between a shitty (Linux) and good (NT) kernel. Linus has corrupted your thinking about what a kernel is by emulating the 1970's architecture. The kernel doesn't need to DO EVERYTHING or DO NOTHING. It can be separated into many layers and share memory space for fast.
    Even though processors come with four privilege rings, we only ever use two (kernelspace and userspace), and switching between them is extraordinarily painful, relatively speaking. On Linux, kernelspace is reserved almost exclusively for the kernel and hardware drivers, and other things (even filesystems) are pushed into userspace, trading speed for security/stability. On Windows, more things are "allowed" to live in there, not just the NT Executive and hardware drivers, but also filesystem libraries, crypto libraries, and even an HTTP/S server, trading stability/security for speed. I'm definitely in the Windows camp, but you have to make sure you do it right, or else you're shooting the system down.@apapadimoulis said:
    Windows, you have one server: IIS. And it's great, and runs circles around all of these rubbish servers.
    All of the Linux servers run on Windows too. With a Microsoft add-on package, even their shitty shell scripts work. They do require significant grunt though, since they typically aren't compiled for Microsoft's package and have some compatibility shim layer or another that doesn't work well.@FrostCat said:
    not sure when registration-free COM or whatever it's called came out
    2002. But there are strict requirements on both sides that most COM objects at the time did not meet.


  • Garbage Person

    Most of my IIS applications don't even speak HTTP.

    WCF over TCP is funsies.



  • @blakeyrat said:

    Ok, you know what, fuck it. I have better things to do than talk to insane people.

    And yet you keep coming back.


Log in to reply