关闭

Atlassian是怎样进行持续交付的?(上)

标签: 持续交付
2910人阅读 评论(0) 收藏 举报
分类:

早前,Atlassian系统管理员Steve Smith在某会议上为听众展示了Atlassian是如何进行持续交付的?本文将其演讲内容进行了更为深入地探讨。具体演讲内容请点击此处查看


在实施持续交付的过程中,面临着技术与组织方面的双重挑战


实际上,在实施持续交付时总共面临着三方面的问题:有技术方面的,也有组织和管理方面的问题。


首先来谈一下技术方面的问题,这方面的问题是比较明显的。包括搭建服务器、设置机器、创建必须的脚本用于自动部署相关的变更,等等。但还有一些更微秒的挑战,会随着对深入交流的需求而渐渐浮出水面。一旦你创建了某种环境,能够实现将变更一键部署到生产环境,你就需要确保所有团队都保持灵活与开放式的沟通,而不会因为变更的节奏加快而使他们失去警惕性。Atlassian是一个高度分布式的公司,它的办公室遍及悉尼、越南、阿姆斯特丹和旧金山,传统的沟通渠道无法满足我们的需求。我们所需的沟通能力不仅能够让人们简单地进行信息交换,还能够在团队之间建立密切的关联。因此我们在这方面的技术上投入了很大精力,这些技术能够让我们实现高质量视频会议、共享图片、团队聊天等等,对于我们十分关键。


分布式团队面临的另一个问题与时区的不同有关。如果你需要与某位同事进行协作,只要你们处于同一时区,即使是身处不同的办公室,也能够很方便地进行视频会议、共享屏幕。但如果你与同事处于不同的时区,那么就需要寻找某些工具,能够帮助你进行线下协作。你可以提交一个pull请求,让同事帮你审查某个变更。但同时,为了实现这一点,需要某些工具帮助你方便地检索相关的变更,并且以一种集成的方式提交反馈。并且所有这些工具必须与其它工具进行集成,以提供一种无缝的工作流体验。


这就带来了组织方面的变更。一般来说,人们对于任何改变都是相当谨慎的。当开发者开始习惯于创新新服务的思想,那么系统管理员就会对由此带来的网络变更而感到担忧。当开发者开始部署容器化的应用(使用Docker或类似技术),系统管理员则会对于容器中可能包含的软件,以及它所带来的整体影响心存顾虑。与之类似的是,如果系统管理员要求开发者以某种特定的方式编写应用,或是对某种技术的使用进行干预,开发者也会因为缺乏自由而感到不快。只有在所有人齐心协力的前提下,持续交付才能够发挥其作用,所有团队之间必须进行合作,才能够让变更顺利地生效。


最后,我们还遇到了大量管理方面的问题。Atlassian提倡一种文化“想要寻求怎样的改变,就要身体力行”,这鼓励人们努力推动他们所期望的改变。它能够让人们打破技术壁垒,鼓励人与人之间的互动。但同时它也带来了大量的问题,例如由谁来管理风险,或者说由谁担当某种改变的最终业务负责人。Atlassian处理着大量的客户请求,因此我们必须对相关的风险加以管理,这意味着像SOX和PCI这样的制度会对我们的内部流程施加影响。我们需要适当地分配责任,对软件进行变更的人与最终将其发布到生产环境中的人必然是不同的,因此在持续交付服务中需要引入控制功能,让特定的角色能够对某个特定的检查点进行校验。


问题跟踪、版本控制(VCS)和持续集成(CI)工具的紧密集成是怎样为开发团队带来价值的?


创建一种工作流的思想非常重要。问题跟踪系统为某个特定请求过程中发生的每一件事创建了一个流程的标识符,使每个人都能够对它的状态进行从头至尾的全程跟踪。通过将问题跟踪系统与VCS和CI进行集成,提出这个ticket的人就能够看到它的任何变化:开发过程是何时开始的、问题是何时出现的,并且经过了怎样的处理、以及它是何时部署的等等。这样一来,人们就能够更好的了解相关信息,对于整个流程的满意度也更高。


这一点也为开发者带来了一种积极的副作用:因为项目干系人能够随时找到所需的信息,他们就不必再去打扰开发者、系统管理员或其它任何人。这种趋势正在得到人们的认可,举例来说,大多数云系统都提供了某种状态页面,展示了每个系统的运行状况,因此每个人都能够随时了解相关情况。


由于我们所用的问题跟踪、版本控制以及CI系统都是Atlassian自身的产品,因此它们从一开始就是紧密集成的。不过他们的相互集成是通过公开的RESTful API实现的,因此其它产品也能够通过对相关的终结点进行相应的调用而实现集成。


Steve Smith在Atlassian任职已超过8年时间,同时担任系统管理员与开发者的角色。他目前身处Atlassian的阿姆斯特丹办公室,专注于高可用性、持续交付以及平台迁移方面的问题。他还经常在公开场合进行演讲并定期更新博客,他还喜欢在 Atlassian的开发博客中讨论有关持续交付的话题。


CSDN开发服务为企业提供ALM(应用全生命周期管理)解决方案,致力于打造基于研发管理前沿、开放的工具产品集群(如Atlassian、Sonar、Jenkins等),结合CSDN CODE等研发工具的高效率、高质量和高可靠性企业级研发管理平台,为企业软件开发生命周期内各阶段、各部门、各角色提供全流程、全方位的跟踪和综合管理。截止目前,CSDN ALM解决方案已服务于包括华为、中国移动通信研究院、嘀嘀打车、广联达、招商银行、南粤银行等在内的数百家行业企业及互联网企业。


0
0

猜你在找
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:552490次
    • 积分:3137
    • 等级:
    • 排名:第10380名
    • 原创:21篇
    • 转载:35篇
    • 译文:9篇
    • 评论:55条
    最新评论