DevOps Zone is brought to you in partnership with:
  • submit to reddit
Gil Zilberfeld07/29/14
752 views
0 replies

Test Attribute #6 - Maintenance

I always hated the word “maintainability” in the context of tests. Tests, like any other code are maintainable. Unless there comes a time, where we decide we can’t take it anymore, and the code needs a rewrite, the code is maintainable. We can go and change it, edit or replace it.

Edmund Kirwan07/29/14
8024 views
2 replies

The Four Best Refactorings

Given that refactorings change program structure without altering behaviour, the purpose of any refactoring must be the improvement of program structure. So how do programmers, "Best," improve structure?

Dustin Marx07/28/14
3431 views
0 replies

Applying S.T.O.P. To Software Development

For many of us who consider ourselves software developers, programmers, or even software engineers, it can be difficult to ignore the impulse to jump right in and write some code

Tom O'connor07/28/14
4693 views
0 replies

Part 2: Deploying Applications with Ansible

A very simple guide to deploying a very simple application with Ansible. Of course, it should be obvious that you can deploy *anything* from a git repository, it really boils down to the configuration of supervisord. For that matter, it doesn't have to be supervisord.

Jens Schauder07/28/14
2908 views
0 replies

Test Your Dependencies With Degraph

Instead of fixing a problem we all probably prefer preventing the problem in the first place. Therefore in the latest version Degraph got a new feature: A DSL for testing Dependencies.

Omri Erel07/28/14
2928 views
0 replies

4 Critical A/B Tests You Must Run

While testing is critical to any business, we know that testing every single part of your website can be counterproductive and costly. So how do you figure out exactly where to spend your money and resources and which are the most important areas for A/B testing?

Benjamin Ball07/27/14
3377 views
0 replies

The Best of the Week (July 18): DevOps Zone

Make sure you didn't miss anything with this list of the Best of the Week in the DevOps Zone (July 18 to July 25). This week's topics include getting started with Ansible, null object pattern implementation, an intro to functional programming in Java 8, immutable infrastructure, and code differentiation.

Christophe Phil...07/26/14
3020 views
0 replies

5 Reasons You Are Not Doing Code Reviews

There may be a way to work around that: turn the table. Ask Bob for advice on your code. That will get the discussion going, and it may ease him into it. Also, code reviews have a big advantage: they don’t need much to get started. You don’t need everyone in the company to agree.

Gil Zilberfeld07/25/14
4098 views
0 replies

Test Attribute #5 – Differentiation

In order to analyze a problem when tests fail, we need to get into detective mode. The more evidence we have, the better. With enough differentiation, we can get a mental model of what works and what doesn’t, and better – where the problem might lurk, so we can go on and fix it.

Ariya Hidayat07/25/14
2988 views
0 replies

Easy TeamCity Continuous Integration Installation with Docker

TeamCity from JetBrains is an easy-to-use and powerful continuous integration system. It is a commercial product, but there is a special zero-cost license for small projects and FOSS applications. While installing TeamCity is relatively easy, its setup is further simplified via the use of Docker.

Tomasz Nurkiewicz07/24/14
2168 views
0 replies

Testing Code for Excessively Large Inputs

When writing unit tests we mostly focus on business correctness. We do our best to exercise happy path and all edge cases.

Paul Reed07/24/14
1567 views
0 replies

The Ship Show: DevOps on the Silicon Prairie

When most of us think of where the gravitational pull is in DevOps, places like San Francisco, New York, and Belgium spring to mind. But the Midwest? You bet, pardner! For episode 45, we take a field trip to Minneapolis for its first ever DevOps Days.

Marcin Zajączkowski07/23/14
4136 views
0 replies

Null Object Pattern Implementation in Groovy

Quite common real life problem. Simple map based configuration. How to handle gracefully a situation when a given key is not supported? See how Groovy can simplify the implementation.

Florian Motlik07/23/14
3883 views
0 replies

Why You Should Build an Immutable Infrastructure

Immutable components as part of your infrastructure are a way to reduce inconsistency in your infrastructure and improve the trust into your deployment process. Atomic deployments, combined with validation of the image and easy rollback, make managing your infrastructure a lot easier.

Tom O'connor07/23/14
5031 views
0 replies

Part 1: Getting Started with Ansible

Why Ansible? It’s agentless. Unlike Puppet, Chef, Salt, etc.. Ansible operates only over SSH (or optionally ZeroMQ), so there’s none of that crap PKI that you have to deal with using Puppet. It’s self-documenting, with simple YAML files describing the playbooks and roles. It’s feature-rich.

Gil Zilberfeld07/22/14
3107 views
0 replies

Test Attribute #4 - Accuracy

Accuracy helps us fix problems quickly. But it’s definitely not so easy to come by, because it depends very much on the tested code. However, using the combination of the methods I suggested, and making use of working to test to refactor and simplifications, test accuracy is definitely within reach.

Irena Shaigorodsky07/22/14
3168 views
0 replies

Taming Unexpected Production Issues

You have unexplained production issues from time to time. The business is impacted and the management briefs down your neck while the pieces of the puzzle are collected. There is no way to recreate this on QA set-up. The issue is lurking there for quite a while and becoming more and more frequent.

Derek Weeks07/21/14
2383 views
0 replies

Are You Choosing the “Right” Components?

All these and many other characteristics can influence your component choices. And while your decisions will change over time, the more information you have readily available to you when making these choices, the better off you will be.

Topher Marie07/21/14
2017 views
0 replies

2nd DevOps State of the Union – Santa Clara

We were proud to host our 2nd DevOps State of the Union event June 24th. We held it in Santa Clara during Velocity. Wow! What an amazing group and discussion. The goal for the evening was to bring together some of the top thought leaders in DevOps, with the media and analyst community.

Anders Abel07/21/14
2627 views
0 replies

Code Coverage != Functional Coverage

To reach 100% testing coverage is a dream for many teams. The metric used is code coverage for tests, but is that enough? Unfortunately not. Code line coverage is not the same as functional coverage. And it is full functional coverage that really matters in the end.

Benjamin Ball07/20/14
2289 views
0 replies

The Best of the Week (July 11): DevOps Zone

Make sure you didn't miss anything with this list of the Best of the Week in the DevOps Zone (July 11 to July 17). This week's topics include DevOps best practices and culture, Java debugging, code readability, test-driven development, Docker 1.1, and Docker's new ignore features.

Gil Zilberfeld07/19/14
1665 views
0 replies

Test Attribute #3 - Speed

Tests should run quickly. We’re talking hundreds and thousands in a matter of seconds. If they don’t we’ll need to do something about them. Quick feedback is not only an important agile property. It is essential for increasing velocity. If we don’t work at it, the entire safety net of our tests can come crashing down.

Vijay Narayanan07/19/14
3037 views
0 replies

Tips for Identifying Reusable Candidates from Existing Code

Introduce Factory or Builder instead of repetitive boiler-plate code when constructing key objects. Several benefits: makes it easy to refactor and evolve how underlying objects are stitched together, makes it easy to write more intention revealing code, and very relevant / convenient when writing automated tests.

David Flynn07/18/14
3811 views
0 replies

Introduction to Functional Programming in Java 8 – Part Two

For a preview of what will be covered in a future article, try changing stream() to parallelStream() in the example and see what happens. So that’s the basic operations we’ve covered so far in the blog. We can take a container make a stream, transform items, filter items, peek at them and do something with them.

Jim Bird07/18/14
8123 views
0 replies

Trust instead of Threats

According to Dr. Gary McGraw’s ground breaking work on software security, up to half of security mistakes are made in design rather than in coding. For the last 10 years we’ve been told that we are supposed to do this through threat modeling. What else can we do to include security in application design?