Shalom and welcome to all!
My name is David and I have been working in IT for nearly 10 years now. 10 years is a major commitment to pretty much ANYTHING! I hope to continue building and contributing for more years to come. I like to debate pretty much any topic in IT especially the ones I am wrong about ;-)
When it comes to IT, I believe in simplicity. Too many times in my career, I have seen different silo-ed departments decide we are doing things our way and when it times to collaborate and go to production… Disaster. Unfortunately, it can take years to clean up these gigantic messes when many of these problems could have been avoided in the beginning.
Instead of harping on the messes, I wanted to describe a nightmare scenario and the first steps I would take toward resolution.
Imagine you get hired as a CTO and day one, you walk in and most of the software is written in unsupported languages, most of the infrastructure is a hodge podge between k8s and compute VMs, and your build jobs are all over the place.
I am probably describing many large corporations that over time, never cleaned up their technical debt, and more importantly never took the time to stop and strategize.
I won’t go into the psychological reasoning as to why, why and why? Instead, here are the first 3 steps I would take:
Inventory every single piece of software into gitlab and immediately start focussing on using gitlabs container registry for building my software. The reason I would pivot to gitlab is the functionality you get for the price you pay is worth the $$. Gitlab’s integration with k8s, ansible, docker, cloud providers, and even local development is really something that is worth using.
Inventory my current production and stage environments and ensure that everything is in terraform. While this is a bit of a challenge, all of your infrastructure stored as code is vital to your company as infrastructure is the most expensive component of IT. You will need to pay some good devops engineers to do this work for you, but it’s worth the money long term as you can easily start tearing things down and up as you scale. Also more importantly, environments not in use, can be turned off.
Establish excellent monitoring and logging for my applications. Too often monitoring gets overlooked in organizations. The trick to resolving these issues is to integrating good metric systems for all applications and have all of them using the same tools. When devs know to go to App1 for logging and App2 for metrics going nuts, they can establish good practices around using these tools.
That’s all I have for now.
Stay safe!