What is DevOps
is a combination of Development and Operations. It is a collective term for a set of processes, methods, and systems. It is used to promote communication, collaboration, and integration between development (application / software engineering), technical operations, and quality assurance (QA) departments. It emerged because the software industry increasingly recognized that in order to deliver software products and services on time, development and operations must work closely together.
Think of DevOps as the intersection of development (software engineering), technical operations, and quality assurance (QA).
Traditional software organizations set development, IT operations, and quality assurance as separate departments. In this environment, how to adopt new development methods (such as agile software development) is an important topic: according to the previous working method, development and deployment do not require IT support or QA in-depth, cross-sector support, but Requires extremely close multi-sector collaboration. However,
is not just about software deployment. It is a set of processes and methods for communication and collaboration between these departments.
Workers want to do their best, they must first sharpen their tools, and now everyone is most concerned about in the DevOps field at the tool level.
Here are the tools I have come into contact with so many companies, everyone uses more tools:
1. Monitoring tools
Older ones are Zabbix and Nagios, and Zabbix feels the most. There is OpenFalcon which is open source by Xiaomi in China. This type of monitoring tool generally monitors some common indicators of servers and services (middleware, databases).
2. Performance analysis / APM tool
APM is often regarded as a segment of monitoring. However, under the modern complex distributed system architecture, APM tools are often more accurate and direct to help users locate performance bottlenecks, such as which URL access is slow, which method is slow to execute, and which SQL is slow to execute. In the past, if you want to get these data, you often need to cooperate with a more senior architect and DBA to get these data, and the efficiency of locating the bottleneck is often not very high. Now through the APM tool, ordinary skills of operation and maintenance personnel can also efficiently locate these deep-seated problems. There are many commercial APM tools now, Newrelic abroad, and well-known ones in China include Tingyun, Oneapm, and Xuanbao. Open source is also Pinpoint (naver open source), Zipkin (twitter open source), CAT (public comment open source).
3. Batch + automated operation and maintenance tools
There are more here, well-known are Puppet, Ansible, Chef, Saltstack. There is also a lot of information on the Internet, just look for a newer version of the official documentation. Puppet and chef are relatively early tools and have a large audience. However, these two tools are based on ruby. It is not easy to find someone who is familiar with ruby to do this secondary development. Ansible and saltstack are relatively new generations. The current user base is growing rapidly. Based on python implementation, it is relatively easy to find people who are doing secondary development.
4. Centralized log analysis tool
In an environment with many servers, how to centrally manage, analyze, and query logs has become a relatively strong demand. Imagine that if something goes wrong, you have to go through the log files on one machine, is it a pain. Driven by this demand, some centralized log analysis tools were born. In the field of open source, ELK is a relatively well-known tool, covering basic needs such as log collection, reporting, searching, and displaying. Now more large-scale enterprises are using this, and online information is also a lot. The core implementation mechanism is to crawl log files through some log collection agents (similar to Filebeat), submit the latest part to the collection server, and then connect the search engine to the back end to support fast and accurate search. There is a less well-known Sentry log collection service in China, which is relatively lightweight. It is made by Python itself. It has a very good integration with the log framework of various languages. It can easily collect exception logs and distribute them to the corresponding ones. Developer. It has more than 10,000 stars on github, which is very high in
related software. git address: GitHub-getsentry / sentry: Sentry is cross-platform crash reporting built with love
5. Continuous integration / release tools
The people I contacted are all using Jenkins, but not others. It may be related to the technical circle I am in. The process of integrated packaging is generally relatively simple, just assemble the version library and packaging script. But the release process is more complicated, some are full release, but many IT teams also use incremental release. If you want to use tools in this regard, you still have to analyze the existing release process first, how to do it manually, and which can be completed by automated tools.
6. IaaS integration
The promotion of public
in the past two years has been relatively rapid, and many new server purchases have been imported into the cloud. Now mainstream public clouds all provide relatively complete APIs. Based on these APIs, you can also do some automated operations for basic resources, such as the rapid opening of the game industry.