w********m 发帖数: 1137 | 1 什么东西打个jar包,
扔到服务器的jvm上就可以用了。
不需要任何的依赖。
php,python,node这些都要部署,
依赖库还有可能需要编译。
太麻烦了。 |
N*****m 发帖数: 42603 | 2 jar hell就够头疼了
python, node也可以打包
【在 w********m 的大作中提到】 : 什么东西打个jar包, : 扔到服务器的jvm上就可以用了。 : 不需要任何的依赖。 : php,python,node这些都要部署, : 依赖库还有可能需要编译。 : 太麻烦了。
|
d********g 发帖数: 10550 | 3 跟我念——Docker:F-r-e-e-B-S-D
【在 w********m 的大作中提到】 : 什么东西打个jar包, : 扔到服务器的jvm上就可以用了。 : 不需要任何的依赖。 : php,python,node这些都要部署, : 依赖库还有可能需要编译。 : 太麻烦了。
|
w********m 发帖数: 1137 | 4 python ,node 很多人讨论过的,结论是无法打包。
打个比方,python用个virtualenv,然后拷到另外一个机器,肯定是无法运行。
【在 N*****m 的大作中提到】 : jar hell就够头疼了 : python, node也可以打包
|
d********g 发帖数: 10550 | 5 感觉你们从来没做过CI?我也是醉了
【在 w********m 的大作中提到】 : python ,node 很多人讨论过的,结论是无法打包。 : 打个比方,python用个virtualenv,然后拷到另外一个机器,肯定是无法运行。
|
w********m 发帖数: 1137 | 6 python要用nginx,gunicorn,uwsgi,
这些配置都不是好玩的。
每个机器还不一样。
【在 d********g 的大作中提到】 : 感觉你们从来没做过CI?我也是醉了
|
d********g 发帖数: 10550 | 7 丢一个JAR上去难道就不需要数据库了?这些一样是dependency。你说的最多就是单机
玩具服务,听着在用Tomcat裸serve。自己玩玩还行
【在 w********m 的大作中提到】 : python要用nginx,gunicorn,uwsgi, : 这些配置都不是好玩的。 : 每个机器还不一样。
|
d********g 发帖数: 10550 | 8 当然不好玩,所以才需要CI。难道AWS也是靠人工丢一个JAR上去就不管了?这和JAR没
关系,JAR已经是很老的东西了
说了应该看看Docker
【在 w********m 的大作中提到】 : python要用nginx,gunicorn,uwsgi, : 这些配置都不是好玩的。 : 每个机器还不一样。
|
w********m 发帖数: 1137 | 9 我用的是spring boot。
jar里自带tomcat。的确是一个jar就可以了。
docker和jvm都是虚拟机。jvm的overhead小多了。
以前搞node和python,每次都被配置弄死了。CI对这些非编译型语言testing有意义,
部署没有意义。
【在 d********g 的大作中提到】 : 当然不好玩,所以才需要CI。难道AWS也是靠人工丢一个JAR上去就不管了?这和JAR没 : 关系,JAR已经是很老的东西了 : 说了应该看看Docker
|
d********g 发帖数: 10550 | 10 而且你这瞎列一气。Gunicorn你如果不考虑scaling的话完全可以像Tomcat、Node.js一
样裸用,不需要其它。uWSGI要配合一个前端比如Nginx,但这个前端基本上都不会在同
一个机器。不过要是你的服务都没有LB的话当我没说
【在 w********m 的大作中提到】 : python要用nginx,gunicorn,uwsgi, : 这些配置都不是好玩的。 : 每个机器还不一样。
|
|
|
d********g 发帖数: 10550 | 11 我问的是AWS那么大规模的架构你以为都是一个一个丢JAR上去?不都是靠CI
Docker不是虚拟机你搞错了。JVM的overhead大是不争的事实。另外还有FreeBSD的
Jails也是很好的方案,比VM轻
你搞不定Node和Python是你自己的事。我在Jails里部署JVM应用都没有问题(比如
Elasticsearch),别说Docker这种大路货了
CI你可能没正经用过。非要抠定义是CI+CD,如果你还在手工部署那要么规模不够大要
么太闲
【在 w********m 的大作中提到】 : 我用的是spring boot。 : jar里自带tomcat。的确是一个jar就可以了。 : docker和jvm都是虚拟机。jvm的overhead小多了。 : 以前搞node和python,每次都被配置弄死了。CI对这些非编译型语言testing有意义, : 部署没有意义。
|
w********m 发帖数: 1137 | 12 我被python,node操了好多年了。
nginx做静态,uwsgi做动态应该是python里比较流行的standard operation。
每台单机都配nginx,还是保证系统安全的做法。
nginx不是主要做LB。
【在 d********g 的大作中提到】 : 而且你这瞎列一气。Gunicorn你如果不考虑scaling的话完全可以像Tomcat、Node.js一 : 样裸用,不需要其它。uWSGI要配合一个前端比如Nginx,但这个前端基本上都不会在同 : 一个机器。不过要是你的服务都没有LB的话当我没说
|
d********g 发帖数: 10550 | 13 再给你介绍个免费的好东西吧:
https://about.gitlab.com/gitlab-ci/
虽然不是企业级的,但应付你这种需求应该绰绰有余了
【在 w********m 的大作中提到】 : 我用的是spring boot。 : jar里自带tomcat。的确是一个jar就可以了。 : docker和jvm都是虚拟机。jvm的overhead小多了。 : 以前搞node和python,每次都被配置弄死了。CI对这些非编译型语言testing有意义, : 部署没有意义。
|
w********m 发帖数: 1137 | 14 docker有很多问题,业界的看法往negative方向走。
打个比方,你怎么保证一个docker image只跑一个process。
【在 d********g 的大作中提到】 : 我问的是AWS那么大规模的架构你以为都是一个一个丢JAR上去?不都是靠CI : Docker不是虚拟机你搞错了。JVM的overhead大是不争的事实。另外还有FreeBSD的 : Jails也是很好的方案,比VM轻 : 你搞不定Node和Python是你自己的事。我在Jails里部署JVM应用都没有问题(比如 : Elasticsearch),别说Docker这种大路货了 : CI你可能没正经用过。非要抠定义是CI+CD,如果你还在手工部署那要么规模不够大要 : 么太闲
|
N*****m 发帖数: 42603 | 15 怎么无法运行?
aws lambda最早是支持node.js,后来有python和java
不能打包能才怪了
【在 w********m 的大作中提到】 : python ,node 很多人讨论过的,结论是无法打包。 : 打个比方,python用个virtualenv,然后拷到另外一个机器,肯定是无法运行。
|
d********g 发帖数: 10550 | 16 所以你这只专注在抠字眼不理解实质。LB是一个概念的玩意儿不是非要指HAProxy,就
和web server / app server这些概念一样不同场景对应的instance不同
要是每台机器配Nginx还不上CI的话真的是自虐了
【在 w********m 的大作中提到】 : 我被python,node操了好多年了。 : nginx做静态,uwsgi做动态应该是python里比较流行的standard operation。 : 每台单机都配nginx,还是保证系统安全的做法。 : nginx不是主要做LB。
|
N*****m 发帖数: 42603 | 17 昏,跟nginx有啥关系?
【在 w********m 的大作中提到】 : python要用nginx,gunicorn,uwsgi, : 这些配置都不是好玩的。 : 每个机器还不一样。
|
d********g 发帖数: 10550 | 18 你这又抠字眼了。process怎么定义?我们说的是service,一个Docker跑一个service
。service是一个抽象的概念
【在 w********m 的大作中提到】 : docker有很多问题,业界的看法往negative方向走。 : 打个比方,你怎么保证一个docker image只跑一个process。
|
w********m 发帖数: 1137 | 19 你说的是CD吧。
这又回到了ansible。还不是配置吗。
【在 d********g 的大作中提到】 : 所以你这只专注在抠字眼不理解实质。LB是一个概念的玩意儿不是非要指HAProxy,就 : 和web server / app server这些概念一样不同场景对应的instance不同 : 要是每台机器配Nginx还不上CI的话真的是自虐了
|
d********g 发帖数: 10550 | 20 好吧你抠字眼能力强,我也和你抠。你做CI的时候假设要做end-to-end test,一个API
server起来一个headless browser自动测试,这时候为了模拟真实环境难道不能CI建
一套一模一样的来测?
做配置的多了,Ansible、Salt一堆。不知道你要讨论啥?
【在 w********m 的大作中提到】 : 你说的是CD吧。 : 这又回到了ansible。还不是配置吗。
|
|
|
N*****m 发帖数: 42603 | 21 感觉你混淆很多概念
nginx是reverse proxy,Java一样要用
gunicorn, uwsgi这些跟tomcat类似,python里面你一样可以不用,用flask这样的就跟
你的spring boot一样,直接运行就行了;node.js就更简单了
【在 w********m 的大作中提到】 : python要用nginx,gunicorn,uwsgi, : 这些配置都不是好玩的。 : 每个机器还不一样。
|
d********g 发帖数: 10550 | 22 如果你说JAR不需要配置我呵呵。JAR的配置有些SB傻到直接写在那个zip包里
你说的简单是个人感觉上的一个container的概念,就是反正我就这个东西,给你就需
要跑起来。这就是Docker的思路,但是Docker能干的事情更多
【在 w********m 的大作中提到】 : 你说的是CD吧。 : 这又回到了ansible。还不是配置吗。
|
w********m 发帖数: 1137 | 23 java是我用过的web app,目前依赖最少的。
docker有时想解决问题,反倒引入了更多的问题。如果不是很熟,少用为佳。
【在 d********g 的大作中提到】 : 如果你说JAR不需要配置我呵呵。JAR的配置有些SB傻到直接写在那个zip包里 : 你说的简单是个人感觉上的一个container的概念,就是反正我就这个东西,给你就需 : 要跑起来。这就是Docker的思路,但是Docker能干的事情更多
|
w********m 发帖数: 1137 | 24 pip和npm都是local要装的。这就是麻烦。
【在 N*****m 的大作中提到】 : 感觉你混淆很多概念 : nginx是reverse proxy,Java一样要用 : gunicorn, uwsgi这些跟tomcat类似,python里面你一样可以不用,用flask这样的就跟 : 你的spring boot一样,直接运行就行了;node.js就更简单了
|
d********g 发帖数: 10550 | 25 npm不就和jvm一样。jvm都可以装为啥npm不行?
注:防止抠字眼——我知道node才和jvm类似是runtime
【在 w********m 的大作中提到】 : pip和npm都是local要装的。这就是麻烦。
|
N*****m 发帖数: 42603 | 26 这都是装好了的
跟你要装jre一样,有啥问题?
【在 w********m 的大作中提到】 : pip和npm都是local要装的。这就是麻烦。
|
w********m 发帖数: 1137 | 27 这些都是依赖,更新一个包,整个系统崩溃的见的不少。
跟java的打包不是一个概念。
【在 N*****m 的大作中提到】 : 这都是装好了的 : 跟你要装jre一样,有啥问题?
|
w********m 发帖数: 1137 | 28 所以java能到处运行是个很大的优点。
上docker或者ansible/chef,这些都要配置,非常麻烦。不应该是程序员该做的。
【在 d********g 的大作中提到】 : npm不就和jvm一样。jvm都可以装为啥npm不行? : 注:防止抠字眼——我知道node才和jvm类似是runtime
|
d********g 发帖数: 10550 | 29 Python的virtualenv和Python 3内置的venv
Node的bower和webpack
没见谁系统崩溃了?Maven更神一点?
【在 w********m 的大作中提到】 : 这些都是依赖,更新一个包,整个系统崩溃的见的不少。 : 跟java的打包不是一个概念。
|
d********g 发帖数: 10550 | 30 你可能上了假的程序员课
【在 w********m 的大作中提到】 : 所以java能到处运行是个很大的优点。 : 上docker或者ansible/chef,这些都要配置,非常麻烦。不应该是程序员该做的。
|
|
|
N*****m 发帖数: 42603 | 31 zip就行了,比jar还简单
【在 w********m 的大作中提到】 : 这些都是依赖,更新一个包,整个系统崩溃的见的不少。 : 跟java的打包不是一个概念。
|
N*****m 发帖数: 42603 | 32 docker也是标配,比jre还常见
【在 w********m 的大作中提到】 : 所以java能到处运行是个很大的优点。 : 上docker或者ansible/chef,这些都要配置,非常麻烦。不应该是程序员该做的。
|
w********m 发帖数: 1137 | 33 你要是做python多年就知道了,virtualenv不能水平移植有多麻烦。
不信你把你的venv目录zip下,copy到另一个机器试试。
【在 d********g 的大作中提到】 : Python的virtualenv和Python 3内置的venv : Node的bower和webpack : 没见谁系统崩溃了?Maven更神一点?
|
w********m 发帖数: 1137 | 34 docker一个image可能就1GB。
jre总共就200M。
【在 N*****m 的大作中提到】 : docker也是标配,比jre还常见
|
N*****m 发帖数: 42603 | 35 为啥一定要用大的?
alpine才几MB,而且docker是分层的
【在 w********m 的大作中提到】 : docker一个image可能就1GB。 : jre总共就200M。
|
w********m 发帖数: 1137 | 36 试试docker pull mysql
【在 N*****m 的大作中提到】 : 为啥一定要用大的? : alpine才几MB,而且docker是分层的
|
N*****m 发帖数: 42603 | 37 这个跟python有啥关系?java用mysql就不要了?
【在 w********m 的大作中提到】 : 试试docker pull mysql
|
N*****m 发帖数: 42603 | 38 用alpine base的https://hub.docker.com/r/wangxian/alpine-mysql/
才50MB
【在 w********m 的大作中提到】 : 试试docker pull mysql
|
N*****m 发帖数: 42603 | 39 docker pull python:alpine,才29MB
node:4-alpine,13MB
哪个都比jre小
【在 w********m 的大作中提到】 : 试试docker pull mysql
|
d********g 发帖数: 10550 | 40 virtualenv本来就不是这样用的你不知道?CI的build machine一般得做成和prod一样的
关键你这copy来copy去的做法很山寨呀,CI不是你这样做的
【在 w********m 的大作中提到】 : 你要是做python多年就知道了,virtualenv不能水平移植有多麻烦。 : 不信你把你的venv目录zip下,copy到另一个机器试试。
|
|
|
w********m 发帖数: 1137 | 41 那就写配置一个一个装呗。
要考虑保持开发机和prod机idempotent。
其实不是难,就是麻烦。
样的
【在 d********g 的大作中提到】 : virtualenv本来就不是这样用的你不知道?CI的build machine一般得做成和prod一样的 : 关键你这copy来copy去的做法很山寨呀,CI不是你这样做的
|
d********g 发帖数: 10550 | 42 你可以把JAR看成远古的部署方式,但是现在远远不够了。Docker是更高一级的
container,因为不可能所有东西都是Java服务,不可能把所有服务都搞成JAR,除非你
只局限在Spring。就算是Spring,数据库能JAR吗?显然不行,你还是得配置
【在 w********m 的大作中提到】 : 那就写配置一个一个装呗。 : 要考虑保持开发机和prod机idempotent。 : 其实不是难,就是麻烦。 : : 样的
|
d*******r 发帖数: 3299 | 43 大牛觉得 Ansible、Salt 哪一个好点
API
【在 d********g 的大作中提到】 : 好吧你抠字眼能力强,我也和你抠。你做CI的时候假设要做end-to-end test,一个API : server起来一个headless browser自动测试,这时候为了模拟真实环境难道不能CI建 : 一套一模一样的来测? : 做配置的多了,Ansible、Salt一堆。不知道你要讨论啥?
|
d********g 发帖数: 10550 | 44 没咋用过Ansible。Fabric和Salt用过一点
这些主要是infra/ops的事,dev不咋管但是要会
【在 d*******r 的大作中提到】 : 大牛觉得 Ansible、Salt 哪一个好点 : : API
|
w********m 发帖数: 1137 | 45 就事论事。Web上面,java还是比其它语言优势大。
第一,轻量级部署。你可以把源码,静态资源,web server都打一个jar包。只要有jvm
的机器都能运行。重要的框架比如elasticsearch,全部只有20多mb。node/python简
单的web app动不动各种包,上GB。
第二,可以rollback。像春卷的这个案例,http://www.mitbbs.com/article_t/Programming/31492193.html 。一个包更新,系统崩溃,只有全部重装。java回到上个jar就行了。
第三,web app大一点的要加search feature。java就绕不过去了。不如一开始就上。
第四,java这几年发展很大。spring 5的async + threading,比node/python/ruby要
强。
【在 d********g 的大作中提到】 : 你可以把JAR看成远古的部署方式,但是现在远远不够了。Docker是更高一级的 : container,因为不可能所有东西都是Java服务,不可能把所有服务都搞成JAR,除非你 : 只局限在Spring。就算是Spring,数据库能JAR吗?显然不行,你还是得配置
|
d********g 发帖数: 10550 | 46 “node/python简单的web app动不动各种包,上GB”
你可能用了假Node/Python。看了这句就不用往下浪费时间了
jvm
【在 w********m 的大作中提到】 : 就事论事。Web上面,java还是比其它语言优势大。 : 第一,轻量级部署。你可以把源码,静态资源,web server都打一个jar包。只要有jvm : 的机器都能运行。重要的框架比如elasticsearch,全部只有20多mb。node/python简 : 单的web app动不动各种包,上GB。 : 第二,可以rollback。像春卷的这个案例,http://www.mitbbs.com/article_t/Programming/31492193.html 。一个包更新,系统崩溃,只有全部重装。java回到上个jar就行了。 : 第三,web app大一点的要加search feature。java就绕不过去了。不如一开始就上。 : 第四,java这几年发展很大。spring 5的async + threading,比node/python/ruby要 : 强。
|
c*********e 发帖数: 16335 | 47 tomcat 和 java 的version不match的时候,怪事不要太多。
【在 w********m 的大作中提到】 : 什么东西打个jar包, : 扔到服务器的jvm上就可以用了。 : 不需要任何的依赖。 : php,python,node这些都要部署, : 依赖库还有可能需要编译。 : 太麻烦了。
|
c******o 发帖数: 1277 | 48 你肯定没做过专门的devops。
基本上我们deploy都是自动的,都做过三种不同的了。
1. 从bare metal AWS instance上做起,用chef所有的东西装上去,全自动,哪用手动
,还不烦死?
2. 在1上做AMI+简单变化, image然后就能autoscaling了,60秒内响应流量,全自动。
3. docker,最大的好处就是dev的时候环境和production的几乎没区别了,打包之后
deploy放心很多。
你那些都是小作坊的办法,大了没法做。
哦,我们这套做了scala/java/php/node/ruby,语言没区别。
jvm
【在 w********m 的大作中提到】 : 就事论事。Web上面,java还是比其它语言优势大。 : 第一,轻量级部署。你可以把源码,静态资源,web server都打一个jar包。只要有jvm : 的机器都能运行。重要的框架比如elasticsearch,全部只有20多mb。node/python简 : 单的web app动不动各种包,上GB。 : 第二,可以rollback。像春卷的这个案例,http://www.mitbbs.com/article_t/Programming/31492193.html 。一个包更新,系统崩溃,只有全部重装。java回到上个jar就行了。 : 第三,web app大一点的要加search feature。java就绕不过去了。不如一开始就上。 : 第四,java这几年发展很大。spring 5的async + threading,比node/python/ruby要 : 强。
|
c*********e 发帖数: 16335 | 49 既然java这么好,uber, airbnb为啥不用它?
jvm
【在 w********m 的大作中提到】 : 就事论事。Web上面,java还是比其它语言优势大。 : 第一,轻量级部署。你可以把源码,静态资源,web server都打一个jar包。只要有jvm : 的机器都能运行。重要的框架比如elasticsearch,全部只有20多mb。node/python简 : 单的web app动不动各种包,上GB。 : 第二,可以rollback。像春卷的这个案例,http://www.mitbbs.com/article_t/Programming/31492193.html 。一个包更新,系统崩溃,只有全部重装。java回到上个jar就行了。 : 第三,web app大一点的要加search feature。java就绕不过去了。不如一开始就上。 : 第四,java这几年发展很大。spring 5的async + threading,比node/python/ruby要 : 强。
|
d*******r 发帖数: 3299 | 50 在用 Java 吧
Uber: Python, Node.js 部分转 Java
AirBnB: Ruby 部分转 java
【在 c*********e 的大作中提到】 : 既然java这么好,uber, airbnb为啥不用它? : : jvm
|
|
|
g*********e 发帖数: 14401 | |
r***y 发帖数: 4379 | 52 典型的前期起步拉风投的时候用糙快猛.
成事儿了, 需要稳扎稳打做大的时候, 转Java.
【在 d*******r 的大作中提到】 : 在用 Java 吧 : Uber: Python, Node.js 部分转 Java : AirBnB: Ruby 部分转 java
|
N*****m 发帖数: 42603 | 53 这个其实跟楼主的问题没啥关系
【在 d*******r 的大作中提到】 : 在用 Java 吧 : Uber: Python, Node.js 部分转 Java : AirBnB: Ruby 部分转 java
|
s*********y 发帖数: 6151 | 54 How about Twitter
【在 r***y 的大作中提到】 : 典型的前期起步拉风投的时候用糙快猛. : 成事儿了, 需要稳扎稳打做大的时候, 转Java.
|
d*******r 发帖数: 3299 | 55 是的,我那贴不是回答楼主问题
【在 N*****m 的大作中提到】 : 这个其实跟楼主的问题没啥关系
|
c*********e 发帖数: 16335 | 56 nginx都不会配置,你还是别玩programming了。
【在 w********m 的大作中提到】 : python要用nginx,gunicorn,uwsgi, : 这些配置都不是好玩的。 : 每个机器还不一样。
|
r***y 发帖数: 4379 | 57 同样套路
Evolution of The Twitter Stack
2006
Ruby on Rails
MySQL
2008+
Ruby on Rails
MySQL (TweetStore, Flock)
Redis, Memcache
2010+
Netty (reverse proxy)
JVM (java, scala)
MySQL (TweetStore, Flock, etc)
Redis, Memcache
【在 s*********y 的大作中提到】 : How about Twitter
|