当用户需要更深入地了解亚马逊Web服务(AWS)功能时,他们还必须检查AWS所提供帮助开发人员使用其公共云计算服务完成更多工作的软件开发工具包(SDK)的巨大生态系统。
亚马逊SDK有多达10个的SDK主版本。各个SDK版本基本涵盖了众多的主流编程语言,如Java, Ruby 和 Python等。它还支持专为分布式处理应用而开发的更新语言,如Go,以及诸如Andoid和iOS等移动平台。
“对于之前曾使用过某种特定编程语言的程序员来说,这些SDK是非常易于上手的,”DS应用技术的顾问Dan Sullivan说。“使用Python SDK就如同使用其它Python包一样。”
关键在于SDK所提供的功能意味着“无需直接使用REST(表述性状态转移)” Sullivan说。
SDK封装了API功能;其中不少可以使用REST API完成的功能都可以通过SDK完成。SDK还可以实现与Eclipse的协作,而后者是一个免费的、复杂的、与Java(以及Visual Studio)相关的集成开发环境。
AWS用户的深度功能
AWS SDK提供了可下载的工作代码系统以及强调特定功能的工作实例。
“在去戴尔公司之前,我花了三四年的时间使用AWS,”总部位于Austin的软件工程公司Clear Measure的***架构师 Andrew Siemer说。“之后,当我来到Clear Measure时,我们花了大量的时间试图让微软的Azure按照我们希望的方式工作,但是我们真的很不成功。
“AWS和Azure云计算之间有着很大的差别,”Siemer补充说。“亚马逊从***天开始就总是由API驱动的,它是现在由API所掌控的经济中的早期服务。”
在亚马逊,Siemer说,At Amazon, Siemer said, it is more or less a "fireable" offense to go around the APIs。虽然亚马逊已经基本上赶上了亚马逊的API方法,他说,但是亚马逊的方法更为深入。
从SDK的角度看,亚马逊把API视作***个SDK,这意味着你可以从这里开始。而SDK提供了深度。
“如果没有使用API进行表达,那么你可以回到SDK,”Siemer说。“我们已经开发了一些通过基于SDK的代码开发的应用程序。”根据每种语言的些微细节,AWS SDK很有可能为你提供一些有用的东西。“他们真的只是为封装API提供了特殊的包装,”他说。
我们发现很多网络服务都是基于AWS的,云计算管理软件供应商Embotics的高级软件设计师Tony LaFrance说,这家公司将AWS SDK集成至他们的产品中。“SDK是相当大的,”他说。“我们所做的大部分工作就是实现[与亚马逊弹性计算云(EC2)的]集成。当我们的产品增加时,我们会添加更多AWS的服务。”
用户可以通过AWS管理控制台完成很多的工作。即便如此,大多数功能是通过API向外开放的,这样企业就能够将其集成至他们的产品和工作流中。
Embotics针对EC2和亚马逊简单存储服务使用了SDK。其他AWS工具帮助解决负载平衡和其他任务。AWS还提供了一些自动化工具,它们可让用用户完成额外的配置或舍弃一些资源。
AWS SDK的技术支持
AWS提供了丰富的在线文档,其中大部分特别关注了使用SDK的开发人员。这也使得用户找到与即将开展的开发工作相关的示例变得简单了。
“整个SDK都是对外开放的,它可以让用户开放他们自己的功能,” LaFrance说。“那些SDK能够让你开发出一些亚马逊没有想到或则和没有看到其前景的东东,但是那将让你的业务应用程序收益匪浅。”
用户通常会很容易就找到帮助文档。在最坏的情况下,如果帮助文档都不可用,那么测试SDK功能并做任何必要调整都仍然是很简单的。
“人们会发现很容易就能够使用SDK,” Siemer 说。“我们发现,如果开发人员拥有API和特定语言的SDK,那么其中他们想要完成工作的80%都已经通过解决方案代码完成了。