Instant DevOps
The reasons why DevOps is useful is because it gives us "instant feedback", and if it doesn't it's broken! In this article I propose "instant DevOps", implying getting completely rid of pipelines, deployments, and everything that slows the process down.
Join the DZone community and get the full member experience.
Join For FreeI once worked for a company where I had to wait for 45 minutes every time I merged a pull request before I could test it in our development environment. Needless to say probably, but this annoyed me and became frustrating over time. Having to wait 45 minutes before you know if you broke something or not, is everything but DevOps.
One of my first tasks at this company as their architect was therefor to break up their monolithic code from one single project into 5 sub projects, creating 5 different Git repositories, and 5 separate pipelines, using constructs such as Git sub-modules, adding more solutions to the project, and separating a single pipeline into 5 different pipelines. At the end of this process, we were averaging 5 minutes deployment time before we could test things in our development environment.
5 minutes? Too slow!
However, even 5 minutes is too slow for me. Science has shown us that the resources required to fix a bug increases exponentially according to how much time passes from we introduce the bug until we realise we've added a bug. And, there are no reasons why bugs shouldn't be visible immediately if you think about it. This is actually quite easily achieved by changing the way we work. For instance, why is our development environment and development testing environment two separate things? Why can't we just simply edit our code directly in our test environment and immediately get feedback? Well, with a web based IDE and runtime, this is actually quite easily achieved. The screenshot below is from our own Hyper IDE. Hyper IDE being a web based development environment, fused with its runtime, allows you to edit your code, save your file, and within milliseconds see if you introduced a bug or not. No pipelines, no deployments, no compilation, no problem!
Hence, instead of having to wait for 5 minutes, or 45 for that matter (shivers!), I can test my code in less than one second after having edited my code - And if my code breaks something, it also breaks our test environment, directly on our dev server, providing me with "instant feedback".
This process of course implies there's no time for compilation, or TypeScript transpilation for that matter. No time for creating artefacts, or uploading artefacts to some dev server. It literally implies editing the file in our dev environment directly, without anything needing to happen before the code can be tested. Such a process of course is only possible with dynamic programming languages, such as PHP, Python, JavaScript, Hyperlambda, etc - And you might not always want to throw out static compilation or transpilation for other reasons - But when you can do so, you get what I refer to as "instant DevOps", making you 100 times more productive.
When you save your file in your IDE, the code is in DEV
Literally, zero seconds pipelines ...
Opinions expressed by DZone contributors are their own.
Comments