Filed under ramblings

Jul 14 2014
By tBunnyMan
comments
ramblings

Chef Frustrations

I've spent the last week working on implementing chef. The experience is frustrating to say the least. Instead of whining I wanted to take the time to write out some of my pain points and hopefully offer some constructive fixes to what I see as the wall in the learning curve.

Now to be clear up front. Most of my problems aren't with Chef, Ruby, or most of the core product; it's with implementing it. To be more precise I think the failure REALLY is documentation.

Anti-pattern One: Getting Started (into a corner)

Also known as the "Just enough to be dangerous but not useful" anti-pattern

I really liked the new learn chef. I have to give them a ton of credit for all the work but underneath all the new splash and presentation it's still the exact same old Chef 101 it was two years ago; it teaches you the barest of all basics and then drops you off to docs.opscode.com

I know that most would feel that statement isn't fair, since it teaches you all about the design and system behind how chef works, and that it does; but it still feels like not enough to be useful and here is why.

Anti-pattern Two: We Have no Patterns...

Learn Chef teaches you how chef works but not really how to use it at any level of scale; There is no real world usage taught anywhere. It teaches you to set up a Chef Enterprise server and then re-inventing the wheel with a homemade apache or ntp cookbook, and push it all to a vm but you would rarely do this in practice right?

When you leave Chef's documentation you learn about many very important Chef Patterns;

  • wrapper cookbooks
  • berkshelf way
  • one repo per cookbook vs monolithic repo
  • application cookbooks
  • service cookbooks

Why doesn't chef teach us these? Is this something we save for consultants to teach us at thousands of dollars an hour? Is it that Chef wants to avoid teaching patterns in order to remain as flexible as possible1?

It's not just chef either. Go to berkshelf.com and tell me how to use this tool assuming you've never done such before. If I was trying to remember a few commands or learn a new trick on top of something this tools docs would be great but it's missing the meat of what this tool is designed for and how to use it. A lot of chef's tools are treated this way.

Anti-pattern Three: ...So please learn everyone else's anti-patterns

This is my biggest frustration, OPD; Other People's Docs. As someone who has been working in Systems for 10+ years I have lived and learned so much from everyone else's blogs, which is why I feel the need to blog all my own lessons and information.

I feel that chef relies too much on OPD though. Especially because chef is such a fast moving target. It's amazing how many people who use chef that I talk to that use it in some odd, bizarre, and or generally 'not correct' way. It's usually because they learned a bad habit from a predecessor or found a bug in a long ago version and found some OPD that convinced them that "oh no you have to run everything chef-solo with your own special bootstraps, that is the ONE TRUE WAY™". I'm not saying that patten doesn't work but I doubt it's the best way for many infrastructures2.

I plan on documenting plenty of chef like things myself; in fact I plan on posting as much of my own OPD as possible but with how fast chef evolves as a product and with the large variance of methods for different environments I really hope people take everything with a grain of salt and read the date on the post when consitering my advice.

Here is a great example; where about 2014-07 I went into #chef and asked about some methods for setting things up and was linked to this blog which is treated like a defacto example of how to do things. But read all those updates... and then notice how it's using a lot of deprecated methods. I was linked to an article that could be titled "How to develop some really bad habits, but learn important things while you are at it." It's not Mischa's fault, It doesn't seem like he is a docs writer for Chef. Honestly I feel the best thing that could be done is this document be updated to the latest methodologies and tacked on to the end of learn chef as "One good method to get your enviroment up and going".

As a chef user do you even know about chef-dk? you probably should take a break from what you are doing, read this and then do this. Seriously don't you feel much better? This also should be on the end of learn chef guide. Hell this should probably be the first half of the learn chef guide.

I get that maybe they don't want to declare a "chef way" to do things... but at least give us some better hints.

Next Actions

Just to recap;

  • I believe chef's biggest weakness is documentation, which creates a wall in the learning curve to hit right after "I can now build and deploy a test apache on a linode" and "I can build and deploy this in a staging enviroment"
  • I think there should be a learn chef 200 series that goes over;
    • Using a wrapper cookbook, and the different types of abstraction you often see with these.
    • Teaching everything chef-dk adds; bootstrapping, runtests, and automated integration testing.
    • Highlighting several useful patterns for cookbook development.
    • Using more of chef's tools; ex ohai
  • If chef is going to rely on the community for docs maybe it should create a way where they can contribute to the main docbase just like they do code.
  • go here, have your life changed
  • If you are in the Las Vegas, NV area come hang out at #lvdevops on freenode and tell me how I make you feel
  • I'm going to spend another week or two trying diferent ways to structure my cookbooks and see what works.

  1. I believe this is a horrible anti-pattern in documentation. If you believe your power is flexibility then you should highlight that but still outline some predominate patterns for your top two or three use cases. ↩

  2. I know it's not the best way because they are deprecating chef-solo for chef-zero, which is good but it's a great example about the speed that Chef is changing. ↩

Tagged chef
Jul 13 2014
By tBunnyMan
comments
ramblings

Where have you been?

Actually I should have called this where have I been. This seemed catchier though.

In short the answer is I have been at my new job at slickdeals.net They have keep me as busy as can be. Because of this major shift I changed a lot of habits; I stopped writing here as much, I stopped actively contributing to Pelican1, and I also stopped posting to github.

Be not too afraid. I still write plenty of code and fille around with everything. I just stopped posting most of it to github. I mostly use my own private stash instance. There is some publically accessable code for those who are interested. The reason is that stash is SIGNIFICANTLY cheaper for my private repos so I just put most of my stuff there. I have been rethinking that lately since I miss a lot of the github community style.

I haven't been blogging much since I have just been focusing most of my documentation and writings to work, and got in the odd habit of putting eveything in my private wiki. For the sake of sharing and hashing things out I am going to refocus on using this blog to document out useful things. Hopefully this means you cna excpect floods of useful things. Maybe some smaller posts too.

On the other side I have been busy with my girlfriend, cycling, dba courseware, studying Japnaese, and my unstoppable anime habit. I have my own house now and a workbench set back up so I may blog about those projects as well...

Anyways. No one loves a vanity post but I wanted to at least put an update out


  1. I'm really sad about this but my personal time dropped sharply between a new job and new girlfriend. ↩

Mar 21 2012
By tBunnyMan
comments
ramblings

The search for the perfect wallet

Through my whole life I have always struggled to find the perfect tool for the job. No matter what I am doing I from the big to the little I question methods and tools I am using. Sometimes I find it, sometimes I struggle on and on. This is a story about how I think I found perfection.

I have always had a fascination with wallets. They are where we keep the summary of our life and our valuables. Your wallet is like a woman's purse, the thing that curious people want to pick through to find out more about you and the thing more introspective people think about how it reflects on them. Any time you pay for something the seller glances down and takes a quick look not just at your payment but at what it is coming out of. Your wallet is a statement of you in one of those subtle ways.

In my search I have gone through piles of wallets. I still have a small box in my closet that I have been loathe to throw away with then. I have gone from sleek leather, to big woven bulletproof nylon with lots of features, to slim money clips with stamped leather card slots, to the famous minimal Slimmy. Even with the Slimmy I went through two separate versions, one with window and one without.

spacer

My goal was to find a wallet that held everything I need to carry with me while still being small and slim. I have been on the largest minimal kick so the Slimmy and money clips were used for the last three years but they were too minimal for my needs. In the end the fact remains that any wallet I found that is small enough to make me happy didn't hold enough and any wallet with enough space for everything was just too damn big.

The answer to my problem came to me several weeks ago while I was hanging out at a bar with my younger brother. We were about to tip up and I heard a familiar sound, the sound of rubber against the hard plastic of a credit card before snapping into place.

As a child my father never carried a wallet. He always just took his little pocket address book, pressed all of his cards up against it, folded up some money, and then wrapped it up in a pair of rubber bands. I asked him several times about why he never carried a wallet like everyone else and he told me it was because he never found a wallet he liked. Also, since he received the newspaper which is wrapped in a rubber band, it was free and replaceable weekly.

Like father like son I guess. When I asked my brother about it he said he "got it from dad" and "It was inevitable, you will succumb to it too." It was and I did.

spacer

In the top most picture I didn't use a normal rubber band but I quickly found that any fancy band I used was too much. Through a few months of testing I found that a traditional rubber band was just enough. In the picture you can easily see that I took the contents of the Slimmy, added my notebook and with the band it is still thinner than the EMPTY Slimmy. Even if I were to add more cards, which I have done, the wallet still manages to be no bigger than the standard four cards and a small amount of cash in a Slimmy that they recommend.1

My rubber band wallet currently contains a Moleskine extra small notebook2, A collapsable pen to write with, a small set of cash, and every card and ID I could need on a day. Somehow it is still smaller and more useful than every wallet I have owned before!

As you can see with the pictures just above the new wallet is just a hair thicker than a AA battery and holds a mass of cards. In fact it actually contains more cards than I actually need. I found if there was too few cards the pen will roll over the cards and wiggle about. I now keep every gift card I have, my Fresh & Easy card, and a random hotel keycard from FurtherConfusion with art on it. Minimalism is amazing but the fact that I never have to go "Oh crap, I forgot card X" is nice.

As for looks? What does this say about me? While as a kid I thought it tacky to have a rubber band for a wallet most people tend to comment on how utilitarian and useful that is. How it holds a notebook and pen in the same space as their own bloated wallets.

No matter how many times I think about the process I think I found the perfect one for the job.


  1. My problem with the slimy is its design. It is only meant to hold about four cards and a small amount of cash. On any day I need to carry my ID, Work ID, Debit Card, PCard. This means ALL extra credit cards, Costco memberships, health cards, gift cards, and even business cards are out. Yes I can live without them but having to drive home and grab my Costco card or applicable gift card every time I want to grab some shopping on the way home is ANNOYING. ↩

  2. I use a BRIGHT PINK notebook too. It gets comments a lot, sometimes snide, sometimes funny… but the fact of the matter is when my "wallet" is on the table it's hard to miss and that in the end is the point; High visibility. ↩

Older posts
gipoco.com is neither affiliated with the authors of this page nor responsible for its contents. This is a safe-cache copy of the original web site.