当开发遇到运维

系统
运维是开发的一种很重要的组成部分,运维团队的一些工作方式直接影响到开发上的一些决策。开发团队不妨多找运维团队聊聊,更多地了解关于部署的方方面面。

对于很多团队来说,开发和运维现在还是两个世界的人,开发人员写着属于自己的代码,然后丢给运维人员。但作为开发人员,我们必须知道,运维的方式对于开发上的抉择是有影响的。

和这个世界上的许多项目一样,我现在正在开发的项目也有一些后台定时运行的任务。这是一个Java应用,但我并不想把这些定时任务扔进Java EE容器里,没有必要让这些后台应用和前台应用抢资源。所以,我们就把它做成了一个独立的应用。好,问题来了,谁来做定时调度?

因为我们的应用最终会部署在Linux操作系统上,所以,我的***个直觉就是采用Cron。这是一个已经存在了几十年的解决方案,没有任何问题,而且,开发团队几乎不需要做任何额外工作。这个方案一直存在到我们和运维团队交流为止。

“我们不允许使用任何系统任务”,运维团队开门见山地否决了我们的解决方案。运维团队给出的理由是,他们无法保证一台机器上只运行一个应用,如果其中一个应用挂了,运维人员也许会清理一些资源,换句话说,如果你的应用用了这些东西,也许会被一不小心地删掉了。“所以,按照我们规定,每个应用只能开辟自己的目录,运用自己目录下东西。”

这是一个合理的要求,所以,我们需要调整自己的设计方案,把原来交由系统处理的调度转成由自己的应用处理。当然,在Java世界,这不是太大的难度,Quartz框架很好地帮我们处理了这些。

其实,与调度方案同时被推翻的还有我的另外一个方案。这次我原本想尝试把我们的日志写到系统日志里。如果你不知道的话,rsyslog可以让我们把自己的日志写到/var/log下。很显然,这样的方案在这样约束下也是不行的。我们只好回到Java的传统方式上,把日志写到自己的目录下。

这是两个由运维反过来影响开发方案的小例子。运维是开发的一种很重要的组成部分,运维团队的一些工作方式直接影响到开发上的一些决策。所以,如果开发和运维还是两个团队,开发团队不妨多找运维团队聊聊,更多地了解关于部署的方方面面。当然,更好的解决方案是走向通往DevOps的康庄大道。

责任编辑:黄丹 来源: 梦想风暴
相关推荐

2016-07-14 16:09:09

运维

2018-05-25 16:32:04

运维,AI,人工智能,

2015-08-18 20:33:28

DevOpsAPMSaaS

2015-07-10 15:31:42

ITIoT物联网

2014-04-03 16:50:28

CactiNagios监控

2015-09-18 15:22:56

DCIMITSM

2013-05-02 13:06:05

C++遇到iOS应用开SQLITE

2015-01-13 15:20:13

运维开发自动化运维

2010-09-01 15:42:39

DHCP SnoopiARP

2014-09-12 15:14:53

运维开发

2017-11-02 10:43:30

DevOps开发运维

2011-03-01 10:58:00

2017-07-07 16:11:40

2017-01-13 10:33:39

华为大数据

2018-04-27 14:06:00

运维开发痛点

2019-09-16 17:08:12

运维AIOpsIT运营

2016-12-13 13:15:49

运维

2019-03-19 08:41:38

Linux运维变更

2013-07-26 11:17:34

AdTime游戏大数据

2009-06-19 18:00:05

HibernateSpring
点赞
收藏

51CTO技术栈公众号