设为首页 收藏本站
查看: 842|回复: 0

[经验分享] 运维力挺PHP完爆Java

[复制链接]

尚未签到

发表于 2017-3-31 09:14:52 | 显示全部楼层 |阅读模式
运维力挺PHP完爆Java
运维力挺PHP完爆Java,同时PHP是世界上最好的语言没有之一!!!

  • 半夜爬起来重启Tomcat有什么?
  • 凌晨升级有没有?占用周末私人时间升级有没有?
  • 空指针抛出异常崩溃有没有?
  • 出现异常,一直解决不了有没有?
  • 只能通过重启让系统苟延残喘的运行有没有?
  • 抛出异常系统崩溃,业务暂停,被老板吊一顿有没有?运维背黑锅有没有?
  • 程序问题老板会让开发处理,但会扣你一个运维反应不及时。
  • 运维要派专人每天开发下载日志文件有没有?
  • Tomcat不敢用vhost(虚拟机)有没有,使用虚拟机一个系统崩溃全死有没有?
  • 不能使用虚机机只能多个实例运行有没有?多个实例要开一堆端口有没有?
  • jsp页面被植入恶意代码有没有?
  • 数据库链接池出问题有没有?
  • 服务器监控一个晚上都在报警有没有?
  • 配置文件搞死人有没有?
从运维角度,运维PHP项目远比Java来的轻松。 而Java网站就要非常费神,你要做好7*24小时待命,手机常开,准备随时重启,随时为开发提供日志,很多开发解决不了的问题,推给运维。 本汪目前为你还没有见过一个稳定健壮的Java程序。什么是稳定健壮的程序,能做到零错误,异常异常抛出,能够长时间稳定运行,不要半夜出事。
Web 运维
PHP Web解决方案主流有两种,一种是 Apache + mod_php 搭档,另一准是fastcgi系的php-fpm 通常跟 Nginx 搭档。
mod_php 与 php-fpm 无论哪种方案,健壮性,稳定性都远远超过Tomcat + Servlet。
理论上 Servlet 应该速度上好于 mod_php 跟 php-fpm。但实际情况并没有很突出,因为系统瓶颈不在应用服务器,而是数据库。
两个WEB解决方案都能通过负载均衡,横向扩展解决应用服务器压力问题。
mod_php 与 php-fpm 原理是一次请求,运行完毕便释放OS资源。无论程序有多烂都能正常运行完,某个功能模块出现问题,其他仍能正常使用。
Servlet 启动后全部载入内存,程序写的不够好,就容易崩溃。一崩溃就是出大事,连首页都进不去,这个矛头都会指向运维。
本地应用运维
什么是本地应用程序,说白了就是在命令行运行的应用。这些应用通常是定时运行,守护进程运行。
大部分Java开发者在Windows上使用Eclipse或者NetBeans一类的集成IDE开发,然后在IDE中编译好后交给运维,通常给过来的程序都运行有问题。
都说Java是跨平台,实际上不同平台之间还是有很大差异的。Java 实质上是夸VM,而无法做到跨平台。如果某个平台上面没有JVM,Java是无法跨过去的。
由于大部分Java开发者使用IDE开发,不涉及命令行处理,只需在IDE集成开发环境中点两个按钮Run跟Build即可,一旦离开IDE无从下手,不清楚在Linux上怎么搞。 我认为Ant,Ivy,Maven 应该是必须掌握的,时至今日很多Java开发者还没有听过Ant。
PHP开发者对linux命令的熟悉程度好于Java开发者,无用操心。Java吗至少陪着搞。
Java 不能访问底层,Jre 是运行在OS之上,守护进程实现起来需要写一个shell,实现启动,提取pid,pid写入文件,记录日志,进入后台运行,停止退出等等功能,这个脚本Java开发者通常搞不定。
PHP 能够调用 pcntl 写出完美守护进程。
本地应用程序一定会涉及多线程,PHP初级程序员培训后就可以写出质量不错的多线程程序,而Java中级软件工程师都未必写出同样质量的程序。 PHP的pcntl + pthreads + libevent 比 Java Thread + NIO 门槛低,学习成本低,上手快,更容易开发出高效稳定的应用程序。
配置复杂度
Java 不敢采用vhost模式运行,而是采用多个实例的方案,是为了降低崩溃后影响的面积,以及升级过程中停机的影响。 多实例问题来了,本可能高内聚的程序,多实例后项目之间产生了通信成本,每个项目部署后都携带大量的配置文件,配置起来十分繁琐,出现问题需要逐一排查。
这也是为什么Java项目一旦出现问题,排查耗时的原因。
安全性
很多人认为Java是编译运行,就安全了,这是大错特错的,实际情况Java网站攻击的机会与漏洞数量一点也不比PHP网站少。
被注入有没有?,被脱库有没有?
现在黑客已经很少搞破坏性攻击了,而更多的手法通常是控制肉鸡,获取有价值的数据。从外围寻找业务漏洞的方式来的更直接有效。
另外无论是Java还是PHP,很多开发人员都拒绝升级,因为每次升级都会扯出很多陈年BUG,谁都不想决解,承担责任。
很多版本厂家已经不在提供技术支持跟后续升级更新,一旦该版本出现漏洞,后果很严重,大家都心知肚明。
神马 PHP 5.2.17, JDK 1.5, Tomcat 5 都是坑,出了问题害的运维背黑锅。
总结
Java 运维应盯紧日志,Java 项目崩溃不是偶然的,是各种抛出异常积累结果。 对于Java项目,重启是万能的,通过脚本监控发现异常就重启,不要试图找出问题的根源,因为日志你永远看不懂,保证业务最重要,随后丢一份日志给开发人员,同时告知老板。
从运维角度看,使用什么语言并不重要,安全,稳定,健壮这才是王道。语言的各种不足可以从架构上,部署上,设计上弥补。
没有一种语言是全能的,每种语言在设计的时候都是针对某个领域或者倾向于解决某领域而设计的。
上面所提的很多问题并不全是语言的问题,可能是容器问题,可能是虚拟机问题。对于运维并不关心这些细节,很多人无法分清楚什么事语言,什么是编译器,什么事虚拟机,我们只看结果。
 
请关注下面二维码是我的公众号。
DSC0000.jpg

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-357927-1-1.html 上篇帖子: PHP如何将表单提交给自己 下篇帖子: php 序列化(serialize)格式详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表