There are multiple DevOps Practices such as Continuous Code Inspection. Continuous Integration, Continuous Delivery, Continuous Testing, Continuous Deployment, Continuous Monitoring, Configuration Management, Cloud Computing, and so on.
There are many Open Source and Commercial Tools that are utilized in different categories based on culture of an organization. In this article I have compiled details based on the reports available in the Public Domain.
- Designing AWS Environments
- Machine Learning with R Cookbook
- Natural Language Processing with Java
- Deep Learning Projects with PyTorch [Video]
- Practical AWS Networking
- Learning Azure Functions
- Jenkins Continuous Integration Cookbook
- Jenkins Essentials – Second Edition
- DevOps for Web Development
- Implementing DevOps with Microsoft Azure
- DevOps Bootcamp
- Jenkins Essentials
IDE – Continuous Development
According to JVM Ecosystem report 2018, Eclipse is still dominating in the IDE department. It is one of the most popular IDE that is available FREE.
Build tools provide base for DevOps practices such as Continuous Integration and Continuous Delivery. Different build tools can be utilized for different programming languages. E.g. Maven is the most Popular tools in Development of Java based Project. Main benefit of Maven is Remote repositories so you don’t need to maintain JAR files in your code repositories.
Continuous Code Inspection
Code quality is extremely important for maintaining code for a longer time and also for maintaining code standards and organisation culture in having better coding culture.
SonarQube is one of the most popular Static Code analysis tools as it provide free Analysis for Java, HTML, CSS, .Net and so on. However it is recommended to use tools which are native. E.g. Android Lint that comes with Android SDK rather than using 3rd party tools. Go to https://www.sonarqube.org/downloads/ and download the latest version available
SonarQube supports 20+ Programming Language. Some plugins for Code analysis are not free. It Provides Quality Profiles for different Languages and uniform Quality Gates to manage standardization.
Jenkins is one of the most popular Automation Server used by many organizations. It is an open source automation server.
Jenkins is a simple, extensible, and user friendly open source tool that provides continuous integration services for application development. Jenkins supports SCM tools such as Git, Subversion, Star Team, CVS, AccuRev, and so on. Jenkins can build Apache Ant, and Apache Maven based projects.
Concept of plugins makes Jenkins more attractive, easy to learn, and easy to use. There are various categories of plugins available such as:
- Source code management
- Slave launchers and controllers
- Build triggers
- Build tools
- Build notifies
- Build reports
- Other post-build actions
- External site/tool integrations
- UI plugins
- Authentication and user management
- Android development
- iOS development
- .NET development
- Ruby development
- Library plugins
Jenkins defines interfaces or abstract classes that model a facet of a build system. Interfaces or abstract classes define agreement on what needs to be implemented; and Jenkins uses plugins to extend those implementations.
Jenkins is easy to use and after Jenkins 2.0 release, its focus is not only on CI but entire automation part and hence it is recognized as an Automation Server.