对于寻求省钱、削减成本、简化应用生命周期管理(ALM)的组织来说,Amazon Web Services产品套件包的成员Elastic Beanstalk也许刚好能够成为开发团队可以利用的对象。
一直以来,对基于云的开发究竟意味着什么有着极大的争议。许多开发团队可以用云作为基于Wiki或SaaS的测试环境,但这与声称组织能够在云端进行应用开发有着很大的差别。但对于那些希望将基于云的应用开发发挥到极致感兴趣的组织来说,市场上有一些解决方案能够重新定义基于云的开发,它比Elastic Beanstalk好在哪里。后者是围绕着AWS搭建的基于云的解决方案族的一部分。
那么这个Elastic Beanstalk是什么呢?Amazon对它的定义是“在AWS云快速部署和管理应用的一种更加容易的方式。”其起步跟在地里种上一颗豆子一样简单。根据AWS的文档,所有的开发团队对只需上传自己正在做的应用即可。Beanstalk部署平台随后将处理以下任务:
- 容量分配
- 负载均衡
- 自动伸缩
- 应用健康监控
这意味着相对于传统风格的应用开发,为云部署准备的编程要少得多。当然,这种基于云的应用开发方法也意味着在作为ALM一部分的监控方面消耗的时间更短。Amazon Elastic Beanstalk另一个吸引人的功能是,作为完全集成进AWS技术栈的解决方案,它免费使用。客户只需为使用的资源付费,遵循的是正常的基于消费的模型。
从Java到Node
对于Java世界的软件开发者来说,AWS Elastic Beanstalk支持传统开发栈及像Apache Tomcat那样的语言。2013年3月,AWS为Node.js应用引入了Nginx 及Apache HTTP Server支持。据GoDaddy的 Aaron Silvas 说,Node擅长Web API领域,“Web API与I/O无关性非常的强,不会受限CPU,Node.js喜欢I/O。”
用更少的代码做更多的事情,这往往是让Java开发者开始用Node.js开发应用的一个有吸引力的理由。结合Beanstalk的自动管理功能,开发者可缩短部署时间,甚至变得更加敏捷。对于企业来说,Node能高效利用CPU和内存这一点意味着AWS的总体成本更低。尽管Joyent提供了一项迷人的替代,Amazon可能仍然是许多公司的第一云选项—尤其对那些已经在EC2上部署了很多应用的公司而言。
在AWS博客上,Amazon Web Services的首席布道师Jeff Barr道出了几点他喜欢的有关Elastic Beanstalk for Node.js的事情。这些特性包括:
- 可在Amazon Virtual Private Cloud内部部署node.js,这能保证更大的安全(Amazon最近对所有人推出了私有云连接。任何客户现在都可以订购VPC作为实例,哪怕小企业也能拥有企业一样的特权)
- 与Amazon RDS集成,可存储和获取关系数据库存储的数据。
- 在静态文件及gzip压缩方面的性能增强,可提高传输速度,对图像之类的资产提供更快的服务。计算资源可省下来用于更重要的实时任务。
永远要留意隐性成本
AWS跟许多只支持一刀切的开箱即用型解决方案不一样,它允许企业访问底层资源加以定制。比方说,组织可调整Auto Scaling功能来与企业目标相适应,确保消费不会超过预定的授权水平。如果你的云服务被分布式拒绝服务(DDosS)或欺诈性资源消耗(FRC)攻击的话,这有可能帮助你避免快速、大规模及成本高昂的资源预留。
无论跟什么样的云提供商打交道,客户都有责任理解和监控自己的使用以避免隐性的或非预期的成本。Beanstalk通过让客户访问内置的CloudWatch监控指标来积极地宣传消费者责任。增加或移除应用服务器时还会发出通告。如此,当阅读账单到时,客户才不会感到吃惊。
在许多情况下,如果预先进行一点调优并花些时间进行配置优化的话,用户的花销会更少。比方说,根据你对CPU及内存的需求了解来为应用选择正确的Amazon EC2实例类型就很重要。当然,在代码开发过程中开发者仍需要注意伸缩性之类的问题。只有在开发应用被消除压力的情况下Beanstalk才能发挥魔力。动态扩大负载无疑是AWS开始向开发者积极推销的另一项服务—但对于这些测试资源来说仍然会有更多的基于消费的账单。
今天所有明智的组织都会在一定程度上去利用云,但要想真正利用云计算的潜在好处,应用开发团队应当认真审视像Amazon Elastic Beanstalk这样基于云的产品,去直接体验基于云的分配、负载均衡、健康检测及无障碍、自动伸缩的好处。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
翻译
相关推荐
-
你的微服务设计支持可重用并避免冗余吗?
微服务是代码小型的功能捆绑,旨在通过适当的使用来促进可重用并改善QoE以及可用性。如果使用不恰当的话,它们就会成为应用生命周期管理和资源效率的“噩梦”。
-
对于orchestration而言 ALM和DevOps至关重要
为了确保开发和运营能够持续同步演进,开发者需要理解DevOps与orchestration之间的差异,对自己的开发和运营策略进行重新思考,并且对重要的新兴趋势保持警觉。
-
我在Ubuntu的Docker中写的Node.js程序能否在CentOS的Docker里面运行?
-
企业APM策略是否应该标准化?
企业应用程序生命管理策略是否应该在整个公司范围内标准化,从而提供了对程序和项目的比较报告。而且你知道企业ALM应该怎样与独立项目管理策略相关联吗?