Chef Blogs

The Projects that Wowed our Automate for Good Hackathon Judges

Kiah Tolliver | Posted on | ChefConf | community | Hackathon

Now that we have wrapped up our hackathon and announced our winners, we thought it would be fun to dive into some of the details of the winning projects and share them with you. Again, these ideas were awesome. If you got a chance to tune into our live stream on Twitch or YouTube yesterday, you know that one of the projects is directly in line with a feature on the Chef Infra Client product roadmap. How cool!

Winners of the Most Promising Idea category:

Stylelia

By: Jason Field & Arthur Kondas

Devpost listing


Stylelia is the Automation of running Static Code analysis tools such as cookstyle against repositories resulting in PRs and reducing drift from best practices the tools recommend.

To create Stylia, the duo wrote a caching system built to run on AWS Lambda. The cache stores the current default branch commit Sha and the version of cookstyle used at that time. If there is a difference between the cache and the current state or the repository does not exist in the cache then cookstyle is run.

Throughout the exercise, the pair learned quite a bit. Jason is a Chef veteran, but he learned golang from having very little exposure to the language prior to the project. Arthur, on the other hand, is brand new to Chef so this was his first ever experience using our tools!

Wonderful work guys! We love your project and your video. It’s all very well done.

PiChef

By: qbik Pawlowski

Devpost listing     GitHub repo



PiChef automates Raspberry Pi deployments, because according to qbik, your home automation systems deserve automation too. The project’s goal is to reduce the toil in Raspberry Pi setups and automate a significant portion of the installation process. It leverages Chef Infra to provide a repeatable way to start over so one can experiment in confidence without fear of losing any of the hard work already done.

Qbik ran into some challenges during the exercise, specifically around compiling and running Chef on a Raspberry Pi. He was able to use the help of the community to get up and running.

We think your project is awesome qbik! Home automation is here to stay and we just love how you’ve used Chef to help innovate in that space. Great work!

Kitchen UI

By: Mehul Kumar Nirala

Devpost listing

 



Kitchen UI allows users to create and edit Chef recipes and cookbooks interactively in the browser. It uses suggestive typing and autocompletes selection to make the automation process faster and more efficient.

Like Arthur, from Stylelia, Mehul is new to Chef and DevOps. It really warms our hearts to see fresh faces in the community thriving. Mehul commented that he was most proud of learning DevOps through Chef.

We really enjoyed your project Mehul. Kudos to you for taking the leap and learning something new!

1Push

By: Dhruv Kanojia

Devpost listing



1Push helps to reduce the toil of manual tasks for IT teams by allowing systems to be managed through one central web application.

Dhruv used his experience manually setting up firewalls, upgrading the operating systems, and installing default software as his inspiration for this project.

1Push works by allowing IT teams to set up their Chef Infra server and Chef automate server and add any number of recipes they want to run on their systems. Every system/on-premise server will be a “Node”, and multiple nodes that serve the same purpose can be collected into ”Groups”.

Here’s a graphic that outlines the high-level architecture of the project: Dhruv is new to DevOps and Chef as well, so he had to grapple with a pretty steep learning curve during the hackathon. He noted that he also used Flask instead of his usual language PHP to create the API which was yet another step outside of his comfort zone. Through sheer grit and determination, he was able to successfully complete his submission.

Great work Dhruv! We truly feel that this idea can go places. Happy to welcome you to our community.

Winners of the Best Implementation Category:

Azure Compliance Checker using Chef InSpec & GitHub actions

By: Ambily KK

Devpost listing    GitHub Repo

 



Azure Compliance checker helps practitioners integrate compliance tests written using Chef InSpec with their current GitHub actions workflow.

This project consists of 2 parts:

  1. Azure Compliance action: GitHub custom action with a sample InSpec profile for integrating the InSpec tests with GitHub workflows.
  2. Azure compliance test pack: Set of azure compliance tests defined as a baseline. Initial tests related to the web app and storage account can be found in the repo, open for community collaboration to develop a complete Azure compliance baseline test.

While we’re not certain if Ambily KK has used Chef InSpec in the past, she did note that she learned a lot about how important InSpec’s role is in DevSecOps.

We really appreciate your project Ambily KK. We’re pushing the idea of embracing DevSecOps as a practice and your project does an amazing job demonstrating it in practice.

Automating for Failures - Chaos Engineering with Chef

By: Astro A & Paras Patodi

Devpost listing         GitHub repo


This duo is using Chef Infra to automate Chaos Engineering experiments to find points of failure in your system proactively for your app infra hosted on AWS, Google Cloud, or private cloud.

The attacks Automate for Failures simulates generate turbulent conditions such as:

  • Rebooting servers
  • Stopping services
  • Killing running processes
  • Blocking networks
  • Simulating a failover in the database
  • Using all of the server's CPU cores

The pair noted that they learned quite a bit about the different Chef components and how they all work together, specifically Chef Infra, Workstation, Chef server, and Chef client architectures.

We really enjoyed this project because it falls well within the DevSecOps sphere that we champion here at Chef. We’re sure that a project like this would certainly help push the needle.

3rd Place Winner

Automating Data Analytics

By: Marcelo Zambrana

Devpost listing          GitHub repo

 



Automating Data Analytics uses Chef Infra, Chef InSpec, Terraform, GitHub and the brand new Databricks resource provider to allow users to have a clean Data Analytics environment connected to the System Wide Information Management (SWIM) Program which would allow analysts to analyze flight data in almost real time.

Marcelo is most proud of reducing the time to have these complex environments fully operational from weeks to minutes which is amazing! Also, since everything is code, it can be replicated anywhere.

Marcelo, we agree. This is huge for the Aerospace community! Anytime environment setup can be reduced from weeks to minutes, everyone wins! We love everything about your project. From the idea to the execution and presentation, each aspect was very well done.

2nd Place Winner

Autoscaling JupyterHub

By: Dustin Wilson

Devpost listing           GitHub repo

 



According to Dustin, JupyterHub is a Python application that runs in the cloud or on your own hardware and makes it possible to serve pre-configured data science containers to multiple users. It is customizable and scalable and is suitable for small and large teams, academic courses, and large-scale infrastructure.

AutoScaling JupyterHub uses Terraform, Packer, GHActions, Chef, and Docker Swarm to provision and deploy a JupyterHub instance backed by an EC2 Auto-Scaling Group (ASG) instance with a shared NFS (AWS EFS) file-system.

Dustin works as a Data Engineer so like others in the competition, this is his first exposure to the Chef ecosystem. This was also his first time deploying AMIs with Packer. He commented that it's a nice tool and that he would love to use it again in the future.

We really loved this project, Dustin. It was very interesting and innovative. We love how you went from zero to hero with Chef tools in a matter of weeks! Outstanding job overall!

1st Place Winner

Generic REST Resource Support for Chef - eg for NetApp ONTAP

By: Thomas Heinen

Devpost listing            GitHub Repo



With the output of this project, coding knowledge is barely needed for most RESTful APIs and writing/maintaining collapses down to a few additional rest_* DSL statements.

This project uses Chef Infra, Chef Automate, and Chef Workstation to significantly reduce the need for coding knowledge for writing/maintaining RESTful APIs.

Thomas is already an integral part and a long-time member of the Chef community. To build this project, he used several of his PRs to Chef Infra/Ohai/Train over the past few years. He also used his 2020 train-rest driver as the transport/authentication/session layer.

While Thomas is a Chef veteran, he had no prior experience with NetApp so he stepped out of his comfort zone there. He also commented that he learned a lot about Ruby Meta Programming.

Remember earlier when I said that one of the projects just so happened to be on the Infra roadmap? Well, this is the one! We really try hard to stay in tune with the requests of the community, so when we see that this project is directly on par with our plans, it certainly hits different. Great vision and execution, Thomas. We’re lucky to have minds like yours in the community.

 

We’ll be reaching out to these winners soon to invite them to join us on our live stream to talk shop. If you’re not familiar with our show, we stream on YouTube and Twitch every Tuesday and Thursday at 10 AM ET. It’s a great time, you should tune in.