Most public cloud announcements focus on reduced rates for machine instances, new persistent storage options or the introduction of new services, while news about cloud development tools seems to get the short shrift. Still, Amazon and Microsoft offer many new tools that make it easier for developers to build, test and deploy instances in the cloud.
Developers looking for language-specific cloud tools to help streamline some of the more tedious cloud-instance and storage tasks have several options. Let's take a look at what cloud development tools Microsoft and Amazon have to offer.
Amazon Toolkit for Eclipse supports cloud development
Amazon is focusing much of its developer support efforts on Eclipse, the widely used developer framework. Amazon has created a toolkit that supports Java developers as well as any who work with its cloud infrastructures, which include Elastic Compute Cloud (EC2), Amazon Simple Storage Service (S3), Amazon SimpleDB and others. Developers can download the AWS Toolkit for Eclipse from the AWS website; Eclipse is available from the Eclipse project website.
After installing the AWS Toolkit for Eclipse and configuring it with your AWS access key and secret key, you can work with the preinstalled supported services. The SDK includes example applications for working with S3, SimpleDB, Simple Queue Service (SQS) and the AWS console. Instructions how to get started with AWS SDK for Java are available online.
In addition to writing code, developers need to be able to manage their resources. Amazon Toolkit for Eclipse allows developers to perform maintenance tasks in the same development environment they're coding in.
The AWS SDK and AWS Explorer let developers manage S3, SQS, relational databases (using the Relational Data Services), EC2 instances and the AWS Elastic Beanstalk. The toolkit supports multiple Amazon accounts, so you can configure which account to use by default.
Explorer implements functions specific to each supported Amazon web service. For example, in the S3 section of AWS Explorer, you can list buckets, delete buckets and change permissions, among other things. In its Simple Queue Service editor, developers can list, delete and send messages to queues as well as delete messages in your queues.
The query editor in the SimpleDB feature allows cloud developers to find data that meets specific criteria. The Amazon EC2 tool lets developers perform basic tasks on machine images, instances, elastic block storage and security groups. When it's time to deploy a cloud application to a server, the AWS Elastic Beanstalk tool in Explorer can streamline the task.
Microsoft's cloud development tools
Microsoft is doing its part to support developers and can work with numerous programming languages, including .NET, node.js, Java, PHP, Python and others. Microsoft's embrace of multiple languages extends to non-Microsoft platforms as well. For example, the company includes a tutorial on using Python, MySQL and Django, a Python framework for building websites. Additionally, it's not surprising that there is close integration between Microsoft Windows Azure and Visual Studio 2012.
Visual Studio supports a server explorer that allows you to view information about server configurations while developing. For example, you can check on the status of your virtual machines (VMs) and connect to them by using Remote Desktop within the development environment. You can also manipulate additional services within Windows Azure, including establishing a caching service for your application within Visual Studio. A recent release of Visual Studio allows developers to deploy simultaneous updates to multiple instances -- a potential timesaver for distributed applications such as cloud apps.
Visual Studio includes features that help with common development tasks as well as more targeted requirements. Microsoft has added additional support via NuGet, a tool for adding third-party libraries to a Visual Studio environment with a focus on runtime and diagnostic and configuration packages. Visual Studio includes templates for common functional roles, such as Worker Role with Service Bus Queue and Cache Worker role.
Whether you prefer either Amazon's or Microsoft's cloud for cloud development work, both have advantages. Amazon's emphasis is on Java developers, but it does offer support for a range of development tasks -- from managing VM instances to querying data.
Microsoft is clearly working to support developers with a number of common languages. Its flagship development platform, Visual Studio, is keeping pace with changing needs as developers move to the cloud.
About the author:
Dan Sullivan, M.Sc., is an author, systems architect and consultant with over 20 years of IT experience, with engagements in advanced analytics, systems architecture, database design, enterprise security and business intelligence. He has worked in a broad range of industries, including financial services, manufacturing, pharmaceuticals, software development, government, and retail and education, among others. Dan has written extensively about topics that range from data warehousing, cloud computing and advanced analytics to security management, collaboration and text mining.