This content is part of the Essential Guide: AWS re:Invent 2015: A guide to Amazon's sold-out event

Amazon SDK promotes development depth

Software development kit functionality is a big reason why developers flock to Amazon Web Services. AWS public cloud supports a range of SDKs and programming languages.

Part of Amazon Web Services' popularity stems from its openness and orientation toward APIs. In fact, AWS is the focal point of what's being increasingly referred to as the API economy.

When users need to dig a little deeper into Amazon Web Services (AWS) functionality, they must also examine the vast ecosystem of software development kits (SDKs) that AWS offers to help developers do more with its public cloud services.

Amazon SDK is very much a plural phenomenon, with 10 primary SDKs listed. Individual SDK variations cover major languages such as Java, Ruby and Python. It also supports newer languages designed for distributed processing, such as Go, and mobile platforms like Android and iOS.

"SDKs may feel more familiar to programmers used to working with a particular language," said Dan Sullivan, a consultant with DS Applied Technologies. "The Python SDK is used like other Python packages."

The key is that capabilities provided by the SDKs mean there is "no need to work with REST (representational state transfer) operations directly," Sullivan said.

SDKs encapsulate API functions; much of what can be done with REST APIs can be done in SDKs. And SDKs work well with Eclipse -- a free, complex integrated development environment that is relevant for Java -- as well as Visual Studio.

Deep capabilities for AWS users

AWS SDKs provide downloadable working code systems as well as working examples that highlight specific features.

They really just provide special sauce to wrap the APIs.
Andrew Siemerchief architect, Clear Measure

"I spent three or four years working with AWS before going to Dell," said Andrew Siemer, chief architect at Austin-based software engineering firm Clear Measure. "Then, when I came to Clear Measure, we spent a lot of time trying to make Microsoft Azure work the way we wanted, but we weren't really succeeding.

"There is a big difference between AWS and Azure cloud," Siemer added. "Amazon, from Day One, was always driven by APIs; it was an early service in the economy that is now powered by APIs."

At Amazon, Siemer said, it is more or less a "fireable" offense to go around the APIs. While Azure has mostly caught up with Amazon's API approach, he said, the Amazon approach goes deeper.

From an SDK perspective, Amazon treats the APIs as the first SDK, meaning you can start right there. SDKs are there to provide depth.

"If something is not expressed in the API, you can go back to the SDK," Siemer said. "We have come so far in building apps that most things are now expressed via some code based on the SDK." Depending on the specifics of each language, there is a good chance an AWS SDK will have something for you. "They really just provide special sauce to wrap the APIs," he said.

Many Web services are to be found under the AWS umbrella, said Tony LaFrance, senior software designer at Embotics, a cloud management software vendor that incorporates the AWS SDK into its products. "The SDK is pretty large," he said. "Most of what we did first was integration with [Amazon Elastic Compute Cloud (EC2)]. As our product grew, we added even more services from AWS."

Users can accomplish a lot through the AWS Management Console. Even so, most functionality is exposed through APIs so that businesses can incorporate it into their products and workflows.

Embotics uses the SDK for EC2 and for Amazon Simple Storage Service. Other AWS tools help with load balancing and other tasks. AWS also has automated tools that allow users to do additional provisioning or to tear down resources.

Brushing up on AWS SDKs

AWS offers an abundance of documentation online, much of it specifically focused on developers using SDKs. This makes it easy to find examples related to what you want to do.

"The whole point of an SDK is to be open to allowing you to build your own functionality," LaFrance said. "It is there so you can build something that Amazon didn't necessarily think of or doesn't see the benefit of doing, but where it would benefit your business application."

Documentation to help users is generally easy to find. In the worst case, if even that is not available, it is still easy to test SDK functionality and make any necessary adjustments.

"People find it easy to work with the SDK," Siemer said. "We have found with most people, where they have APIs and documentation and the language-specific SDKs, the solution code shows 80% of what you want to do.

Next Steps

What can we expect from AWS SDK Go?

Advice for when to pick AWS vs. third-party tools

AWS targets mobile with Amazon Cognito, analytics and SDK

Dig Deeper on AWS architecture and design