This article introduces Devops engineers to the commonly used DevOps technology stack and tools. Including: Agile management tools, products & quality management, etc.
Agile management tools
Trello
Teambition
Worktile
Tower
Product & Quality Management
confluence
Stack
Jira
Bugzila
Among them, confluence and Zen Tao are mainly comprehensive management tools for product requirements, definitions, dependencies, and promotion; while Jira and Bugzilla are product quality management and monitoring capabilities, including test cases, defect tracking, and quality monitoring. Currently Jira is used more.
Code warehouse management
Git
Gitlab
Github
Git is an open source distributed version control system; Gitlab and Github are open source projects for warehouse management systems. They use Git as a code management tool and build a web service on this basis.
Development process specification
Git Flow
Git Flow is a model for organizing software development activities built on Git, and is a software development best practice built on Git. Git Flow is a set of codes of conduct and tools for simplifying some Git operations when using Git for source code management.
Github Flow
Github Flow is a simpler alternative to Git Flow. It has only one feature branch and one master branch, which is simple and clean.
Gitlab Flow
GitHub Flow believes that you can directly deploy code online by merging feature branches.
Automated build script
Gradle
Maven
SBT
ANT
At present, Gradle and Maven are mainly used, and Gradle is a project automation build tool based on the concepts of Apache Ant and Apache Maven. It uses a domain-specific language (DSL) based on Groovy to declare project settings, abandoning the tedious configuration based on XML. Mainly for Java applications. The languages currently supported are limited to Java, Groovy, Kotlin, and Scala.
Virtual machine and containerization
VMware
VirtualBox
Vagrant
Docker
VMware and VirtualBox are the most commonly used virtual machines, supporting many platforms, and Vagrant is a virtual machine running environment management tool built on virtualization technology. Vagrant can easily manage virtual machines, including creating and deleting virtual machines, configuring virtual machine operating parameters, managing virtual machine operating states, automating configuration and installing various types of software necessary for development environments, packaging and distributing virtual machine operating environments Wait.
Docker is an open source application container engine. It allows developers to package their applications and dependent packages into a portable container, and then publish it to any popular Linux machine. It can also be virtualized.
Continuous Integration (CI) & Continuous Deployment (CD)
Jenkins
Hudson
Travis CI
CircleCI
Jenkins is an open source software project. It is a continuous integration tool developed based on Java. It is used to monitor continuous repetitive work. It is designed to provide an open and easy-to-use software platform to make continuous integration of software possible. Its predecessor is Hudson.
Travis CI is currently an emerging open source continuous integration build project. The obvious difference between it and jenkins is that it uses the yaml format, which is simple and fresh.
CircleCI is a continuous integration platform that provides services for web application developers. It mainly provides testing, continuous integration, and code deployment services for development teams.
automated test
Appium
Appium is a mobile automation framework that can be used to test native applications, mobile web applications and hybrid applications, and is cross-platform. Can be used in IOS and Android and firefox operating systems.
Selenium
Selenium tests run directly in the browser, just like real users do. Selenium tests can be run in Internet Explorer, Mozilla, and Firefox on Windows, Linux, and Macintosh.
Mock test
Mock test is a test method that uses a virtual object to create some objects that are not easy to construct or obtain during the testing process. This virtual object is the Mock object, and the Mock object is the substitute for the real object during debugging. The Mock framework in Java is commonly used EasyMock and Mockito.
Consumer-driven contract testing
Contract testing is a test for the interface of external services. It can verify whether the service meets the contract expected by the consumer. When some consumers use the behavior provided by a component through an interface, a contract is created between them. This contract contains expectations, performance, and concurrency for input and output data structures. PACT is currently a more streamlined consumer-driven contract testing framework.
Automated operation and maintenance tools
Ansible
Puppet
Chef
IT operation and maintenance automation refers to the automation of daily and large amounts of repetitive work in IT operation and maintenance, turning the past manual execution into an automated operation. Automation is the sublimation of IT operation and maintenance work. IT operation and maintenance automation is not just a maintenance process, but also a management upgrade process. It is the highest level of IT operation and maintenance, and is also the future development trend. The following figure is a comparison of common automated operation and maintenance tools:
Monitoring and management tools
Zabbix
Zabbix is an enterprise-level open source solution that provides distributed system monitoring and network monitoring functions based on the WEB interface.
ELK Stack log analysis system
ELK Stack is an open source log processing platform solution, and the commercial company behind it is Elastic. It consists of three parts: log collection and analysis tool Logstash, Lucene-based full-text search engine Elasticsearch, and analysis and visualization platform Kibana.