David F. Skoll (Ottawa, Ontario, IT Pro)
A few months ago, through this blog, I met David. We had an interesting conversation through the comments section and via email about a number of things. One of those things was the solution he built for his business that runs on 100% open source software. I found it to be an interesting solution and asked him to share it with the Canadian IT Pro audience. Now you may be wondering why I am highlighting an open source solution? Well first of all I have always believed in the right tool for the job, I also believe everyone has the right to their opinion on what that tool is. I also believe in highlighting IT pros and their innovative solutions.
On the Core I|O Tour Rick and I built a solution for branch offices using Microsoft technologies, but there are plenty of other ways to build that solution. David has an interesting solution using all open source software, but the same things can be done with Microsoft technologies. The point is the solution and how it addressed the challenges of the environment.
My small company, Roaring Penguin Software Inc., runs entirely on open-source software. This post will give you some insight into why we do this and how all our software pieces work together.
I started Roaring Penguin in 1999 as a Linux consulting firm. Although I've been programming since 1980, I somehow never used Windows or Mac OS extensively -- I started out on a TRS-80 CoCo, then moved to MS-DOS. In university, everything was DOS or UNIX, and after university I worked on UNIX and then Linux. So it was perfectly natural for me to move to Linux on the server and the desktop; I never even thought of trying anything else.
Now, Roaring Penguin is a product company and we have 12 employees. We supply Linux desktops to our employees, although there are three who prefer Windows or Mac OS---they are permitted to run Windows or Mac OS providing they own the hardware. In practice, those employees simply use their own laptops at work.
The most basic part of our infrastructure is everyday desktop software. We've standardized on Ubuntu for non-technical people and Debian for technical people. Non-techies use the GNOME desktop and techies use whatever they like best (GNOME, XFCE, fvwm, etc.) Fundamental desktop apps are: A web browser (Firefox), an office suite (OpenOffice) and an e-mail tool (Thunderbird mostly, but people are free to choose their preferred e-mail client.)
Initially, I was concerned about the learning curve for non-technical people, but it proved not to be a problem. I simply showed new employees how to log in, told them "Click this button for e-mail, this one for a web browser, and this one for a word-processor". Even though most non-technical users had not used Linux or OpenOffice before coming to Roaring Penguin, they adapted to the Ubuntu desktop quite easily. We didn't need to provide any further training for them to be fully productive.
Next, our server infrastructure: Our mail server runs on Sendmail with the dovecot IMAP server. We use NFS for home directories and Subversion for revision control. Even non-techies use Subversion; that way, all of our brochures, case studies and other documentation is centrally-managed and easy to find. We run many server-side applications, most of which are accessible via a Web browser: We use Ledger-SMB for invoicing, SugarCRM for customer relationship management, and RT for ticket-tracking. (We used to use Salesforce for CRM, but found the cost prohibitive. We hired a consultant to dump our Salesforce data into Sugar and migrated a couple of years ago.) Another great server application is TWiki, used for storing such information as notes about our computer systems, competitive information, information on nearby restaurants, etc.
Most of our server-side applications are back-ended on the excellent PostgreSQL RDBMS. Unfortunately, SugarCRM only supports MySQL, so we run an instance of MySQL also. For remote access, we use OpenVPN. This is a terrific SSL-based VPN with clients for Linux, Mac OS X and Windows. It permits our employees to access mail and the web-based apps remotely. Our phone system also runs on Linux; we use the Asterisk VoIP PBX software. It takes our analog lines and converts to SIP; everyone has a SIP phone at his/her desk. Our 1-800 number comes from a SIP provider into our Asterisk box. With OpenVPN, road-warriors can have their extensions ring through to them whether they're in the office or on another continent.
While all of the software I've described is excellent, we've gone a step further. Because Roaring Penguin employs talented developers, we've written a glue layer to integrate all of our software together. For example:
-Using IRC as a company-wide "message bus", our phone system generates events as calls are made or received. Various IRC bots react to these events. When a call comes in:
o Your browser can automatically open to the customer's page in SugarCRM
o Support staff automatically get a list of tickets for that customer
o A display in our kitchen flashes so if support staff are having lunch, they can pick up the call in the kitchen (depending on the size ofthe customer!)
-Various scripts integrate our Sugar, RT and Ledger-SMB databases. On the SugarCRM page we can see a summary of a customer's recent support tickets as well as the status of recent invoices.
-Our Asterisk server has scripts to allow after-hours support calls to page a Blackberry device (and automatically open an RT ticket.)
-Any phone number on a SugarCRM page can be dialed by clicking a little telephone icon next to the number. This reduces mis-dialed numbers and can save a lot of time for long international numbers.
-A small desktop panel shows the current state of phones and phone lines. You can click on it to get a history of the last five calls. This is especially helpful for support staff to track the length of support calls.
-True to our open-source roots, the integration code is written in open-source languages -- Perl for the most part, with some graphical tools written in Tcl.
I'm so happy with our open-source infrastructure at work that I've replicated some of it at home. I also run Asterisk at home and use the great "Zapateller" feature to discourage telemarketers. If our phone line is in use (which is often---we have a teenage daughter), our Asterisk box simply VPNs in to work and lets us use one of the office outgoing lines for a local call.
There are four computer users at our house. So I run four X sessions in four virtual terminals. That way we can all stay logged in and just switch to the proper virtual terminal when we want to use the computer. You can just suspend your work/game/whatever when someone else needs the computer and then resume it when it's your turn again.
In summary, open-source software has helped me and my company solve problems effectively and elegantly. The software licensing cost of $0.00 is a bonus. Open-source software has truly improved the quality of my life.
David Skoll has been hacking on computers since 1980. Although has degrees in electrical engineering, all of his professional life has been spent in the software world. His past projects include electronic design automation software and software to assist in the reverse-engineering of integrated circuits, as well as free software tools like Remind (a UNIX calendar/reminder tool) and RP-PPPoE (a PPPoE client for Linux.) Since 1999, David has run Roaring Penguin Software Inc., a company that develops anti-spam software.