The CI/CD and DevOps Blog

Manisha Sahasrabudhe

Manisha Sahasrabudhe

Recent Posts

4 Trends Driving DevOps Adoption

There has been a tectonic shift in the way we build, deploy and run applications. What started with cloud infrastructure has now created a revolution in IT organizations. As organizations realized the importance of continuous feedback loops, it created a need to ship software updates as fast as possible and brought in a culture of collaboration where everyone works as a team and not as a member of a silo.

This is fundamentally due to the DevOps movement. The word itself derives from “Development” and “Operations” and is all about removing barriers between Software Developers and Operations engineers and enabling better collaboration between the two. It also focuses on automation as the primary way to make software delivery lean and measurable.

DevOps is gaining rapid adoption due to some macro trends in the software universe: 

  1. Software Defined Hybrid Cloud
  2. Web-scale Requirements
  3. Modern application architectures (micro services, functions) 
  4. Containers 

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. 

The Future Of DevOps Is Assembly Lines

Last week, we announced the General Availability of Shippable Server, the behind-the-firewall version of our hosted platform. We also articulated our vision around where DevOps is today and why Assembly Lines is the future of DevOps.  

As I think about our journey from CI to Assembly Lines, it mirrors the journey of most organizations as they mature their DevOps efforts. In a nutshell, DevOps has created an awareness of the need to automate and be more efficient in terms of software delivery. However, most of the focus around the how has been around cultural changes and tools that help automate bits and pieces of the end-to-end software delivery workflow. This has led to the formation of "islands of automation" that are optimized for specific tasks but do not enable the holy grail of Continuous Delivery or Continuous Deployment. To achieve those goals, you need an Assembly Line platform that takes all these tools and connects them into end-to-end workflows with complete visibility, traceability, and auditability.

So let's take a look at this journey, and dig in a bit deeper into why Assembly Lines are the essential factor to DevOps success. 

Demystifying DevOps terminology

Last week, we announced the General Availability for Shippable Server. With the announcement, we also articulated how we see DevOps: both as it is today and where the next wave is headed. For more context on our vision for the next wave, aka DevOps Assembly Lines, you can read our whitepaper.

However, before discussing evolution of DevOps, we found that most folks we spoke to were confused about the plethora of terms that are thrown around. A few are Continuous integration, Continuous Delivery, Continuous Deployment, CI/CD, Application Release Automation (ARA), and Pipelines. Tool vendors seem to use these terms interchangeably, but they each have distinct meanings that you should understand so you can also figure out which part of the DevOps puzzle is addressed by the vendor. 

This blog provides definitions for each term along with some examples. We are working on a detailed whitepaper that will also include an opinionated list of tools available for each term below. 

How to be a great DevOps Engineer

Companies today have realized the immense value of adopting DevOps principles in accelerating software releases. After all, whoever innovates fastest wins, and frequent software updates are key to faster innovation.

What is DevOps?

The term Devops was coined as a combination of DEVelopers and OPerationS. According to Wikipedia:

DevOps is a term used to refer to a set of practices that emphasize the collaboration and communication of both software developers and information technology (IT) professionals while automating the process of software delivery and infrastructure changes. It aims at establishing a culture and environment where building, testing, and releasing software can happen rapidly, frequently, and more reliably.

Every company today, regardless of industry, is under pressure to be great at developing and delivering software. This is because software is disrupting every type of business, from taxi services to food delivery to retail. Unless you transform your business and go through a digital transformation, your business is likely to die in the next few years.

Once you start this digital transformation, the next challenge is to innovate fast enough to survive and maybe win.  This is where DevOps comes in. Most companies have figured out how to accelerate software development through agile principles. However, the bottleneck is now software delivery. What is the point of producing code at a faster rate if you can't ship it out as quickly?

DevOps sets out to solve this problem by combining cultural change with end to end software delivery automation. The goal of DevOps is to ensure frequent, predictable, error-free software releases that helps you innovate faster.