A handful of Red Hat engineers are excited about a new tool they've developed called Func, short for Fedora Unified Network Controller. They're pretty sure that once the rest of the community catches on to just how useful Func is, they'll be singing its praises too. Red Hat Community Development Manager Greg DeKoenigsberg says, "This is the kind of idea where everyone kind of nods and says, 'I meant to write that.'"
Big companies with big products, like Hewlett-Packard's OpenView and IBM's Tivoli, dominate the network management market. "They'll sell you lots of tools," says DeKoenigsberg. "But these are gigantic monolithic solutions costing millions of dollars." To get the feature you need, you have to buy into the massive infrastructure.
Func is different because it's tiny, customizable, and free. Func takes the most important functionality of network management infrastructures, namely task automation, strips away everything superfluous, and adds a simple programming interface. It's one of those things that seems so obvious that everyone just assumes someone else has already written something like it. But no one had, until now.
"We haven't found anything that lets people do things this simply," says developer Seth Vidal. "All the time, sysadmins run into the problem of needing to a certain set of tasks by communicating from one central server to all the others." Func provides the basic framework for secure communications between servers, allowing admins to focus on creating scripts to automate tasks that are relevant to their environments. "It can be as complex as someone wants it to be. With Func, you can hit the ground running and immediately get a result. It may not be perfect, but you can set it up today and 15 minutes later have a result to show [your manager]. If it's going to take you four or five days to set up an infrastructure just to get a 'hello world' back, that feels like a chore.
"But I can install Func on all my machines really easy, and to customize it, I can just drop in a new module, and they're very simple. For example, I wrote an inventory application using Func. It looks at what services I have configured and lets me know when they change. I wrote it in half a day using 200 lines of code." Anyone can now use the FuncInventory module with their own specific criteria. Other existing modules include hardware profiling and process info and killing. Administrators can write new modules and simply copy them into the modules directory of the Func installation.
"We're interested in building community around this," Vidal says. "The idea is that system administrators are very smart people, and we want to get all these people together to share ideas and code and software and scripts to build a more powerful system management tool. A lot of the big software applications are written without consulting the guys who have to use them. So we want to build something from the ground up based on the needs of the system administrator. We're a handful of smart guys, but we're not smart enough to write the thing that replaces OpenView. The entire world of sysadmins is smart enough, though, if they're given an ecosystem to develop that stuff together. They're going to work on the features that they would actually use."
The core developers of Func hope that it will become a commodity -- a "must have" for sysadmins that will greatly lower the cost of network management and increase automation capabilities. "How would it work if there was a community developing these tools as they needed them?" DeKoenigsberg asks. "The reality is that there are things sysadmins enjoy having available. They'll say, 'If this isn't on my system, it isn't ready. Func is that.'"
DeKoenigsberg envisions Func as an integral part of Red Hat's new Linux automation strategy of "certify once, deploy anywhere. This is another piece of that. We don't want to oversell this idea -- it's in its infancy -- but it does have the potential to be one of the things at the center of that automation strategy.
"Four years ago I started working on yum. People pointed at it and said, 'It's functional.' It probably wasn't what you necessarily wanted to run your enterprise systems. And now yum is the default updater. We made it not suck; we spent time to make sure it integrated. My point is that Func may not be in a place yet to replace [monolithic] systems, but we're excited because it's got all the right signs."