DevOps and Automation

AnalyseAnalyse
DesignDesign
BuildBuild

We've helped some of the largest public and private sector organisations on their digital journey.

At a high level, we think that the process to successful project completion can be fundamentally broken down into three categories in a specific order - Analysis, Design and then Build. We follow these principles throughout all of our work, continually iterating until project completion.

We choose to operate our projects using agile methodologies, usually SCRUM, or KANBAN - waterfall has never proven to lead to successful project deliveries in our experience.

DevOps means different things to different people, for us it consists of a few fundamental concepts.

Sensible Architecture

This one may seem to be totally obvious, but the architecture of your platform should be designed with performance and scalability in mind - applied sensibly this can actually represent some significant cost savings.

Employing auto-scaling and self-healing systems can also dramatically improve your customer experiences and free up time from your development and operations teams.

Version control

All of the code produced by your teams should be stored in a proper version control system, this ensures that changes are properly tracked and enables quick rollback of features should the need arise.

An effective version control strategy should always include pull requests, all code changes are then subject to peer review prior to inclusion into any output product or application - this is one of the most effective ways to catch defects early.

Configuration as code

Employing proper configuration management ensures consistency and repeatability throughout all of your infrastructure and application deployments.

Your configuration tooling should be fully idempotent so that no unexpected configuration changes can make it into your builds.

Automated testing

Automated testing should be employed across the board for both business logic and infrastructure, empowering your developers and operations teams to ensure consistent releases and a considerable reduction in error rates.

CI/CD Pipelines

Utilising continuous integration (and where appropriate continuous delivery) pipelines ensures a smooth path to production and should tie together tooling for the assessment of code quality, security auditing, integration testing and overall stability before your code makes it into production.

Artifact Management and Versioning

Your applications should follow a consistent versioning scheme.

Artifact management should extend well beyond just the output binaries/scripts for your applications, it should also manage cached copies of any dependencies - the last thing you need is for your applications to break due to an issue with an upstream repository.

Monitoring

Your applications, endpoints and systems should be should be continually monitored stability and performance and where possible trigger scaling events and other resiliency methods.

Logging

Your applications should output log information that is detailed enough to reproduce any error conditions or provide enough context for proper auditing in the event of a breach or failure of service.

These logs should be repeated to a centralised and highly available logging system to prevent their loss in the case that the instance(s) that generated them become unrecoverable.

Get in touch

Complete the following form for a no-pressure informal chat about your upcoming project.

Hakosuka Technology Limited Logo

Unit 36 Silk Mill Industrial Estate, Brook Street, Tring, United Kingdom, HP23 5EF

Company Registration Number: 13439379

VAT Registration Number: 382252109


© 2021 Hakosuka Technology Limited, All rights reserved.