- ·上一篇文章:已经没有了
- ·下一篇文章:关于thinkphp项目图片、js、css等静态文件存放位置
C/C++开发人员需要的技能
网站代码出错、数据库出错、网站占CPU太高、空间占满、空间过期。
域名解析出错、域名过期。
网站或者服务器由于有害信息、备案等原因被关或封IP。
网站或者服务器被攻击。同台服务器网站或者网段被攻击也殃及池鱼。
服务器出现故障或者需要维护。
网络运营商线路出现故障,特别是南北互通。
很多故障是不定时、不可预料的。最勤快的站长网管都不可能24小时去刷新网页,去Ping服务器。这自然需要自动的监控服务。
(4) 集群化,对开发的影响?存储、缓存、session等
(5) 数据库扩展(主从复制和读写分离,分库,分表)的过程中,你要做什么?
4.3. 日常工作中的问题
也许大家会说,我们的网站的访问量这么少,还没有必要考虑上面的问题。 好,我列出工作中一些问题:
(1) 为什么我们的服务器都是windows机器,而不是linux
(2) hui99存储空间不足,导致hui99邮件服务器挂掉。
(3) 北京农商行,手机银行服务端连接到网银服务器,为什么自己写负载均衡策略?
(4) 为什么建行团,迁移机房后,远程登录用户不用administrator了。
(5) 21的数据服务器僵死,导致hui99的tomcat线程到达200,而不能提供正常服务!(2012-03-25)
(6) 建行团有一个200M的日志文件,你如何查看其内容?如果是2G的呢?(一般的文件编辑器打不开这么大的)
(7) 建行团秒杀过程中,如何监控CPU,内存,磁盘IO等?
(8) 如何提供7*24*365的服务(项目更新必须停机重起,服务会暂停)?
(9) ...
4.4. 问题的实质是什么?
服务器(集群)架设。
服务器的监控。
服务器的优化。
服务器的安全。
。。。
实现这些,你还需要掌握运维的知识。
那什么是运维呢? 运维关键技术点:
大量高并发网站的设计方案 ;
高可靠、高可伸缩性网络架构设计;
网站安全问题,如何避免被黑?
南北互联问题,动态CDN解决方案;
海量数据存储架构;
等等…
5. 如何写出高性能的系统?
从当当网上搜”高性能”,你可以看到下面列出来的图书:
《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》
《高性能网站建设指南》
《高性能MYSQL影印版》
《构建高性能Web站点》
《实战Nginx:取代Apache的高性能Web服务器》
………
一个高性能的系统,不仅涉及到开发的程序代码,也与服务器、数据库、web服务器等息息相关。
罗马不是一日建成的,高性能系统不是一下子就能实现的?高性能系统是PDCA(Plan Do Check Act)持续改善的过程,是开发、上线、监控、优化反复循环的过程。
6. 结论:开发者需要什么技能?
(1) 开发技术
(2) 数据库技术
(3) 运维技术
技术之间是相辅相成的。
7. 知道结论后,我做了什么?
(1) 学习linux
(2) 参加运维培训班
(3) 学习python
(4) 多思考、总结、实践
8. 参考资料
(1) Java应用运维 by bluedavy
http://blog.bluedavy.com/?p=363
(2) 我们需要专职的QA吗? by 陈皓
http://coolshell.cn/articles/6994.html
(3) 程序员技术练级攻略 by 陈皓
http://coolshell.cn/articles/4990.html
(4) Why Python? By Eric Raymond
http://www.linuxjournal.com/article/3882
Eric Raymond的Why Python?的中文翻译
http://blog.donews.com/ygao/archive/2005/10/25/602051.aspx
(5) 程序员需要具备的基本技能 by 陈皓
http://coolshell.cn/articles/428.html
初稿写于2012年5月,2015年4月9日修改了部分内容。
(全书完)
C/C++开发人员需要的技能