ci/cd

7 Microservice Best Practices for Developers

September 27, 2021

Unless you’ve been developing software in a cave, you’ve probably heard people sing the praises of microservices. They’re agile, simple, and an overall improvement on the monolith and service-oriented architecture days. But of course, with all the benefits of microservices comes a new set of challenges.

Continue reading

4 Key Observability Metrics for Distributed Applications

July 26, 2021

A common architectural design pattern these days is to break up an application monolith into smaller microservices. Each microservice is then responsible for a specific aspect or feature of your app. For example, one microservice might be responsible for serving external API requests, while another might handle data fetching for your frontend.

Continue reading

You Can Log Better - How to Implement Real-Time Application Monitoring

October 30, 2020

As long as I can remember, I’ve included log messages in my code to provide run-time insight into what the code is really doing. From developers running locally all the way to the eyes of a production support engineer, these extra lines of code are meant to help troubleshoot unexpected scenarios.

Continue reading

How to Get the Most out of Heroku CI

May 15, 2020

Continuous integration and continuous delivery (CI/CD) are best practices in today’s software engineering development process. **Continuous integration (CI)**allows developers to automate running test suites and other jobs on each pull request created in their projects. These jobs must pass before merging the code changes into the master branch. This creates confidence in the master version of the code and ensures that one developer doesn’t break things for every other developer working out of the same codebase.

Continue reading

Zero Downtime Deployments: Best Practices for CI/CD on Heroku

February 28, 2020

Avoiding downtime while reducing the risk of exposing users to breaking changes when deploying applications is a major challenge. I’ll be pulling from my experience as a software engineering instructor and active user of Heroku to show you how to minimize deployment risk, and achieve zero downtime deployments.

Continue reading

Which CI is Best for My Team

February 8, 2020

At the beginning of developing and building a new application or product, before writing any business logic, it’s necessary to make some difficult decisions. These decisions can include which cloud hosting platform to use, which continuous integration (CI) tool to use, and various development configuration choices. These decisions can dictate the speed and success of your engineering efforts. Therefore, choosing the right CI tool can make or break the velocity and quality of a team’s code production.

Continue reading

Fear database changes? Get them under control with CI/CD

December 17, 2019

Developers often fear database changes because a mistake by anyone on your team can lead to a major outage and even data loss. Let’s look at an example of how to include database migrations in your CI/CD process and push a non-backwards-compatible database change successfully.

Continue reading

Staging Environments Are Overlooked - Here's Why They Matter

May 31, 2019

We’ll discuss some of the advantages of using a true staging environment in your software development lifecycle, and why they don’t need to be complicated to set up.

Continue reading

Intro to Jenkins X CI/CD for Kubernetes

January 11, 2019

Jenkins X (JX) is an exciting new Continuous Integration and Continuous Deployment (CI/CD) tool for Kubernetes users. It hides the complexities of operating Kubernetes by giving developers a simpler experience to build and deploy their code. You can think of it as creating a serverless-like environment in Kubernetes. As a developer, you don’t need to worry about all the details of setting up environments, creating a CI/CD pipeline, or connecting GitHub to your CI pipeline.

Continue reading

Analyzing Jenkins Metrics: Track Broken Builds, Build Time and More

September 28, 2018

Implementing continuous delivery (CD) is a challenge for organizations of all sizes. It’s not just a matter of generating more builds more often, but of automating and optimizing the release process. To know whether you’ve done CD successfully, you need to understand whether you are checking in your code frequently enough, whether builds are being delivered successfully, and whether you’re making the build and delivery process more efficient.

Continue reading