As one of New Zealand’s leading software services companies, our ClearPoint delivery team has been lucky enough to be involved in a number of large projects designed and built using Continuous Delivery (CD). There is a lot of discussion and material on the benefits of Continuous Delivery but the following areas generally sum up the key drivers:

  • Low risk releases
  • Faster time to market
  • Higher quality
  • Lower costs
  • Better products
  • Happier teams

We’ve invested a lot of time, effort and energy into our CD journey and we’ve learnt heaps along the way; one of the hardest parts is how to take the theory and apply it to complex enterprise real-world situations; one of the biggest findings is the need to create a culture of ongoing learning where failure is celebrated. When things don’t go right we need everyone to be asking “what can we learn here?”

We’re now at a point where we’d like to share our learnings with you and the wider community — basically anyone who is keen to understand, learn and bootstrap their CD journey from our experience. So we’ve created ClearPoint Connect — a collection of principles, best practice practical approaches, libraries, tools, utilities and architectures that encapsulates our combined experience, and expertise on CD.

Continuous Delivery is the ability to get changes of all types — including new features, configuration changes, bug fixes and experiments — into production, or into the hands of users, safely, quickly and in a sustainable way.  — Jez Humble

As a starting point, we used the foundational CD principles as described by Jez Humble and David Farley in the CD book and have found it to be a useful guide and point of reference. It’s important your teams understand and get on-board with the fundamental concepts of CD as early as possible, so when real world situations kick in (like legacy architecture and applications, culture, bureaucracy, budgets etc) you can fall back on these principles to help guide you through.

It’s not all about the tools

We’ve seen many clients get caught up trying to find the best products and IT tools to enable their CD journey. And while choosing the right tools is important, executing CD is about much more than tools alone — it’s aligning on the principles, from culture to architecture. What we’ve learned is organisations who successfully embed this approach within their teams, tend naturally to select tools which are fit-for-purpose. Design your architecture and tooling in ways that allows your teams to take responsibility for the system.

Architect for Continuous Delivery

There are certain architectures that better align to CD. Although you won’t always have the opportunity to change or update existing architecture, any new architecture should have the following considerations in mind:

  • Decoupled components
  • Independently deployable components
  • Independently scalable components
  • Immutable infrastructure
  • Easy to test
  • Easy to monitor

We’ve been lucky to be engaged with CD projects where we’ve designed parts of the solution from scratch, and we’ve become huge fans of microservices, containerisation via Docker and Kubernetes for service orchestration. The CD platform we’ve created is based on open source technology, which enables you to take your applications, tests and infrastructure, and release to customers in a fast, low risk, high quality way.

Connect is open source

At ClearPoint we’ve used a lot of open source in the past 10 years, the vast majority of our solutions are built on it. We’re very excited to be able to give back to the community by offering our platform for all to use. It will be open sourced on GitHub under the organisation ClearPointNZ.

Why Connect?

We understand CD is tricky for most organisations to implement — both at a technical level but also as it requires a fundamental shift in mindset. As leading software specialists, we’re passionate about sharing our learnings with others. That’s why we created Connect — so more tech teams can benefit from our experiences.

Next: Part 1: Creating a Kubernetes Cluster on AWS