What’s new in Chef Development Kit (ChefDK)?

Category: DevOps Posted:Mar 28, 2017 By: Alvera Anto

Whats new in chef development kit

ChefDK is a software development kit delivering a set of tools for developing and testing Chef Cookbooks. It integrates the best-of-the-breed tools created by Chef Community with Chef Client. Chef has a steep learning curve with lots of concepts and tools that have to be learned.

Chef is manifesting to be one of the most powerful and favoured tools for automating infrastructure and managing as code. As inventive IT and Software Engineering trends like DevOps, continuous integration and delivery, test automation and Infrastructure as a Service (IaaS) have become popular practices, nothing is more essential than configuration management and automation. Whether your intention is to share common infrastructure across departments, automate common provisioning tasks or give dev, test, and IT operations as a common platform for a deployment pipeline. You require a robust tool for automating your infrastructure and maintaining your standard.chefDK is a software development

It’s a system and cloud infrastructure automation framework that eases to deploy servers and applications to any virtual, physical, or cloud location, ignoring the infrastructure size. Each organization incorporates one (or more) workstations, a single server, and every node that will be configured and retained by the chef-client. Cookbooks (and recipes) are implemented to guide the chef-client in configuring each node in an organization. The actual configuration is done by chef-client.DevOps adoption in companies

Let’s discuss the new features of ChefDK

  1. New workflow tool: Chef

One of the strongest achievements of Chef is its flexibility. It emerged organically adapting to the many different workflows, our customers needed to execute the technology stack behind their businesses. This organic growth has resulted in newbies to Chef for facing different ways of performing an activity with individual advantages and disadvantages. This diminished the approachability of Chef.

With ChefDK this paradigm is being broken. It includes a brand new tool called Chef. The design objective of this tool is to “Streamline Chef Workflow for all”. ChefDK will provide new users a streamlined workflow, while conserving the powerful flexibility for advanced Chef Users. We have more time to achieve this goal. But we can achieve few targets like:

  • Configurable generators that reinforce the regularly used cookbook patterns
  • Deep integration between Knife, Berkshelf, and Chef Client
  • Incorporated development and test environment provisioning in the cloud

With version 0.0.1, we’re taking a small step in this direction with two small features:

  • Chef gem: It easily install gems or knife-plugins into user’s ChefDK setup.
  • Chef generate: A Minimalistic cookbook generators powered by Chef.

 

2. Continuous Delivery

Continuous delivery is a self-operating process that provides control over the software and framework deployments even timely releases to meet your business requirements.

Continuous delivery requires a collaborative relationship among all of a project’s stakeholders when implemented in modern, full-stack deployments; such a culture is called DevOps. The direct communication recommended by DevOps means that everyone involved, like Developers, Operation teams and Managers, work together to distinctly define the code’s motive and requirements. DevOps also lessens the number of handoffs, which cause delays and wasted effort.

Technologically, you require an automated deployment channel. You can imagine the automated deployment channel as a series of stages, that each run automated tests whenever you modify your code. When software forwards the tests in one stage, it is stimulated to the next stage. Your confidence in the software’s functionality and stability increases as the code moves through the pipeline. By the time you reach the final production stage, you can safely release the latest feature, improvement or bug fix to the world

3. Built-in Performance

When developing ChefDK, we’re taking performance as a primary consideration. Owning a responsive tool at workstations is the first step in enjoying a pleasant user experience. Here are a couple of things in ChefDK that makes it more performant:

  • gecode in Berkshelf – The first major collaboration effort between Berkshelf Team and Chef has been on the dependency intention. Berkshelf 3.0 delivers with gecode as it’s a dependency solver. You will hear a lot about this during and after ChefConf. But in a nutshell, this effort ensures that dependencies are resolved faster and in agreement with the Chef Server (which also uses gecode as a dependency resolver).

Here are some numbers comparing code with pure ruby implementation while resolving Chef Inc. platform cookbook provinces:

4. Appbundler

Appbundler latch down an application’s reliances to the versions chosen by bundler using a Gemfile.lock. This way application executes faster since rubygems doesn’t resolve the dependency constraints at the runtime. This also protects the application from incompatible dependencies. All of the binaries included in ChefDK are using appbundler.

Appbundler reads a Gemfile. lock and initiates code with gem “some-dep”, “= VERSION” assertions to lock the application’s’ dependencies to the versions picked by bundler. This code is implemented in binstubs for the application so that running (e.g.) chef-client on the command line triggers the locked dependencies for Chef prior running the command.

This provides the following benefits:

  • The application loads at high speed because rubygems is not solving dependency limitations at the runtime.
  • The application runs with the same reliance when compared with bundler presence, so we can check the applications (that will be installed in an omnibus package) implementing the standard bundler workflow.
  • There’s no need to bundle exec or patch the bundler runtime into the application.
  • The application can load gems not comprised in the Gemfile/gemspec. Our use case for this is to load plugins.
  • A user can use rvm and still use the application.
  • The application is safeguarded from the installation of incompatible dependencies.

 

5. Platform Support

As being a workstation tool, ChefDK will be supported in all the common workstation platforms. The first version of ChefDK is built and tested on:

  • Mac OS X 10.9
  • Ubuntu 12.04
  • Ubuntu 13.10
  • RHEL 6

Yes, we’re missing Windows. Support for Windows 7 and Windows 8.1 will be launched soon.

Conclusion

The ambitious objective to “Streamline Chef Workflow for all” is really keeping our nerves on. Thankfully we have a strong community that will help us in getting this goal.

Got any questions for us? Please mention it in the comments section and we will return it to you. At ZaranTech we offer a self-paced online training program for DevOps. Skyrocket your career by learning from the best!
You can also visit our website for more engaging and informative articles.

You may also like to read: 7 Key Benefits of DevOps Certification Training.

Wouldn’t it be great if you knew exactly what questions a hiring manager would be asking you in your next job interview? We’ll give you the Best Interview Questions of DevOps.

Check out this insightful video on DevOps Tutorial for Beginners:

24 X 7 Customer Support X

  • us flag 99999999 (Toll Free)
  • india flag +91 9999999