一个Java程序员眼中的国外IaaS服务选型

简介:

如今,云计算无处不在。最简单的说,云计算是通过互联网存储和访问不同的数据和程序,而基础架构即服务(IaaS)是云的基本构件。IaaS支持在云环境中自然开发,测试和使用应用程序。在本文中一个想通过IaaS托管Java应用程序的用户,如何选型国外主流的5大云供应商服务。它简要介绍IaaS,然后比较5个主流云提供商:Amazon EC2,Google Compute Engine,IBM SoftLayer,微软Azure和Digital Ocean。

IaaS可帮助企业避免购买和运行自有服务器的复杂性。而且,不需要维护和升级软件。它在许多情况下具有较低的基础架构成本,从而帮助没有时间和资本的新企业投资自己的硬件基础设施。

IaaS的其他一些好处包括:

服务可作为大量资源分发。

灵活,IaaS提供弹性缩放。

成本,可根据业务需求的不同而不同。

多个用户可以使用单个硬件。

位置独立性,只要有互联网连接,并且云的安全协议允许,通常可以从任何地方访问云服务。

以上是IaaS用于构建Web应用程序的优势,所有需要做的就是决定要选择哪个解决方案。唯一的问题是今天有这么多的选择。作为Java开发人员,我最初在评估各种IaaS服务时遇到了一些困难。因此,在本文中,我将介绍托管Java Web应用程序的五个最佳解决方案,并将它们相互比较。

亚马逊EC2

亚马逊弹性云(Amazon EC2)是一种Web服务,可在云中提供可调整的计算容量。它有助于启动和管理服务器实例,从而使其适合用于Web规模计算的开发人员。

一个Java程序员眼中的国外IaaS服务选型


实例有不同的大小和配置。 EC2允许AWS提供不同的实例类型,可用于满足特定需求。因此,可以根据需要启动不同的虚拟机。如果正在部署Java应用程序,则可以将应用程序服务器(Tomcat,Web Sphere等)安装到一个虚拟机中,并在具有适当配置的单独VM上使用其他服务,如微服务,数据库等。

使用Amazon EC2,可以灵活的选择不同的实例类型,操作系统和软件包。Amazon EC2具有内存,CPU和实例存储配置,有助于存储选择。此外,可以选择最适合你的操作系统和应用程序的启动分区大小。

使用EC2的唯一缺点就是费用。随着我的工作流程变得更加复杂,我使用更多的服务,很难投入成本。然而,为了帮助估算成本,亚马逊提供了一个月度计算器。

与其他服务提供商相比,网络并不灵活。由于大量数据必须从LAN的一端移动到另一端,因此数据传输距离远远超过互联网上常见的拥塞问题。

Amazon EC2可以说是行业的标准。许多领先的网站和应用程序使用EC2。比如Instagram,Reddit,Netflix,Adobe,三星等等。你可以找到很多使用Amazon EC2的案例!

Google Compute Engine

Google Compute Engine(GCE)可帮助你在Google上为自己的服务,使用相同基础架构,并运行虚拟机。GCE为企业提供更大的灵活性和控制能力以及访问计算资源的规模,从根本上改变企业对解决问题的思考方式。GCE很像EC2,但虚拟机运行在Google的基础设施上。在Google Compute Platform上部署Java很简单。

一个Java程序员眼中的国外IaaS服务选型


网络定价昂贵。由于GCE比较新,与AWS不同,编程语言的选择是有限的。Google Compute Engine中不支持AWS中支持的一些Java API。从GCE到任何其他平台的过渡并不容易。还应该注意,为了运行任何Java框架,GCE需要为用户做更多的帮助,因为它们没有集成的包。

最常见的GCE客户包括EverNote,飞利浦,可口可乐,HTC,摩托罗拉,同时可汗学院,Spotify,口袋妖怪和百思买等也利用GCE的数据仓库和分析功能。

IBM SoftLayer

正如IBM倡导的“无需妥协的云”,它提供高容量,可扩展性和安全性的云服务。 IBM SoftLayer的高速内部网连接对企业复杂应用程序所需的IaaS解决方案,但必须支付额外的费用才能使其工作。

一个Java程序员眼中的国外IaaS服务选型


Softlayer的裸机基础架构可以与虚拟化服务器结合使用,提供一系列的hyper-V技术的解决方案,从而可以优化生产工作负载。并在SoftLayer的数据中心之间提供了极佳的高性能带宽,使云环境能够承受从一个数据中心到另一个数据中心的数据突然增加。同时,SoftLayer的单一租户服务器模式通过综合防火墙保护数据,为敏感信息提供保护。除IBM SoftLayer外,没有其他云提供商提供自定义虚拟机类型。SoftLayer提供调用其API的maven依赖关系。

SoftLayer的服务没有捆绑在一起。虽然IBM提供广泛的服务,但不仅仅是云服务。相反,它们将公有云服务与内部和IBM品牌的服务相结合,从而提供“虚拟IT部门”,即联系IBM进行托管服务以进行软件更新和维护。

重要用户如Artomatix,Cedato和ClickTale等。

微软Azure

全面的服务,可帮助你快速开发,部署和管理全球各地微软的数据中心的应用程序。它支持Windows,Linux和社区虚拟机映像以及跨平台开发工具和框架。支付所用的费用,就可以可以节省大量成本并实现更高的效率。

一个Java程序员眼中的国外IaaS服务选型


Azure的服务器可以让用户在云端完全控制。Application Insights是面向多个平台上的Web开发人员的服务。遵循“检测,评估,诊断,稳定和关闭”的标准安全模式,强调安全性。 Azure还提供简单,用户友好的服务,以增加保护,如多因素身份验证和应用密码要求。如果你需要使用自定义第三方软件或许多应用程序的解决方案在单台机器上运行,那么Azure的IaaS解决方案能提供帮助。作为Java开发人员,你将发现在这里轻松部署和扩展WebApps。

实例之间的负载平衡可能会中断应用程序的状态;即不能保证来自同一用户的两个请求将转到相同的实例。Azure在选择实例类型时不提供灵活性。此外,它需要专业的管理和维护,包括修补和服务器监控。

在微软Azure上的代表用户是Essar,CloudMunch,AppPoint和ShepHertz,通过Azure节省了65%的部署。

Digital Ocean

Digital Ocean针对Linux开发者。它提供了简单的设置,为用户提供了一个干净,易于使用的界面,具有很少的功能和一键式部署。它具有控制面板来管理诸如双因素身份验证,良好的API,自动备份和DNS管理等功能。它提供了与其他服务相比便宜的SSD主机。

一个Java程序员眼中的国外IaaS服务选型


提供的服务是虚拟机和DNS管理,无负载平衡,托管数据库,分析,Hadoop集群等必不可少的服务。如果不仅仅关注自动缩放和高可用性,更多地投入管理服务器,那么Digital Ocean适合你的使用。对于Java开发人员,官方网站有一个社区提供教程。

Digital Ocean的不足是它们的磁盘位于管理程序中,并且它们不使用集中式存储,如果托管在故障管理程序上,则导致完全数据丢失的风险相对较高。但是,如果你有这样的风险,并且有备份,那么你可以用你满意的价格获得一些出色的服务器。

Digital Ocean的用户包括NodeBB,Rockerbox,Ghost和taskRabbit。重要案例是jQuery基金会正在使用Digital ocean。

综合比较:

一个Java程序员眼中的国外IaaS服务选型

本文转自d1net(转载)
相关文章
|
4月前
|
人工智能 Kubernetes Java
回归开源,两位 Java 和 Go 程序员分享的开源贡献指引
Higress是一个基于Istio和Envoy的云原生API网关,支持AI功能扩展。它通过Go/Rust/JS编写的Wasm插件提供可扩展架构,并包含Node和Java的console模块。Higress起源于阿里巴巴,解决了Tengine配置重载及gRPC/Dubbo负载均衡问题,现已成为阿里云API网关的基础。本文介绍Higress的基本架构、功能(如AI网关、API管理、Ingress流量网关等)、部署方式以及如何参与开源贡献。此外,还提供了有效的开源贡献指南和社区交流信息。
518 33
|
4月前
|
Java 程序员 应用服务中间件
【高薪程序员必看】万字长文拆解Java并发编程!(2 2-2)
📌 核心痛点暴击:1️⃣ 面了8家都被问synchronized锁升级?一张图看懂偏向锁→重量级锁全过程!2️⃣ 线程池参数不会配?高并发场景下这些参数调优救了项目组命!3️⃣ volatile双重检测单例模式到底安不安全?99%人踩过的内存可见性大坑!💡 独家亮点抢先看:✅ 图解JVM内存模型(JMM)三大特性,看完再也不怕指令重排序✅ 手撕ReentrantLock源码,AQS队列同步器实现原理大揭秘✅ 全网最细线程状态转换图(附6种状态转换触发条件表)
92 0
|
4月前
|
存储 缓存 Java
【高薪程序员必看】万字长文拆解Java并发编程!(5):深入理解JMM:Java内存模型的三大特性与volatile底层原理
JMM,Java Memory Model,Java内存模型,定义了主内存,工作内存,确保Java在不同平台上的正确运行主内存Main Memory:所有线程共享的内存区域,所有的变量都存储在主存中工作内存Working Memory:每个线程拥有自己的工作内存,用于保存变量的副本.线程执行过程中先将主内存中的变量读到工作内存中,对变量进行操作之后再将变量写入主内存,jvm概念说明主内存所有线程共享的内存区域,存储原始变量(堆内存中的对象实例和静态变量)工作内存。
152 0
|
4月前
|
设计模式 缓存 安全
【高薪程序员必看】万字长文拆解Java并发编程!(8):设计模式-享元模式设计指南
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中的经典对象复用设计模式-享元模式,废话不多说让我们直接开始。
103 0
|
4月前
|
存储 安全 Java
【高薪程序员必看】万字长文拆解Java并发编程!(7):不可变类设计指南
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中Java不可变类设计指南,废话不多说让我们直接开始。
76 0
|
4月前
|
机器学习/深度学习 消息中间件 存储
【高薪程序员必看】万字长文拆解Java并发编程!(9-2):并发工具-线程池
🌟 ​大家好,我是摘星!​ 🌟今天为大家带来的是并发编程中的强力并发工具-线程池,废话不多说让我们直接开始。
186 0
|
2月前
|
分布式计算 搜索推荐 算法
Java 大视界 -- Java 大数据在智慧养老服务需求分析与个性化服务匹配中的应用(186)
本篇文章探讨了Java大数据技术在智慧养老服务需求分析与个性化服务匹配中的应用。通过整合老年人健康数据与行为数据,结合机器学习与推荐算法,实现对老年人健康风险的预测及个性化服务推荐,提升养老服务的智能化与精准化水平,助力智慧养老高质量发展。
|
4月前
|
存储 监控 算法
Java程序员必学:JVM架构完全解读
Java 虚拟机(JVM)是 Java 编程的核心,深入理解其架构对开发者意义重大。本文详细解读 JVM 架构,涵盖类加载器子系统、运行时数据区等核心组件,剖析类加载机制,包括加载阶段、双亲委派模型等内容。阐述内存管理原理,介绍垃圾回收算法与常见回收器,并结合案例讲解调优策略。还分享 JVM 性能瓶颈识别与调优方法,分析 Java 语言特性对性能的影响,给出数据结构选择、I/O 操作及并发同步处理的优化技巧,同时探讨 JVM 安全模型与错误处理机制,助力开发者提升编程能力与程序性能。
Java程序员必学:JVM架构完全解读
|
5月前
|
人工智能 Java 程序员
Java程序员在AI时代必会的技术:Spring AI
在AI时代,Java程序员需掌握Spring AI技术以提升竞争力。Spring AI是Spring框架在AI领域的延伸,支持自然语言处理、机器学习集成与自动化决策等场景。它简化开发流程,无缝集成Spring生态,并提供对多种AI服务(如OpenAI、阿里云通义千问)的支持。本文介绍Spring AI核心概念、应用场景及开发步骤,含代码示例,助你快速入门并构建智能化应用,把握AI时代的机遇。
1199 61