Archive for July, 2009

Gillian Kenny

First off, I’m cheap and I don’t always need the latest and greatest gadgets if my old ones are still working. Nearly 4 years ago, I bought my first iPod, a 4GB Nano for $249.00. I wanted the larger iPod classic with more storage but at $399 it was just not in the budget. At the time, my library of music was just about 4GB so I figured a 4GB Nano would keep me happy for at least a few years. Well, I was wrong! My collection has grown to nearly 16GB of music. Needless to say, I want/need to upgrade to a new iPod but my Nano still works perfectly. So, I had a dilemma, upgrade or just keep using the Nano until it died which would justify a new one.

Well, my decision was made even more complicated when a few months ago I won a new 8GB Microsoft Zune. My first reaction was “no way, I’m not using that thing, it’s ugly and it’s from Microsoft.” I quickly dismissed the thought of using it and put it on top of my fridge where it sat for about 6 weeks.zune

A few weeks later it occurred to me, that I knew nothing about the Zune, I had never used one, never held one, and didn’t even know what was in the box. There it was, brand new and complete with an extra 4GB of storage. Was I really such a Mac snob that I was refusing to use it without knowing anything about it?

So, I went onto Microsoft’s Zune site to do some research. What I found there impressed me. Why? Because it had all the features that I wish my iPod had. FM Tuner, Wireless Sync, Wireless Music Sharing, and the clincher, Wi-Fi, which would allow me to search, buy and download songs directly to the Zune player!

Microsoft had my attention now. I read the online reviews and the hundreds of Zune vs. iPod comparisons and it seemed that for all intents and purposes the Zune was the way to go; now I couldn’t justify not making the switch. I was ready. It had all the features I wanted and more storage and best of all it was FREE!

There was one problem though; iTunes. Over 4 years I’ve spent hours organizing my iTunes library, playlists for every occasion, podcasts, videos, etc. I love iTunes, it’s all I’ve ever used, it works for me. I buy music from iTunes weekly, I rent movies and I buy TV shows. Could I use iTunes with my Zune? Back to the Internet, back to the blogs, back to the comparisons. The verdict? Both are comparable, and in the end it was difficult to declare one the victor until I came across these two lines in a blog “the Zune should carry over the non-protected iTunes music, but if you purchased songs from the iTunes store (or any other online store) you’re out of luck. Also, there are no TV and Movies on Zune. This may either be a big deal or a non-issue.”

For me, those two things were an issue, a big one. I wasn’t willing to forgo hundred of dollars worth of iTunes purchases and I wasn’t about to convert them all to DRM free MP3’s. And so, my mind was made up. In the end, my decision actually rested on software not hardware.

The Zune went up on eBay. It sold yesterday. So, Janice in Florida, enjoy your new Zune! As for me? I’m upgrading to a new iPod.

Gillian Kenny

Michael Conigliaro

Because I work with a lot a of Windows guys, I tend to describe Puppet as Group Policy for Linux. The basic idea is to centralize your host and service configurations, so that you don’t have to waste time configuring the same things over and over again. Once you have a set of standard templates, you can simply apply them to the desired hosts and let Puppet do all the configuring for you. This article is not meant to be an in-depth Puppet tutorial (you can find that elsewhere), but more of a high-level overview of how to design a flexible Puppet infrastructure.

Zones and Roles

The first thing we did was organize our hosts and services into “zones” and “roles” (similar to the Example (42) Infrastructure Design Guidelines). A “zone” says something about where a particular host lives (e.g., which network it’s on or which customer it belongs to), while a “role” says something about what the host does (e.g., serves web pages, routes email messages, etc.). Note that Puppet has no built-in concept of zones and roles. This is just a method of organization that worked well for us.

Modules

Once our zones and roles were defined, we needed to create the “modules” that make up our various roles. A “module” is simply a way to group related configuration options together. For example, we have modules with names like “apache,” “bind,” “mysql,” and “postfix.” Each module contains the scripts and files needed to apply the appropriate configuration for a given service.

Module Example

Here is an example of a module that we use to manage the SSH service on some of our servers:

class openssh::server {
    package { "openssh":
        name   => "openssh-server",
        ensure => installed,
    }
    file { "sshd_config":
        path    => "/etc/ssh/sshd_config",
        owner   => "root",
        group   => "root",
        mode    => "600",
        source  => "puppet:///openssh/sshd_config",
        require => Package["openssh"],
    }
    service { "openssh":
        name      => "sshd",
        enable    => true,
        ensure    => running,
        hasstatus => true,
        require   => Package["openssh"],
        subscribe => File["sshd_config"],
    }
}

I don’t want to go into a lot of detail here, but you should notice three distinct sections in this module—”package,” “file,” and “service.” In Puppet lingo, these are called “resources,” and are the basic building blocks of every Puppet configuration. Puppet resources allow you to focus on what you want to do, and let Puppet handle the platform-specific details of how it gets done. In this example, we tell Puppet to do the following:

  1. Use the package resource to ensure that the “openssh-server” package is installed.
  2. Use the file resource to overwrite the sshd_config file with our modified version (making sure to set the proper permissions on the file).
  3. Use the service resource to ensure that the “sshd” service is running.
    • If any changes are made to the sshd_config file, then restart the sshd service so that the new configuration takes effect.

Role Example

Now that you know what a module looks like, let’s look at how roles are built up from modules:

class role_default {
    include openssh::server
}
class role_lamp {
    include role_default
    include apache::ssl
    include apache::php
    include mysql::server
}

There are two roles here; role_default (the role we apply to all hosts) and role_lamp (for Linux/Apache/MySQL/PHP servers). Notice that our example openssh::server module is assigned to role_default, and role_lamp includes role_default, as well as three other modules. This demonstrates how complex roles can be built up from smaller roles.

Zone Example

At Fandotech, we typically use zones to set variables that override the default behavior of certain modules. In other words, a given module may configure things differently depending on what zone the target host is in. In this example, we set a variable to allow the “LinuxAdmins” group to log on to hosts that live in the zone_fandotech zone:

node zone_fandotech {
    $accessconf_rules = ["+ : LinuxAdmins : ALL"]
}

Node Example – Tying it all Together

Nodes are the individual hosts managed by Puppet, and are what tie everything together. Let’s look at one final example:

node default {
    include role_default
}
node 'example.fandotech.com' inherits zone_fandotech {
    include role_lamp
}

In this example, we have a special “default” node, which refers to any puppet-managed host that does not have explicit node configuration. We also have a node called “example.fandotech.com” which lives in the zone_fandotech zone and gets all the configuration options from the role_lamp role.

Conclusion

Puppet promotes efficiency by making it possible for a single administrator to configure hundreds (or possibly even thousands) of Linux machines without having to log on to a single one. It also helps ensure standards compliance, and if your Puppet configuration is stored in a source code repository (which it should be), then you have a built-in audit history of every change made to your systems.

The bottom line is that if you’re still trying to manage Linux machines without a configuration management system (like Puppet), then you’re doing it wrong.

Michael Conigliaro

Gillian Kenny

Twitter for Business?

I just read a blog about Twitter and the challenges of leveraging the social networking phenom for business. (Click to read.)

I found this article interesting. It put into words what I’ve been unable to express. I’ve been grappling with how to use Twitter appropriately and effectively in the business community. But I keep coming back to the question, what does Fandotech have to say daily that will bring value to our followers? Turns out, according to this article, that’s the right question. On the other hand, would it be more effective to have my sales team tweet?

Having their finger on the pulse of the marketplace, and the needs of our clients, puts our sales team in a much better position to tweet more effectively and more frequently. Where as Fandotech would only need to tweet about very deliberate and specific events, such as maintence windows, network updates, status alerts, and product releases. This would be especially useful in the case of a network down catastrophe where only our cell phones could potentially link us to our clients. These instances would be rare, but I could see how Twitter could serve an invaluable service.

The article signs off with the following words of wisdom, “…remember that success is found online when you provide value to others.” I’m definitely interested in hearing how others are leveraging Twitter in the business community and/or personally to stay connected. Creative ideas for bringing value to our clients through our communications with them is alway appreciated!

Gillian Kenny

Corey Slack

If you get what seems like an infinitely large number of emails like I do, you might be looking to managing them more efficiently. An inbox that gets flooded can be difficult to navigate.  If you’re having a stressful day, why add to it? Take a few minutes to set up some folders and rules in Outlook to make your life a little easier.

You can right-click your Inbox on the left-hand side of Outlook to create a new folder. This will create a new folder within the Inbox, and this can be quite useful for categorizing your emails. For instance, you can have one for meetings, one for email from the finance department, and one for personal email. You can have one for people working out of different locations, or perhaps all the email that comes from a specific company.

Now, once these are set up, the email will continue to land in your Inbox, meaning you must manually sort and drag them to the appropriate, newly created folders. This can be time consuming, which is why there are rules.

You can access the rules by selecting “Tools” from the menu bar in Outlook, and selecting the option “Rules and Alerts”.  From here you have a large array of options. You can take any emails from a specific person and have them automatically go to a certain folder when they arrive. You can set this up so you receive and alert.  You can apply a different rule that will look for key words in the subject line and move them to a different folder based on that. As an example, I have a rule that takes any email from a certain address, forwards it to another address, and deletes it.  So I never even see it-it just goes straight to the forwarding address.

Take a few minutes and play with some of the options. You’ll find them quite useful.

Corey Slack

Brian Doyle

There’s a lot of buzz about the cloud in the IT industry today. One of the biggest questions I’m often asked is what exactly is the “cloud”? The definition is much simpler than one would think; the cloud is merely the Internet.  The reality is any application or service that is delivered to you via the web is, in essence, a cloud-based service. Pretty simple and not exactly unique! The truth is we have been using the cloud since the inception of the Internet.

I would argue that websites could be considered the first cloud application since without the Internet the sites could not exist. This was soon followed by e-mail and instant messaging services that even the most technophobic people have been using for nearly a decade.

So what’s different today? The biggest thing is that bandwidth has become more readily available, reliable, and cheaper than it was as recently as three years ago. Additionally, many people become more reliant on their cell phone as their primary medium for communication and carry web-enabled devices. These factors have changed the mindset of the application developers who now focus on developing programs that can be accessed via the web from any device that’s connected to the Internet. The expectation of people today is that they can access their data and communicate with others anywhere, anytime. 

So how does this translate to business use? Companies have been leveraging the cloud for quite some time, utilizing applications like Microsoft’s Terminal Server or Citrix XenApp (formerly Presentation) server. These allow companies to leverage the web for remote access to company information, no VPN required.

Another great example of a cloud delivered application is Salesforce.com. This application provides clients with customer relationship management (CRM) services via a public web address and secure login. This application stores and makes accessible a company’s most valuable asset, their customer data, yet no part of the solution resides at the client site. Salesforce.com’s success and track record has helped gain customers confidence in embracing cloud delivered applications.

At Fandotech one service we deliver via the cloud is our Boomerang Offsite backup service. Boomerang automates the backup at our clients’ sites, secures all data for transmission to our data center, and eliminates the need for clients to take tapes offsite.

So is Fandotech a “cloud” company? The definition above allows me to safely say Fandotech has been a “cloud” company for years. We’ve been providing hosted websites, e-mail services, and data center infrastructure for nearly a decade. Newer services have been introduced over the last year (Boomerang Recovery Solutions, 360ITv) responding to customers’ needs for business continuity, disaster recovery, and outsourced infrastructure. Also, customers calling into our technical assistance center (TAC) have received support delivered via the cloud as our technician’s reach into your network environment from afar to assist.

This is an exciting time for businesses as the cloud offers potential to reduce costs for hardware, applications, and support. And you can confidently move forward knowing that Fandotech has been a long-term player in cloud delivered services and is continuing to broaden our scope of services provided via the Internet. 

Brian Doyle