Here are some more quick hits from the Cultivate Conference last week in New York.
Culture / No Comments
Culture / No Comments
Last week I had the opportunity to attend O’Reilly’s inaugural Cultivate Conference in New York City. Organized by two tech industry veterans, Eli Goodman and Kate Matsudaira, the conference was just what I needed: a group of super-intelligent folks getting together and talking about culture and leadership in an industry where such discussions are all-too rare. Instead, our field celebrates the “cult of the engineer“: the singular focus on often-heroic technical achievement to the exclusion of all the other factors, including leadership and organizational development that are needed for companies to truly succeed both as industry leaders and as sane places to work.
The celebration of minimal or no leadership has been subtly reinforced by blog posts from company founders like Ryan Carson of Treehouse, which seem to imply that management (and leadership) only get in the way of product development. These kinds of blog posts sadden me. I’ve certainly worked in enterprises where layers of useless middle management decreased business agility and added to the firm’s impending obsolescence, but I’ve also had managers who truly took the time to consider my career development and served as my mentors. Obviously, I am conflating “management” and “leadership”, and these are two different things. But at the end of the day, good managers do serve a useful function, and to abolish that role entirely leads to stunted growth in an organization.
I’m getting ahead of myself as I preach from the soapbox, so let me summarize some of the interesting lessons I learned from the conference. This will be a series of posts, because there’s no way I can write this all at one sitting. Continue reading…
I often get asked how to automate host naming and/or DNS records using Chef. In fact, there was an individual in IRC today who asked some variation of the same question I always get:
Currently I set hostnames on my nodes by looking up the ip from ifconfig and doing a reverse DNS lookup on that IP. It turns out this is painful since my upstream never sets the rDNS correctly without nagging. I’m thinking of just building a “nodes” data bag with IP -> hostname mapping. Is there a better way to do this?
Often I’ve answered people by telling them that if they’re using configuration management, the names of their hosts are completely irrelevant. They shouldn’t even bother adding them to DNS or to even care what their names are. I thought I’d explain my rationale behind this and why host names are largely unnecessary if you’re using a configuration management tool like Chef. Continue reading…
A month ago, I presented a webinar entitled “Cooking on Windows with Chef” that demonstrates the power of Opscode Chef on Windows. If you missed the webinar, you can watch that recording here.
One major way in which Windows has lagged Unix/Linux is in the desktop-based virtual machine development model using tools like VirtualBox and Vagrant. Vagrant, if you’re not already familiar with it, allows you to bring up and tear down development environments very quickly, and provision (configure) them using the same Chef cookbooks with which you’d configure your actual production environments. To that end, a bunch of folks have released an updated version of the vagrant-windows plugin, which adds WinRM and native shared folder support between Windows guests and the host operating system. Vagrant-windows has actually been around for a while, but had to be updated to deal with the API changes between Vagrant 1.1 and 1.2. This took a significant amount of work. Continue reading…
Ryan Holmes, the CEO of Vancouver social media startup HootSuite, wrote a column in today’s Financial Post entitled “Why Canada is failing at tech“. Holmes basically asserts that Canadians are “failing” at technology because the country isn’t graduating enough computer science and engineering talent to fill the available job openings. I don’t think Holmes has gone deep enough in his analysis. Why aren’t many people choosing computer science and engineering as career paths and the “jobs of tomorrow”? The answer to the question, I think, is pretty simple: it’s actually not a very nice job being a software developer. Continue reading…
Politics / No Comments
Visiting Toronto after two years away is like waking up from a coma. I’m in a city whose built forms I recognize, but for which 50% or more of the urban landscape is different. I hope the changes are for the better, but I’m not entirely sure yet. Continue reading…
I’ve been really busy working with our customers on becoming better Chefs, but I was recently invited by Kevin Karwaski of the Chef-Boston meetup group to give a presentation on the state of Chef cookbook testing today. Here are my slides: I hope the video will be up soon.
By the way, I renamed the demonstration cookbook from “sauceproxy” to “sauceconnect” in preparation for uploading it to the community site. Having unit and acceptance tests that I could run — both manually and via Travis — to verify that I’d done the search-and-replace properly really helped!
Technology / No Comments
A couple of days ago I wrote a post about Veewee, the automated boxgrinder for Virtualbox boxes. But if you had no idea what Veewee was, all that detail wouldn’t have made much sense to you. So I threw together a quick screencast on YouTube. Here it is!
Information Technology / 1 Comment
How do you test your Chef cookbooks without firing up a real machine and uploading the recipes to a Chef Server?
I get asked this question all the time, especially after I’ve taught the basics of Chef at Opscode’s public training classes. For unit testing, there is ChefSpec — RSpec plus Chef primitives to allow you to make assertions about your recipes. However, that only goes so far without actually converging a real node & running external tests on the services that were configured.
Last year, Opscode released Test Kitchen, allowing you to use workstation-based virtualization (in the form of VirtualBox) to fire up test nodes, converge them, and run Minitests and Cucumber behavioural-driven development (BDD) tests on them after the converge. In this article, I’ll show you how to set up Test Kitchen 1.0 with Vagrant 1.1 to write and run integration tests.