Operations | Monitoring | ITSM | DevOps | Cloud

CircleCI

A guide to personal retrospectives in engineering

Retrospectives are a well-established resource in the software and systems engineering toolbox. From sprint retros through to post-incident reviews, we look back on our work to learn from it and to get better. We can apply the same ideas to our professional practice with a personal retrospective: writing an analysis of our experiences to learn as much as possible. We could look over a whole year of work, or focus more closely on a particular project.

API contract testing with Joi

When you sign a contract, you expect both parties to hold their end of the bargain. The same can be true for testing applications. Contract testing is a way to make sure that services can communicate with each other and that the data shared between the services is consistent with a specified set of rules. In this post, I will guide you through using Joi as a library to create API contracts for services consuming an API.

Recovering from the Git detached HEAD state

The introduction of Git as a source-code management system in 2005 fundamentally transformed the process of software development. Git allows developers to maintain a history of changes, or commits, to their code and revert to previous commits in seconds if something goes wrong. It makes collaboration easier by allowing branching to keep code for different features separate and seamlessly merging commits by various people.

Metrics for improved Docker container management and performance

When running a cloud service, it’s never good for customers to be the first people noticing an issue. It happened to our customers over the course of a few months, and we began to accumulate a series of reports of unpredictable start-up times for Docker jobs. At first the reports were rare, but the frequency began to increase. Jobs with high parallelism were disproportionately represented in the reports.

Use these metrics to get the most out of your engineering team

I’ve been leading software teams for more than 20 years and one thing I’ve learned about metrics is that leaders tend to put too much emphasis on engineering metrics alone, without considering the bigger picture. After speaking to a range of engineering industry leaders, and poring over millions of jobs processed from software teams worldwide, we found that the most insightful and relevant metrics fall into three categories: What metrics are meaningful for your team to measure?

Smoke testing in CI/CD pipelines

Here’s a common situation that plagues many development teams. You run an application through your CI/CD pipeline and all of the tests pass, which is great. But when you deploy it to a live target environment the application just does not function as expected. You can’t always predict what will happen when your application is pushed live. The solution?

Dynamically rendering config templates for secrets management

It’s often necessary to inject secrets into your build or deployment process so that the deployed service can interact with other services. This can be straightforward if you’re only deploying to a single environment. When deploying to multiple environments, though, you might need to dynamically inject different secrets depending on the environment to which you’re deploying.

The Confident Commit | Ep. 13 Embrace simplicity: the #1 rule for software leaders

Rob sits down with Deepak Giridharagopal, CTO of Puppet to discuss the lessons they've learned through years as software leaders. Deepak shares the history and trajectory of Puppet, navigating shifting roles as your company scales, and his top leadership practices learned. Rob and Deepak dive into how to implement simplicity when complexity is often favored. Tune in today! And don't forget to Like and Subscribe to The Confident Commit podcast playlist for alerts to new episodes published biweekly.

Docker Swarm vs Kubernetes: how to choose a container orchestration tool

Businesses around the world increasingly rely on the benefits of container technology to ease the burden of deploying and managing complex applications. Containers group all necessary dependencies within one package. They are portable, fast, secure, scalable, and easy to manage, making them the primary choice over traditional VMs. But to scale containers, you need a container orchestration tool—a framework for managing multiple containers.