|By Greg Wallace||
|October 25, 2005 03:15 PM EDT||
Let's play word association. I say "Web Hosting." I bet "fat margins" didn't jump into your head. More likely, you thought of some of the "where are they nows" of the bubble, like Exodus and PSINet. Let's do another round - I say "New York City," and I'd wager that "cheap rent" wasn't the first thing you thought of, either. So it may surprise you to learn that one hosting company that's been around since 1993 and that's actually making money, Logicworks (www.logicworks.net), just happens to be based in New York City.
What's their secret? Talk to CEO, Carter Burden, and he'll tell you that they have low customer turnover because of their superb support, and that this also allows them to earn a modest price premium over the competition. One customer raves: "I have been a client of Logicworks for over 6 years. The service has been as close to flawless as anyone has a right to expect." - Director of Technology, Philadelphia Magazine
Sounds like a good formula: a satisfied, growing customer base and healthy margins even in a space-intensive business in one of the most expensive real estate markets in the world.
Just how does Logicworks manage to provide over-the-top customer service without blowing out their SG&A budget? Typically, the more a company spends on customer service, the lower their margins, since they need to spend money on more customer support reps. In the hosting business, companies can incur costs buying third-party systems to correlate servers to customers so that, when an issue arises or when the customer wants a new feature turned on, it can be accomplished in a controlled and documented way with minimal effort and at maximum velocity. When you're talking three facilities, two live and one backup data center, where all facilities are connected via an in-house Gigabit Ethernet MAN, you get an idea of the potential complexity. Scaling such a system smoothly as you increase customers is also a daunting task.
After struggling for years to make commercial systems fit their needs, but failing to achieve the desired results, Logicworks embarked on a bold venture to build a custom integrated asset tracking, CRM, and system monitoring tool. Pause for a moment and take this in - not three tools - one for asset tracking, another for customer relationship management, and a third for system monitoring - but one tool that does all three, and in which all three components are seamlessly connected. In June of this year, just before I became acquainted with Logicworks at a trade show in New York, they announced the availability of their creation, which they call LogicOps.
In the Beginning...
Mr. Burden passionately explains his rationale behind unifying Logicworks' operational data in one meta system. "I felt that, in order for us to simultaneously meet our stringent customer service targets and keep our operational costs in check, it was imperative that we have a fully integrated platform for all of Logicworks' systems management activities. LogicOps ensures absolute precision and tight security controls for the services we offer now, and all the services we plan to offer in the future. Even more important, LogicOps provides a high degree of transparency into our operations for our customers, giving them control over their servers' administration."
Through a demonstration of LogicOps, I was impressed with the sheer breadth of the tool. Using LogicOps, a customer can enter a service ticket to add more RAM to one of their servers, for example. A Logicworks support rep will then use the tool to assign the task to a technician. When completed, both the support rep as well as the customer will receive a notification that the task has been completed. Then, when accounting needs to reconcile their inventory of RAM, they can use the same LogicOps system to track the customer to which the stick of RAM has been assigned, and when.
Because LogicOps contains detailed data about Logicworks' datacenter layout and chassis placement, it can also draw both a top-down view of the datacenter space, as well as a front view of each rack (see Figure 1). This allows management to make decisions about expansion without having to step foot in the datacenters and without tasking datacenter engineers with "gofer" tasks. This capability extends to power and switch/router capacity as well. Because LogicOps is a centralized repository, it provides engineers with an enormous amount of data in a single location. Instead of needing to search through multiple systems to collect the information required to accomplish a task, be it an IP address, a phone number of a client, or the location of a machine, they can find it all in one pass from a consistent interface.
Build It and They Will Come
Based entirely on open source components, LogicOps stores and represents assets (servers, racks, routers, VLANs, even memory modules), customer data (addresses/phone numbers, authorized contacts, service requests), and network status (utilization, failures) as generic objects in parent-child relationships. The unified tree structure groups all service elements into interconnected patterns, allowing for greater transparency for the customer while reducing Logicworks' operational complexity.
In building LogicOps, explains the system's architect Bart Grantham, open source software (OSS) was not a requirement, but rather it was a natural fit; most of Logicworks' engineers were comfortable with OSS, and this choice provided them with a lot of flexibility, which proved to be crucial as the project progressed. Price was also a factor, though not the deciding one. Furthermore, the team's level of expertise with OSS gave Logicworks' management the comfort they needed to forgo the backing by a central authority that you get with a commercial package. (See Figure 2)
Settling on Linux (currently Red Hat ES4) as the OS for the platform was easy given the team's familiarity with Linux and the ready availability of pre-made images for server deployment. PostgreSQL was chosen as the database back end for a number of reasons. Though not necessarily the fastest open source database, the Logicworks team liked the tool's enterprise features as well as their clean implementation. They also felt that the PL/pgSQL language made the development of stored procedures more flexible and expressive, which became a big plus at the end of the development cycle when, during final polishing of the application, the team achieved an enormous performance boost by moving some small but complex pieces of the application logic into stored procedures.
The middleware language selected was PHP for its ease-of-use and deployment and because of the good supply of developers who know it. This has made finding new members of the team to support the application relatively easy. For Bart and his team, this choice has also aged well with time. The team has found that the activity surrounding PHP includes strong community support and a wide array of useful libraries, such as ADODB and Smarty, both of which found their way into LogicOps. They also liked the eAccelerator PHP code cache, which helped reduce system latency. While eminently satisfied with their choice of PHP, the group recognizes that Python would also have been a good choice. Indeed, one extension of the tool under consideration is a cross-platform desktop client that, if implemented, will use Python to deliver an enhanced user experience.
Not surprisingly, Apache won the day for the Web server, though, after reading about lighttpd's speed and nice integration with PHP, the team is giving this alternative a look to see if it can deliver any performance gains.