Network Security Internet Technology Development Database Servers Mobile Phone Android Software Apple Software Computer Software News IT Information

In addition to Weibo, there is also WeChat

Please pay attention

WeChat public account

Shulou

What do the operators of Linux Devops have?

2025-01-19 Update From: SLTechnology News&Howtos shulou NAV: SLTechnology News&Howtos > Servers >

Share

Shulou(Shulou.com)06/01 Report--

In this issue, the editor will bring you about the operation and maintenance workers of Linux Devops. The article is rich in content and analyzes and describes for you from a professional point of view. I hope you can get something after reading this article.

A brief introduction to Devops

From compiling manually, uploading server files, executing commands, starting and stopping the server, and finding BUG repeating the process, there is more and more repetitive work in software development. Before the concept of Devops, all had to be done manually. We have also seen many operations and maintenance personnel get up in the middle of the night.

The word Devops comes from the combination of Development and Operations, which literally means to make software developers and operators communicate and cooperate better, and make software development, testing and release faster through automated processes. In fact, Devops is the inheritance of agile and lean development, the result of lean implementation in the entire IT value stream, Devops is not just a new engineer, nor a department, but a culture, there are no tools to directly turn the team into a Devops organization, which is a change of concept.

The advantages of Devops in efficient delivery and automatic operation and maintenance make it quickly recognized and accepted by the market, but it often encounters a lot of resistance in the practice of Devops.

Devops does not simply merge the development department and the operation and maintenance department, but strengthens the communication and cooperation between the development department and the operation and maintenance department through automated infrastructure, reasonable process specification and intelligent automatic operation system testing.

II. Brief introduction of tools

1. Version control and collaborative development tools

(1) version control system Git

(2) Code hosting platform GitLab

(3) Code Review tool Gerrit

2. Automated build and testing tools

(1) Apache Ant:Apache Ant is a tool that automates the steps of software compilation, testing and deployment. It is mostly used for software development in Java environment.

(2) Maven:Maven not only features program building capabilities, but also provides advanced project management tools that Ant lacks. Because Maven's default build rules are highly reusable, you can often build simple projects with two or three lines of Maven build scripts, while using Ant requires more than a dozen lines.

(3) Selenium integration testing tool

(4) Python unit test framework

(5) QUnit is the unit testing framework of jQuery.

(6) the tools for testing the function and performance of JMeter are implemented entirely in java.

(7) Gradle:Gradle is a build system that can use Groovy to write build scripts, supporting dependency management and multiple projects, similar to Maven.

(8) PHPUnit:PHPUnit is a lightweight PHP testing framework.

3. Continuous integration & delivery

(1) Jenkins scalable continuous integration engine

(2) Capistrano:Capistrano is a tool used to execute the same command on multiple machines in parallel and is used to install a whole batch of machines.

(3) BuildBot:BuildBot is the most needed software for automatic compilation / testing cycle of the system, which is used to verify code changes.

(4) Fabric:fabric8 is an open source Java Containers (JVMs) deep management integration platform. It can be easily operated, configured and managed automatically from the same central location of UI and UX. Fabric8 also provides some non-functional requirements, such as configuration management, service discovery failover, centralized monitoring, automation, and so on.

(5) Tinderbox

(6) Travis CI:Travis CI is a cloud-based continuous integration project that can support most mainstream languages, such as: CMagin PHP, Ruby, Python, Nodejs and so on.

(7) Continuum is one of the newest CI servers, and it is easy to configure based on Web interface.

(8) LuntBuild automatic build tool. Continuous construction of the system can be easily carried out through the web interface.

(9) CruiseControl:CruiseControl is a framework for continuous build programs (continuous integration of projects), including plug-ins for email notifications, Ant and various CVS tools, as well as a Web interface to view the current compilation status and history at any time.

(10) Gump:Gump is the integration tool of Apache. It is written in Python and fully supports Apache Ant, Apache Maven and other software building tools.

4. Deployment tools

4.1 Container platform

(1) Docker:Docker is an open source application container engine that allows developers to package their applications and dependency packages into a portable container, then publish them to any popular Linux machine, and also achieve virtualization.

(2) Rocket:Rocket (also known as rkt) is a container engine launched by CoreOS, similar to Docker, which helps developers package applications and dependency packages into portable containers, simplifying deployment tasks such as building environments.

(3) Ubuntu (LXC): LXD is the refactoring of ubuntu based on LXC technology, and the container naturally supports non-privileged and distributed. The idea of LXD is different from that of Docker. Docker is PAAS,LXD and IAAS. The LXC project consists of a Linux kernel patch and some userspace tools. These userspace tools use new kernel features added by patches to provide a simplified set of tools to maintain containers.

4.2 configuration Management

(1) Chef:Chef is a system integration framework that provides configuration management functions for the whole architecture.

(2) Puppet:Puppet, you can centrally manage every important aspect, your system uses a cross-platform specification language, managing all individual elements are usually aggregated in different files, such as users, CRON jobs, and hosts together with apparently discrete elements such as wrappers, services and files.

(3) CFengine:Cfengine (configuration engine) is a UNIX management tool, which aims to automate simple management tasks and make difficult tasks easier. Cfengine is suitable for managing a variety of environments, ranging from one host to tens of thousands of hosts.

(4) Bash:bash is the default shell of most Linux systems and Mac OS X v10.4. It can run on most Unix-style operating systems, and it has even been transplanted to Cygwin systems on Microsoft Windows to implement the POSIX virtual interface of windows. In addition, it has also been ported to MS-DOS by the DJGPP project.

(5) Rudder:Rudder has been renamed Flannel to provide a subnet for each machine that uses Kubernetes. This means that each host in the Kubernetes cluster has its own complete subnet, for example, machines An and B can have 10.0.1.0 and 10.0.2.0 Universe 24 subnets.

(6) RunDeck:RunDeck is an open source tool written in Java/Grails to help users automate operations and processes in a data center or cloud environment. Through the command line or web interface, users can operate on any number of servers, greatly reducing the threshold for server automation.

(7) Saltstack:Saltstack can be seen as an enhanced version of func + a weakened version of Puppet. Written in Python. It is very easy to use and can be deployed quickly based on EPEL. Salt is an open source tool for managing your infrastructure that can easily manage thousands of servers.

(8) Ansible:Ansible is a tool for publishing, managing and orchestrating computer systems. Ansible is a model-driven configuration manager that supports multi-node publishing and remote task execution. SSH is used by default for remote connections. There is no need to install additional software on the managed node and can be extended using a variety of programming languages.

4.3 Micro Service platform

(1) OpenShift:OpenShift is a platform as a service (PaaS) that is open to open source developers launched by Red Hat. OpenShift enables developers to build, test, run, and manage their applications by providing developers with more choices in languages, frameworks, and clouds.

(2) Cloud Foundry:Cloud Foundry is the industry's first open source PaaS cloud platform launched by VMware on April 12, 2011. it supports multiple frameworks, languages, runtime environments, cloud platforms and application services, enabling developers to deploy and expand applications in seconds without having to worry about any infrastructure problems.

(3) Kubernetes:Kubernetes is an open source container cluster management system from Google cloud platform. Build a container scheduling service based on Docker. The system can automatically select a working container for use in a container cluster. Its core concept is Container Pod.

(4) Mesosphere:Apache Mesos is a cluster manager that provides effective resource isolation and sharing across distributed applications or frameworks, and can run Hadoop, MPI, Hypertable, and Spark.

4.4 Service activation

(1) Puppet:Puppet, you can centrally manage every important aspect, your system uses a cross-platform specification language, managing all individual elements are usually aggregated in different files, such as users, CRON jobs, and hosts together with apparently discrete elements such as packaging, services and files.

(2) Razor

(3) Docker Swarm:Docker Swarm is a local cluster of Dockerized distributed applications, which optimizes the utilization of host resources and fault-tolerant services on the basis of the functions provided by Machine. Specifically, Docker Swarm allows users to create a pool of host resources that can run Docker Daemon, and then run the Docker container in the pool. Docker Swarm can manage workloads and maintain cluster state.

(4) Vagrant:Vagrant is a Ruby-based tool for creating and deploying virtualized development environments. It uses Oracle's open source VirtualBox virtualization system and Chef to create automated virtual environments.

(5) OpenStack Heat

5. Log management (1) Logstash:Logstash is an application log, event transmission, processing, management and search platform. You can use it to unify the collection and management of application logs and provide Web interfaces for query and statistics.

(2) CollectD:Collectd is a daemon process, which is used to collect system performance and provide various storage methods to store different values. For example, in the form of RRD files.

(3) StatsD:StatsD is a simple network daemon, based on the Node.js platform, listens for all kinds of statistical information, including counters and timers, through UDP or TCP, and sends aggregate information to back-end services, such as Graphite.

6. Monitoring, warning & Analysis (1) Nagios:Nagios is a monitoring system that monitors the running status of the system and network information. Nagios can monitor specified local or remote hosts and services, and provide exception notification functions.

(2) Ganglia:Ganglia is a distributed monitoring system under cross-platform scalable, high-performance computing systems, such as cluster and grid. It is based on hierarchical design, it uses a wide range of technologies, such as XML data representation, portable data transfer, and RRDtool for data storage and visualization.

(3) Sensu:Sensu is an open source monitoring framework. Main features: highly composable; provides a monitoring agent, an event handler and document APIs; designed for the cloud; Sensu's modern architecture allows monitoring of large-scale dynamic infrastructure, capable of monitoring thousands of globally distributed machines and services over complex public networks; enthusiastic community.

(4) Zabbix:Zabbix is an enterprise-level open source solution that provides distributed system monitoring and network monitoring based on WEB interface.

(5) the ICINGA:ICINGA project was initiated by Michael Luebben, HendrikB?cker, JoergLinge and others, all of whom are members of the existing Nagios project community committee, who promise that the new open source project will be fully compatible with previous Nagios applications and extensions.

(6) Graphite:Graphite is an open source project for collecting real-time information and statistics of websites, which can be used to collect information about the running status of a variety of website services. The Graphite service has an average of 4800 update operations per minute.

(7) Kibana:Kibana is a Web interface for log analysis for Logstash and ElasticSearch. It can be used for efficient search, visualization, analysis and other operations on the log.

The above is the editor for you to share the Linux Devops operation and maintenance workers have, if you happen to have similar doubts, you might as well refer to the above analysis to understand. If you want to know more about it, you are welcome to follow the industry information channel.

Welcome to subscribe "Shulou Technology Information " to get latest news, interesting things and hot topics in the IT industry, and controls the hottest and latest Internet news, technology news and IT industry trends.

Views: 0

*The comments in the above article only represent the author's personal views and do not represent the views and positions of this website. If you have more insights, please feel free to contribute and share.

Share To

Servers

Wechat

© 2024 shulou.com SLNews company. All rights reserved.

12
Report