1.学习一种编程语言。python、ruby、nodejs、go、rust、c、c++等等
2.了解计算机组成原理。进程、线程、socket、io、虚拟化、存储等等
3.学习管理服务器。linux、windows、unix。shell脚本、文字处理工具(vi、vim、powershell、emacs、awk、sed、grep、sort、uniq、cat、cut、echo、fmt、tr、nl、egrep、fgrep、wc)、进程管理工具(ps、top、htop、atop、lsof)、网络管理工具(nmap、tcpdump、ping、mtr、traceroute、alrmon、alrodump、dig、iptables)、编译工具(gcc、make)、性能工具(nmon、lostat、sar、vmstat)、其他(strace、dtrace、systemtap、uname、df、history)
4.网络与安全。dns、osi、http、https、ftp、ssl、tls
5.反向代理、正向代理、缓存服务器、负载均衡器、防火墙
6.web服务器。nginx、apache、iis、tomcat、caddy
7.系统架构。
IaC 是 Infrastructure as Code(基础设施即代码)的缩写。它是一种将基础设施的配置和管理用代码的方式来进行的实践。通过 IaC,开发者可以使用编程语言和工具来自动化和版本控制基础设施的创建、配置和管理。
传统上,基础设施的创建和管理是通过手动操作进行的,例如手动配置服务器、手动安装软件等。这样的方式容易出错,并且难以追踪和重现。而 IaC 可以将基础设施的定义和配置存储在版本控制系统中,使得可以按需自动化地创建和管理基础设施。
在 IaC 中,基础设施的定义被写成代码,通常使用类似于编程语言的声明性或命令式的语法。例如,使用工具如 Terraform、Ansible、CloudFormation 等来定义云基础设施的资源和配置。
通过使用 IaC,可以带来以下好处:
自动化:通过代码来创建和配置基础设施,可以实现自动化部署和管理,减少手动操作和人为错误。
可重复性:基础设施的定义和配置可以存储在版本控制系统中,保证了环境的一致性,使得可以轻松地重现和部署相同的环境。
可扩展性:通过代码来定义基础设施,可以方便地进行扩展和改变。可以根据需要快速调整资源和配置,以适应不同的需求。
可追踪性:通过版本控制和代码审查技术,可以追踪和记录基础设施的变更和演进,使得团队成员能够更好地合作和协作。
总之,IaC 是一种采用代码来管理基础设施的实践方法,通过自动化和版本控制来提高基础设施的创建、配置和管理效率,实现可重复性、可扩展性和可追踪性。
容器、docker、rkt、lx
配置管理、ansible、salt、chef、puppet
架构构建、terraform、cloud formation
8.CI/DI。jenkins、travis ci、teamcity、drone、circle ci
9.监控。系统监控,nagios、icinga、datadog、zabbix、monit。应用程序监控、appdynamics、new relic,日志管理、elk stack、graylog、splunk、papertrail
10.云服务。aws、google cloud、azure、digital ocean、heroku