The perception I have is that many people talk about DevOps, few use DevOps tools and no one thinks about DevOps.
DevOps is a term that in recent years has gained increasing importance in the world of IT and the Cloud. It is an acronym that derives from the fusion of”Developer“and”Operational”, but its meaning is fine Beyond the simple sum of the two terms. DevOps means approaching system engineer activities with developer procedures and methods.
DevOps, in addition to being a model, also represents a culture with communication at the center, efficiency as a goal and repeatability as a dogma.
By adopting this methodology, it is possible to guarantee innovation and quality of software and entire systems on a continuous basis.
In the market, especially Italian, there seems to be some misunderstanding on the subject and at CloudFire we notice this especially in the phases of searching for talents with specific DevOps skills. The lack of clarity is not so much on the part of those who offer this type of skills, on the contrary, it comes from the demand of the market itself. In a nutshell, many are looking for DevOps figures and approaches expecting anything but.
For this reason, in this article, we want to clarify what DevOps means for CloudFire, in all its meanings.
DevOps as a Model
DevOps represents a multidisciplinary approach to infrastructure management whole because it uses the same tools for deploying software such as virtual machines, databases such as cloud infrastructures, networks such as web servers, and so on.
The main objective of this model is to accelerate the time-to-market of software and infrastructure, ensuring their quality, reproducibility and stability, and provides for:
- Continuous Integration (CI) of the code through the automation of the build and test processes of the product code;
- Continous Distribution (CD) of new features and bugfixes quickly and securely, always through the automation of Deploy and monitoring processes;
- Infrastructure as a Code for infrastructure management through automated configuration and provisioning tools, the same used for the release of software;
- Continuous monitoring with the collection and analysis of the data used to trigger automatic modification actions with a view to optimizing performance and resilience;
- Collaboration and communication between teams through the promotion of a corporate culture and the use of shared methodologies between worlds that have never been talked about much historically.
What are the benefits of the DevOps model?
Depending on the context and the actual use of the model, you can:
- Satisfy the customer better with a better user experience, a greater speed in the release of new features and resolution of problems;
- Ensure the homogeneity of Production and Test environments so as to avoid problems deriving from different procedures for release in different contexts;
- Provide a structured and shared work process across multiple areas of the business.
DevOps as a Job Profile
As we said before, DevOps is not just a model, it is also a professional figure that owns skills both in software development and in IT operations. It deals with automating processes, configuring the infrastructure, solving problems and ensuring the operational continuity of the systems.
Attention, this is not a system engineer who now knows how to program, but a system engineer who uses developer methods and tools to operate on infrastructures that were normally the prerogative of the operational.
So basically, in CloudFire a DevOps Engineer is a figure who has transversal skills on:
- Sharing and Versioning Tools: Git, BitBucket, Mercurial;
- Scheduling: Languages like Python, Go, Typescript;
- Operating systems: Linux, Windows;
- Cloud Computing: AWS, Azure, Google Cloud, Openstack, Software Defined Storages;
- DevOps tools: Ansible, Puppet, Docker, Kubernetes;
- Database: MySQL, PostgreSQL, Elasticsearch, MongoDB, Neo4j
- Networks: Basic networking.
- Monitoring tools: Prometheus, Grafana, Loki.
The demand for such a pool of skills, transversal between them, is intrinsic and linked to the nature of the activities that a DevOps Engineer performs every day.
DevOps tools and technologies
Speaking of DevOps, then it is natural to also talk about the tools and technologies used. It being understood that the tools that support the DevOps model are numerous and constantly evolving, we list the most common ones below:
- Tools of version control: Git;
- Tools of continuous integration: Jenkins, CircleCI, GitLab-ci, Tekton;
- Tools of continuous distribution: FluxCD, Sveltos, Argo CD;
- Tools of containerization: Docker, ContainerD, I MADE IT, Katacontainer;
- Tools of orchestration: Kubernetes, Nomad;
- Tools of setup: Ansible, Puppet, Chef, Terraform;
- Tools of monitoring: Prometheus, Grafana, Elasticsearch, Loki, Jaeger.
DevOps on CloudFire
DevOps as we understand it at CloudFire is all this and more: an approach embedded in corporate culture that allows us to innovate and continuously improve.
And that's exactly what we're always looking for!
If you're interested in this approach and would like to join our team, applied!