The Curious Case of the Slow Jenkins Job

When I started work this morning, I expected a normal manager day: emails, meetings, shepherding some proposed infrastructure changes through our change management process. That was not to be. What followed instead was most of the day on the edge of my limited Linux troubleshooting abilities, trying to diagnose performance degradation on our production Jenkins server. Around 10:30 AM, Andy messaged me: “Anecdotal Jenkins slowness. Something that regularly takes 3 minutes on my machine takes 18 minutes on Jenkins” This is a story about troubleshooting. Prologue: The environment This story’s main characters are RHEL, Jenkins, New Relic, job-dsl-plugin, and the … Continue reading The Curious Case of the Slow Jenkins Job

Going Serverless: using Twilio and AWS Lambda to make phone calls with an AWS IoT button

  Credit Full credit for this idea and post goes to my colleague Andy, who presented this approach at a recent lunch-and-learn at work. A few months after his presentation, I decided to try replicating what he did. This blog post represents what I learned from that effort. Thanks Andy! The Goal For the 3 phones in our house, when one is misplaced, press an Amazon IoT button and have it dial the phone. A single click should call one phone number, double click another, and long click the third number. Then, the phone would ring, and I would listen … Continue reading Going Serverless: using Twilio and AWS Lambda to make phone calls with an AWS IoT button

Jenkins-as-code: comparing job-dsl and Pipelines

In the previous post in this series, I covered my favorite development-time helper: running job scripts from the command line. In this post, I’ll cover the differences between job-dsl and Pipelines, and how I currently see the two living together in the Jenkins ecosystem. job-dsl refresher If you’re coming into this post directly, without reading the preceding articles in the series, I strongly encourage you to start at the start and then come back. For the rest of you, a quick refresher: job-dsl is a way of creating Jenkins jobs with code instead of the GUI. Here’s a very simple example: View the code … Continue reading Jenkins-as-code: comparing job-dsl and Pipelines

Jenkins-as-code: creating jobs from the command line during development

In the previous post in this series, I covered how to make a seed job for seed jobs via registration. In this post, I’ll cover my favorite development-time helper: running job scripts from the command line. The problem As our team was working on adopting this jenkins-as-code solution, I confess that local development was suboptimal. Because seed jobs pull from source control and then process job dsls, we’d have to build the dsl scripts, push to git, run the seed job, and run the built jobs, repeating as necessary till the job was working as desired. The workflow was slow enough … Continue reading Jenkins-as-code: creating jobs from the command line during development