How we tell the Continuous Delivery story
A developer that pushes their changes and goes on a celebratory walk to the water cooler is done. But, they’re not done done, their changes have yet to be thoroughly tested, added to future release notes, properly peer reviewed and more. These are pains we want to rid the software industry of, and here’s how we do it.
At Praqma, we help our customers embrace and implement Continuous Delivery. To help them set their sights on tangible goals, we’ve developed a Continuous Delivery storyline. We depict a workflow with, at its core, the removal of waste, and the automation of development processes. This lays the foundation for Continuous Delivery, the means to release changes safely, quickly and sustainably.
Up first is automated integration. With the CI server relying on local merges and toll-gate tests, we keep the mainline pristine. Automating integration allows you to integrate smaller changes more often, avoiding dreadful merge hells. For more information, check out Emily Bache’s post on automated pre-tested integration.
The change undergoes increasingly rigorous testing after integration. Our confidence in it increases as it travels further down the pipeline. As the goal is to fail as soon as possible, we prefer running fast tests early. Metrics are a good start, as they quickly gauge the code’s health. Thresholds help prevent technical debt, while the data facilitates the code reviews down the line.
Up next is automatic deployment to a production-like environment. This tests the deployment process and allows for extensive testing in a realistic environment. Once these tests pass, we’re confident enough to start preparing for a potential release.
We start by automatically generating documentation and release notes. Relevant work items are also flagged for the team’s weekly code review. We now have a release candidate, ready to ship, without lifting a finger.
Unless you spend an awful long time at the water cooler, you’ll want to optimize your pipeline. The goal is shortening feedback loops. With shorter loops come less wait states, task switching, etc. However, wanton automation won’t get you shorter loops. The key is streamlining first, automating after.
Here’s a few thoughts to keep in mind when improving your pipeline:
Making deliberate, data-driven improvements, we inch closer to the bigger picture. From thereon out, the real fun begins. Having closed the loop, we can develop right next to the customer, and experiment with A-B testing, canary rollouts, etc.
How do you tell the Continuous Delivery story? Feel free to share thoughts, ideas and criticisms below. And if you’re interested in a poster, don’t be shy, shoot us an email!
When I read Fowler’s new ‘Refactoring’ book I felt sure the example from the first chapter would make a good Code Kata. However, he didn’t include the code for the test cases. I can fix that!
Writing tests for ‘Theatrical Players’
Nicole Forsgren and the Accelerate DORA team has just released the newest iteration of the State of DevOps report. The report investigates what practices make us better at delivering valuable software to our users as measured by business outcomes. Read on for our analysis of the report, and how it can be best put to use.
The latest drivers of software delivery performance
A major challenge of software development is that our work is by and large invisible. This makes our folklore essential in business matters. Some of our commonly used arguments and visualizations are digital urban legends rather than solid foundations for informed decisions. Here, we’ll go through a few examples and some measures to address our misconceptions.
How the stories we tell influence our decisions
When you embark on your cloud native journey there will be important choices to make about cloud providers, continuous deployment, environments’ setup and separation. This guide will help you make the right choices by sharing lessons learnt from running cloud native apps in production.
Kubernetes has become the de facto container orchestration platform. When we help clients of different sizes and domains start their cloud native journeys in Kubernetes, we assist them in making sound decisions and technology choices. There is no one-size-fits-all solution when it comes to choosing cloud providers, CI tools, continuous deployment pipelines etc., so it is important to make the right decisions at the start. Failing to do so can be very costly in terms of lost time and money.
How to make the right technical choices on your cloud native journey
Learn how Docker and Kubernetes work and the key benefits they bring. Using real demos, I show how Docker is a great packaging and distribution technology, and how Kubernetes provides a powerful runtime for containerized applications.
Watch this introduction to Docker and Kubernetes at the Trondheim Developer Conference (TDC)
In the world of Agile and DevOps we use many figures, charts and diagrams to argue and reason about our world and how we prioritize and make choices. However, at all levels of the organization, we misuse and misinterpret figures. It’s time to be explicit, measure the right things and act on them. Watch this talk from DevOpsDays Zurich in May 2019.
Watch this talk from DevOpsDays Zurich
Summer is a great time to catch up on reading, whether you’re at the beach, in a summer house, or cozy at home. If your book backlog is on the short side, don’t worry! We compiled a list of great books for summer reading.
Inspiration for your summer reading list
At Praqma we believe in knowledge sharing, and we love to teach our technical expertise. Watch this series of videos to learn how traefik reverse proxy works step by step.
A video seminar to learn how Traefik works
Hear about upcoming events in Scandinavia, latest tech blogs, and training in the field of Continuous Delivery and DevOps