Remix.run Logo
▲ EvanAnderson 7 hours ago

> But behind the scenes it is all just still Exchange which if anyone has experience managing, its a complex nightmare of code going back decades. With all sorts of Active Directory requirements and everything else. The mail database system it uses, and probably still used in Office 365 (Office 363 today?) is also a nightmare.

I hear this so much, but this hasn't been my experience. My experience goes back to Exchange 4.0. I've run every version of Exchange in production. Am I the only person who has a favorable impression of the product?

Exchange and Active Directory are easily my favorite MSFT products. I've always wished they would port them to Linux, even though I know that OS dependencies make that a non-starter (though they surprised me w/ SQL Server for Linux).

I'll concede that the the biggest Exchange environment I ever ran was around 1,000 mailboxes. I've never seen how it fails in really large environments. I was also fortunate that I only ran the earlier versions (pre-2013) in sub-500 mailbox environments. In those settings, though, I found it worked well and wasn't bad to administer.

It was very reasonable to use in small business environments, too (sub-100 mailboxes). I put a lot of little Exchange 2003 boxes out in small offices. It plugged-away very effectively.

Yes-- there were updates here-and-there that had issues, for sure. By-and-large it was a stable and predictable product.

I always tried to be mindful of maintaining free disk space, following MSFT's recommendations for speeds-and-feeds for I/O, and running on solid hardware (ECC memory, redundant power, UPS). I feel like I would have had more problems if I'd scrimped on that stuff, for sure, but I was unwilling to let Customers cheap-out.

With Exchange 2019 and high-availability (database availability groups) I was easily able to do zero-downtime maintenance. That "big for me" Exchange Customer I worked with had more downtime in the last 24 hours than they did the entire time they used Exchange 2019 in production.

I haven't seen the code, so I can't speak to the "nightmare of code". Large parts of it were ported to the .NET Framework in between the 2010 and 2013 releases. The 2013, 2016, 2019, and current Subscription Edition releases appear to be an evolution of the codebase with no signs of major rewrites. I question how much pre-2013 code is even present in the codebase anymore.

I dunno. My experience just hasn't been that bad. I don't want to be an apologist for MSFT. I've never fully gotten over the suspicion I have for their motives going all the way back to the Halloween documents. I don't like how they're forcing everyone to hosted offerings and killing their on-prem products. I've been pleased with the value my Customers realized from Exchange.

▲throw0101c 6 hours ago | parent | next [-]

> Exchange and Active Directory are easily my favorite MSFT products. I've always wished they would port them to Linux […]

How is Samba 4's AD 'emulation' these days?

▲EvanAnderson 6 hours ago | parent [-]

You know, I still haven't tried it. That's been on my to-do list for awhile now. I really like Samba (and used it as my homelab CIFS server for years) but I never explored the AD Domain Controller functionality.

▲solraph 3 hours ago | parent | next [-]

I use Samba AD as the basis for SSO on my home network that has every major OS, and once it's running it's fine. There's a couple of gotchas (don't use SSSD, use winbind for PAM on Linux machines for example, and make sure your reverse DNS actually works), but honestly the biggest problem I've found was that a lot of the information out there is either Samba3 related, or assumes you are not using the AD tools

The advent of for AI coding has meant that I can now start building a bunch of those Quality of Life tools[0] to help set up and maintain the Samba domain. I've a few that are good for daily usage, and a couple in the works for the initial setup which aren't yet ready for public consumption.

[0] https://edward-murrell.github.io/packages/

▲jra_samba 5 hours ago | parent | prev [-]

It's pretty good now, although, like all open source projects we're being hit with a tsunami of AI reported bugs right now.

▲EvanAnderson 4 hours ago | parent [-]

I definitely need to give it a shot. I'd love to get rid of Windows Server at home and use it as PoC for doing the same at Customer sites.

I wish I could live w/o Active Directory but, even at home, my threshold for Windows machines I'll tolerate administering w/o Group Policy is "any more than zero".

BTW, assuming you're who your HN username makes me think you are: Thanks for all your work on Samba. I've used the hell out of it at home and with Customers for at least two decades.

▲InsidiousWombat 7 hours ago | parent | prev [-]

> I hear this so much, but this hasn't been my experience. My experience goes back to Exchange 4.0. I've run every version of Exchange in production. Am I the only person who has a favorable impression of the product?

yup. You're the only one.

When we ran our own mail servers, "some fuckery with client's Exchange server config" was good 90% of mail problems we had.

And my experience with the cloud version management decided we will migrate to has been entirely awful too, simple stuff like "stop spamming the mailing list I get constantly" is entirely impossible to set up, despise both global and per mailbox rules to let it thru, it still lands in spam and the useless support we apparently pay for can't figure out why

▲EvanAnderson 6 hours ago | parent | next [-]

> When we ran our own mail servers, "some fuckery with client's Exchange server config" was good 90% of mail problems we had.

As an Exchange admin (and Postfix, Sendmail, qmail, exim) that was my experience, too. I think the popularity of the product, questionable defaults, and the low barrier to entry for admins (read: lacking in experience and knowledge) contributed to that.

▲treebeard901 7 hours ago | parent | prev [-]

Managing it in small and large corporate enviornments for over a decade led me to believe that when it was working, Exchange was very stable and reliable.. But when things would break, they would break in a way that required extensive knowledge of all the areas to fix. Which was a form of job security so Im not complaining.

I guess past reliability might be irrelevent here if an AI slop patch for AI discovered exploits caused the outage. Just speculation though. Since exchange has so many moving parts and so much legacy code, with even more bolted on to make it a cloud service, I could see how an AI exploit fix would not have all the context needed.

There is no information that it was caused by Exchange either, guess we have to wait on those answers. It is just a reasonable assumption.

▲InsidiousWombat 6 hours ago | parent [-]

Open source options tend to require a bunch of knowledge to set up but after that you generally are equipped with that knowledge to solve any configration issue. I wrote "configuration issue" because aside from "ran out of disk space" none of them really "broke", so it was never "fixing the thing", just the usual mail server admin stuff of figuring out why this or that server didn't like us.

▲EvanAnderson 6 hours ago | parent [-]

A lot of the bad situations I helped bail other contractors out of, when it came to Exchange, related to disk full conditions, a lack of understanding how transaction logging in the database worked, and database inconsistencies brought on by hardware RAID controller issues or hard power-offs. Very nearly all of my ugly ESEUTIL and ISINTEG experience came from people not respecting the product's storage needs.

Sysadmins who were used to running file servers and thought Exchange was the same thing were the problem. A DBA was actually more apt to understand the product's storage needs because it wasn't wholly dissimilar from the RDBMS they supported.

▲gmueckl 3 hours ago | parent [-]

Exchange's internal storage is an RDBMS. It's a massively evolved fork of the database engine that was in MS Access.

▲EvanAnderson 2 hours ago | parent [-]

It's not a RDBMS, though. It's more like a NoSQL database. It also doesn't share lineage with Access other than its code name having "Jet".

https://en.wikipedia.org/wiki/Extensible_Storage_Engine

It's open source now, too: https://github.com/microsoft/Extensible-Storage-Engine