By the end of this article you’ll get a general idea behind DevOps approach. I will describe how DevOps is implemented in our company and why it’s so great to develop software sticking to DevOps practices.
To make things clear — DevOps is a methodology. The idea of this methodology is to create a new mindset. A mindset when developers and operations combine their efforts to achieve a common goal.
Sometimes it is mistakenly confused with a tool or a role. It’s not a tool although it uses a toolchain to automate software delivery and deployment. Nor it’s a position although both operations and developers are expected to extend their responsibilities.
Traditionally, or say 10 years ago, the development team could be roughly divided into developers — people who knew how to write code, and operations. For those who still wonder — who on earth are those operations:
They are administrators — sysadmins, network admins, database admins, and all other people who know the infrastructure.
So… The operations were interested in keeping things stable to minimize the chance of software conflicts. While developers mostly cared about new features, new versions, and well, yes bug fixes. The main problem with all the above was the lack of cooperation and communication. As a result, the software couldn’t be delivered at a desired fast pace.
Now, take developers and operations, merge them into a single team, and drive them with the idea of mutual support. You get DevOps.
DevOps methodology allows delivering software frequently with minor iterable changes.
Except for the cultural component DevOps methodology became possible thanks to the following approaches:
It all depends on the scale of the project. If your objective is to launch a minimum viable product(MVP) to test your idea, most likely you can live without DevOps practices. If your software has already reached several releases, and it ss time to start thinking about scale and competitiveness — think of DevOps.
It takes more time to set up DevOps environment from scratch. On early stages people get confused why should it take additional time and money to setup Docker and Ansible. The answer is simple — it will take a bit more time now, and as a result, save it in a long term perspective.
In Django Stars, the implementation greatly depends on a customer we deal with. Here is the list of the most frequent “types” of requests:
This is the most frequent request, simply because one day, any company has passed the initial stage of MVP. For such little projects adding a release engineer or system administrator would be an overkill and a waste of customers’ money. These projects are often deployed by developers themselves.
We try to convince the customer that it’s better to sow the seeds of DevOps on this early stage and stick to DevOps common practices like building an app using microservices. In most cases, the developers will also deploy and maintain the product. It allows minimizing the spendings. The product itself is built according to customer preferences, but even if the customer prefers the monolith type of app, opposed to microservices, still we create a good foundation to implement microservices in future.
Most of the time is the hardest case. We like to avoid projects that have been started by someone else and for some reason were abandoned. Still, there are some rare exceptions when the projects are promising enough to take a risk. The cases exclusively depend on the customer. Sometimes, we get an app developed with best DevOps practices in mind, with a request is to upgrade the app from Python 2 to Python 3. While another one required a complete rewrite from the ground up.
This case is the most relevant to a “perfect DevOps world”. Our software engineers are working in a tight conjunction with customer’s operations or DevOps engineers.
Whenever we get a request to implement a new feature our developers provide the following info to customers’ ops teams:
The ops team sets up servers according to developers requirements. This, in turn, makes the further life of our developers easier.
Here are the tools we use on a daily basis no matter what project we deal with:
DevOps is an approach that combines Developers and Operations to develop and deliver software more efficiently than a traditional siloed approach. The teams are not solely limited to developers and IT operations only. In most cases the approach is also spread on QAs, PMs and Security experts. Companies that implement DevOps on early stages create grounds for scalable growth.
The article is written by VOLODYMYR DMYTRIIEV — a technical content writer at Django Stars. This article about devops is originally posted on Django Stars blog.
Specially shared with Hackernoon community.
You are always welcome to ask questions and share topics you want to read about!
If you find this post useful, please tap 👏 button below :)
Create your free account to unlock your custom reading experience.