疫情期间的阿里云云效-阿里云开发者社区

开发者社区> 开发与运维> 正文

疫情期间的阿里云云效

简介: 这次疫情云为响应国家号召,众多企业选择在家远程办公。然而研发团队彼此不见面, “如何快速了解每位成员的开发进度”“如何确保研发任务高效推进”等问题困扰着软件研发团队的Leader。云端产品的最大用处可能就是在远程的协同办公上,对于互联网公司那就无异于是远程协调研发上面。所以,让我们来看一下阿里云云效在这个方面究竟是有什么优势。

Rapiz (姜学连)

0、 声明

本人是个咸鱼,刚刚走上这条头发的不归路发量与实力成反比的不归路,所以个人看法可能有一定的偏激和误解,还希望各位大佬纠正,目前唯一的自信可能就是发量了。

1、 什么是云效

这个问题在我体验阿里云的云效项目之前我也是很迷,所以让我们来看一下官方的说法吧:作为一站式企业协同研发云,云效提供从“需求->开发->测试->发布->运维->运营”端到端的协同服务和研发工具支撑。同时云效与其它常用的云产品紧密集成,提供以应用为核心的一站式研发体验。
附上一张大图:

9a817100e0397f3455e25e42a3d2c5ac56ffecdc.png

云效,给我这个小白的理解可能就是将云端应用的集中化,提供了一系列的相关功能,将之前的独立功能整合到一起,解决用户的各种云端需求。

2、为什么需要云效来集成各个云产品?

重复的概念
目前阿里云提供了大量的优秀的云产品,比如ECS,SLB,云监控,日志服务,帮助用户进行线上服务的部署,运维,监控,告警。
但实际用起来之后,你会发现一个很明显的问题。那就是有些概念,比如机器分组,会在多个产品中重复实现。假设我现在有一个线上的Web应用,包含了5台机器。那么我需要在日志服务中将这5台机器配置到一个分组,然后再在云监控中把同样的5台机器分到云监控的分组,再把这5台机器挂在某个SLB下。不过这个事情其实也容易理解,因为缺乏了一个基础的公共概念,那就是应用。
而云效作为一个研发协同平台,天生就是以应用为核心的。应用下面有不同的环境,每个环境对应一个机器组,使用这个机器组的概念,就可以将各个云产品的机器组的概念统一起来。通过Open API的方式,云效可以在创建应用的同时,就把上述的这些相关服务配置好。同时应用也会成为一个访问其他各个云产品的快捷入口。
不一致的配置
让我们再进入到单独的一个云产品来看看。比如日志服务。日志服务需要配置日志收集的路径。一般来讲用户会对每个应用单独的、重复的进行配置。有些应用的配置可能是相同的,有些可能是不同的。设想一下,如果所有应用的日志路径配置都是相同的,或者说起码是有规律的(比如阿里巴巴内部的大多数应用的日志都会放在/home/admin/<应用名>/logs这个目录下),那么云效就可以在您创建应用时候,就自动将收集路径配置好。那么如何才能做到应用的日志路径是一致的呢,云效的方案很简单,那就是使用代码模板。通过云效的一站式解决方案向导创建的出来的代码库中就包含了标准的日志配置(比如logback.xml)。
机器上除了应用的日志之外,您可能还需要关心Web Server(Nginx/Apache)及应用容器(Tomcat)的日志。这些日志的位置就不是代码模板可以解决的了。云效提供的解决方案是ECS模板。您可以自定义ECS模板,也可以使用云效默认提供的模板。有了模板,那么Web Server和应用容器的日志的位置也就确定下来了,云效也可以自动的帮您创建出来。
来源于阿里内部的解决方案
上面提到的这些问题,仅仅是一部分。而上面提到的解决方案也恰恰是阿里内部的思路。云效的阿里内部版本服务了整个集团几万人的的研发人员。把应用的整个生命周期与各个相关的服务(日志,监控,VIP等)有机的串接起来,最大限度的减少重复性的工作。一个阿里的同学创建一个新的应用,基本上都感觉不到这些服务的存在,只有当机器真的出现问题时候,你才会收到告警。这种体验,说真的,真是棒极了。
我们也非常期待使用这套理念来服务更多的云上用户。
timg.jpg

3、 基于云产品进行更多的场景化

上面主要是讲解如何以应用为核心来串接各个云产品。在此基础上我们就能做更多的场景化的事情,比如蓝绿发布和动态伸缩。下面用蓝绿发布这个场景举个例子。
蓝绿发布
蓝绿发布是业界常用的实践。基于阿里云的SLB我们也可以手动的实现蓝绿发布,无非也就是:

  1. 创建并部署新的机器
  2. 将SLB的流量手动切换到新部署的机器
  3. 如果出现问题,则手动再切换回到旧的那一批机器
  4. 如果没问题,则销毁旧的那一批机器
    当然每次手动做这件事情,也是非常痛苦的。所以云效能做的事情,就是在SLB等基础设施的基础上编排场景。帮助您屏蔽这些细节。

20180519112129255 (1).jpg

4、 阿里云云效在远程协同研发方便有哪些优势?

这次疫情云为响应国家号召,众多企业选择在家远程办公。然而研发团队彼此不见面, “如何快速了解每位成员的开发进度”“如何确保研发任务高效推进”等问题困扰着软件研发团队的Leader。云端产品的最大用处可能就是在远程的协同办公上,对于互联网公司那就无异于是远程协调研发上面。所以,让我们来看一下阿里云云效在这个方面究竟是有什么优势。
比较提倡工作方式:分支模式具备了持续交付的特质
比如:

  1. 分支中引入持续集成和项目环境,随着分支代码的提交,可以自动的进行单元测试、基于项目环境的集成测试等。
  2. 构建和部署自动化,分支一旦提交到集成,后续的代码合并、构建、部署、集成测试会自动完成。 同时分支模式有一些明显的优点或者是便利,爱不释手:
  3. 在开发阶段不同的开发同学互不干扰,集成阶段可以快速的集成和退出相关的分支。在某种程度上保证集成环境可以快速恢复。
  4. 可以选择阶段部署,只要有权限,代码可以直接到正式环境发布。而不需要经过日常、预发、灰度、beta等环节
    还是比较适合研发远程办公的,对于研发人员 DevOps这块可以尝试下

每个个体都在服务于“两种团队”- “项目团队”和“职能团队”。
项目团队主要关注的是项目的整体进度是否顺利,是否存在风险影响项目目标达成。
职能团队主要关注的是团队的资源分配,团队通常支持多个项目,如何最大化利用团队的资源。
下面将分别从这两种团队的维度阐述如何提高远程办公效率。
1、晨会上团队基于精益看板进行需求、任务对齐,完成任务指派;
2、开发同学根据特性开发,创建变更分支;
3、通过线下或云端开发环境进行编程工作,然后提交代码;
4、代码自动触发自动的代码扫描,并发送给指定的代码评审员进行评审;
5、完成评审的代码自动触发集成发布流水线,自动化的完成构建,生成Docker镜像,分别在开发环境、集成环境及预发环境进行部署,完成相应的验证工作;验证完之后处于待发布状态,触发上线审核流程,运维完成审核发布上线;
6、遵循Nonewsisgoodnews的原则,过程中任何问题,通过钉钉及时反馈到指定负责人,做到准确反馈、即时响应,快速恢复。尽量避免垃圾短信式反馈,过多的噪音,反而会降低协作的效率。
DevOps集文化理念、实践和工具于一身。
可以提高组织交付应用程序和服务的能力。与使用传统软件和基础设施管理流程相比,能够帮助组织更快的发展和改进产品。
这种速度使组织更好的服务其客户,并在市场上高效的参与竞争。
DevOps产生之处就是在解决这个问题。所谓的持续集成、持续交付这些都是之前提出来的,但也是DevOps的一种实践经验。
下载.jpg

【云效官网】https://www.aliyun.com/product/yunxiao?channel=zhibo
【云效开发者俱乐部】钉群:34532418

版权声明:本文中所有内容均属于阿里云开发者社区所有,任何媒体、网站或个人未经阿里云开发者社区协议授权不得转载、链接、转贴或以其他方式复制发布/发表。申请授权请邮件developerteam@list.alibaba-inc.com,已获得阿里云开发者社区协议授权的媒体、网站,在转载使用时必须注明"稿件来源:阿里云开发者社区,原文作者姓名",违者本社区将依法追究责任。 如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

其他文章