云端:亚马逊,谷歌应用引擎,Windows Azure,Heroku,Jelastic

您想在云端吗? 您有很多选择。 我已经评估或使用了许多方法,因此这里有几句话。 (当我使用Java时,我将包括一些与Java相关的注释,但大多数情况适用于所有(受支持的)语言。) 但是在深入介绍每种服务的详细信息之前,让我总结一下“云”在托管应用程序时实际上意味着什么:
  • 自动扩展–如果需求增加,您将自动获得更多资源(在大多数情况下为更多虚拟机)来处理请求。 对于常规应用程序,它很少有用,但是拥有它并确保您的服务永远不会消失是一件很不错的事,因为负载过高
  • 支付使用费用–简而言之,实际上,这是选择小型服务器的选择,而大型服务器则选择大服务器。 这里的“阴天”是,您可以轻松地做到这一点,而不用重新配置一些远程计算机
  • 云基础架构–这是“我们部署这些服务并注意它们正在运行”的花哨的演讲。 因此,无需在计算机上安装和配置消息队列,而是将其连接到已经安装并管理的消息队列。 或数据库,电子邮件服务或缓存。
  • 管理工具–您可以使用控制台,命令行工具和Web UI来处理安装。 这既是一个加号(工具比使用本机命令的工具更高的级别),也是一个减号(有学习曲线)
  • 负载均衡器–所有服务都提供这些负载均衡器,您很少在乎负载均衡器的软件和硬件是什么
总体优点是易于使用–您需要的系统管理知识很少,即使您掌握了这些知识,也需要做很多事才能拥有可用于现实世界的应用程序。 它不一定比常规服务器便宜(实际上,它可能更昂贵)。 但是,让我们看看每种服务的作用:
亚马逊网络服务(AWS) 。 这是最受欢迎的选项。
  • 常规流程:创建一个EC2实例,它是一个虚拟机,对其进行ssh操作并具有完全控制权。 只要负载较高,就可以启动并杀死实例的副本。
  • 灵活性:由于您对计算机具有root控制权,因此它非常灵活。
  • 可用性:AWS控制台和Elastic Beanstalk为您提供了非常好的UI,用于管理应用程序。 使用Beanstalk,您甚至无需打开控制台即可部署应用程序,只需删除war文件即可。 实际上,您至少需要提供一些配置。 最好的事情是拥有预定义的实例映像,因此您可以在一分钟之内启动并运行“ Tomcat with MySQL”。 已经在Amazon API之上构建了不错的解决方案,例如RightScale。
  • 功能:除了基本的实例功能外,您还有很多其他功能-托管数据库,弹性IP,DNS,云存储,CDN,邮件服务,消息队列,缓存(这不好),等等。因此,您可以使用Amazon版本,而不是在实例上安装和管理这些服务。
  • 定价 -您需要为实例运行的小时数付费
  • 试用:是,1年(微实例)。
Google App Engine(GAE) 。 这是一个PaaS(平台即服务),因此您没有自己的虚拟机,并且在使用某些标准API(例如,您不能生成线程)方面受到限制,并且您不能使用文件系统(您需要使用Blobstore API)
  • 常规流程:创建一个应用程序并部署它(通过命令行或IDE插件)。 您不管理服务器,也没有ssh –您只有该应用程序。 该应用程序在沙盒中运行,您可能需要使用一些专有的API才能存储到NoSQL存储,使用MapReduce等。您的控制较少。 您可以通过管理界面浏览数据存储区,查看日志文件和性能指标,因为您无法定期访问目标“计算机”
  • 灵活性:低-您部署到沙盒。 您仅限于管理界面为您提供的配置
  • 可用性:管理界面还可以(不是很完美,但是我不能说不好)
  • 功能:额外功能较少,但仍然不错–电子邮件,数据存储,任务队列,内存缓存等。
  • 定价 –通常,您需要为消耗的资源量付费
  • 试用:是的,只要您使用少量资源,它是免费的
Windows Azure 。 您可以获得虚拟机,可以使用远程桌面/ ssh对其进行管理。
  • 常规流程:您创建了一个虚拟机,就是这样(类似于AWS)。 您还可以使用php,asp或node.js(这是PaaS,类似于GAE)来部署简单的网站
  • 灵活性:VM较高,PaaS较低
  • 可用性:管理界面还可以
  • 功能:缓存,数据库,服务总线
  • 定价 –细粒度,按需付费或预付费计划
  • 试用:是,两个月(最小的虚拟机)
Heroku 。 平台即服务–您可以在沙盒中部署应用程序,并为其他服务提供许多有用的附加组件。 您有两种类型的“ dyno” –一种为Web请求提供服务,另一种为后台请求提供服务。
  • 常规流程:下载heroku工具带,运行它(尽管最新版本在Windows上失败–它安装了ruby 1.9.2,并且需要1.9.3,所以您必须编辑bat文件),然后使用它来创建和部署应用程序
  • 灵活性:低,因为您在沙盒中运行,但是每个加载项都是可配置的,并且有很多加载项,因此它比其他PaaS选项要好。 对于Java开发人员来说,坏消息是它仅通过从git中检出并使用maven进行构建来支持部署。 没有其他版本控制系统或构建工具。 (有hg-git适配器,如果使用水银,您可以尝试使用它,但是它开始变黑了)
  • 可用性:需要命令行工作,但不是那么有用。 Web UI正常。
  • 功能:您可以想象的大多数东西都可以作为附件使用
  • 定价 –您需要按dyno,每个数据库和每个附件(如果已付款)付费
  • 试用:是的,您每月可以免费使用750个小时-这意味着如果使用率较低,则可以免费获得
Jelastic 。 平台即服务仅适用于Java –在沙箱中部署应用程序。 您可以配置体系结构并使用各种第三方服务。 它不像其他服务那样受欢迎,但是我的应用程序运行很快(在他们的支持下提供了一些有用的信息)
  • 常规流程:创建一个应用程序,通过一个不错的UI选择一个体系结构(稍后可以重新配置),然后部署war文件。 您配置希望应用程序使用的最大服务器数量。 一切都通过Web UI配置
  • 灵活性:低,因为您不能使用ssh。 但是,您可以自由地编辑某些应用程序服务器配置,并且对文件系统具有有限但足够的访问权限,还可以配置所使用的每个其他服务(例如,数据库)
  • 可用性:界面相当不错(我会说比其他更好)
  • 功能:您可以使用其他服务-MySQL,MongoDB,CouchDB,memcached和maven构建。 (列表比Heroku提供的要小得多)
  • 定价 –您按应用服务器实例和附加服务(MySQL,SSL,负载均衡器等)付费。
  • 试用:是的,但只需2周
还有许多其他选项,特别是传统的托管公司RackSpace ,而云选项只是具有某些“云”功能(如自动缩放)的虚拟机。 我只列出了我实际尝试过的流行选项(我广泛使用过AWS,GAE,并在其他三个应用程序上部署了示例应用程序)。 上面的评估并不旨在完整,我肯定在这里和那里错过了一些要点。
没有“赢家” –针对不同情况使用不同的选项。 但是,最好知道每种服务都施加了哪些限制,以及采用的方法和总体思路是什么。 因为,尤其是在Heroku和GAE等平台上,您需要更改对部署的思考方式。
参考: All Cloud:来自Bozho的技术博客博客中的JCG合作伙伴 Bozhidar Bozhanov的 Amazon,Google App Engine,Windows Azure,Heroku,Jelastic 。

翻译自: https://www.javacodegeeks.com/2012/07/all-that-cloud-amazon-google-app-engine.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JS-字符串操作-替换

<!DOCTYPE HTML><html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8"><title>无标题文档</title><style>p { border:10px solid #ccc; background:#FFC; width:400px; padding:20px;…

linux下kegg注释软件,KEGG数据中全部代谢反应和代谢物注释信息的下载

# 加载函数与R包 -----------------------------------------------------------------library(KEGGREST)library(plyr)source("./RbioRXN-master/RbioRXN-master/R/get.kegg.all.R")source("./RbioRXN-master/RbioRXN-master/R/get.kegg.byId.R")## KEGG数…

java常见异常

算术异常类&#xff1a;ArithmeticExecption空指针异常类&#xff1a;NullPointerException 类型强制转换异常&#xff1a;ClassCastException 数组负下标异常&#xff1a;NegativeArrayException 数组下标越界异常&#xff1a;ArrayIndexOutOfBoundsException 违背安全原则异常…

Spring Security 3 Ajax登录–访问受保护的资源

我看过一些有关Spring Security 3 Ajax登录的博客&#xff0c;但是我找不到解决如何调用基于Ajax的登录的博客&#xff0c;匿名用户正在Ajax中访问受保护的资源。 问题 – Web应用程序允许匿名访问某些部分&#xff0c;并且某些部分是受保护的资源&#xff0c;需要用户登录。 …

测试环境下将centos6.8升级到centos7的操作记录(转)

在测试环境下安装openstack&#xff0c;由于在centos6下安装openstack&#xff0c;针对源的问题有很多&#xff0c;安装起来很不顺利&#xff01; 但是在centos7下安装却很顺利&#xff0c;所以考虑将服务器由centos6升级到centos7 这个我是在测试机中运行的&#xff0c;建议不…

linux运维选择题,初学Linux练习题

1、将/etc/issue文件中的内容转换为大写后保存至/tmp/issue.out文件中tr ‘a-z’ ‘A-Z’ < /etc/issue > /tmp/issue.out2、将当前系统登录用户的信息转换为大写后保存至/tmp/who.out文件中3、一个linux用户给root发邮件&#xff0c;要求邮件标题为”help”&#xff0c…

[转]Web Api系列教程第2季(OData篇)(二)——使用Web Api创建只读的OData服务

本文转自&#xff1a;http://www.cnblogs.com/fzrain/p/3923727.html 前言 很久没更新了&#xff0c;之前有很多事情&#xff0c;所以拖了很久&#xff0c;非常抱歉。好了&#xff0c;废话不多说&#xff0c;下面开始正题。本篇仍然使用上一季的的项目背景&#xff08;系列地址…

使用Spring 3 MVC处理表单

本文是有关Spring 3的一系列文章的一部分。该系列的上一篇文章可以在此处获得 。 在本文中&#xff0c;我们向Spring MVC迈出了又一步。 [此外&#xff1a; 术语MVC的创建者提供的pdf 。]从上一篇文章构建&#xff0c;让我们添加将“联系人”添加到应用程序所需的代码。 首先&a…

插入排序法之——直接插入排序、折半插入排序、希尔排序

// test20.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include<iostream> #include<vector> #include<string> #include<queue> #include<stack> #include<cstring> #include<string.h> #include<de…

linux idea 快捷键,Linux 下 IDEA 的 Ctrl+Alt+S

前言这是个困扰我一年多的问题&#xff0c;今天终于解决了……起因一年前将主系统换成 Arch Linux 后&#xff0c;其他一切正常就是 IDEA 的打开设置的快捷键 ctrlalts 失效&#xff0c;让我很是头疼。虽然不是很重要&#xff0c;但是对于我这种强迫症来说别提多难受了……我曾…

修改input的placeholder颜色

1、CSS选择器 因为每个浏览器的CSS选择器有所差异&#xff0c;所以需要针对每个浏览器做单独的设定。 ::-webkit-input-placeholder { /* WebKit browsers */ color: #999; } :-moz-placeholder { /* Mozilla Firefox 4 to 18 */ color: #999; } ::-moz-placeholder { /* Mozil…

解决Spring自动装配中的循环依赖

我认为这篇文章是在企业应用程序开发中使用Spring的最佳实践。 使用Spring编写企业Web应用程序时&#xff0c;服务层中的服务量可能会增加。 服务层中的每个服务可能会消耗其他服务&#xff0c;这些服务将通过Autowire注入。 问题&#xff1a;当服务数量开始增加时&#xff0…

01.MD5加密

namespace _01.MD5加密{ class Program { static void Main(string[] args) { //MD5加密就是给想要的密码或者其它字符加密 //如果字符串被加密成MD5值之后,是不可逆的. //字符串123 的MD5 64位加密形式是 202cb962ac59075b964b07152d234b70 Console.WriteLine("请输入需要…

C语言数字3转变字符 3 程序,大学c语言知识点总结

大学c语言知识点总结C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。一起来看看大学c语言知识点总结吧!大学c语言知识点总结1、编译预处理不是C语言的一部分&#xff0c;不再运行时间。C语言编…

接触Jenkins(Hudson)API,第1部分

哪一个-哈德森还是詹金斯&#xff1f; 都。 几个月前&#xff0c;我开始使用Hudson v1.395来从事这个小项目&#xff0c;在出现巨大分歧之后又回到了这个项目。 我以此为契机&#xff0c;看我将来选择永久搬到詹金斯时是否会遇到任何重大问题。 有很多麻烦-最值得注意的是&…

使用javascript模拟常见数据结构(四)

七、树 树是一种非线性的分层的数据结构&#xff0c;在现实生活中比较常见的例子比如家谱和公司的组织架构图&#xff0c;如下所示&#xff1a; 一个树结构存在着一系列的父子结构&#xff0c;并且有着一个根节点&#xff0c;这种结构本质上表明了一对多的关系。 那&#xff0c…

C语言中实际参数太多,c – 宏的实际参数太多了?

码&#xff1a;#include using namespace std;#define ADD(x,y) ((x)(y))int main( int argc, char** argv ){cout << ADD(1,2,) << endl;return 0;}编译器输出&#xff1a;1>Compiling…1>main.cpp1>c:\warn_test\main.cpp(9) : warning C4002: too many…

Web开发框架–第2部分:Play Framework 2.0

作为 评估系列 的第一个候选人&#xff0c; 我们回顾了 Play Framework v2.0 。 可以从Play 文档站点获得本文所使用的教程和参考文档。 本文的第一部分将介绍我们建议对每个框架执行的一组任务&#xff0c;然后继续评估每个标准项。 在开发工作站中安装框架 非常简单&#…

最全Pycharm教程(10)——Pycharm调试器总篇

最全Pycharm教程&#xff08;1&#xff09;——定制外观 最全Pycharm教程&#xff08;2&#xff09;——代码风格 最全Pycharm教程&#xff08;3&#xff09;——代码的调试、执行 最全Pycharm教程&#xff08;4&#xff09;——有关Python解释器的相关配置 最全Pycharm教程&am…

Looper.prepare()和Looper.loop()

什么时候需要 Looper Looper用于封装了android线程中的消息循环&#xff0c;默认情况下一个线程是不存在消息循环&#xff08;message loop&#xff09;的&#xff0c;需要调用Looper.prepare()来给线程创建一个消息循环&#xff0c;调用Looper.loop()来使消息循环起作用&#…