So, as a large number of you tech enthusiasts know by now, DevOps is becoming increasingly common, I’d argue so common that it’s practically standard practice. I mean it doesn’t make much sense to not embrace DevOps to some extent or another, that doesn’t mean to say that you have to go full on agile & focus on trying out new things, seeing what works & what doesn’t, etc.
In some industries, such as the financial industry, due to cost & risk such industries try to avoid a full blown trial & error way of working & obviously it makes sense. God forbid the bank you’re with just decides to use a new technology no one is familiar with & then it has a bunch of security issues that are well known amongst hackers. You wake up to find that your money has been taken over night, obviously you’re still protected to some extent, but obviously you’d lose trust & faith in the bank & ultimately that would cause an immense amount of damage to the bank & its reputation.
Risk & whatnot aside, back to the main subject at hand, DevOps. In my experience, I’ve been quite a hands on with DevOps, including some infrastructure, the pipelines, automation, quality assurance, etc. One thing that I always try to push is for better quality software, because the better quality the software is, the better the customer experience & so on, it generally minimises risk & improves customer satisfaction. Which in turn can lead to better profit & whatnot, simple logic really.
But seeing as I tend to find myself getting more & more hands on with DevOps, there’s many a time where I’d like to just test something out, whether it’s because I think it’s an awesome idea that could make life super easy or just to kill curiosity. An example, today I started wondering about trying to come up with a PoC using not much more than a makefile. It’s a simple enough idea & obviously it’s been used in the past & is probably still being used in the present to quite an extent. But I was purely wondering about making a completely mature, fully fledged CI/CD pipeline using not much more than a makefile.
I mean if you can minimise the complexity of it all, without introducing unnecessary risk & whatnot, I fail to see why you wouldn’t want to go with the most simplistic approach possible. Now obviously this may not be appropriate to all, there may be an infinite number of reasons as to why you wouldn’t be able to use a makefile. A simple example could be that the box that you’re running your pipeline(s) on is so locked down that only Jenkins (or whatever software you’re using) has permission to run the necessary commands. There may also be more policy oriented reasons as to why you wouldn’t want to use a makefile, it may be a company wide policy that you’re to use Jenkins & nothing else, etc. I’m sure you get the idea…
But to me, I honestly think that a large part of DevOps is embracing a PoC way of working, if ‘x’ tool is a lot less complex, requires less maintenance, or possibly less infrastructure, etc, then why not? In my experience so far, DevOps is a mileage will vary kinda subject, for some people, they may be able to get away with using nothing but Jenkins on a Linux server somewhere, simple enough & as long as it works & it’s not a hassle, happy days! With something like Azure DevOps on the other hand, you may be able to get away with having it all managed for you, in which case you don’t need to worry about the maintenance side of things, rather just implementing the pipeline. To me I think that’s a pretty awesome feature of Azure DevOps, but of course, as I’ve already said, mileage will vary.
I for one have many projects on the side that I just like to tinker with & keep myself busy with & I strongly suggest you do the same! ?