O & M: Senior O & M engineer ’s upgrade route

 


 

Operation and maintenance in the early stage is a very hard job, may be doing the work of repairing the computer to pinch the network cable! Time is also fragmented, and various trivial trivial matters revolve around you, making it difficult to reflect personal value and gradually becoming confused about the industry. These boring and tasteless jobs are indeed deprived of people. From a technical point of view, these are actually basic skills, which will invisibly bring some help to the later operation and maintenance work. Therefore, in the early stage, we must maintain a positive attitude and continue to learn. In the future, I believe it will pay back to you! Share the learning route of senior operation and maintenance engineers.

primary

  1. System basics: You need to be familiar with Linux / Windows operating system installation, directory structure, startup process, etc. at the beginning stage;

  2. System management: Mainly learn Linux-based systems, the production environment basically completes the work in the character interface, so you must master dozens of commonly used basic management commands, including user management, disk partitioning, software management, file permissions, text processing, process management, performance Analysis tools, etc .;

  3. Network basics: OSI and TCP / IP models must be familiar. Basic switch and router concepts and implementation principles need to be known;

  4. Script basics: Master the basic syntax structure of Shell, and can write simple scripts.

intermediate

  1. Network services: The most commonly used network services must be deployed, such as vsftpd / NFS / Samba / DNS / DHCP, etc. The code version management system can learn the mainstream SVN or Git, and it can be deployed and used simply. Data is often transferred between servers, so use: rsync or scp. Data synchronization: inotify or sersync. Repetitive work can be written as a script to run regularly, so you must configure the crond, a timed task service under Linux;

  2. Website service: Every company basically has a website. To make the website run, you need to build a website service platform. If it is developed in PHP language, it is usually necessary to build a LAMP / LNMP website platform. If it is Java language development, usually use Tomcat to run the project. In order to improve the access speed, you can use Nginx reverse proxy Tomcat, Nginx handles static pages, and Tomcat handles dynamic pages to achieve dynamic and static separation. Not only will it be so simple to deploy, but also need to know the working principle of HTTP protocol and simple performance tuning;

  3. SQL database: The database chooses MySQL, which is the most widely used open source database in the world. Some simple SQL statements, user management, common storage engines, database backup and recovery are required. It also needs master-slave replication, performance optimization, mainstream cluster solutions: MHA / MGR, etc. Of course, NoSQL is so popular, it is good to learn Redis / MongoDB;

  4. Network security: Security is very important, don't wait until the system is invaded, and then do a security strategy! Therefore, a server should make a security access control strategy immediately after going online, such as using IPTABLES to restrict access to only trusted source IP, and closing some useless services and ports. Some common attack types must be known, such as CC / DDOS / ARP, etc .;

  5. Surveillance system: Surveillance is indispensable. It is a life-saving straw for finding problems and tracing them in time. You can choose to study the mainstream Zabbix open source monitoring system, which is rich in functions and can meet the basic monitoring needs. Monitoring points include basic server resources, interface status, service performance, PV / UV, and logs. You can also get a dashboard to display several real-time key data, such as Grafana will be very cool;

  6. Script programming advanced: Shell script is a tool for Linux to automatically complete its work. It must be written proficiently, so it is necessary to further study functions, arrays, signals, e-mail, etc. Text processing three Musketeers have to play six, text processing in Linux is counting on them;

  7. Advanced script development: Shell scripts can only complete some basic tasks. To complete more complex tasks, such as multi-process, etc., you need to learn advanced languages. Python is the most used language in the field of operation and maintenance, easy to use! It is enough to master the basics at this stage, such as basic syntax structure, file object operations, functions, iterative objects, exception handling, database programming, etc.

advanced

  1. Website static caching: Users are always shouting about slow website access, and see if the server resources are still rich! Slow website access may not be caused by server resource saturation, and there are many influencing factors, such as network, forwarding layer and so on. For the network, there is a north-south communication problem, and access between them will be slow. This can be solved using CDN. At the same time, static pages are cached, and requests are intercepted in the uppermost response as much as possible, reducing back-end requests and response time. If you don't use CDN, you can also use Squid / Varnish / Nginx cache service to implement static page caching and put it at the entrance of traffic;

  2. Clustering: The resources of a single server are limited after all, and it is certainly unsustainable to resist high access. The key technology to solve this problem is to use a load balancer to horizontally expand multiple Web servers and provide external services at the same time. Performance. Load balancing mainstream open source technologies are LVS / HAProxy / Nginx. Must be familiar with one or two! The performance bottleneck of the website server has been solved, and the database is more critical, or clustering is used. Take MySQL as an example. You can use a master-slave architecture to achieve read and write separation based on the master. The master is responsible for writing, and multiple slaves are responsible for reading. The library can be expanded horizontally, with a four-layer load balancer in front to properly carry tens of millions of PV! High-availability software must also be able to avoid Keepalived / Heartbeat, etc. How many pictures on the website! NFS shared storage can't be supported, the processing is very slow, easy to get! Distributed file system, parallel processing tasks, no single point of high reliability and high performance and other features, the mainstream are FastDFS / MFS / HDFS / Ceph / GFS, etc. In the early stage, it is recommended to learn FastDFS, which can meet the needs of small and medium scale;

  3. Virtualization and containers: The utilization rate of hardware server resources is very low, which is a waste! You can virtualize more idle servers into many virtual machines. Each virtual machine is a complete operating system, which can greatly improve resource utilization. It is recommended to learn open source KVM + OpenStack. The virtual machine can be used as a basic platform, but the elastic scaling of application services is too heavy! It took a few minutes to start, and the file was so big, it was too much effort to expand quickly! Let's just talk about containers. The main features of containers are rapid deployment and environmental isolation. A service is encapsulated into an image, and hundreds of containers can be created in minutes. The mainstream container technology is Docker. Of course, in most cases, the stand-alone Docker in the production environment cannot meet business needs. You can deploy Kubernetes / Swarm clustered management containers to form a larger resource pool for centralized management and provide strong support for the infrastructure;

  4. Automatic operation and maintenance: Repetitive work can not only improve efficiency, but also not reflect the value. Standardization of all operation and maintenance work, such as environment version, directory structure, and unified operating system. Only on the basis of standardization can automation be more convenient. You can complete a complex task with a few mouse clicks or a few commands. Therefore, all operations are automated as much as possible to reduce human errors and improve work efficiency. The mainstream server centralized management tool Ansible / SaltStack, you can choose either of these two. Teacher Du recommended Jenkins as a continuous integration tool;

  5. Advanced script development: You can further study Python development and master object-oriented programming. It is also best to learn a website framework development website, such as Django / Flask, which is mainly used to develop an operation and maintenance management system, write some complex processes to the platform, and then integrate centralized management tools to create a management platform of its own. ;

  6. Log analysis system: Logs are also very important. Regular analysis reveals potential hidden dangers and extracts valuable things. An open source log system ELK, learn to deploy and use, to provide developers with log viewing requirements;

  7. Performance optimization: Only deployment is not enough, performance optimization can maximize the service load. This is also relatively difficult, and it is also one of the key points of high salary. You have to work hard to learn for money! Think from the dimensions of hardware, operating system, software and architecture.

to sum up

The tools that senior operation and maintenance engineers need to master make a table:

Types of name
Text processing grep / sed / awk
data transmission rsync/scp/inodify/sersync
Process management Supervisor
Performance analysis top/free/df/iftop/iostat/vmstat/dstat/sar/sysdig
Internet service vsftp/NFS/Samba/DNS/DHCP/Postfix
Web Services Apache/Nginx/Tomcat/JBoss/resin
SQL database MySQL/MariaDB
NoSQL database Redis/MongoDB
message queue RabbitMQ/ActiveMQ
Version management SVN/Git
Static cache Squid/Varnish/Nginx
Load balancing LVS/HAProxy/Nginx
HA high availability Keepalived/Heartbeat/DRBD
Centralized management tools Ansible/SaltStack/Chef/Puppet
Virtualized cloud platform KVM / Xen / Docker / Kubernetes / OpenStack / Cloud Stack
Automatic installation Kickstart/Cobbler
Packet capture analysis tcpdump/Wireshark
Continuous integration Jenkins/GitLab
MySQL database agent High / Cobar / MyCat
Pressure test ab/fio/sysbench/mysqlslap
Security check chkrootkit/rkhunter
Log system ELK
monitor Zabbix/Cacti/Nagios/Grafana

Guess you like

Origin www.cnblogs.com/chentao144/p/12697647.html