Director of Avenga Labs
Star means asterix (*) in the computer science world, but the star in computer languages often means ALL or everything.
Everything as code, is one of the most important trends in the technology industry at the moment.
What does it really mean?
What are the business consequences?
* as code == everyone as developer
This movement means everything is organized and controlled automatically by the software, and the software is written in (you guessed it 😄) the code. So first of all, it means total automation.
The code text files contain configurations, instructions, rules, and triggers in different specific languages and applications.
The key aspect is the mindset shift from manual operations performed using GUI tools that are repetitive and error prone, to using dedicated software and best practices from software development.
It means source control; making sure no code is lost and that it is properly versioned, managed, and merged.
It means architecture design and testing, as all software requires.
→ Explore more about Evolutionary architectures in practice
In other words, almost everyone who works in IT is some kind of software developer. * as code, also creates a universal language in which all the participants can communicate, share, and suggest improvements thus creating communities around the everything as code.
It also means updates of runtimes and technology migrations.
Let’s review some of the more popular ‘as code’ examples.
It’s been around us awhile. The philosophy changes and the tools change constantly in order to find the best solution. Machines, virtual machines, containers, and entire container clusters are created, updated, monitored and managed by dedicated software.
What you want to achieve is specified in code. It means, for instance, yaml configuration files, specialized languages and their runtime environments.
The examples are Ansible, Chef, Puppet, and of course Terraform.
Intelligent networks, that you are using at this very moment when reading this article, are software defined networks which dynamically configure themselves using specially defined code, configurations and even machine learning (ML) to optimize packet flows between you and our cloud servers.
Automatic configuration of all the network devices, provisioning, removing, rerouting, and optimization are all done by coding.
AaC enables the defining of all the components required to run the business application, and all the servers, services, connections, and authentication mechanisms, as well as being able to deploy it to various environments (dev, test, production). As a code imperative approach, it additionally enables version control, review, and modifications.
Test automation for all kinds of tests is a perfect example of testing as code. Instead of manually executing business logic operations or UI interactions, it can all be done with the test scripts, which is code that is (again) designed, developed and maintained as every software piece is supposed to have.
→ More on Avenga Quality Assurance and Testing Services
A perfect example is the modern deployment pipeline. Modern means pipelines as code, that are written, versioned, managed and fixed as software components. Advanced CI/CD pipelines are already written in code. Both basic and advanced.
Operations design, management, execution, and monitoring can all be done, and more and more often it’s done by using an ‘as code’ approach. Advanced tools are improving fast and DevOps environments have replaced most parts of the traditional IT operations.
→ Explore more What happened to NoOps?
Data scientists and machine learning (ML) experts, in particular, were a little bit behind the curve, but now everything is changing rapidly. Machine learning models, pipelines, datasets, learning environments and execution are all done increasingly as a code. Machine learning pipelines have replaced hundreds of steps that were manually performed before.
The ultimate goal of * as code is to automate the entire process of IT and business systems, using code as the medium.
Business demands speed and flexibility, everything as code enables just that.
High levels of automation, properly done, is an important part of the digital advantage over the competition.
However when a company struggles with that and puts too much effort into it at the expense of creating and improving client-facing business functionality, it usually means trouble.
→ Explore more about Legacy migration by a thousand features
Automation and everything as code is a long-term investment, sometimes the returns are quick and visible, but often it takes a long time to properly optimize other parts of the IT to see the benefits.
Promises of IT workforce reduction don’t usually occur, as it’s more about changing the work style and attitude than simply replacing IT workers with software. Someone has to design, maintain, test and run this code, and they may even be the same people who were doing it manually before (perfect career advancement), or it could be new people or external partners.
Basic manual operations done via GUI or simple scripts were very easy, and because of this everyone now has to become familiar with development techniques, writing and testing code, source control versioning system, and automation engines. Sometimes it’s a steep learning curve and an adoption obstacle.
I don’t mean here the production stability, i.e., how many crashes etc. Definitely the preferred code tool sets change over time, go out of fashion, or become obsolete, which means the entire environment will have to migrate from the old obsolete toolset to a new one, and once again in the future. This is very often underestimated effort and cost.
Everywhere we look and everyone we talk to reflects the trend of * as code, which means automation via software is everywhere.
There’s not much to add to this. All the surveys are proving it and the demand for automation engineers (DevOps, infrastructure, ML) is increasing.
We, at Avenga, are open to sharing with you our skills and experience and to assist you in creating, updating, and improving your * as code, whatever the star is, so as to help IT focus on the core business and achieve a higher return on your investment. We can start with a review/audit and share our opinion, but we can jump straight into your infrastructure automation or development environment as well.