得益于新的浏览器技术和GitHub和Amazon Web Services等云服务的强大功能,基于云的开发工具正在不断改进。 现在,通过使用各种SaaS和PaaS产品,整个部署生命周期可以完全基于云。 由于所提供的每种服务都是由不同的实体提供的,因此面临的挑战是将这些服务集成在一起以形成无缝的连续开发过程。
通过仔细选择,应该有可能创建有效且高效的服务组合,从而允许从代码库平稳地移动到版本控制,测试以及从部署到生产的整个过程。
在上一篇文章中,我从Java Web应用程序开发的角度回顾了七个基于云的IDE ,之后,我将逐步研究其中之一。 codenvy.com的IDE承诺对Java和Spring等各种技术进行轻松设置。 它与GitHub代码存储库以及包括Amazon Web Services在内的一系列PaaS集成。
开发环境
设置开发环境是一个1-2-3步的过程。 从下面的屏幕快照可以看出,您可以轻松地选择要用于开发应用程序的技术或框架,并将Paas Service作为其目标部署。
选择Java Web Application技术选项和AWS Elastic Beanstalk PaaS部署目标,将使用Java源目录,一个webapp目录和一个已经创建的web.xml文件创建一个默认工作区。
自动创建一个简单的hello world类型的Web应用程序。 我决定在开发任何代码之前使用此应用程序来测试运行开发和部署过程。 默认情况下创建的示例Web应用程序应足以进行此类测试。 首先,将新创建的codenvy.com工作区中的源代码连接到新创建的Github存储库。
源代码控制
Github是众所周知的基于云的可靠源代码控制系统。 对于Codenvy来说,选择它作为源代码控制是理所当然的。
要连接Github,您必须首先创建一个新的存储库(如果不使用现有存储库)。 必须在Codenvy中生成SSH密钥 ,然后在Github中对其进行配置。
完成此操作后,工作区即可与Github上的代码库同步。 在对源代码进行任何更改之前,必须首先从Github中提取存储库。 然后,对于要添加或更新到代码存储库的每个文件或目录,首先将其添加到索引并提交,然后将其发送到Github,您必须进行远程推送。
它模仿桌面过程,并顺应开发周期。 一旦您对自己的代码很好并且可以安全地存储在存储库中感到满意,就可以将其部署到Web服务器上。
部署方式
我选择将AWS Elastic Beanstalk解决方案用于部署目标。
亚马逊提供了令人困惑的服务范围(约25个),了解它们如何组合在一起并非易事。 每个服务都公开一个功能区域。 Elastic Beanstalk是六个服务的集合,这些服务包括EC2 (Linux和Tomcat 7的实例), S3 (存储), SNS (通知), CloudWatch (运行状况监视), 负载平衡和Auto Scaling 。
我已经使用AWS大约一年了,并且在EC2上运行了Linux和Tomcat 7的t1.micro实例,因此我对这些服务很熟悉。
可以在codenvy内完成目标环境的设置,但我更喜欢通过AWS控制台进行部分设置。 我设置了一个S3实例并生成了一些访问密钥 。 有了这些,我回到了Codenvy,并从Elastic Beanstalk菜单选项中选择了Create Application ,并按照其网站上的说明进行操作 。 创建环境花了一些时间(大约4分钟),但是一旦创建,我就回到AWS控制台检查创建的实例和环境。 所有内容均已创建,并且运行正常。
设置好环境后,我就可以部署应用程序了。 同样,这是一个简单的过程,我创建了一个新版本,然后单击了部署按钮。
该应用程序已部署,我可以通过myapp.elasicbeanstalk.com访问它。
结论
总体而言,这是设置和测试部署管道各部分的足够简单的过程。 集成很顺利,并且不同的提供程序都无缝地集成在codenvy.com的IDE中。 Github,AWS和codenvy的结合清楚地表明,可以使用codenvy的IDE以及Github和Amazon的集成云服务来实现相当复杂的编码,构建,版本控制和部署开发过程。
翻译自: https://www.javacodegeeks.com/2013/11/cloud-based-deployment-pipeline.html