This oddly sounds like a death knell for Windows. I am not seeing anything here that is not in the LAMP / OSS stack as standard (graphite, nagios / Munin)
If we rephrase the blog post as "we could not find any good tools in the Windows devops space so we wrote them" and add it to the departure of the only CEO willing to dance on stage chanting developers developers developers and Windows is not an ecosystem but a hub with a few brave outlying satellites.
I am impressed by the stacke change folks and their story and skills but it feels like amazing stories of software skill written for one company and never released in the open - it just leaves no legacy
That's actually a very good point and a major downside to the open source tools. My whole work experience (and that of many sysadmins) is in primarily Windows shops. Since many of the OSS tools don't work or require hacks to make them work on Windows.
As far as what we do at Stack, a lot of our code gets released. Not the core q&a engine, but our logging framework (StackExchange.Exceptional), a profiler (MiniProfiler), and some other stuff. On the sysadmin side, we are active in developing Desired State Configuration modules and contribute those to the PowerShell.org DSC repo on GitHub. Part of the job description for our SRE developer includes the fact that much of what we develop in house will be targeted to be open sourced.
The miniprofiler was such an inspiration that i built the same thing for the PHP / ExtJS single page app that i work on. Now i can call up a floating window at any time listing all the recent network requests in the session, formatted much more appropriately than the browser's network view, and the database queries run for those requests, with timing and memory size info. Incredibly convenient while developing or debugging, and i doubt it would have happened if i hadn't seen the miniprofiler first.
You should consider porting that to the official miniprofiler standard (https://github.com/miniprofiler/ui). We want ports in other languages, and php would be welcome. You just have to make the backend, frontend is done and documented above.
In my experience, Windows tooling for serious admin work is either terrible or massively expensive/enterprise.
For instance, a key problem I had in a prior gig was that I needed to automatically log into a Windows machine, run a job, and then log out. Pretty bog standard; didn't need careful error recovery or anything particularly sophisticated.
In Linux, you configure your SSH keys, then ssh automatedjob@server -c "./run-my-thing", and that's that. I literally could not find any identical analog in Windows besides telnet (if anyone knows of a solution here that approximates the Linux one for simplicity, I'd love to know about it). Today I'd probably just requisition a copy of a Windows SSH server and be done with the sorry mess. Better yet, throw Windows out and go full Linux. ;-)
Windows has advanced in a lot of ways over the past several years. We hired Steven Murawski a little while back (Powershell MVP) and he has been able to automate just as much as would expect in the Unix world.
He is also priming out infrastructure for Desired State Configuration (configuration management (like Puppet/Chef) for Windows).
Not at all. The Windows OS now has command line accessible management points that are similar to Linux. There is still a great deal of difference in their management models (I blogged about this a while back - http://blog.serverfault.com/2013/06/03/cross-platform-config...)
That I was hired as a Windows specialist was so that we can go deeper on the OS side and the PowerShell side, just as we have a Linux expert to go deeper on the Linux side. Our sysadmin team was just more tilted with experience on the Linux side (though you wouldn't know it - as almost everyone I work with would qualify as a senior admin in any Windows shop in the world).
I am glad to see that there are comparable capabilities in the modern Windows world and will dig into the WMI side of things next time Windows admin tasks come up.
That's a good question. The best answer is that the configuration needs to be a version controllable artifact just as much as your code is. Further, Windows Scheduler is known to drop jobs from time to time[1].
What was happening is that there was a job controller running on Linux that needed to contact the Windows machine and boot the job into action. One solution would have been to install a Jenkins slave instance, which turned out to be the solution eventually adopted.
[1] It's been a few years since I studied this, but it was a known issue in '08/09 or so.
Ah, PsExec. Yes, I reviewed that. However, the issue with PsExec has to do with credentials. If you don't bother with the user/password, it impersonates your account, which has certain restrictions[1]. That was not feasible due to most interesting things living on network drives. If you do bother with the username/password, you have to store those somewhere (remember, automated system). So now instead of running psexec directly, you have to have a tool that grabs the password file, hopefully decrypts it, then runs psexec.
Also, iirc, using the psexec interface from Linux in a Linux->Windows connection does not work (a wrinkle in the original story is that it was a Linux->Windows connection).
What, in practice, is the difference between creating an account and SSH key that gives passwordless sudo (or other authorization) and creating an account and password that gives appropriate authorization?
I can generate a unique pair of ssh keys for each client that has to remote into a system; I have to have a consistent password for the same user across all systems (assuming integrated login).
Supposing that a keyfile is copied, the multiplicity of ssh files limits the damage.
This kind of thing is easily handled with Kerberos. Joining Unix servers to AD doesn't require that you manage your entire Posix user database there. You can just use a Service Principal for this.
I can see how a developer outside of the Microsoft development stack could see it that way, but it is misinformed.
Windows will die, to make way for Azure and Windows Phone.
The Microsoft development ecosystem is strong (C# in top 10 of TIOBE index). It has open source released by Microsoft (ASP.NET MVC), 3rd parties (Mono by Xamarin), and the community (opensourcewindows.org). Microsoft includes open source libraries (jQuery) in their projects.
StackExchange's software will leave a legacy.
From the article: "In order to create more, and open source it we need help. So we are looking a full time developer with ops experience to join our SRE team."
We (can I say we? I don't work on Windows stack stuff at here but whatever) are actually one of the biggest open source contributors in the .NET world, granted that's just my opinion and I don't have data behind it, but here's a list of things we've open sourced: http://blog.stackoverflow.com/2012/02/stack-exchange-open-so...
MiniProfiler is my favorite one, and now exists in .NET, Ruby and Node.js due to my insanely smart co-workers.
Please don't take it as a criticism of your work - but the fact that one small company (<100?) that does OSS as a side effect (plus recruitment retention effort) can be one of the largest OSS contributors in the dotnet ecosystem says its not a vibrant and thriving ecosystem.
SE has a very high reputation as far as I can tell so its not a quality issue - it is in this case a problem of quantity.
As someone commented the idea is to focus on Azure and mobile - but that is no substitute for lots and lots of developers in a culture of releasing stuff outside their immediate company and so driving each other to new heights
The snowball has been growing here for the last few years. The .NET community was historically not very "open" ... but ever since nuget and github, attitudes have definitely been improving.
If we rephrase the blog post as "we could not find any good tools in the Windows devops space so we wrote them" and add it to the departure of the only CEO willing to dance on stage chanting developers developers developers and Windows is not an ecosystem but a hub with a few brave outlying satellites.
I am impressed by the stacke change folks and their story and skills but it feels like amazing stories of software skill written for one company and never released in the open - it just leaves no legacy