Speeding up Habitat Iterations

I’m not a developer. I’m an ops — at least I was one. For several years, I’ve been teaching and consulting individuals and companies about DevOps and automation and how to change the way they think about, manage and build infrastructure, using Chef tooling.

When Chef launched Habitat this past summer, I worked through the online tutorials and learned the basic concepts. However, I didn’t really begin automating applications with Habitat until this past week. Within a day, I sufficiently learned how to begin revising and writing plans, but I found myself in a loop where the process was taking too long. In short, as I iterated through writing my plan, config and hook files, I would experience a build fail, often due to typos in the config and/or hook files. Each time I fixed an error, I had to wait upwards of 10 minutes to perform a new build (build times can vary from super quick to loooong depending on the application). Often, I’d repeat this loop many, many times.

I was sad.

Two days later everything changed.

I learned that I could simply make the needed edits within config and hook files and skip the rebuild!! Simply adding the --config-from <foo> argument to hab start <origin>/<app> allows the newly edited config and hook files to be read from the directory indicated, typically /src.

hab start core/kibana --config-from /src

Of course, once everything is working as it should, you DO need to perform a final build and re-test your code. But, this abbreviated process should dramatically speed up the rate at which you iterate through edits to your config and hook code.

Read more about iterative development in the Habitat documentation

I hope this is as helpful for you as it has been for me.

Posted in:

Larry Eichenbaum

Larry is a former Senior Solutions Architect at Chef within the Federal team. He assisted Federal government departments & agencies in transforming how they work in order to operate with increased velocity to better serve their missions.