实际的开发过程需要很多跨领域的知识。以工程师为例,开发和运维是两个岗位的工作,岗位划分得很细致,在遇到实际问题时,往往是具备开发和运维两个领域知识的工程师,才能更好更快地解决问题。我们做性能优化,也需要具备前端、服务端网络、运维甚至硬件等方面的知识,做优化的工程师如果只关注软件优化就无法明白硬件的变化(如增加一个磁盘或者选择一个更好的芯片)能达到比单纯软件优化更好的性能;思维模式的转变在某种程度上比知识结构还更重要,具备全機知识结构的工程师容易有更宽阔的思维模式,更有可能制定出平衡的方案。
(1)向全栈工程师转变
应用开发工程师不仅要能开发前端、无线和后端的代码,还要具备线上运维能力,包括
排查浏览器端的前端问题;
排査域名解析和DNS劫持等常见问题
解决前端JS的错误定位和资源加载限制问题;
掌握无线端的网络特性:无线情况下建立TCP连接的耗时、数据下载的影响、WiFi和4G以及弱网络下的内容适度匹配等;
掌握无线端请求的全链路过程:包括手机端到基站的接入,从省级网关出口到服务端网关再到应用系统等;
排查无线端的问题:链路染色、日志上报、舆情收集等;掌握无线端的开发技能;
理解服务端Nginx、Cache、Tomcat等服务器的配置文件理解JDK的基本配置参数、内存分配方式和GC调优;
具备线上Java运行环境的排查技能。包括一些开源中间件的报错定位、操作系统的端口冲突、JWM的异常退出等;
掌握线上应用系统的性能指标,包括网络、QPS、RT、线程级的CPU消耗、Load、内存的dump;
熟悉线上网络部署架构,应用服务器和交换机的连接情况、跨机房和跨单元之间的网络情况
熟悉CDN的部署分布;
熟悉源站DNS的解析步骤,包括VIP的管理、LVS的流量分配、应用服务器之间的健康检查机制等。
以上是工作中经常会遇到的问题和常用的技能知识,掌握这些内容对排查线上问题非常有帮助。
(2)向全链路运维转变
以前开发人员参与线上运维通常只会关注应用系统本身的问题和业务日志错误信息,较少关注整个应用的全链路问题,所以当问题出现时,由于信息掌握不全,很难具体定位问题。工程师的关注点应从单系统转向全链路,必须掌握如下内容。
掌握资源依赖的关联系统:页面的资源依赖情况、JS和CSS如何发布到CDN节点以及图片的回源方式等
掌握请求链路:掌握无线请求链路上每个关键环节的信息透出,能够根据关系数据追踪请求轨迹;页面的输出、信息是如何聚合的、动态内容和静态内容页面中的异步加载等;请求的来源和请求的去向。
(3)向工具化和规划化转变
工具化能提升效率和把不规范的流程程序化,减少人为操作的出错概率,它包括如下内容。
信息的输出要标准化和规范化,包括端上的Log、请求跟踪、应用日志输出格式等;
数据的采集要工具化、集中化;数据的统计和分析要多维度化;数据的展示可以个性化和可视化;
建立长期可以跟踪变化的网站制作基线数据,包括性能、成本、链路变更基线。
>>> 查看《网站制作研发人员的转变》更多相关资讯 <<<
本文地址:http://nlpc.cn/news/html/4549.html