The Shippable Blog

NEW: Debugging with SSH (And Why We Don't Like It)

I am very happy to announce that we've launched a frequently requested (and internally controversial) feature: the ability to SSH into build machines to better debug your CI/CD jobs. I say controversial because being a team of over 20 strong minded people, each person had a distinct opinion on the merits and demerits of debugging with SSH. 

The merit is obvious, debugging is much faster when you can see what's happening on the machine. You can print out the environment, or see what happened to a particular container, look at CPU/memory utilization, or even change the configuration of a test database to see if that helps your failing tests. 

However, our team has made a conscious decision to disallow SSH access for our developers for two main reasons:

  • It doesn't encourage a mentality of 'designing for failure', for example, adding sufficient logging or making sure you can collect the information you need without needing access to the machine. You're not going to have access to Production machines, so avoiding SSHing into Test machines will build the discipline of designing for failure, rather than just reacting to failure.
  • Making ad-hoc changes to the machine environment results in environment drift and often, these changes aren't documented or really applied in all environments. Making it work on one Test machine isn't the goal, the discipline needed to then propagate those changes to all environments and reconfigure them is sometimes missed, which means your job will just fail again when your code change reaches the next environment.

Regardless, many of our customers still wanted this feature, so we're happy to launch it today. 

Before we dive in deeper, you need to know that SSH access is only available for paid accounts. 

Moving Up The DevOps Maturity Curve

“I don't get no respect”
       - Rodney Dangerfield.
Most DevOps automation engineers probably feel the same way Rodney Dangerfield did. While they work hard to make CI/CD frictionless and ship applications faster than ever before, other principles of DevOps like culture and collaboration get much more attention than automation. Organizations expect DevOps to help accelerate software releases and ship better quality products, but they often underestimate the time and investment that is needed to implement the automation that will get them close to the nirvana of Continuous Delivery.
 
There is a reason, however, why automation has failed to capture the attention of the DevOps community: relative to the other aspects like culture and collaboration, automation tooling is a laggard and hasn't matured to a point where it can help accelerate the evolution of the process of shipping software from craft to industry. Simply put, automation tools available today are too primitive and are on the lower end of the maturity curve. 

10 Things to Consider While Choosing a CI Platform

Continuous integration (CI) is a software development activity that requires developers to integrate all source code into a shared repository several times a day. Each commit is then verified by an automated build, allowing teams to detect defects early in the cycle. The result of a CI step is typically a unit-tested and consistent codebase.

DevOps Resources: 5 Books Every DevOps Enthusiast Must Read!

DevOps is a vast topic and needs some patience and examples to understand it thoroughly. There are many aspects to successfully adopting DevOps in your organization and it's always good to learn from experts! Here is our list of recommended reading for anyone who wants to get started with core concepts or delve deeper into advanced topics. 

1. The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win

  phoenix.png

Authors: Gene KimKevin BehrGeorge Spafford

Amazon Customer Rating: 4.6 out of 5

Amazon Best Sellers Rank: #1,393 in Books

About the book: In a fast-paced and entertaining way, three luminaries of the DevOps movement deliver a story that anyone who works in IT will understand and connect. Readers will not only learn how to improve their IT organizations, and they'll never view IT the same way again.

 

Deploy a Hugo site to Aerobatic with Shippable

Thank you to Jason Gowans, Co-Founder of Aerobatic, for this guest post!