由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 关于 Python DevOps 的几个问题
相关主题
关于bizspark羊毛的点滴Vagrant, Docker, 这些主要用处和区别是什么
准备上Go了Hashicorp 的 Terraform 一套有人用么?
docker is next big dealD3這server到底有啥難度?這麼不stable?? (转载)
大家公司里kafka是dev弄还是ops折腾学python的一点小感觉哈
go很牛啊。这个10ms 非常快了。AWS真的好用吗?
ansible playbook on windows又招人了,DevOps Engineer
AWS autoscaling难得好文,Linkedin如何用Node beat Python,Ruby,Java
Docker这种东西 真心不看好 门槛太低,哪个公司都能搞python下的expect
相关话题的讨论汇总
话题: python话题: saltstack话题: devops话题: gevent
进入Programming版参与讨论
1 (共1页)
d*******r
发帖数: 3299
1
请问板上的 Python 大牛们 (比如公孙大神), 用 Python 做cloud上的VM管理 (比如
AWS 上大量 EC2 instance 的配置和monitoring), 主要需要用熟哪些工具?
我研究了下, 关于auto deploy/cfg 的工具, 选择有 SaltStack 和 Ansible.
据说是 Ansible 更简单, 跑在 ssh connection 上, 而且Vagrant 官方支持.
SaltStack 需要安装 client 到被管理机器上, 而且 SaltStack 反馈速度更快, 跑在
ZeroMQ connection 上.
不知道 Zeromq 这种东西靠谱不, SaltStack+Zeromq 到底坑多不多?
看 SaltStack 官网, 现在也有 Salt Air 了, 也可以模拟 Ansible 那种 ssh style,
被管理的机器只要能被 ssh 就行.
python 用来监控和管理 process 的最好工具是什么? supervisord?
还有, 可以用 python 的某些个 module/lib 来完全代替linux系统的 cron job 吗?
自己不喜欢用 bash shell, 经常把 bash shell 粘合 cmd tools 的老程序换掉.
所以我在尽量多用 python 的modules. 最终目标是, 能把 cloud 上的 VMs 的管理工
作, 自动汇总到一台机器的python 代码里. 不知道能实现不? 想知道专业的 Python
DevOps 都是怎么搞的?
还有zookeeper什么的, 还没花时间看 ... 不知道需要了解不.
mw
发帖数: 525
2
co ask


,

【在 d*******r 的大作中提到】
: 请问板上的 Python 大牛们 (比如公孙大神), 用 Python 做cloud上的VM管理 (比如
: AWS 上大量 EC2 instance 的配置和monitoring), 主要需要用熟哪些工具?
: 我研究了下, 关于auto deploy/cfg 的工具, 选择有 SaltStack 和 Ansible.
: 据说是 Ansible 更简单, 跑在 ssh connection 上, 而且Vagrant 官方支持.
: SaltStack 需要安装 client 到被管理机器上, 而且 SaltStack 反馈速度更快, 跑在
: ZeroMQ connection 上.
: 不知道 Zeromq 这种东西靠谱不, SaltStack+Zeromq 到底坑多不多?
: 看 SaltStack 官网, 现在也有 Salt Air 了, 也可以模拟 Ansible 那种 ssh style,
: 被管理的机器只要能被 ssh 就行.
: python 用来监控和管理 process 的最好工具是什么? supervisord?

c***C
发帖数: 139
3
aws用boto,我们用salt,不错,速度快,简单。salt不用客户端安装直接用ssh的在
beta开发中,确定就是速度慢不少
c***C
发帖数: 139
4
Supervisord能kill process gracefully,而且结合signal模块。cron非常简单实用,
不知为何要找替代的
d*******r
发帖数: 3299
5
多谢指点。
以前在Ubuntu, Debian, OpenWRT 等等 linux 上都跑过cron,一不小心环境变量设置
有问题,就出问题.
反正我能不用 shell+cmd 的东西,就尽量不用。

【在 c***C 的大作中提到】
: Supervisord能kill process gracefully,而且结合signal模块。cron非常简单实用,
: 不知为何要找替代的

d********g
发帖数: 10550
6
这个你得问专业DevOps才行,我们招了快半年了。我知道常见的boto、puppet、fabric
这些
supervisor用的人比较多,不过这个东西的web gui有个bug,在reverse proxy下对
https支持很烂,不知道多少年的老代码了,只能在Apache/Nginx这里加规则来fix
cron一般没必要替换,倒是有个APScheduler。*nix不可避免要bash,纯Python DevOps
不现实


,

【在 d*******r 的大作中提到】
: 请问板上的 Python 大牛们 (比如公孙大神), 用 Python 做cloud上的VM管理 (比如
: AWS 上大量 EC2 instance 的配置和monitoring), 主要需要用熟哪些工具?
: 我研究了下, 关于auto deploy/cfg 的工具, 选择有 SaltStack 和 Ansible.
: 据说是 Ansible 更简单, 跑在 ssh connection 上, 而且Vagrant 官方支持.
: SaltStack 需要安装 client 到被管理机器上, 而且 SaltStack 反馈速度更快, 跑在
: ZeroMQ connection 上.
: 不知道 Zeromq 这种东西靠谱不, SaltStack+Zeromq 到底坑多不多?
: 看 SaltStack 官网, 现在也有 Salt Air 了, 也可以模拟 Ansible 那种 ssh style,
: 被管理的机器只要能被 ssh 就行.
: python 用来监控和管理 process 的最好工具是什么? supervisord?

d********g
发帖数: 10550
7
cron的env从安全角度考虑,默认是很有限的,需要自己设定

【在 d*******r 的大作中提到】
: 多谢指点。
: 以前在Ubuntu, Debian, OpenWRT 等等 linux 上都跑过cron,一不小心环境变量设置
: 有问题,就出问题.
: 反正我能不用 shell+cmd 的东西,就尽量不用。

d*******r
发帖数: 3299
8
多谢大牛指点。
难道我不能自己开个 python process, 设置一堆 timer,然后再复杂的定时工作都能
搞吗。我准备用 supervisord监控自己的python processes, 然后只用 cron job 定期
监控这一个 supervisord process ... 好像看着 stackoverflow 上有人这么搞: http://serverfault.com/questions/433477/supervisor-vs-cronjob
对了,刚刚用一些 python lib 写了个周期性记录(并上传,绘图) server cpu/memory
使用率的 metrics 的daemon, 我有些问题正想问。
因为现在要给更多的,不同的 metrics 设置不同的搜集 timer (有的30sec采样一次,
有的1min一次),我准备为不同的 metrics 开不同的 Python thread. 不过听说
Python 的 multiple thread 设计得不好 (我知道有 GIL 拖慢的问题), 所以我想知道
pro 的 python guy,写这种东西一般是什么套路呢? python coroutines? or some
event driven framework? 我现在貌似对实时性没太大要求。

【在 d********g 的大作中提到】
: cron的env从安全角度考虑,默认是很有限的,需要自己设定
m******t
发帖数: 635
9
监控这样的东东是不是已经有很多轮子了?

memory
some

【在 d*******r 的大作中提到】
: 多谢大牛指点。
: 难道我不能自己开个 python process, 设置一堆 timer,然后再复杂的定时工作都能
: 搞吗。我准备用 supervisord监控自己的python processes, 然后只用 cron job 定期
: 监控这一个 supervisord process ... 好像看着 stackoverflow 上有人这么搞: http://serverfault.com/questions/433477/supervisor-vs-cronjob
: 对了,刚刚用一些 python lib 写了个周期性记录(并上传,绘图) server cpu/memory
: 使用率的 metrics 的daemon, 我有些问题正想问。
: 因为现在要给更多的,不同的 metrics 设置不同的搜集 timer (有的30sec采样一次,
: 有的1min一次),我准备为不同的 metrics 开不同的 Python thread. 不过听说
: Python 的 multiple thread 设计得不好 (我知道有 GIL 拖慢的问题), 所以我想知道
: pro 的 python guy,写这种东西一般是什么套路呢? python coroutines? or some

d********g
发帖数: 10550
10
Python daemon也是可以的,如果你要更modular的话。multithreading一般不用,很多
是用twisted或者gevent。另外redis配合一些lib也可以用来做scheduler

memory
some

【在 d*******r 的大作中提到】
: 多谢大牛指点。
: 难道我不能自己开个 python process, 设置一堆 timer,然后再复杂的定时工作都能
: 搞吗。我准备用 supervisord监控自己的python processes, 然后只用 cron job 定期
: 监控这一个 supervisord process ... 好像看着 stackoverflow 上有人这么搞: http://serverfault.com/questions/433477/supervisor-vs-cronjob
: 对了,刚刚用一些 python lib 写了个周期性记录(并上传,绘图) server cpu/memory
: 使用率的 metrics 的daemon, 我有些问题正想问。
: 因为现在要给更多的,不同的 metrics 设置不同的搜集 timer (有的30sec采样一次,
: 有的1min一次),我准备为不同的 metrics 开不同的 Python thread. 不过听说
: Python 的 multiple thread 设计得不好 (我知道有 GIL 拖慢的问题), 所以我想知道
: pro 的 python guy,写这种东西一般是什么套路呢? python coroutines? or some

相关主题
ansible playbook on windowsVagrant, Docker, 这些主要用处和区别是什么
AWS autoscalingHashicorp 的 Terraform 一套有人用么?
Docker这种东西 真心不看好 门槛太低,哪个公司都能搞D3這server到底有啥難度?這麼不stable?? (转载)
进入Programming版参与讨论
d********g
发帖数: 10550
11
C的Nagios还比较出名

【在 m******t 的大作中提到】
: 监控这样的东东是不是已经有很多轮子了?
:
: memory
: some

m******t
发帖数: 635
12
很多年前玩过cacti,不知道现在都流行什么

【在 d********g 的大作中提到】
: C的Nagios还比较出名
d*******r
发帖数: 3299
13
果然大家不用 Python multithreading啊?Python multithreading 到底有推荐使用的
scenario 没......?
gevent 是要比 twisted 好很多吧?twisted 我记得很老了。gevent VS twisted 大牛
什么意见?

【在 d********g 的大作中提到】
: Python daemon也是可以的,如果你要更modular的话。multithreading一般不用,很多
: 是用twisted或者gevent。另外redis配合一些lib也可以用来做scheduler
:
: memory
: some

m**k
发帖数: 290
14
python threading 虽然有GIL的问题,还是可以放心使用的。
不推荐twisted或者gevent,太复杂了。
m**k
发帖数: 290
15

memory
some
开一个thread,处理所有的periodic job就可以了。
cloud service monitoring 有很多设计问题。pull metrics 还是push metrics, 要考
虑failover,aggregation, scalability 等等。
目前我还没看到有好用的framework。

【在 d*******r 的大作中提到】
: 多谢大牛指点。
: 难道我不能自己开个 python process, 设置一堆 timer,然后再复杂的定时工作都能
: 搞吗。我准备用 supervisord监控自己的python processes, 然后只用 cron job 定期
: 监控这一个 supervisord process ... 好像看着 stackoverflow 上有人这么搞: http://serverfault.com/questions/433477/supervisor-vs-cronjob
: 对了,刚刚用一些 python lib 写了个周期性记录(并上传,绘图) server cpu/memory
: 使用率的 metrics 的daemon, 我有些问题正想问。
: 因为现在要给更多的,不同的 metrics 设置不同的搜集 timer (有的30sec采样一次,
: 有的1min一次),我准备为不同的 metrics 开不同的 Python thread. 不过听说
: Python 的 multiple thread 设计得不好 (我知道有 GIL 拖慢的问题), 所以我想知道
: pro 的 python guy,写这种东西一般是什么套路呢? python coroutines? or some

d*******r
发帖数: 3299
16
我看 gevent 好像用着挺简洁的, 而且刚刚出了1.0, 很想用用

【在 m**k 的大作中提到】
: python threading 虽然有GIL的问题,还是可以放心使用的。
: 不推荐twisted或者gevent,太复杂了。

d*******r
发帖数: 3299
17

你是指开一个python process来代替cron管理各个复杂的periodic job吧, 我是这么想
的.
我每个 periodic job 的周期和要管理的事情都不太一样, 写在一个thread貌似很乱.
我又不准备自己实现单 thread 的 event-driven framework. 所以我准备针对每一个
periodic job 开一个 python thread 或者 gevent coroutine.
我现在就是每个 AWS EC2 instance 上开一个metric collecting process,
periodically 搜集一些 metrics, 然后 push 到 Librato server 上看图. 我们现在
不存这些 metrics, 就运维时候实时看看, 所以还比较简单.

【在 m**k 的大作中提到】
:
: memory
: some
: 开一个thread,处理所有的periodic job就可以了。
: cloud service monitoring 有很多设计问题。pull metrics 还是push metrics, 要考
: 虑failover,aggregation, scalability 等等。
: 目前我还没看到有好用的framework。

c***C
发帖数: 139
18
你开的那个thread死了怎么办?

【在 m**k 的大作中提到】
:
: memory
: some
: 开一个thread,处理所有的periodic job就可以了。
: cloud service monitoring 有很多设计问题。pull metrics 还是push metrics, 要考
: 虑failover,aggregation, scalability 等等。
: 目前我还没看到有好用的framework。

c***C
发帖数: 139
19
cron无非就是路径和权限要设置,你用shell这些东西也是要设置的,只不过不是每次
手动设置而已

【在 d*******r 的大作中提到】
: 多谢指点。
: 以前在Ubuntu, Debian, OpenWRT 等等 linux 上都跑过cron,一不小心环境变量设置
: 有问题,就出问题.
: 反正我能不用 shell+cmd 的东西,就尽量不用。

c***C
发帖数: 139
20
matrix的话我们的devops用的是graphite,免费开源,对于我们developers来说比较方
便,只需要push data via socket。数据可以是json或者是pickled。

.


【在 d*******r 的大作中提到】
:
: 你是指开一个python process来代替cron管理各个复杂的periodic job吧, 我是这么想
: 的.
: 我每个 periodic job 的周期和要管理的事情都不太一样, 写在一个thread貌似很乱.
: 我又不准备自己实现单 thread 的 event-driven framework. 所以我准备针对每一个
: periodic job 开一个 python thread 或者 gevent coroutine.
: 我现在就是每个 AWS EC2 instance 上开一个metric collecting process,
: periodically 搜集一些 metrics, 然后 push 到 Librato server 上看图. 我们现在
: 不存这些 metrics, 就运维时候实时看看, 所以还比较简单.

相关主题
学python的一点小感觉哈难得好文,Linkedin如何用Node beat Python,Ruby,Java
AWS真的好用吗?python下的expect
又招人了,DevOps Engineer刚开始看python
进入Programming版参与讨论
d*******r
发帖数: 3299
21
supervisord 有自动重启 dead process 的功能.
"""
难道我不能自己开个 python process, 设置一堆 timer,然后再复杂的定时工作都能
搞吗。我准备用 supervisord监控自己的python processes, 然后只用 cron job 定期
监控这一个 supervisord process ... 好像看着 stackoverflow 上有人这么搞: http://serverfault.com/questions/433477/supervisor-vs-cronjob
"""

【在 c***C 的大作中提到】
: 你开的那个thread死了怎么办?
m**k
发帖数: 290
22

gevent 的核心是 greenlet。greenlet 是一个 hack,需要操作 cpython的stack,所
以我不是很喜欢。
Guido好像要推出一个新的event framework,不知道怎么样了。

【在 d*******r 的大作中提到】
: 我看 gevent 好像用着挺简洁的, 而且刚刚出了1.0, 很想用用
m**k
发帖数: 290
23

.
大部分timer的实现都是单thread. 并不是很复杂。当然如果你的periodic job之间不
共享状态的话,开多个thread也没什么。

【在 d*******r 的大作中提到】
: supervisord 有自动重启 dead process 的功能.
: """
: 难道我不能自己开个 python process, 设置一堆 timer,然后再复杂的定时工作都能
: 搞吗。我准备用 supervisord监控自己的python processes, 然后只用 cron job 定期
: 监控这一个 supervisord process ... 好像看着 stackoverflow 上有人这么搞: http://serverfault.com/questions/433477/supervisor-vs-cronjob
: """

m**k
发帖数: 290
24

理想情况下daemon 要catch所有exception,并作适当的处理。
现实中要有一些failover, auto-restart

【在 c***C 的大作中提到】
: 你开的那个thread死了怎么办?
d*******r
发帖数: 3299
25
这个也有道理, 因为我现在做这个也不太care performance. Python 本身的 thread
应该也更可靠.

【在 m**k 的大作中提到】
:
: 理想情况下daemon 要catch所有exception,并作适当的处理。
: 现实中要有一些failover, auto-restart

1 (共1页)
进入Programming版参与讨论
相关主题
python下的expectgo很牛啊。这个10ms 非常快了。
刚开始看pythonansible playbook on windows
How to use multi-core to speed Python programAWS autoscaling
现在Window下写GUI的话用什么库?Docker这种东西 真心不看好 门槛太低,哪个公司都能搞
关于bizspark羊毛的点滴Vagrant, Docker, 这些主要用处和区别是什么
准备上Go了Hashicorp 的 Terraform 一套有人用么?
docker is next big dealD3這server到底有啥難度?這麼不stable?? (转载)
大家公司里kafka是dev弄还是ops折腾学python的一点小感觉哈
相关话题的讨论汇总
话题: python话题: saltstack话题: devops话题: gevent