高级运维开发工程师在线评测:http://www.gtalent.cn/exam/interview/nsYteJ5wFfWkMdb2

项目前期

产品模型—开发—测试(安全)—上线
立项:
初期:
1)需要的服务器(物理机,虚拟机),数据库,环境,带宽
2) 项目运维的部署方案(也为了后期方便新人的操作) ,比如环境规划(具备一定的扩展性, 主机名,host,用户,时间同步,等

项目后期
监控,维护,日志管理(业务日志,访问日志,开发日志) ,备份。
项目发布(灰度发布,蓝绿发布)

发现运维现状问题,根据现状梳理,并思考解决方案
解决问题:
1) 采集问题的信息
2) 拟定执行方案,细化具体
3) 测试
4) 回滚
5) 维护文档
6) 制定文档规范

优化:
nginx 基本优化
用户–—进程—socket buffer —用户态—内核缓存区—内核—磁盘
senfile: 用户–进程–内核缓冲区—内核–磁盘
nginx 基本调优

php项目基本优化
php缓冲器
php-FPM

Java项目基本优化
tomcat
jvm

日志(ELK)
tomcat日志
系统日志
程序日志
软件日志
用户登录状态

监控
服务器
应用
中间件
组件
业务

流程制度
发布流程,系统管理,工单系统,邮件工作

附带:20种开发运维工具

采用插件的运维开发工具
在整个开发生命周期涉及到一大批新旧工具,从规划、编码、测试、发布到监控。下面是你应该考虑添加到工具箱中的20种开发运维工具,但绝不是全部。

1 Jira Software
来自Altassian的JIRA软件是一款流行的软件开发工具,用于开发运维的一个关键部分:敏捷开发,处理项目中的多个步骤。这款开发运维工具 用于规划和跟踪工作,并确定优先级,处理产品发布,产品交付后监控性能。它与本文介绍的其他工具整合起来,提供基于云的服务这种形式。

2 GIT
Git是一种免费的开源分布式版本控制系统,既可以处理单个的小项目,也可以处理庞大的企业项目。它极其轻便,专注于速度和处理分布式项目。它脱胎于Linux内核开发,该公司的GitHub网站对开源项目来说是一个非常流行的软件库。

3 Visual Studio
有许多开发运维工具、实际上是软件开发平台,不过论全面性,没有一个比得上微软的Visual Studio,它支持多种语言,包括Python(一种流行的开发运维语言),支持针对Windows、安卓和iOS平台的开发,并支持基于云的协作开发。

4 Jenkins
Jenkins是一种跨平台的持续集成和交付的应用软件,它便于不断稳定地交付新的软件版本,并提高你的工作效率。这款开发运维工具还让开发人员更容易把项目的变化整合起来,并使用大量的测试和部署技术。

5 Slack
Slack是一种基于云的团队协作开发运维工具,它最初是游戏开发公司使用的一种内部工具,而如今本身已是一种商业产品。它主要基于一种类似互联网 中继聊天(IRC)的实时聊天技术,但是有更多的控件、支持直接聊天、拖放式文件共享,并与开发工具整合,那样它们都可以从Slack界面来运行。

6 IBM Security AppScan
IBM Security AppScan用于在开发过程中测试Web和移动应用程序的安全性,不仅改善应用程序的安全性,还可检查应用程序,确保合规。该产品可了解应用程序的行为,并开发一个程序,旨在测试所有功能,查找常见安全漏洞和应用程序特有的安全漏洞。

7 SolarWinds
SolarWinds的软件用于管理大小企业网络上的网络流量。网络设备监控器可监控你网络上的任何一个设备,查找各种提示或错误。该公司专注于错误和性能管理产品、配置和合规产品以及网络管理工具。它还支持监控多租户甲骨文数据库的性能。

8 亚马逊网络服务(AWS)
AWS堪称云计算领域的巨无霸,它为开发人员提供了许多选择,比如计算、存储、分发、数据库和网络。其分析服务面向性能管理、应用程序服务、开发人员和管理工具,既有云方案又有混合方案。寻求开发运维工具的那些人无疑会在AWS环境中找到所需工具。

9 Pivotal
作为知名的平台即服务(PaaS)提供商之一,Pivotal建立在VMware Cloud Foundry上,可以在本地运行,也可以在云端运行。应用程序可以扩展到几百个实例,它随带诸多服务,比如负载均衡、自动化健康管理、日志及审计以及自动化配置。

10 Docker
Docker是容器市场的领导者。容器被认为是比较小巧、比较轻便的虚拟机,开销却低得多,那样多个容器可以在一个Linux实例里面运行。它可以封装任何Linux服务器上的应用程序及依赖项,从虚拟系统到基于云的实例,不一而足。

11 Octopus Deploy
大多数云和开源产品支持Linux,但Octopus是一款微软产品,支持.Net应用程序的部署。它便于将ASP.NET应用程序和Windows Services自动发布到测试环境、试运行环境和生产环境,无论它们是在云端还是在本地。

12 Electric Cloud
作为开发运维优化软件领域的开拓者之一,这家公司提供简化将软件更新分发给最终用户的开发运维版本自动化(DORA)解决方案。它使新版本的构建和测试实现了自动化,可处理多层应用程序的配置、构建和发布,并且标准化和协调新版本发布。

13 Puppet
作为另一种版本管理器,Puppet Enterprise专门管理基础设施即代码(IAC),在这种类型的IT基础设施配置过程中,系统用代码而不是脚本流程来自动构建、管理和配置。由于它是代码,整个过程易于重复。Puppet有助于更容易控制版本、自动化测试和持续交付,可以更快速地响应问题或错误。

14 Chef
这是另一种流行的IAC配置管理工具,用户编写“recipe”,描述了Chef如何配置及管理服务器应用程序和实用程序。这些recipe为 Hadoop或MySQL之类的应用程序描述了应处于特定状态的一系列资源,比如依赖项、程序包、文件和服务。Chef处理应用程序的所有配置工作,整个 过程完全实现自动化。

15 Ansible
不像Chef和Puppet,Ansible是一种配置和管理工具,面向客户端的软件部署和配置,支持Unix、Linux和Windows。它使 用JSON和YAML,而不是IAC,根本不需要节点代理就可以安装。它可以通过OpenStack在内部系统上使用,也可以在亚马逊EC2上使用。

16 New Relic
New Relic的技术是一种基于SaaS的监控系统,可以实时监控面向iOS和安卓的Web及移动应用程序,无论它们在本地运行、在云端运行,还是在混合环境 下运行。它可以监控应用程序性能,帮助调整和优化应用程序,它支持用Ruby、Java、.NET、Python、PHP和Node.js编写的Web应用程序。

17 Dynatrace
作为另一款应用程序监控产品,Dynatrace可实时检测并诊断应用程序中的性能问题,在使用过程中深入钻研问题代码,比如内存泄漏或坏的数据库查询。它可监控所有的应用程序事务,发现问题后,可以为质量保证和测试小组自动生成错误单。

18 Project Atomic
作为Docker的某种竞争对手,Project Atomic结合了简约的Linux操作系统版本(可以实现原子更新,并具有回滚功能)、Docker容器格式和运行时环境,以及用于跨可扩展的服务器集群来编排容器的Kubernetes。

19 ServiceNow
ServiceNow起初是用于自动化处理IT支持请求的一项服务,现已变成一家年收入10亿美元的公司,成为了Salesforce的潜在竞争对 手。ServiceNow销售的云软件可自动化处理各种流程,比如为法律合同收集批文。它的开发运维方面专注于ServiceNow服务自动化平台,可以 从头开始或使用现有的内容,构建和部署应用程序,共享内容,加快应用程序的开发。App Creator工具让对编程一窍不通的业务人员也可以开发自助式程序。

20 Splunk
Splunk最贴切的描述就是堪称日志文件领域的谷歌。服务器会生成大量的日志数据,但是谁想要通读整个数据中心的日志文件来查明服务器或软件的状态?Splunk使用自己的搜索算法,可以寻找异常问题,比如应用程序运行慢、服务器运行慢,以及性能下降或负载加重的时候。

【王老师说运维】:运维之linux基础入门实战(http://www.codeforest.cn/course/443)