Redian新闻
>
我也跟风说说我司的架构
avatar
h*i
2
曹雪芹说女儿是水做的骨肉,男人是泥做的骨肉。
于是有一天我对一娘娘腔说那你就是水泥做的,
他回答我说:“胡说,老娘市处女座的!”
avatar
h*i
3
AI startup, B2B2C.
后端是Clojure写的一个大型Web app,比metabase大很多,核心是我发明的一个语言,
跑在几个比较大的结点上,前面用一个小的nginx结点来分配任务,因为web app是
stateful的,所以是根据IP hash来分配的,保证同一个结点为同一个用户服务。
用两种数据库,Postgres用来存用户信息,可以删,满足法律要求;操作信息用
Datomic存,只加不删,ACID,与Clojure无缝衔接, Datomic是用一个couchbase集群
作存储的,水平扩展,分布管理都较容易,基本不管。
Web app后面有比web app结点多很多的ML计算结点,这些都是python写的。他们与Web
app的链接,快的计算用Flask提供http同步访问,Clojure Web app自己分配任务; 慢
的计算用Kafka 集群作异步中介,分工到各个计算结点。python and Kafka don't
play well together, such a pain in the ass. Do not recommend.
前端ClojureScript,re-frame用于B2B用户界面,比较复杂,rum用于B2C用户界面,比
较简单,二者都是包装React的.可视化用百度的echart.
前后端用GraphQL连。GraphQL服务器用WalmartLab的库,GraphQL也是我们的公开API,
所以别人的客户端也能连上来,比如mobile啥的。GraphQL subscription跑在
Websocket里面,可以push信息到客户端。
云是AWS和GCP都用,但基本不用他们的独特服务。CI/CD用Jenkins管理动态的集群。
avatar
S*P
4
啥时候的external review?

【在 w********s 的大作中提到】
: 伤心欲绝之啊
avatar
e*o
5

你这个得好多人才能搞定吧?能否谈一下大致多少人开发了多久?
avatar
w*s
6
9/20
avatar
w*m
7
看样子Clojure就是一个router?干活的还是python和javascript
avatar
q*w
8
我不懂变态是什么意思。这个是我的记录(属于传说中的变态了吗?):
Review Information:
External Peer Review began on 10/16/13
Proposal Status
Status As of Today Dated: 11/20/13
This proposal is currently being considered by the above Program.
Consideration of proposals usually requires up to six months.
avatar
n*3
9
so the clojure web service will feed and get result back from python/ML
part ?
here we are researching what will be the best architecture to communicate
between
clojure based real time
system and the ML part which using python. ideally everything in clojure
/clojurescript will
be great, but not every ML/DS guy will like to play with clojure.. and
clojure ML /MXNET is
not so mature yet..

Web

【在 h*i 的大作中提到】
: AI startup, B2B2C.
: 后端是Clojure写的一个大型Web app,比metabase大很多,核心是我发明的一个语言,
: 跑在几个比较大的结点上,前面用一个小的nginx结点来分配任务,因为web app是
: stateful的,所以是根据IP hash来分配的,保证同一个结点为同一个用户服务。
: 用两种数据库,Postgres用来存用户信息,可以删,满足法律要求;操作信息用
: Datomic存,只加不删,ACID,与Clojure无缝衔接, Datomic是用一个couchbase集群
: 作存储的,水平扩展,分布管理都较容易,基本不管。
: Web app后面有比web app结点多很多的ML计算结点,这些都是python写的。他们与Web
: app的链接,快的计算用Flask提供http同步访问,Clojure Web app自己分配任务; 慢
: 的计算用Kafka 集群作异步中介,分工到各个计算结点。python and Kafka don't

avatar
h*w
10
我连Review Information都没有,就个7月收到的信息,真够悲惨的.

【在 q****w 的大作中提到】
: 我不懂变态是什么意思。这个是我的记录(属于传说中的变态了吗?):
: Review Information:
: External Peer Review began on 10/16/13
: Proposal Status
: Status As of Today Dated: 11/20/13
: This proposal is currently being considered by the above Program.
: Consideration of proposals usually requires up to six months.

avatar
g*t
11
一边是几秒就会出结果的类似于增删查改的服务。另一边你把它想成NP hard那种,想
快也快不起来的python甚至matlab服务。
两边如何协调是很麻烦的。因为问题的提交和定义是在增删查改那边。这是个核心问题
。八仙过海,各显神通吧。就算jvm有了numpy,gpu支持等,也照样有这个问题。
这个不是语言问题。全python后端一样有这个问题。
例如你做个给大型仓库搬箱子工人的路径指导的手机app。很容易就NP hard了。
用队列提交CPU bound任务,取结果是一个办法。

clojure

【在 n*****3 的大作中提到】
: so the clojure web service will feed and get result back from python/ML
: part ?
: here we are researching what will be the best architecture to communicate
: between
: clojure based real time
: system and the ML part which using python. ideally everything in clojure
: /clojurescript will
: be great, but not every ML/DS guy will like to play with clojure.. and
: clojure ML /MXNET is
: not so mature yet..

avatar
d*u
12
这个不算吧。

【在 q****w 的大作中提到】
: 我不懂变态是什么意思。这个是我的记录(属于传说中的变态了吗?):
: Review Information:
: External Peer Review began on 10/16/13
: Proposal Status
: Status As of Today Dated: 11/20/13
: This proposal is currently being considered by the above Program.
: Consideration of proposals usually requires up to six months.

avatar
h*i
13
我们有过几次转型pivot,但代码库一直没有变,所以是个5年历史的代码库,前后有十
几人参与,一半多是实习生。

【在 e*******o 的大作中提到】
: 赞
: 你这个得好多人才能搞定吧?能否谈一下大致多少人开发了多久?

avatar
l*g
14
你后退一页看那个status date

【在 q****w 的大作中提到】
: 我不懂变态是什么意思。这个是我的记录(属于传说中的变态了吗?):
: Review Information:
: External Peer Review began on 10/16/13
: Proposal Status
: Status As of Today Dated: 11/20/13
: This proposal is currently being considered by the above Program.
: Consideration of proposals usually requires up to six months.

avatar
h*i
15
Clojure/Clojurescript是95%的代码,95%的功能。商业逻辑都是在Clojure后端, 部
分ML/NLP也在Clojure后端,其余的ML/NLP在python。如果将来发达了,可能部分ML也
要用Clojure改写,以减少维护难度和提高强壮性。python用在生产上需要很多维护,
不是很适合商业环境的大型应用。

【在 w********m 的大作中提到】
: 看样子Clojure就是一个router?干活的还是python和javascript
avatar
p*m
16
10/16/13那天nsf应该是shutdown的呀。

【在 q****w 的大作中提到】
: 我不懂变态是什么意思。这个是我的记录(属于传说中的变态了吗?):
: Review Information:
: External Peer Review began on 10/16/13
: Proposal Status
: Status As of Today Dated: 11/20/13
: This proposal is currently being considered by the above Program.
: Consideration of proposals usually requires up to six months.

avatar
h*i
17
所以我们期待能有几个Clojure公司发达了能多做点贡献,把ML stack搞起来。目前还
没有。

clojure

【在 n*****3 的大作中提到】
: so the clojure web service will feed and get result back from python/ML
: part ?
: here we are researching what will be the best architecture to communicate
: between
: clojure based real time
: system and the ML part which using python. ideally everything in clojure
: /clojurescript will
: be great, but not every ML/DS guy will like to play with clojure.. and
: clojure ML /MXNET is
: not so mature yet..

avatar
h*w
18
那我这种连Review Information都没有的是咋回事啊?

【在 l*****g 的大作中提到】
: 你后退一页看那个status date
avatar
h*i
19
有时间的话,各种ML/DL Clojure其实都能做了,不过很多要自己实现。作为初创公司
,奢侈不起,要糙快猛出东西,time to market,python目前还是不能避免的。
快的计算走http就行了。
慢的,比如LDA啥的,扔进去一个文件集,算半天才出结果的,有各种办法。以前我就
用S3,算完了notify一下,自己去取结果。这次为了避免套牢AWS,用了kafka队列,也
不错,但python的kafka支持还不太成熟,问题很多。

clojure

【在 n*****3 的大作中提到】
: so the clojure web service will feed and get result back from python/ML
: part ?
: here we are researching what will be the best architecture to communicate
: between
: clojure based real time
: system and the ML part which using python. ideally everything in clojure
: /clojurescript will
: be great, but not every ML/DS guy will like to play with clojure.. and
: clojure ML /MXNET is
: not so mature yet..

avatar
q*w
20
是"Pending"。如果是变态,应该是什么?
谢谢!

【在 l*****g 的大作中提到】
: 你后退一页看那个status date
avatar
c*f
21
是的 我也觉得python的kafka客户端是写的最烂的。。
最好的自然是java 因为自带 但是golang的那个也非常不错sarama
avatar
h*w
22
有一栏是当前的status date,那个如果变了PO却没联系,99%是锯信.

【在 q****w 的大作中提到】
: 是"Pending"。如果是变态,应该是什么?
: 谢谢!

avatar
l*m
23
LDA应该有JAVA实现的open source,无论是MCMC还是VI

【在 h*i 的大作中提到】
: 有时间的话,各种ML/DL Clojure其实都能做了,不过很多要自己实现。作为初创公司
: ,奢侈不起,要糙快猛出东西,time to market,python目前还是不能避免的。
: 快的计算走http就行了。
: 慢的,比如LDA啥的,扔进去一个文件集,算半天才出结果的,有各种办法。以前我就
: 用S3,算完了notify一下,自己去取结果。这次为了避免套牢AWS,用了kafka队列,也
: 不错,但python的kafka支持还不太成熟,问题很多。
:
: clojure

avatar
q*w
24
明白了。现在那个date还是received date.

【在 h*****w 的大作中提到】
: 有一栏是当前的status date,那个如果变了PO却没联系,99%是锯信.
avatar
h*i
25
对的,Java有mallet啥的。
主要是还需要其他的python东西,就一起在python做了。

【在 l*******m 的大作中提到】
: LDA应该有JAVA实现的open source,无论是MCMC还是VI
avatar
l*1
26
bless! Ps: if awarded Baozi pls ?

【在 q****w 的大作中提到】
: 明白了。现在那个date还是received date.
avatar
w*z
27
confluent-kafka-python is a lightweight wrapper aroundlibrdkafka, a finely
tuned C client.
我们都部署到几万台机子上,1.x 版本没有发现大问题

:是的 我也觉得python的kafka客户端是写的最烂的。。
:最好的自然是java 因为自带 但是golang的那个也非常不错sarama
avatar
w*s
28
got the rejection letter
avatar
h*i
29
Thank you. I will ask my people to switch to this one. We were using
aiokafka.

【在 w**z 的大作中提到】
: confluent-kafka-python is a lightweight wrapper aroundlibrdkafka, a finely
: tuned C client.
: 我们都部署到几万台机子上,1.x 版本没有发现大问题
:
: :是的 我也觉得python的kafka客户端是写的最烂的。。
: :最好的自然是java 因为自带 但是golang的那个也非常不错sarama

avatar
g*t
30
学习了.十个字。十个字。


: confluent-kafka-python is a lightweight wrapper aroundlibrdkafka, a
finely

: tuned C client.

: 我们都部署到几万台机子上,1.x 版本没有发现大问题

: :是的 我也觉得python的kafka客户端是写的最烂的。。

: :最好的自然是java 因为自带 但是golang的那个也非常不错sarama



【在 w**z 的大作中提到】
: confluent-kafka-python is a lightweight wrapper aroundlibrdkafka, a finely
: tuned C client.
: 我们都部署到几万台机子上,1.x 版本没有发现大问题
:
: :是的 我也觉得python的kafka客户端是写的最烂的。。
: :最好的自然是java 因为自带 但是golang的那个也非常不错sarama

avatar
e*o
31
能坚持5年,差不多成功了。
另外,你们选kafka的时候跟rabbitmq 比较过么?

【在 h*i 的大作中提到】
: 我们有过几次转型pivot,但代码库一直没有变,所以是个5年历史的代码库,前后有十
: 几人参与,一半多是实习生。

avatar
h*i
32
选Kafka的时候用例不同,那时候是用来中转扒的大量数据的,主要是看中它的
persistence。再说认识kafka的作者,觉得实在有问题还可以问。其实也没问过,但总
觉得更放心吧。
现在不扒数据了,但用了这么多年的kafka,觉得还是很可靠的,就继续用了.

【在 e*******o 的大作中提到】
: 能坚持5年,差不多成功了。
: 另外,你们选kafka的时候跟rabbitmq 比较过么?

avatar
h*i
33
Switched, so far so good. Thanks again.

【在 w**z 的大作中提到】
: confluent-kafka-python is a lightweight wrapper aroundlibrdkafka, a finely
: tuned C client.
: 我们都部署到几万台机子上,1.x 版本没有发现大问题
:
: :是的 我也觉得python的kafka客户端是写的最烂的。。
: :最好的自然是java 因为自带 但是golang的那个也非常不错sarama

avatar
w*z
34
不客气。我们也是刚从 0.x 版本升上来的。

:Switched, so far so good. Thanks again.
avatar
s*k
35
关键就是现在很多的kafka没用到1.x,能够升级到0.9以上都很不错了

【在 w**z 的大作中提到】
: 不客气。我们也是刚从 0.x 版本升上来的。
:
: :Switched, so far so good. Thanks again.
: :

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。