I thought I’d share a little about the hows and whys of the application I’m developing for the Mac. As I’ve said before, I’m a systems administrator during my day job, where I work in a cloth covered box. The box is very nice, it’s quiet, and I have plenty of opportunity to get my work done. Maybe too much time… and maybe its too quiet. For whatever the reason, I’m not satisfied in the box, and have been looking for ways out of it almost since I started. I spent a good amount of time learning Cocoa last year, only to become frustrated with the amount that I didn’t know after going to a local cocoaheads meeting. I dropped programming after that for a while, and have chased several other interests and possibilities over the past year. Everything from web design to consulting to writing, if it had a chance of getting me out of the box, I looked at it. Nothing worked for me.
I’ve now returned to Cocoa, and have made my goals public. I’m planning on launching my application, named “Servers” at next years WWDC conference. Everything after that is unknown, it all depends on how well the app does with the public. So, that’s the introduction, now for the planned feature set.
Servers is an application for performing basic systems administration on Linux and Unix servers. It uses a familiar iTunes-like interface to manage the details of your servers, with groups on the left, and a list of servers on the right. You can find details like host name, IP address, CPU type and speed, hard drive size type and speed, operating system version, installed software, hardware lease details, etc… Highlight a server, hit the hotkey (probably just return), and Terminal pops up with an ssh session to that server. The main point of Servers is to be a database for all of the good to know information about a server farm. It’s also a quick way to ssh to the servers. I’m looking at RDP for Windows boxes, but that’s yet to be figured out. VNC maybe as well.
Most of what I have above is done. There are however a few features that need to be added before shipping 1.0. The main thing I’d like to add is Nagios integration. Since Nagios doesn’t have a decent API, I’m not sure exactly how I’m going to go about this, but at a minimum, I’d like to see a visual indicator in Servers when Nagios detects a problem, and then be able to interact with Nagios from inside of Servers to fix the problem.
The second major feature I’m planning on adding is a gui to automate ssh key exchange. Just a simple wizard that will generate a key-pair, prompt for the passphrase, and then distribute the public key to all of the hosts in Servers. This is something I always do on the command line, so it only makes sense to bring it into Servers.
Finally, I think it’s going to be expected by this time next year to include an iPhone version of Servers. So, that’s in the plans, not started, but in the plans. I’d imagine most of the features of Servers on the desktop should move over to the iPhone, wiht the exception of ssh/vnc/rdp connections. Personally, I think it’d be handy to be able to walk through the data center with the iPhone in hand and enter data on hosts as you are looking at them.
The price is yet to be determined, but I think there’s a sweet spot somewhere between the massive commercial offerings and the massive open source products that install on the server and access through a web browser. Since Snow Leopard is making it easier for Macs to integrate into the business, I think there is a niche market for systems administration tools that take advantage of the beauty and the power of the Mac.
[...] of the features of Servers.app is that it pings the host and shows a little indicator for it’s status: green is good, red is [...]