首页 » 网站推广 » sublimePHP主动弥补技巧_成为DevOpsSRE工程师有多灾看看这份必备技能清单

sublimePHP主动弥补技巧_成为DevOpsSRE工程师有多灾看看这份必备技能清单

访客 2024-12-07 0

扫一扫用手机浏览

文章目录 [+]

作者 | Aymen El Amri

译者 | 杨雷

sublimePHP主动弥补技巧_成为DevOpsSRE工程师有多灾看看这份必备技能清单

出处丨高效开拓运维

sublimePHP主动弥补技巧_成为DevOpsSRE工程师有多灾看看这份必备技能清单
(图片来自网络侵删)

好长的技能清单!

这个列表并非详尽无遗,只是列举了技能根本、必须知道的技能和一些随机的想法。
可以用它们作为一个清单来评估你自己或其他人,或者为下一次口试 DevOps/SRE(Site Reliability Engineers,网站可靠性工程师)事情做准备。
补充下,这个清单是比较个人的想法。

准备好看这一份清单了吗?

首先,一定要理解文化要点的主要性:15 点 DevOps 检讨表(https://medium.com/devopslinks/the-15-point-devops-check-list-8cd2afb4a448)可以得到更多信息。
该当节制 nix 系统并且很好地理解 Linux 发行版的事情事理。
为产品设置选择一个操作系统。
不须要节制每一个操作系统,这会让你的事情陷入困境,选择个中一个并节制它。
能轻松利用终端,可能有一些 GUI 来管理做事器,但是无论如何,必须热爱终端,它更快、更安全,坦白说,一旦节制了用起来会更随意马虎。
如何获取 CPU/ 系统信息(cat /proc/version,/proc/cpuinfo,uptime,等。
)cron 作业如何运作。
在特定日期 / 韶光 / 月设置 cron 作业。
理解在机器上运行的操作系统是什么(cat /etc/lsb-release)理解不同的 nix 操作系统之间的差异,以及理解在机器上运行的操作系统(例如 cat /etc/lsb-release)shell 之间的差异:sh/dash/bash/ash/zsh如何设置和取消设置 ENV 变量。
导出的 ENV 变量是临时的,如何导出永久的变量?什么是 shell 配置文件:〜/.bashrc,.bash_profile,.environment .. 如何为程序初始化文件“添加”设置?理解 Vim,其配置(.vimrc)及其一些基本提示是必须的。
日志如何在 nix 系统中运行,什么这天记记录级别以及如何利用日志管理工具(rsyslog,logstash,fluentd,logwatch,awslogs ..)swapping 如何事情。
swappiness 是什么。
(swapon -s,/proc/sys/vm/swappiness,sysctl vm.swappiness ..)能轻松利用脚本措辞。
Bash 是必须理解的(其他脚本措辞也是非常有用的,如 Python,Perl ..)。
节制有用的命令,例如进程监控命令(ps,top,htop,atop ..),系统性能命令(nmon,iostat,sar,vmstat..)和网络故障打消和剖析(nmap,tcpdump,ping,traceroute,airmon,airodump ..)。
你的备份策略是什么?如何测试备份的可靠性?你知道 ext4,ntfs,fat?知道联合文件系统(Union FS)吗?如何在系统上查看 / 设置网络配置?如何在具有不同子网的打算机上设置静态 / 动态 IP 地址?(提示:CIDR)利用网络数据包剖析来剖析和理解网络的事情事理:tcpdump,Wireshark ..你熟习 OSI 模型和 TCP/IP 模型的规范吗?TCP 和 UDP 有什么差异?你知道 vxlan 吗?如何设置防火墙(iptables,至少知道 ufw):设置规则,列出规则,路由流量,阻挡协议 / 端口 ..如何查看 / 设置 / 备份路由器设置?DNS 如何事情?如何设置 DNS 做事器(Bind,Unbound,PowerDNS,Dnsmasq ..)?递归(recursive)和威信(authoritative)DNS 有什么差异?如何打消 DNS 故障(nslookup,dig ..)熟习 DNS 和 A,AAAA,C,CNAME,TXT 记录当你在浏览器中点击 google.com 时会发生什么?从浏览器的缓存、本地 DNS 缓存、本地网络配置(hosts 文件)、路由、DNS、网络、Web 协议中,缓存系统到 Web 做事器(如果深入剖析,最基本的问题也很难回答)。
熟习 CDN 供应商(例如 Akamai 等)熟习 SSL/TLS 的事情事理以及数字证书的事情事理(https)理解 SSL 证书(须要加密)熟习更安全的协议和工具:TLS,STARTTLS,SCP,SSH,SFTP,FTPS ..理解 PPTP,OpenVPN,L2TP/IPSec 之间的差异学习为域设置记录集(可以利用 Route53 或 CloudFlare 等托管云做事)SSH 如何事情,如何调试它,如何天生 ssh 密钥以及无密码登录到其他打算机什么是 init 系统?你知道 Systemd(自 15.04 以来由 Ubuntu 利用),Upstart(由 Ubuntu 开拓),SysV ..用任何软件的源代码编译它(gcc,make 和其他干系内容)如何通过终端用不同的格式压缩 / 解压缩文件(紧张是:tar/tar.gz)如何设置 Web 做事器(Apache,Nginx ..)学习利用“awk,sed,sort,uniq”操作 Nginx/Apache 日志文件Nginx 和 Apache 有什么差异?什么时候利用 Nginx?什么时候利用 Apache?在同一个 Web 运用程序中,何时以及如何同时利用它们?如何设置反向代理(Nginx ..)如何设置缓存做事器(Squid,Nginx,Varnish ..)如何设置负载均衡器(HAproxy,Nginx ..)如何为您的微做事建立 API 网关(Ambassador,Kong,Traefik,Nginx ..)熟习 Systemd 以及如何利用 systemctl 和 journalctl 等命令剖析和管理做事熟习 OAuth、SAML、Auth0 集成熟习 RESTful API,Webhooks,GraphQL,gRPC确保 ES 集群安全(XPack(商业),OpenSource:ReadOnlyREST,Search Guard)利用 snapshot API 或 esdump 进行 ES 备份(快照和增量)(把稳:须要 nodejs/npm)利用 DB 备份学习 Python(pip + setup.py)和 BASH。
是否开始利用 Golang 作为脚本措辞?考试测验一下吧。
发展云打算技能。
从选择云根本架构供应商开始:Amazon Web Services,Google Cloud Platform,Digitalocean,Microsoft Azure。
或者利用 OpenStack 创建自己的私有云。
staging 做事器怎么样?单元测试的测试策略是什么?端到端?真的须要 staging 做事器吗?Google 下“staging servers must die”。
阅读有关 PaaS/Iaas/Saas/CaaS/FaaS/DaaS 和无做事器架构的信息理解如何通过 CLI 中的 Cloud Shell,或你的程序中的 Cloud SDK,来利用和配置云资源理解如何利用至少一个配置管理和远程实行工具(Ansible,Puppet,SaltStack,Chef 等)。
您的选择应基于以下标准:语法,性能,模板措辞,推拉模型,性能,架构,与其他工具的集成,可伸缩性,可用性等等。
用于 image 构建的 Packer将 Jenkins 集成到 CI/CD 中设置 Consul(用于做事创造)开始研究“根本架构即代码”(infrastructure as code),以及根本架构配置自动化工具,如 Terraform 和 Packer开始研究容器和 Docker。
容器是底层架构(cgroups 和 namespaces),它是如何事情的?开始熟习基本的 Docker 命令(logs/inspect/top/ps/rm)。
其余得研究 docker hub(push/pull image)开始研究容器编排工具:Docker Swarm,Kubernetes,Mesosphere DC/OS,AWS ECS阅读有关无状态和有状态运用程序的知识学习为您的运用程序构建小型的 docker image(alpine 比较得当)。
仅安装所需的包就够了。
理解默认运行做事的最常用端口号(如:SSH(22),Web(80),HTTP/S(443)等)从分布式角度学习网络(在容器天下中建立网络)。
利用分布式系统中的 8 个谬论,让自己轻松应对。
理解 L4/L7 负载均衡器。
理解如何确保代理做事器和反向代理做事器的安全(Nginx,Traefik,Ambassador ..),并理解它们的网络系统是如何事情的。
熟习帮助创建可分发和可移植开拓环境的工具(例如:Vagrant 和 Docker)。
支配运用程序时,管理私密信息。
Hashicorp Vault 会帮助你。
理解 AWS SQS,Google PubSub 或其它替代方案。
熟习 Kafka,AWS Kinesis 或其它替代方案。
理解 AWS RDS,大多数时候 Ops 创造很随意马虎将普通任务委派给做事供应商以避免额外的事情,但这会带来一些用度。
如果你在利用 Kubernetes,那么理解它的所有组件和事情。
学习如何首先处理 K8s 内置功能,然落后修 Helm/Istio。
理解监控的办法和内容(从操作系统和运用程序的角度来看)。
一旦到了得当的阶段,接着会须要追踪(Tracing)来帮助理解和挖掘,并且运用程序须要直接支持它如果您正在处理(大)数据工程干系运用程序,那么得熟习 Hadoop,HBase,Zookeeper,Spark 以及如何设置干系集群学习如何根据运用需求设置和调度 Redis,如何添加身份验证。
理解运用程序的性子:CPU 密集型,内存密集型,I/O 密集型,然后理解如何相应地进行处理。
学习根据须要在不同类型的数据库之间进行选择:SQL,NoSQL,TSDB,图形数据库 ……学习管理 IAM 角色 / 权限以及如何管理不同用户的密钥(AWS IAM,GCP IAM ..)。
如果你喜好分享并帮助其他人办理碰着过的问题,请将代码发布到 GitHub。
学习对根本架构和运用程序进行基准测试以补充空缺。
不要直接去实行。
先可视化终极目标、画图、与开拓职员详细谈论、绝不犹豫地提问、让问题彻底变得屈曲。
时时做小型演示或 PoC 以便更好地理解。
你熟习 IDE(Sublime Text,Atom,Eclipse ..)吗?深入理解 DB(MySQL 或任何其它你喜好的数据库)。
理解 Redis/Memcache 以及类似工具。
理解微做事架构的优缺陷,并开始构建类似的架构。
理解如何配置和利用持续集成和持续交付工具,如 Jenkins,Travis CI,Buildbot,GoCd。
将这些工具与其它工具(如 Selenium,构建工具,配置管理软件,Docker,云供应商的 SDK 等)集发展短常有帮助的。
学习分布式版本掌握系统 Git 及其基本命令(pull/push/commit/clone/branch/merge/logs 等)。
理解 git 事情流程。
你知道如何将 Git 存储库规复到以前的提交吗?如何利用 SSH 密钥。
考试测验利用 Github,Bitbucket 或 Gitlab 等来配置对 repo/account 的无密码访问。
熟习内核版本的混乱以及如何修补它们。
理解如何天生校验(md5,SHA ..)以验证任何文件的完全性。
理解单体(Monolithic)和微做事(Microservices)架构之间的差异。
如何实现零宕机支配?制订回滚、自修复、自动扩展的策略是什么?理解可扩展性和高度分布式系统,如何让它们一贯保持运行状态?熟习 API 和做事:RESTfull,RESTful-like,API 网关,Lambda 函数,serverless 打算,SOA,SOAP,JMS,CRUD ...如何确保根本架构、网络和运行的运用程序的安全?你知道什么是 ChatOps 吗?是否考试测验过利用一个已知框架? Hubot,Lita,Cog?理解如何设置、配置和利用某些监控系统(Nagios,Zabix,Sensu,Prometheus ..)无论你做什么都“记录下来”,无论多么粗糙,做吧。
往后你会感谢自己的。
制作小的代码脚本以方便利用,记下命令或片段(通过 StackOverflow,Github Gists 或其它在线记事板),它会帮助你得到想要的东西。
让 Google,StackExchange,Quora 和其它专业论坛成为你的朋友。
读,读,读。
在 Twitter/StackOverflow 上提问。
与同一领域的研究员交谈并谈论问题。
通过社区学习。
不要试图办理所有问题。
永久记住一件事:没有人是一座孤岛。
你不能做、学习、实现统统。
要理解对付手头的任务最主要的是什么。
阅读 DevOps 词汇表(请 Google 它)关注开源项目(Kubernetes/Docker 等)或者让你感到愉快的东西。
关注来自社区的志同道合的人,并理解最新的科技趋势。
考试测验搭建良好的开拓实践以及坚实的架构。
理解如何在生产级别进行扩展。
理解如何在生产做事器中实时调试和跟踪运行的运用程序。
关注一些得当的科技公司的技能博客(我们关注了:Google/Uber/Quora/Github/Netflix)。
这是可以直接从专家那里学习的地方,并有机会看到他们办理任何问题的方法。
浏览资讯聚合类网站,如 Reddit,hackernews,medium 等。
关注志同道合的开拓职员和技能公司。
(我总是阅读文章和不雅观看发言 / 会议,事后阐发(post-mortems)是我最喜好的内容。
我也关注一些 github 库看看我利用的技能发生了什么。
)阅读各种与技能干系的博客并订阅 DevOps Newsletters。
理解开源以及如何为开源项目做出贡献。
如果系统涌现问题,您该当能够进行事后阐发。
详细记录涌现了什么问题,以及如何防止它再次发生。
考试测验学习 StackOverflow 的专家如何办理问题。
永久记住,方法是不断变革的,不像根本知识总是保持不变。
读书。
末了这点也很主要...... 不要假设任何事情,永久不要把现实视为天经地义,总是去考试测验并享受旅程。

如果你拥有以上大部分技能,则可以确保你具备 DevOps、SRE 和系统工程知识的先决条件。

你无法一次性学习所有这些,但是具备这样一个思维模式是紧张的。
纵然去熟习所有这些也肯定须要韶光,但俗话说旅程很有趣。
你会失落败很多次,并从缺点中吸取教训,不要重蹈覆辙。

永久记住,我们都是学生。
我们通过碰撞和试验来学习。
不要羞于失落败,由于这便是学习的办法。

原文链接:

https://hackernoon.com/the-must-know-checklist-for-devops-site-reliability-engineers-update-8ba44dbc824

标签:

相关文章