Source Code Management(SCM) Tools
Developers’ code and code modifications are stored in Source code repositories which would help to incorporate the changes with other developers/team members’ code. SCM tools can also be integrated with IDE (Integrated development environment)tools installed on the developers’ local machines to make the code commit process easier.
Build tools are used to build an executable application from source code, and can normally be referred to as programs that would automate daily activities for developers such as downloading dependencies, compiling code, running unit tests , packaging code and publishing it to artifacts management repositories.
- Apache Ant
Artifacts Management Tools
Compiled and built packages called Build Artifacts get published to the artifact repositories where they are stored as large binaries. These binaries in turn are deployed to Application servers according to requirements. These tools can be integrated with Continuous Integration tools where the automation of tasks during build and publish can be achieved.
- Nexus Repository
Testing tools are used to ensure software quality, and are used throughout the software development process. These tools are part of the CI-CD pipeline and they are used to automate the testing process so as to easily validate the consistency of the device. Various types of testing methods are available which support different purposes such as unit testing, performance testing, functional testing, etc.
Deployments tools are used to perform the process of application deployment to servers in different environments of the project. Automation using these tools helps occurrence of deployments in an effective and timely manner.
- Octopus Deploy
- Deploy Bot
Code Analysis Tools
For source code, there are two types of code analysis available: Static code analysis and Dynamic code analysis. Static code analysis normally performed without executing code to identify security issues within the code, and also to pick up the code flaws. Dynamic code analysis provides an added potential to evaluate a program during real-time execution and detect security problems as code communicates with other components of the system such as database, application servers or web services.
- Sonar Qube
Continuous Integration(CI) Tools
The concept of Continuous integration (CI) helps integration of contribution of multiple developers into a single product. As part of this, CI tools help to integrate tools used for different activities like code compiling, running unit tests, packaging code, pushing to artifacts management repositories, performing scans and automated deployments. These tools help organizations to save considerable amount of time where the repetitive tasks can be achieved through automation thereby ensuring the continuity of flow to the next levels.
- Team Foundation Server
- Team City
Containerization tools are used to package software source code and all its dependencies which can run in different environments. Containerization of applications favors efficient portability of applications between platforms or environments.
- Docker Swarm
Configuration Management Tools
These are automation tools to provision and manage the infrastructure tasks and the main goal of their usage is to make the process of deployment easier and faster. As part of this, scripts can be created and used to achieve various activities such as automation of installation, configuration and maintenance of required tools for the project, automation of creation and provisioning of environments in the project. Also, these tools can be used to automate tasks for application deployments to different environments.
Scripting languages role is very crucial in DevOps world as everything needs to be automated. There are many scripting languages available to automate different types of tasks involved in the process of development to deployment of a product.
- Power Shell
Cloud Services are rapidly growing in market and many organizations are adapting to these as they help them to build their native infrastructure. These also help achieve cost-effective methods for hosting applications and maintenance of infrastructure.
- Google Cloud
- Microsoft Azure
- Open Stack
Monitoring tools are used to track the state of the system in operation and focus on both software and hardware to detect problems in advance. They help organizations in various ways such as monitoring network traffic, monitoring network user numbers, detecting problems and sending warning alerts to system administrators/project members.
Log Management Tools
These tools are used to manage all kinds of logs created by applications, networks, users, and systems. A log is usually a file that will be created automatically any time some event occurs in the system. In addition to system administrators and security management teams, developers will also benefit from these tools in order to assess system output and for troubleshooting purposes. There are several log files available to support different types of purposes, such as audit logs, error logs, transaction logs, message logs, etc.
Load Balancing Tools
These tools are used to troubleshoot the distribution of inbound traffic and application traffic across multiple data centers or servers. There are different load balancing types for the organizations to consider for their networks such as Network Load balancing, HTTP(S) Load balancing or Internal Load balancing.
- Citrix ADC