亚马逊AWS官方博客

云端开发工具:AWS CodeStar

概述

2017年4月旧金山的AWS全球峰会上,一项名为CodeStar的新服务闪亮登场,他帮助您在AWS上快速开发、构建和部署应用程序。从此,AWS对软件开发生命周期的支持,向开发者那端又迈进了一步。

下图为DevOps相关的AWS服务:

AWS CodeStar的主要功能包括:

1. 快速开发:可选多种项目模版和编程语言,快速开发基于Amazon EC2、AWS Lambda 和 AWS Elastic Beanstalk 的Web应用程序、微服务和Alexa技能。

2. CI & CD:与其他AWS DevOps服务或第三方工具集成,您可以在几分钟内建立起持续集成和持续部署工具链,从而以更快的速度发布代码。

3. 团队协作:集中管理项目组成员的权限,这些权限被自动应用到项目中所有使用到的服务,无须额外创建复杂的IAM策略。

4. 项目管理:通过Dashboard可以看到项目的整体状况,最新的项目活动(例如最近一次代码变更、编译和发布的结果),还可以与Atlassian JIRA集成以便跟踪和管理问题。

接下来,我们谈一谈如何快速上手这款好用的服务。

前提条件

使用CodeStar之前,需要做一些准备工作,包括:

1. 用户:创建或使用您已有的一个AWS用户,登录控制台,并确认您拥有该用户的access key和secret key。

2. 权限:如果希望该用户可以创建CodeStar项目,则需要赋予他AWSCodeStarFullAccess权限。如果该用户已经被加入其他CodeStar项目,则他已经被分配了相应的权限。

3. 证书:为了将本地的代码变化递交到CodeStar项目,您需要生成一个HTTPS Git证书,用以连接您在云端的私有Repository。请参阅:http://docs.aws.amazon.com/zh_cn/codestar/latest/userguide/getting-started.html#git-credentials

4. 密钥对:如您希望访问CodeStar项目创建的EC2资源,则需要创建或使用一个已有的密钥对。

5. Git:在本地安装Git工具。请参阅:https://git-scm.com/downloads

好了,准备工作完毕,现在开始创建您的第一个CodeStar项目吧!

开始使用

目前CodeStar仅在EU (Ireland)、US East (N. Virginia)、US East (Ohio)和US West (Oregon)四个区域可用,选择CodeStar服务后,出现如下画面:

第一次使用时,会提示您创建CodeStar的service role,该服务角色将以您的名义创建、管理所选择的资源,并在仪表板中展示资源的信息。

然后,我们会看到CodeStar提供给您丰富的项目模版。本例选择使用Node.js在EC2上搭建一个Web应用程序。

接下来给项目起个名字(自动生成项目ID);然后勾选“AWS CodeStar would like permission to administer AWS resources on your behalf”,将service role赋予CodeStar,从而创建项目和资源;最后还可以点击“Edit Amazon EC2 Configuration”,选择EC2实例类型、所在VPC和子网。

点击下一步之后,会让您选择一个用于登录EC2的密钥对。

首次使用CodeStar的用户,需要输入昵称和电子邮件。

接下来选择您偏爱的IDE工具,包括:Visual Studio,Eclipse和命令行工具。我们暂时选择Skip略过,在后面的“特点:与IDE集成”中详细介绍。

至此,CodeStar项目创建完毕。您可以在Dashboard右侧的CodePipline窗口中看到,程序被自动递交到CodeCommit做代码管理,并通过CodeDeploy自动部署于EC2实例,同时给出了访问Web应用的Endpoint。关于CodePipline服务,请参考:https://aws.amazon.com/cn/codepipeline/

点击CodeStar左侧菜单栏中的Code选项,转向CodeCommit服务,可以看到代码管理的详细信息。关于CodeCommit服务,请参考:https://aws.amazon.com/cn/codecommit/

点击CodeStar左侧菜单栏中的Deploy选项,转向CodeDeploy服务,可以看到应用部署的详细信息。关于CodeDeploy服务,请参考:https://aws.amazon.com/cn/codedeploy/

在浏览器中通过Endpoint访问Web应用,成功显示如下页面。

若要修改代码,点击CodeStar左侧菜单栏中的Code选项,转向CodeCommit服务。点击Clone URL,选择HTTPS,拷贝Repository链接。

在本地打开命令行窗口,更改至目标目录,运行“git clone 上一步拷贝的链接“将代码复制到本地。然后在本地编辑代码,本例对index.html的Header文字做了修改。最后在命令行窗口中运行下述命令,将变化递交到Repository:

git add index.html

git commit -m "Changed title. "

git push

//注:有两种方法可以递交代码变化,除了这里介绍的Git客户端,还可以通过IDE。第二种方法会在后面的“特点:与IDE集成”中详细介绍。

回到CodeStar Dashboard,在右侧可以看到代码已成功递交到CodeCommit,同时自动部署到EC2。

重新刷新页面,我们发现Header文字已变更。细心的观众还注意到,这个页面的背景颜色会随时间变化。怎么样,CodeStar的使用是不是很简单呢?

特点

最后,说几个AWS CodeStar为人称道,也非常实用的特性。

1. 快速开发:提供给您多种项目模板(Web应用程序、微服务和Alexa技能),您可以选择自己喜爱的编程语言(Java、JavaScript、PHP、Ruby 和 Python),CodeStar会帮助您在Amazon EC2、AWS Lambda 和 AWS Elastic Beanstalk上搭建起相应的运行时环境和应用程序框架。

2. CI & CD:与AWS或第三方DevOps工具集成,迅速搭建持续集成和持续部署工具链。AWS的DevOps服务包括:

与AWS紧密合作的第三方DevOps工具包括:

本文的CI & CD流程和使用的服务如下图所示:

3. 与IDE集成:CodeStar可以与您喜爱的IDE集成,在IDE中进行开发,代码变化将被递交到CodeStar项目中,并自动触发CI & CD流程。接下来以Eclipse为例说明;关于与Visual Studio的集成,请参阅:http://docs.aws.amazon.com/zh_cn/codestar/latest/userguide/setting-up-ide-vs.html

推荐使用Neon/Mars/Luna版本的Eclipse IDE for Java EE Developers,他包含了Elastic Beanstalk 需要的Eclipse Web Tools,以及Amazon SimpleDB需要的Eclipse Data Tools。

在Eclipse中安装AWS Toolkit for Eclipse插件。

输入URL:https://aws.amazon.com/eclipse,选择所有插件,点击Next后按提示安装。

安装完毕后,在偏好设置中输入您的access key和secret key(如果曾用AWS CLI设置过,则自动显示于此),以便Eclipse可以访问您的AWS资源。

导入CodeStar项目。

导入时需要指定用户和区域,选择项目,输入用于HTTPS登录CodeCommit的用户名和密码。点击Next后按提示完成。

开始编辑代码,完成后对修改的文件右键,选择Team->Commit。

在弹出的Git Staging窗口中输入递交信息,然后点击Commit and Push,确认无误后点击OK。

返回CodeStar,从左侧菜单栏中打开CodePipline,可以看到修改后的代码已被递交到云端Repository,应用程序被自动部署到EC2实例。通过Endpoint访问网页,发现修改成功。

4. 团队协作:您可以将团队成员添加到项目中,并通过指定他们的角色,轻松管理访问权限。一共有三种角色可供选择:

角色名称 项目仪表盘和状态 访问或修改项目资源 增加或删除团队成员 删除项目
所有者 X X X X
贡献者 X X
观察者 X

在Dashboard左侧菜单栏中点击Team,即可增加团队成员。

您可以随时调整他们的角色,例如:张三离开项目组,改去做PMO;通过控制台或CLI,可将张三从贡献者改为观察者,并拒绝张三远程访问。此外,一个团队成员可以同时属于多个项目,在不同项目内可以拥有不同角色。

5.       项目管理:Dashboard中,除了右侧的CI & CD信息,还提供Team Wiki、代码变更履历、应用程序性能监控等信息。

还可以与大名鼎鼎的Atlassian JIRA集成,实现问题跟踪功能,您可以轻松跟踪项目进度、待办事项和最新发布。关于Atlassian JIRA软件,请参阅:https://www.atlassian.com/software/jira

先在JIRA中创建项目。

然后将JIRA与CodeStar相关联,即可在Dashboard中进行问题管理。

6. 成本:使用AWS CodeStar不收取任何额外费用。您只需为用于开发和运行应用程序所预置的 AWS 资源付费。

参考

官方文档:http://docs.aws.amazon.com/zh_cn/codestar/latest/userguide/welcome.html

作者介绍

何鹏

AWS解决方案架构师,14年软件开发、系统集成、移动应用和云计算解决方案经验。曾任NEC中国高级项目经理、摩托罗拉系统中国有限公司高级解决方案架构师。多年为国内外零售与物流行业大客户构筑其IT系统,此外还拥有丰富的面向金融服务、HFT(高频交易)初创企业的IT解决方案设计经验。目前在AWS中国负责推广针对初创企业的最佳云计算架构实践。