Modern professional developer’s life no way restricted within the coding. We continuously talk about Docker, Kubernetes, serverless, unikernels, CI/CD software (like Jenkins, Travis), tools automating the infrastructure (such as Chef, Puppet, Ansible, SaltStack), monitoring application performance (such as ELK, Prometheus) in this website because blogs of our IT sponsors talk about the technologies. The modern expectation is shifting towards the philosophy that developers will focus on application development with concerning less about the infrastructure. Developers should first upgrade in terms of DevOps. There are various tools which can help in terms of a job. When we need to work for containerisation services then we need to upgrade skills to other tools like Packer, Mesos, Linux Container, Marathon, Solaris Container and so on. What we can avoid as “hobby programmers”, a professional cannot avoid.
Git is a tool which everyone should know to use. It is widely used across the industry. It is most loved by the open source contributors. To integrate Git with workflow, we need to host repositories where others can push their work. GitHub, GitLab and Bitbucket are popular services.
Docker is the number one container platform since it’s launch. It is also thought one of the most important DevOps tools. Docker makes distributed development possible and also automates the deployment, isolates applications into separate containers. Docker integrates with Jenkins and Bamboo. In recent years, most of the cloud providers added support for Docker.
Kubernetes is a container orchestration platform which takes containerization to a better level. With Kubernetes, we do not tie our containerized apps into a single machine. But, we can deploy it to a cluster of computers. Kubernetes can automats the distribution and scheduling of containers across the cluster.
Apache Ant and Maven dominated the automated build tools market but Gradle showing up on the scene since 2009. Maven and Ant use XML for configuration. Gradle is a versatile tool which allows writing code in Java, C++, Python, or other languages. Gradle has also supported IDEs such as Eclipse, IntelliJ IDEA. Gradle uses a DSL for describing builds. Gradle does have some learning curves. Gradle uses Maven’s repository format, so prior experience with Maven will help. Ant builds can be imported into Gradle. Gradle supports incremental builds and faster than Maven.
We separately discussed Jenkins. Jenkins is an open source CI/CD server which allows automating the different stages of the delivery pipeline. The main reason for Jenkins’ popularity has been discussed in the elaborated article – the huge plugin ecosystem. We can easily integrate with almost all DevOps tools, starting from Docker to Puppet.
Bamboo is Atlassian’s CI/CD server solution which is similar to Jenkins. Jenkins is open source, Bamboo comes with a price tag. Bamboo has many pre-built functionalities which need manual setup in Jenkins. Bamboo has fewer plugins but it does many things out-of-the-box.
Puppet is a cross-platform configuration management platform which allows managing your infrastructure as code.
Ansible is a configuration management tool, like Puppet and Chef. It is more simple and easy to use.
Nagios is one of the popular monitoring tools which allows monitoring infrastructure
Most of the tools we discussed on this website on various occasions for the newbies. The new part probably mentioning serverless part. We clearly indicated our source of the understanding trend. New professionals should do research around microservices and serverless as well.