US Postal Service Moves To GNU/Linux 477
twitter writes "The US Postal Service has moved its Cobol package tracking software to HP machines running GNU/Linux. 1,300 servers handle 40 million transactions a day and cost less than the last system, which was based on a Sun Solaris environment." The migration took a year. The USPS isn't spelling how big the savings are, except that they are "significant."
Well, not completely open source (Score:2, Interesting)
Only one year? (Score:3, Interesting)
That was my thought, too. That's pretty impressive. If it's true, whoever coordinated the move really knew what they were doing. Maybe we should elect them to the highest office in 2012 ;)
I don't think they should drop any service, tho. But then I've never understood why Sundays were considered a "day off", even. It's just another day, no matter what religious people or anyone else consider it to be. The sun rises, the sun sets, there's nothing to differentiate it from any other day, outside of some superstitious people who happen to have had influence.
Hey, it's a capitalistic society we live in, right? We should all be working 24/7/365+1/4, right? For the greater good?
Pardon my sarcasm. Or don't. I do my penance on my days off. Like today. Penance being doing laundry, housework, cleaning out the cat boxes, working on the peace treaty with my SO, fixing odds and ends, etc. It's enough. Tomorrow will be another twelve hours of busting my ass saving people from the errors of their ways*. ;)
*I speak literally, there. I make most of my money being a maintenance person for apartment buildings.
SB
Re:Sure, runs on GNU/Linux (Score:5, Interesting)
Have you ever coded in COBOL? I have. It is EXTREMELY easy. It is quite close to English and is not at all cryptic. I believe nearly any coder with any experience and a language reference guide can read through code and make changes were needed. It has been almost 10 years since I last wrote a PIC statement, but I am quite confident that not only I, but just about anyone could do it. While I think the stories about pulling old programmers out of mothballs (retirement) is rather heartening, I think they are blowing the problem out of proportion. What these companies should be doing is hiring experienced and mature coders who can learn COBOL then send them to school.
What I find disheartening is the fact that businesses are no longer able to see education and training of employees as a worthwhile investment. (I know why they probably don't see it as worthwhile and it has a lot to do with employee loyalty, but I have to insist that the problem of loyalty didn't really happen until employers started treating their employees as disposable... they have no qualms with firing and laying off people at-will and yet they expect employees to be loyal? Get real!)
Re:Sure, runs on GNU/Linux (Score:5, Interesting)
they could still reap even more benefits by recoding for modern languages and coding practices
Maybe. The fact is it appears they successfully migrated the system to a new platform within a year. I have seen many "modern" systems still jerking around with UML after a year and I can't count how many were never brought fruition.
But then, this is the US Postal Service. COBOL's probably fast enough for the task.
COBOL has a lot of issues but speed isn't a big one. I'm willing to bet that on tasks that are appropriate to COBOL it would kick most "modern" scripting languages asses in terms of speed.
Boy, what efficiency... (Score:4, Interesting)
1300 servers, processing 40 million transactions a day... that's about 30,800 transactions per server. Or one transaction every 2.8 seconds or so. With an entire Linux box dedicated to it.
I work in the scan processing group at FedEx. At peak, we see over 100,000,000 transactions a day. And that's handled on 45 linux boxes, and 12 more for the database, doing upwards of 6000 transactions per second during bursts. That's a peak of about 133 transactions per second, per box. That's a little better than 0.3 TPS for the Post Office. So we have about 400 times the performance with 5% of the hardware. By that margin, I could do their processing with about 25 boxes total. That would mean another 98% savings on hardware alone.
For some reason, I fail to be really impressed that they've gone from "Crappy performance and Expensive" to "Crappy performance and less expensive."
I wonder if I can get the bazillion dollar contract to rewrite their system... No, wait, my name isn't "Boeing" or "Lockheed" or Ken Murtha.
Re:Now? (Score:5, Interesting)
Last week on Top Gear, they raced a standard letter sent via standard post in the UK from the south of the UK to the far north of the UK and the letter won.
Total cost of the stamp? A fraction of a pound.
The US is very similar. A little slower due to the extreme distances mail has to route to, but, i'd wager on mail versus delivering it yourself anyday. Not only that it's *cheap*
Re:Only one year? (Score:3, Interesting)
Typical (Score:5, Interesting)
cost less than the last system, which was based on a Sun Solaris environment.
Two thoughts:
Re:Sure, runs on GNU/Linux (Score:1, Interesting)
Having run personally comparisons of Cobol to Modern coding languages on the same box, Cobol kicks but due to the much lower overhead per transaction. And Assembler is even faster.
Re:Boy, what efficiency... (Score:5, Interesting)
Yeah, but how many post offices are there? Doesn't each post office need one machine to talk to the main cluster?
And do people mail stuff 24 hours per day, or is there a rush hour? Where everything spikes 10x as high?
Do these servers have to do any of that optical character recognition crap to figure out where to mail stuff, or is that handled by whatever company designed that part of the system?
There's plenty of valid reasons for why they *might* need that many servers. It could even be preparations for Christmas. Maybe they keep half of them in reserve for when they're needed?
Re:Boy, what efficiency... (Score:5, Interesting)
Re:Boy, what efficiency... (Score:4, Interesting)
Well, you make a couple of assumptions that may or may not be valid:
1) you assume the "transactions" the USPS is doing are equivalent to the scanning FedEx does. We don't know what these "transactions" are - they could be tracking requests, they could be scanning letters, or something else.
2) FedEx can pretty much guarantee that all items start out with a valid barcode, while USPS cannot - they have to be able to handle a large number of envelopes that have nothing but a handwritten address on them: no bar code, no machine printed labels, just hand-printed (or handwritten cursive) labels. That takes quite a bit more processing.
How? (Score:2, Interesting)
If they're running RedHat, now they owe RH $349/year/box instead of paying Sun. That's not any cheaper.
If they've switched to CentOS or something else that costs nothing (and comes with no support), they could have switched to OpenSolaris, had an easier migration and lower retraining costs, and saved just as much money.
If they were paying Sun's extortion for hardware support, they were stupid. With the number of servers they have, they could easily come out ahead by buying some shelf spares.
I wouldn't be at all surprised to find out they were running a bunch of Sun E10Ks before and paying gigantic support bills and gigantic electric bills, and now they've switched commodity hardware and, guess what, it's cheaper! They probably could have switched to 650 (that's 1300/2, for those of you not paying attention) Sun T5120s and saved a bunch of rack space and a bunch of electricity compared to the Linux boxes.
Re:A year? (Score:5, Interesting)
Improve tracking? (Score:5, Interesting)
Will this allow them to improve their tracking system?
UPS has had an amazing tracking system for years. FedEx has improve theirs, to the point they have good estimated delivery dates and can show you what's going on with your package pretty well, like UPS.
When dealing with the post office, their system works but is... antiquated. When paying for any kind of fast shipping (overnight, two day) I can receive my package before the tracking number pulls up a package. It's not every time, but it's enough to make me not care much. What I really care about is estimated delivery dates. I want to know when I'll get my package. I usually don't care if my package is in NYC, Duluth, or San Antonio. It will get where it needs to go. I would rather have the step-by-step tracking information show up later and have things like estimated TOA show up fast.
I remember as a kid (I'm 26) you could order something from a catalog and you had basically no idea when it would show up from UPS, etc. Today I can find out where my UPS package was last scanned, nearly up to the minute. Very cool.
That would make a neat visualization. They should put that on their site, little packages moving along their correct routes around the country.
Re:Boy, what efficiency... (Score:2, Interesting)
1300 servers, processing 40 million transactions a day... ...we see over 100,000,000 transactions a day. So we have about 400 times the performance...
Take your pick of the following criticisms:
1. Good job comparing peak performance vs average performance
2. I think you might need to learn to multiply
Re:Sure, runs on GNU/Linux (Score:5, Interesting)
Re:Now? (Score:2, Interesting)
Re:A year? (Score:1, Interesting)
So good that it's illegal to compete with?
It's only illegal to jack with people's mailboxes. Get your own damn mailbox system if you want to deliver mail without standing around knocking on doors and hoping someone is home to take it.
Re:A year? (Score:4, Interesting)
Re:Sure, runs on GNU/Linux (Score:5, Interesting)
COBOL runs quite fast; it is a compiled language that was designed from the start for compiler optimization of business logic code. Think in terms of well written C.
COBOL's reputation for being slow has to do with writing the programs, and dates back to its earliest days when code had to be written as SET RIDICULOUSLYLONGVARIABLENAME EQUAL TO 2 PLUS 2. Development time sped up a lot when Gracie was finally convinced that RIDICULOUSLYLONGVARIABLENAME = 2 + 2 would work as well (the original approach had to do with coders handprinting the instructions on coding forms that were then given to keypunch operators who knew nothing about computer languages but could type really fast and accurately... so long as their fingers didn't have to reach too far from the home keys).
I was never found of COBOL in school, and never did much with it. But I agree with others that anyone who has worked with a couple of programming languages could probably master COBOL in a matter of hours: in retrospect, it is basically a simple and obvious language. What I probably could not do is reverse engineer some of the constructs that were used back in the day: a lot of weird code was developed to work around hardware limitations that no one born after 1980 will have ever seen. Much of that wasn't documented well, and I think that is why old COBOL programmers are in demand. They remember that this particular type of data structure was used to optimize read-write operations on dual high speed tapes... to a younger programmer it just looks like arbitrary stupidity and they don't know what to do with it.
Re:Improve tracking? (Score:3, Interesting)
There's an alternate explanation -- the USPS might sort its mail in such a way that doesn't require re-scanning at every hub.
Re:Sure, runs on GNU/Linux (Score:3, Interesting)
When every hiring manager skims your resume looking for the latest trendy buzzwords, a thinking person who wants to be hired will quickly realize that experience with those tools is a necessity if you want a career in software development. "Kids" (really now, we're talking about most developers) do not want to maintain or program COBOL because they know they will not be hireable after a several year stint at a COBOL shop.
Re:A year? (Score:3, Interesting)
This is not unlike the problems with insurance, which also tends to be inequitable without a lot of regulation. The people who most need it end up being the people who can least afford it.
Now, whether these things ought to be equitable is a legitimate question that society needs to consider. Maybe people born with a higher risk of diabetes or heart disease should have to work three jobs just to barely keep up with the medical bills, and stop receiving treatment at age 40 due to an inability to pay. Maybe people in the middle of Nebraska should have to pay $10 to mail a Christmas card. Perhaps there is some middle ground.
The important thing is to be honest about the pros/cons of the various models of funding these kinds of activities, and then allow society to choose what kind of a world we want to live in.