DevOps

We promote DevOps practices by working with the Operations team leveraging technology to automate infrastructure and tooling ensuring that the infrastructure and applications are observable and can be proactively monitored.

Automation

Automation is at the core of successful DevOps practice. The more you automate, the quicker the feedback cycle and the more you reduce human error.

At Yobibyte Solutions, in addition to working with and supporting the Operations team as required, we advocate three types of automation; a build pipeline, infrastructure-as-code and configuration-as-code.

Build Pipeline

A build pipeline facilitates practises like continuous integration and continuous deployment/delivery.

A pipeline should be fully automated, from the creation of the pipeline itself to the deployment of infrastructure and code.

When a developer commits code to the code repository, a fast feedback process should start.

This process should verify the code quality via tools such as Sonar, check for security vulnerabilities with something like Snyk and execute a comprehensive test suite before being deployed to an environment.

Longer running tests can be run periodcally where it is not practical to run them on every commit.

Yobibyte Solutions has extensive experience of creating and maintaining build pipelines from Jenkins, Bitbucket, GitHub Actions, Atlassian Bamboo to AWS CodePipeline created using infrastructure-as-code and configuration-as-code.

Infrastructure as Code

Cloud infrastructure should be treated as immutable and as such should be automated and declared via infrastructure-as-code.

Yobibyte Solutions has experience of using AWS CloudFormation, Terraform and AWS CDK to define the infrastructure.

We can also use infrastructure-as-code to create a build pipeline in CodePipeline to continuously deploy the latest code right through to production.

Configuration as Code

Similar to infrastructure, configuration can and should be treated like code where possible.

Good configuration management practice ensures tracability of change and a reduction in the potential for human error.

In particular, when setting up a build pipeline, configuration-as-code should be used. Yobibyte Solutions has experience using Jenkins configuration-as-code (JCasC), Kubernetes manifest files (with Helm) and GitHub actions.

Monitoring

Monitoring is a very important aspect - without it, the first you know of failure is when your customers are complaining which is not good for your business.

Yobibyte Solutions has experience in ensuring that software components are observable feeding into systems such as Prometheus and Grafana, DataDog or AWS CloudWatch.

These systems allow software systems and components to be pro-actively monitored and alerted on allowing issues to be resolved without your customers even being aware.