Ever Higher Levels of Abstraction - Building the Future With Chef
OStatic
Home
Blog
Questions
Software
Members
 
 
 
Follow Us:
Follow us on Twitter
Subscribe to our RSS
About
Contact
Ever Higher Levels of Abstraction - Building the Future With Chef
by Jon Buys - Aug. 18, 2012Comments (5)
Related Blog PostsInstalling Software By HandRequired Skills for the New SysadminSoftware Defined Datacenter - All You Really Need is LinuxSo You Just Deleted Your Production Database - What NowBuilding Systems Secure From The Start
If you have been in the industry for a decade or more, you probably have a pretty good idea of what being a Unix sysadmin is all about. Load the OS? Check. Configure local user accounts? Check. Install packages, compile some from scratch? Double check. Unix has not changed all that much, so it would be easy to assume that the job you were doing ten years ago would be the same job that you can do for the foreseeable future. But, that is the trap of dinosaurs my friend, the weather has already changed, and the days of dealing with bare metal are already moving fast behind us. My first servers were OpenBSD, back before you could get a downloaded disk image. I had a script that would download the latest release and build an ISO image for me. I loved, and still do, the simplicity in the BSD systems. You couldn’t get any closer to the metal; all you had was a kernel, a formatted disk, and a few gzipped tarballs to unzip at the root of the filesystem, and that was your OS. It would be very easy for me to take this basic understanding of how Unix-like systems worked and apply it today, but that would be a mistake. Like all things in computers, the tendency over time is to aspire to higher levels of abstraction. This is true in programming languages, which have progressed from assembly, to C, to Perl, and now, to languages like Ruby. When writing in a high level language like Ruby, it is unnecessary to worry about things like pointers and memory management. Instead, the developer simply thinks about the best way to solve the problem he sat down to solve when he started programming. Less syntax, less manual configuration, and further away from the metal. If you consider the old OpenBSD days as analogous to programming in C, you can draw a parallel to systems administration today. Managing servers with Chef is like programming in Ruby. Chef abstracts away the hardware and the operating system, allowing systems administrators to operate at a higher level, concentrating on provisioning resources. Chef takes care of the details of how to spin up a new virtual machine, or ensure that all of the running machines share the same configuration. Managing servers with Chef is like programming in Ruby, in fact, Chef and it’s configuration files are Ruby. Today’s systems administrators not only need to understand the internal workings of the Linux kernel, what the chip speed of the latest Xeon processor is, and how to most efficiently divvy up precious disk space… today’s sysadmins need to be programmers as well. Of course, a certain amount of programming has always been a part of being a sysadmin. Shell scripts, Perl, Python, and now Ruby have all had their place in the savvy sysadmin’s toolbox, but what is different with tools like Chef is how the sysadmin thinks of using the tools. Using Chef, a server is nothing more than an object to be manipulated, a resource to be used. Which, honestly, is how it should be. Chef uses the analogy of cookbooks and recipes to provide a hierarchy of configuration scripts. The recipes are written in something Opscode (the developers of Chef) call “just enough Ruby”, which is meant to give a syntax for the recipes that is easy to read without sacrificing programatic flexibility. Diving into some of the existing cookbooks can be intimidating if you are new to Ruby, so it might be good to start from scratch and write something very basic on your own first. However, one of the other fundamentals of Chef is that you should be able to download and deploy one of their field tested recipes without needing to know exactly what it is doing, we just need to know that it gives the intended result. If you are old school, that last sentence might scare you a bit. It scares me, but how many people developing in Ruby know how their code is being executed by the CPU now? Adopting Chef is also a bit about moving on, and giving a bit of control over to the system. It’s an exciting time to be in the technology field, there has never been a better time to learn and grow. Accepting change and moving into the future can be scary, it can be hard to accept, but, technology waits for no one, you either ride the wave, or be buried by it.
sysadmin chef devops
Previous: SolusOS 1.2 Arrives,...Next: The Future of Chrome... Browse Blog
Shailesh Patel uses OStatic to support Open Source, ask and answer questions and stay informed. What about you?
 
5 Comments
 
by an anonymous user on Aug. 19, 2012Good article Jon.
I am not too experienced sysadmin but I have a liking of the old script ways. Hearing of "automated" scares me at times as it's difficult to understand the actual workings.
But I sure will have a look at Chef and try it in home.
Thanks for the article.
0 Votes
by Stan Cobb on Aug. 19, 2012Good stuff. You should also cover other configuration management tools like Cfengine and Puppet at some point. Puppet came about due to challenges experienced with Cfengine, and Chef seems to be trying to solve similar challenges. Being able to do this with a whole bunch of servers, especially in the Cloud Computing world, make this a very interesting space to watch.
0 Votes
by Weland on Aug. 20, 2012> However, one of the other fundamentals of Chef is that you should be able to download and deploy one of their field tested recipes without needing to know exactly what it is doing, we just need to know that it gives the intended result.
Ugh. If you don't know exactly what it is doing, how would you know that it gives the intended result *entirely*, without some subtle, but critical missing part that pops up at an important moment?
I know, I know, field tested and all, but we're talking about rather advanced automated deployment scripts here, in a world where otherwise package managers still screw things up occasionally...
0 Votes
by Jon Buys on Aug. 20, 2012@Weland I know, believe me, I know. Which is why in my data center I'm making it a point to read the recipes before deploying. They might be real-world tested, but they weren't tested in *my* environment.
@stan The Puppet vs Chef debate is actually pretty interesting to watch. I actually prefer Puppet, it seems simpler and more straight forward to me, easier to understand. I might write about how I see the differences between the two sometime soon.
@anonymous Thanks!
0 Votes
by John O on Sep. 01, 2012@Weland
> Ugh. If you don't know exactly what it is doing, how would you know that it gives the intended result *entirely*, without some subtle, but critical missing part that pops up at an important moment?
> I know, I know, field tested and all, but we're talking about rather advanced automated deployment scripts here, in a world where otherwise package managers still screw things up occasionally...
Well the video did say Chef was open source. That tells me you can see exactly how it works. Even if your a sysadmin that doesn't fully no how to program, it's really not hard to read through source code, especially in a language as simple as Ruby.
0 Votes
Share Your Comments
If you are a member, Sign in to have your comment attributed to you. If you are not yet a member, Join OStatic and help the Open Source community by sharing your thoughts, answering user questions and providing reviews and alternatives for projects.
Your Name
Email Address (kept hidden)
Your Comment *
Promote Open Source Knowledge by sharing your thoughts, listing Alternatives and Answering Questions!
 
Explore Software in this Blog Post
1
2
3
4
5
sysadmin has 0 reviews1 user
Your cloud solution managed 24/7
Expert cloud management & monitoring services starting at $9/mo.
Explore the plans
Featured MembersViewKhürt Williamshusband, father, security analyst, web developer a...
ViewShailesh PatelI am Shailesh Patel, who has 4+ years of experienc...
Related Questions
Browse
Get answers and share your expertise.
Have a question? Ask the community
Partner Center
Happening Now on OStatic
Lava Infotech commented on Google's Code-in Contest Is Ideal for Teens Interested In Open Source
Fozzly Bar commented on LibreOffice Pushes Back, Releases 3.6.3
anonymous commented on Is LibreOffice Exaggerating User Data?
Home
Blog
Software
Questions
About OStatic
Contact
Terms of Service
Privacy Policy
Send Feedback
Powered by Vox Holdings
© 2011 OStatic. Design by smallTransport. Built on fine Open Source Software from projects like
Apache,
Drupal,
Java,
Linux,
MySQL and
PHP.
Sign in to OStatic
close
Username: *
Password: *
Not a member? Join NowI forgot my password