Who in tech do we blame for not meeting the demands of the business to launch?
Does this phrase ring a bell? It should, either it was a story of the past or a common debate at your present workplace. If you’ve been following our journey at Carbon, then you will know that we are not immune to changes. Over the years, our business has had to evolve and not leaving behind our technology landscape.
In our early days, we had two isolated sub-teams within the technology team, Software Engineers and Infrastructure Engineers, which has now transitioned to Site Reliability Engineers. These two teams operated distinctly, we even had our seats in different floors, we rarely have meetings together and the infrastructure team only get to know about new business requests when software engineers have reached the last phase of their release cycle. The collaboration was difficult and the blame game became our escape door for not meeting deadlines.
Our Infrastructure Evolution
In the beginning, we operated an on-premise Data Center with bare metal servers for mission-critical services like the Data Warehouse, BI Analytics services, and Application servers. We practically have to build a new bare metal server, install OS, software packages and provision power each time we plan to launch a new service. As the business progressed, we built some new giant servers to begin virtualization while deploying application services on those virtual servers. It was fast but not fast enough and we were still blaming each other because the Infrastructure Engineers deploy the servers, choose OS, install software packages and deploys the code written by the Software Engineers.
Our DevOps Approach
Fast forwarding the journey, we began changing our culture. These two teams started communicating, having meetings occasionally and brainstorming architectures frequently. We moved to the same floor, and sharing feedback became smooth. We both realized that our common goal was for the business to win, innovate fast, fail fast and be the first to market.
Eventually, we landed at the promised land with the implementation of Docker Containers. Infrastructure engineers no longer dictate the OS or what version of software packages that needed to be installed for an app to run. Software Engineers can now test their app locally before shipping it to staging or production environments. Host servers in the care of Infrastructure can run a different OS and containers packaged by the Software team can also run a different OS. We both win.
We both achieved a common goal which was to allow the Carbon business to operate at scale and deliver the fastest time to production. We’ve completely eradicated the blame game. Now we have a new game.
Want to be a part of this new game? We are recruiting top talents. Apply here!