怎样运用Jira优化企业的治理流程 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

怎样运用Jira优化企业的治理流程

申博_安全工具 申博 113次浏览 已收录 0个评论

关于Jira的背景学问

JIRA是现在比较盛行的基于Java架构的治理体系,因为Atlassian公司对很多开源项目实行免费供应破绽跟踪效劳,因此在开源范畴,其认知度比其他的产物要高很多,而且易用性也好一些。同时,开源则是其另一特征,在用户置办其软件的同时,也就将源代码也置办进来,轻易做二次开辟。JIRA功用周全,界面友爱,装置简朴,设置天真,权限治理以及可扩大性方面都异常精彩。

JIRA不仅仅是一个破绽跟踪体系,经由历程Jira,可以整合客户、开辟职员、测试职员,大家各司其职,信息很快获得交换和反应。

JIRA可以被企业治理职员,项目治理职员,开辟职员,剖析职员,测试职员和其他职员所普遍运用。关于企业的治理职员来讲,依据JIRA体系供应的数据,越发准确地相识项目的开辟质量和状态,以及全部团队的事情效率。而对企业的项目治理者来讲,可以在 JIRA体系中对题目举行评价、分配使命。还可以经由历程 JIRA体系的统计报告相识项目希望状态以及团队的事情量、事情效率等信息。

以Yelp为例,引见一下怎样扩大企业的Jira效劳器治理

2017年,Yelp已具有40多名治理职员,许可全部构造的差别团队谐和实行治理使命。但在实践事情中,因为很多治理职员的岗亭变动和全部治理团队的人数增添,致使公司的Jira环境积累了数百个伶仃的事情流和题目状态。为相识决这个题目,公司构建了一个可扩大的处置惩罚方案,使公司的工程师可以运用代码和源代码掌握自行竖立的Jira项目,以确保一切工程项目的100%规范化,并使Jira更易于治理,更易于运用和更好的机能。本文将引见Yelp运用Ansible来治理Jira效劳器的项目竖立、更新和存档历程。

东西挑选

起首须要决议运用哪一种手艺来处置惩罚这个题目,公司挑选了一个名为Ansible的开源东西作为重要框架,ansible是新出现的自动化运维东西,基于Python开辟,鸠合了众多运维东西(puppet、cfengine、chef、func、fabric)的长处,完成了批量体系设置、批量顺序布置、批量运转敕令等功用。

ansible是基于模块事情的,自身没有批量布置的才能。真正具有批量布置的是ansible所运转的模块,ansible只是供应一种框架。重要包括:

1.衔接插件connection plugins:担任和被监控端完成通讯;

2.host inventory:指定操纵的主机,是一个设置文件内里定义监控的主机;

3.种种模块中心模块、command模块、自定义模块;

4.借助于插件完成纪录日记邮件等功用;

5.playbook:剧本实行多个使命时,非必须可以让节点一次性运转多个使命。

虽然Puppet可以在Yelp上运用,然则没必要处置惩罚庞杂的基本设施来运转Ansible对公司来讲至关重要。在实践中,Ansible担任与Jira的REST API交互,以实行项目生命周期的每一步。为此,公司肯定了三个症结的项目生命周期要素(项目竖立、项目档案、项目更新),每一个要素都有本身的playbook。简朴来讲,playbook是一个异常简朴的设置治理和多主机布置体系,差别于任何已存在的形式,可作为一个合适布置庞杂应用顺序的基本。Playbook可以定制设置,可以根据指定的操纵步骤有序实行,支撑同步和异步体式格局。

Yelp运用Git来托管公司的设置,如许就可以坚持完全的订正历史纪录。这些设置在三个差别的存储库中举行保护:

1.Ansible_configs:托管Ansible设置,playbook中的角色元素。

编者住:

· playbook包括以下中心元素:

· Tasks:使命,由模板定义的操纵列表

· Variables:变量

· Templates:模板,即运用模板语法的文件

· Handlers:处置惩罚器 ,当某前提满足时,触发实行的操纵

· Roles:角色

2.Ansible_precommithooks:主机设置Ansible_configs存储库中运用的预提交钩子;

3.Ansible_jira_projects:托管定义每一个Jira项目及其设置的YAML文件;

每一个项目都由一个YAML文件示意,该文件以易于浏览的体式格局形貌设置:

俄罗斯区块链推举体系发明破绽

法国安全研究人员Pierrick Gaudry在俄罗斯官方计划于下月举行的2019俄罗斯杜马选举中使用的基于区块链投票系统中发现严重安全漏洞。 Pierrick Gaudry是法国Lorraine大学和研究机构INRIA的研究人员,他根据投票系统的公钥计算出了系统的私钥。私钥和公钥一起在选举中被用来计算选票。 俄罗斯基于区块链的投票系统20分钟被攻破 Gaudry称该基于区块链的系统中存在漏洞是因为俄罗斯官方使用了 ElGamal加密方案的变种,由于使用的加密密钥太短导致不够安全。

PROJECTBETA:
- key: beta
- leader: darwin
- board_type: agile
- description: the new revolutionary project
- security_schema: engineering

然后,公司运用Ansible的壮大模板功用将YAML设置文件转换为可由Jira的REST API诠释的JSON对象。运用Jinja2,公司竖立了自定义模板,将YAML文件转换为差别Jira Server API要求的JSON有用载荷。以下是公司用来竖立项目的Jinja2模板的一个示例:

{
    "key": "",
    "name": "",
    "lead": "",
    "projectTemplateKey": "",
    "issueSecurityScheme": "",
    "permissionScheme": "",
    "notificationScheme": ""
}

为了考证公司的工程师只会推送有用的项目列表,公司运用一个名为“pre-commit”的框架来治理和保护多语言预提交钩子。每次工程师举行提交时,公司定义的预提交钩子都邑自动运转以考证列表并辨认任何潜伏的题目,比方无效的Jira项目密钥,称号或不法字符。

Pre-commit(客户端钩子)有很多预先构建的钩子可以开箱即用,关于这个处置惩罚方案,公司运用了check-yaml和sort-simple-yaml之类的处置惩罚方案,还编写了公司本身的自定义钩子,以确保一切秘要都用Ansible Vault准确加密,而且一切现有和新的YAML文件仅包括许可的密钥或值,以遵照Yelp的Jira项目规范。

下面是公司竖立的一个自定义钩子的示例,它用于考证公司的YAML语法。

#!/usr/bin/python

import sys
import argparse
import yaml
import re

VALID_BOARD_CONFIGS = ['kanban', 'agile']


def main(argv=None):
    retval = 0
    parser = argparse.ArgumentParser()
    parser.add_argument('filenames', nargs='*', help='Jira project files to check.')
    args = parser.parse_args(argv)
    argv = argv if argv is not None else sys.argv[1:]
    for filename in args.filenames:
        try:
            YAML_PROJ_CONF = yaml.safe_load(open(filename))
            PROJECT_KEY = YAML_PROJ_CONF.keys()[0]
        except yaml.YAMLError:
            print('Error parsing: {}'.format(filename))
            retval = 1
            continue

        if 'key' in YAML_PROJ_CONF[PROJECT_KEY]:
            if not re.match(r"^[A-Z]{2,10}$", YAML_PROJ_CONF[PROJECT_KEY]['key']):
                print("{} isn't a valid key. The project key MUST be 2-10 characters, only A-Z".format(YAML_PROJ_CONF[PROJECT_KEY]['key']))
                retval = 1
        else:
            print('{}: is missing project key'.format(filename))
            retval = 1

    if not re.match(r"^[a-z]{2,10}$", YAML_PROJ_CONF[PROJECT_KEY]['lead']) and 'svc-' not in YAML_PROJ_CONF[PROJECT_KEY]['lead']:
        print("{} isn't a valid lead. The lead MUST be 2-10 characters, only a-z".format(YAML_PROJ_CONF[PROJECT_KEY]['lead']))
        retval = 1

    if YAML_PROJ_CONF[PROJECT_KEY]['board_config'] not in VALID_BOARD_CONFIGS:
        print("{} isn't a valid board config. You can choose between the following options {}".format(YAML_PROJ_CONF[PROJECT_KEY]['board_config'], VALID_BOARD_CONFIGS))
        retval = 1

    return retval

if __name__ == '__main__':
    sys.exit(main())

Jenkins(公司的延续集成东西)经由历程兼并三个Git存储库,将一切部份组合在一起,从而考证一切新的和现有的YAML文件是不是经由历程预提交钩子通报考证,然后在Ansible中实行。构建的有用载荷基于新列表文件中包括的信息,并针对Jira的API实行状态举行变动。

公司的Jenkins历程包括四个差别的阶段:

1.考核考证:为了防止工程师在没有代码考核的状态下推送代码,公司已定制了Gitolite权限,以确保工程师只推送合规的集成。经由历程如许做,就可以防止公司的存储库中的歹意变动。

2.列表考证:对一切YAML和设置文件运转预提交钩子并考证它们是不是经由历程;

3.Playbook实行:假如前两个阶段经由历程,Jenkins将依据对存储库所做的变动实行准确的playbook。

4.关照:假如Ansible项目竖立或更新或删除胜利,它会关照要求者。

实行历程

既然你已熟习一切的手艺,那末来谈谈详细的实行历程。下图说清楚明了每一个组件是怎样协同事情以自动布置变动的。

怎样运用Jira优化企业的治理流程

当工程师想要在公司的重要临盆实例中竖立、更新或删除Jira项目时,他们只需复制“ansible_jira_projects”存储库,个中包括一切现有项目YAML文件。此时,工程师可以挑选手动更新现有项目YAML文件,或许运用公司的自助效劳剧本之一,依据提醒的详细信息自动天生新的项目列表。

怎样运用Jira优化企业的治理流程

当工程师运用Git权限提交变动时,考核历程就最先运转,此时预提交钩子也会同时最先运转。

此时,工程师提交代码考核。考核中包括在预提交钩子中运转的一切测试的效果。

怎样运用Jira优化企业的治理流程

代码考核经由历程后,工程师就可以运用简朴的剧本将变动兼并到布置的项目中。

此时,Jenkins将收到公司的Git存储库中的变动胜利的关照。

总结

经由历程运用Ansible,Jenkins,预提交钩子,自定义编写的Python剧本以及易于明白的YAML,公司的治理可以获得以下革新:

1.确保一切工程项目的100%规范化,使Jira更易于治理,更易于运用,机能更佳。

2.经由历程确保捕捉、考核和纪录Jira项目生命周期中采用的每一个操纵,竖立严厉的考核跟踪流程。

3.消弭Jira治理职员的重复性使命;

4.削减Jira项目竖立或更新或删除的周转时候,同时还开释公司的Jira治理职员,以他们专注于其他重要使命。

5.削减Jira治理职员的数目;

本文翻译自:https://engineeringblog.yelp.com/2019/04/Scaling-Jira-Server-Administration-For-The-Enterprise.html


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明怎样运用Jira优化企业的治理流程
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址