Atlassian公司简介:

官网: https://www.atlassian.com
Atlassian, inspired by the Greek Titan. list on the NASDAQ under TEAM 2015.
Mission: Move work forward. Atlassian helps teams work smarter and faster, together.


主要产品:

产品名称 简介 备注
Jira Project and issue tracking 项目管理系统
Confluence Document collaboration 知识库系统
Trello Collaborate visually on any project 简单的团队协作系统
适合个人或者小团队使用
Bitbucket Git code management 代码库托管系统
支持权限管理/code review等等
类比Github
Bamboo Integration and release management 自动化系统
类比Jenkins
Sourcetree Git and Mercurial desktop client git客户端
Fisheye Search, monitor, and track across SVN, Git, and Perforce repositories 代码库查询展示系统
支持多种代码库
Crucible Find bugs and improve code quality through peer code review code review系统
类比Phabricator

产品形态

类型 简介 优点 缺点 适用场景 付款策略
Cloud ATLASSIAN公司搭建运维云服务 1.开箱即用
2.运维容灾由ATLASSIAN公司保障
3.新版本升级支持
4.日常使用问题支持
1. 国内访问速度慢
2. 数据托管在cloud
1.快速使用
2.多地点使用
3.运维能力一般
per year
Server 公司自行搭建运维服务 1.自行定制配置搭建
2.数据信息存储在自家服务器上
3.访问速度快
自行负责运维(服务/网络) 1.数据保密/安全要求较高
2.运维能力较强团队
one-time payment
服务可以一直使用
包含12个月内的新版本升级支持
如果12个月后还想升级版本的话,需要重新付费
Data Center 公司自行搭建运维服务
官方提供扩展数据/服务容灾支持
1.数据多节点存储
2.负载均衡
3.集群支持
价格太贵了 1.大中型企业级用户(500+)
2.容灾安全/负载均衡要求较高
3.跨多地区团队
per year

工具链选型

  1. 项目管理系统: Jira Server
  2. 公司知识库系统: Confluence Server
  3. 公司代码库: Bitbucket/Git(code review)
  4. 自动化平台: Jenkins (Bamboo正在内部试用调研)

选型思路

0.为什么是Jira Server?

  • 公司项目研发团队在中国,Cloud访问速度慢;
  • 公司现有研发体量不需要过度支持,所以不考虑Data Center;
  • 运维团队比较强力,可以做到服务器高可用支持;
  • IOS/Android 客户端支持;
  • 流程/字段定制功能强大,项目支持方便。

1.为什么是Confluence Server?

  • 和Jira打通非常方便,联动性很好;
  • 系统自带的模版页面非常适合特定场景使用;
  • 易用性很好,学习成本很低;
  • 多人协同编辑可视化很好;
  • IOS/Android 客户端支持

2.为什么是Bitbucket Server?

  • 原有的Gerrit版本比较老,易用性不好;
  • Gitlab / Bitbucket 都可以满足团队代码托管 / code review / 系统集成的需要;
  • 选择 Bitbucket 主要是和Jira && Confluence原生打通非常方便,联动性很好;
  • 源代码是公司核心资产,从安全性考虑,暂时不准备开放公网访问。

3.为什么是Jenkins?

  • 已经使用Jenkins很长时间了,团队人员比较熟悉;
  • 通过二次开发,Jenkins能满足当前项目使用;
  • Bamboo 在Jira && Bitbucket联动性上会比Jenkins好;
  • Bamboo是根据挂载的Remote agents数量进行收费,Jenkins是免费的;
  • 因为项目特殊性,需要用到多Slave挂载,从成本角度考虑还是使用Jenkins更适合。

Comment and share

参考链接:

背景:

搭建了Openldap维护公司域账户信息,Gerrit用户验证接入了LDAP。
gerrit.config配置如下(信息请更新为各自公司节点):

1
2
3
4
5
[ldap]
server = ldap://ldap.example.com
username = ldapuser
accountBase = ou=people,dc=example,dc=com
groupBase = ou=groups,dc=example,dc=com

业务需求:

公司特定合作伙伴 有 访问代码库 进行 联合开发的需求。

方案设计:

  1. 在现有LDAP节点的基础上,增加一个ou(custom),用来维护合作伙伴账号;
  2. 同步 这个ou(custom)的人员到Gerrit上。

配置Gerrit支持多ou user信息:

根据Gerrit官方文档:

1
2
3
ldap.accountBase
Root of the tree containing all user accounts. This is typically of the form ou=people,dc=example,dc=com.
This setting may be added multiple times to specify more than one root.

我们调整gerrit.config配置如下:

1
2
3
4
5
6
[ldap]
server = ldap://ldap.example.com
username = ldapuser
accountBase = ou=people,dc=example,dc=com
accountBase = ou=custom,dc=example,dc=com
groupBase = ou=groups,dc=example,dc=com

然后重启Gerrit后,custom里面的人员也可以登录Gerrit了。


配置Gerrit支持多group信息:

方法和上面同步多个ou user信息相似,增加ldap.groupBase行即可。
根据Gerrit官方文档:

1
2
3
ldap.groupBase
Root of the tree containing all group objects. This is typically of the form ou=groups,dc=example,dc=com.
This setting may be added multiple times to specify more than one root.

关于LDAP group信息:

一般系统接入LDAP做账户验证,只需同步LDAP的user信息,不直接使用LDAP的group信息。
各个系统自行创建系统组进行人员权限管理,这样更加灵活。
同时,也不建议LDAP里面维护太多group,更加推荐LDAP轻量化使用。

Comment and share

Git tips two

in SCM

软件版本:

1
git version 2.23.0

使用http/https协议代码库地址,有时会出现不能存储密码,每次交互操作都需要输入帐户密码情况:

1
2
3
记住密码(默认15分钟):git config --global credential.helper cache
自己定义时间(一小时后失效):git config credential.helper 'cache --timeout=3600'
永久存储密码:git config --global credential.helper store

行结束符处理:

OS Line Endings Comments
Windows CRLF 每行结尾是 <换行><回车 > ,即 \n\r
Mac OS X LF 每行结尾只有 <换行> ,即 \n
Unix/Linux LF 每行结尾只有 <换行> ,即 \n
Classic macOS CR 每行结尾是 <回车>,即 \r
1
2
3
4
5
6
7
8
9
10
11
排除老Mac系统不讨论,项目组如果不是全Windows环境开发/部署的话,还是要自动处理下行结束符。

# Windows用户执行下面配置命令:
$ git config --global core.autocrlf true # 在提交时自动地把行结束符CRLF转换成LF,而在签出代码时把LF转换成CRLF

# Linux 和 Mac用户执行下面配置命令:(预防代码库已经有CRLF结束符的代码)
$ git config --global core.autocrlf input # 在提交时把CRLF转换成LF,签出时不转换

# 默认配置:
$ git config --global core.autocrlf false # 提交和签出时都不对代码行结束符做转换

Comment and share

  • page 1 of 1
Author's picture

Weilong

    Write something about work-life:

PM


Shenzhen