开发一个企业级应用的SaaS平台,用哪种语言好?或哪几种组合?
程序员文章站
2022-04-15 22:18:23
...
如eHR、KM系统,在用户界面实现类似互联网产品的炫酷效果,是否要用到html5?以及如何实现高并发量(单服务器万级)?
高并发跟语言无关。无状态负载路由、异步IO才是高并发的关键
python/gevent实现的高并发远远超出传统的java服务器 说一下我们公司用的吧 熟悉一点
我们公司的产品是面向企业用户的网页应用。 简单说一下我们的架构吧,如果有需要再来补充。
数据库:mysql, 还有一些cache用redis
后端:java/hibernate/spring
前端:jsp/css(less->最近准备转saas了)/js(jquery, backbone)
部署:puppet/fabric/jenkins
搜索:solr
服务器: aws
每天部署服务器十几二十次吧。
其实语言无所谓只是一个工具,选一个社区成熟,讨论积极的各种成熟的库全的随时方便用就行了。 前台要炫酷, HTML5不二选择,要十分炫酷, 做富客户端
高并发,你场景不全,单服务器万级没说清楚场景,是单E5每小时万次访问,还是单P7每小时万个并发用户?普遍来说,基本上是 提高硬件 > 分布式 > 异步+缓存 >企业级高并发 就自己的经验谈谈看,看看是否能够帮助你。
企业应用的负载:
单服务器企业级应用万级并发,现有主流架构下可能性是几乎没有的。哪怕你配置的是几十万一台的高端应用服务器。大部分的瓶颈都在IO上,其中关系型数据库是主要瓶颈来源之一,除非你用noSql之类的解决方案,对于企业应用那又意味着高风险,noSql在企业应用中实践和案例不多。
企业应用的技术:
企业应用本身的特点决定了不能象互联网这样的成本投入,互联网的关注点和企业应用的关注点不同,企业应用虽然也要讲用户体验,但体验主要焦点在提升工作效率上,而不是“营销自我”上。互联网应用的主要焦点是“营销自我”,说白了就是穿得漂亮的情况下尽量实用。
技术选型上,企业应用主要关注的有几个要点:
1、尽量使用全能型的语言,尽量降低技术架构复杂度,最多选择一门到两门语言去实现这个架构,以免让这个系统过于复杂变得不可维护以及团队之间沟通变得困难。
2、选用的体系结构,应该在各方面的解决方案上有更多成熟框架供选择,比如这个体系架构是否有超过一个工作流引擎、规则系统、事务系统、消息系统等等可供选择。
3、人才尽可能的容易招聘,我选择的语言或者体系结构,是否在市场上容易招聘人才,是否以相对较低的成本培养、替换人才。
那么,用什么语言是不是呼之欲出了?
一点拙见。 你可以关注一下这个技术博客,里面有一些开发模型、压测数据、理论框架等等 http://rdc.gleasy.com/ 团队沟通协作软件群策,群策 - 统一团队沟通,高效完成工作,也是SAAS产品, 是用go语言开发的,楼主你可以参考下。 说得还是很有道理的。
回复内容:
感谢邀请。Python/Ruby首选,开发效率高最重要,部署方便(每天部署10次)很重要,不要考虑Java/C#这些静态语言。高并发跟语言无关。无状态负载路由、异步IO才是高并发的关键
python/gevent实现的高并发远远超出传统的java服务器 说一下我们公司用的吧 熟悉一点
我们公司的产品是面向企业用户的网页应用。 简单说一下我们的架构吧,如果有需要再来补充。
数据库:mysql, 还有一些cache用redis
后端:java/hibernate/spring
前端:jsp/css(less->最近准备转saas了)/js(jquery, backbone)
部署:puppet/fabric/jenkins
搜索:solr
服务器: aws
每天部署服务器十几二十次吧。
其实语言无所谓只是一个工具,选一个社区成熟,讨论积极的各种成熟的库全的随时方便用就行了。 前台要炫酷, HTML5不二选择,要十分炫酷, 做富客户端
高并发,你场景不全,单服务器万级没说清楚场景,是单E5每小时万次访问,还是单P7每小时万个并发用户?普遍来说,基本上是 提高硬件 > 分布式 > 异步+缓存 >企业级高并发 就自己的经验谈谈看,看看是否能够帮助你。
企业应用的负载:
单服务器企业级应用万级并发,现有主流架构下可能性是几乎没有的。哪怕你配置的是几十万一台的高端应用服务器。大部分的瓶颈都在IO上,其中关系型数据库是主要瓶颈来源之一,除非你用noSql之类的解决方案,对于企业应用那又意味着高风险,noSql在企业应用中实践和案例不多。
这里的企业应用,是指以查询和业务操作为主,而非文字图片为主的应用。其中查询的复杂度是不可预知的。
企业应用的技术:
企业应用本身的特点决定了不能象互联网这样的成本投入,互联网的关注点和企业应用的关注点不同,企业应用虽然也要讲用户体验,但体验主要焦点在提升工作效率上,而不是“营销自我”上。互联网应用的主要焦点是“营销自我”,说白了就是穿得漂亮的情况下尽量实用。
技术选型上,企业应用主要关注的有几个要点:
1、尽量使用全能型的语言,尽量降低技术架构复杂度,最多选择一门到两门语言去实现这个架构,以免让这个系统过于复杂变得不可维护以及团队之间沟通变得困难。
2、选用的体系结构,应该在各方面的解决方案上有更多成熟框架供选择,比如这个体系架构是否有超过一个工作流引擎、规则系统、事务系统、消息系统等等可供选择。
3、人才尽可能的容易招聘,我选择的语言或者体系结构,是否在市场上容易招聘人才,是否以相对较低的成本培养、替换人才。
那么,用什么语言是不是呼之欲出了?
一点拙见。 你可以关注一下这个技术博客,里面有一些开发模型、压测数据、理论框架等等 http://rdc.gleasy.com/ 团队沟通协作软件群策,群策 - 统一团队沟通,高效完成工作,也是SAAS产品, 是用go语言开发的,楼主你可以参考下。 说得还是很有道理的。