Category: Continuous Integration

  • The Phoenix Project

    I recently stumbled upon a novel that talks about managing IT Operations. “The Phoenix Project”, by Gene Kim, Kevin Behr, and George Spafford. Wow, what a great read. This book accurately describes many of my experiences in IT with many different companies. This book has some exceptional concepts around optimizing interaction between Development, IT Operations, […]

  • Powershell to ElasticSearch to find ElastAlert

    I recently worked on an interesting project where I needed to use a powershell script to query ElasticSearch to find a document that was inserted via ElastAlert. The purpose of this exercise was to determine whether or not a service had been marked down recently, which would determine whether an operation ran that might take […]

  • ruby aws-sdk strikes again…

    When using ruby to upload files to S3 and trying to use multipart upload, beware the following ArgumentError: …param_validator.rb:32:in `validate!’: unexpected value at params[:server_side_encryption] (ArgumentError) … from /var/lib/jenkins/.gem/ruby/gems/aws-sdk-core-3.6.0/lib/seahorse/client/request.rb:70:in `send_request’ from /var/lib/jenkins/.gem/ruby/gems/aws-sdk-s3-1.4.0/lib/aws-sdk-s3/client.rb:3980:in `list_parts’ … The options passed to list_parts must not include “server_side_encryption”. I always forget to remove this parameter. A good way that I have […]

  • Puppet deprecation in stdlib module…

    As part of the long upgrade to become fully compatible with puppet 4 and drop puppet 3 support — version 4.13+ of the stdlib module introduced some breaking changes for other modules that I use. I recently upgrade some individual modules using the ‘puppet module upgrade’ method. Upon upgrading, I received the following message: Error: […]

  • docker run docs confusing – which port?

    I was reviewing the docker docs today in an attempt to get things working on OSX and ran into a conflict when starting a new container running nginx. The docs say to run the following command: > docker run -d -p 80:80 –name webserver nginx That seems pretty straight forward, so I ran the command: […]

  • Throttling Requests with the Ruby aws-sdk

    A common problem of late is throttling requests when using the ruby aws-sdk gem to access AWS services. Handling these exceptions is fairly trivial with a while loop like the following: retry_count = 0 retry_success = 0 while retry_success == 0 retry_success = 1 begin # # enter code to interact with AWS here # […]

  • Puppet node inheritance deprecation

    Puppet 4.0 will deprecate node inheritance which is currently a common way to organize resources. I have been using node inheritance to group common configurations into a basic role and then inherit that with a node declaration like the following: # site.pp … node webserver { # add all generic web server configuration here } […]

  • git branching strategy – what’s yours?

    When it comes to deploying code to various environments, the ideal scenario would be to continuously deliver a specific branch to production, after delivering to dev/test/staging with unit tests to validate the code on the way. The other end of the spectrum is to manually deploy and test to each environment. All clients I work […]