Chapter 15

Ten AWS Tools Every Developer Needs

IN THIS CHAPTER

check Using the Amazon offerings

check Relying on third-party support

check Getting the Bitnami tools

check Using device emulators

Tools take a wide variety of forms, and you need to consider them all if you want to make your AWS setup everything you need it to be. When asked about tools, many developers narrow their focus to the development environment. They consider add-on libraries that make coding easier, or IDE add-ons that make the development process faster. However, when working in the cloud, the concept of a tool becomes much larger than just the development environment. You must also consider the cloud environment.

remember The cloud environment encompasses quite a broad range of potential tool candidates. You consider not only the AWS services but also third-party entities, such as web services. The cloud brings with it the possibility of accessing code, data, and services from all over the world in ways that localized development could never entertain. Consequently, you may find some of the entries in this chapter a little surprising because they most definitely won’t fit into the traditional IDE or programming language categories. In fact, given the broad range of programming languages that AWS supports, covering programming language-specific tools to any depth in a single chapter (especially not one that has a ten-entry limit) would be nearly impossible.

Obtaining Additional Amazon Offerings

Because of the way Amazon has set up its site, you can easily miss those special offerings that might make the difference between an easy project and a hair-pulling one. The following sections offer some Amazon-specific solutions that you might not have considered.

Enhancing ASW services directly

Many of the AWS services give you the means to update their functionality directly. The update falls outside the range of AWS configuration. For example, when working with EC2, you can install localized programming languages and associated libraries. The additional functionality enables you to upload applications and run those applications from within EC2. For example, you can create a custom web service that runs like the web services you use locally, but have a cloud-based approach that makes them more accessible and achieve greater reliability.

tip Of the various services, EC2 is the most flexible in its capability to accept third-party enhancements directly. Consequently, EC2 is the service that you should try working with first when it comes to adding functionality directly. The article at http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/find-software.html supplies the details on how to locate new software for your EC2 setup. The article at http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-software.html tells you how to install the packages after you find them. You should try to find and install a package that can prove useful in your development efforts, and then experiment with it to see what is possible to address your specific needs.

Employing Tools for Amazon Web Services

The Tools for Amazon Web services page (https://aws.amazon.com/tools/) offers a complete list of all the tools that Amazon provides, not just those that have appeared in the book. This page actually contains links to four kinds of tools that you can use to make your development experience better:

  • Developer tools: These tools all help you develop applications in some way: storage, version control, building, testing, or deploying.
  • SDKs: Each SDK applies to a specific language, and Amazon supports most of the popular languages used today. The individual SDK entries include links that let you install the SDK, see its associated documentation, and learn more about what the SDK can do for you.
  • IDE toolkits: Each toolkit augments an Integrated Development Environment (IDE) regardless of language used. The two IDEs supported now are Eclipse and Visual Studio (both of which support multiple languages), but you may see more IDEs in the future. As with SDKs, the IDE entries include links that let you install the extended support, see its associated documentation, and learn more about what the toolkit can do for you.
  • Command-line tools: This book concentrates on using the standard Command Line Interface (CLI) tools because most platforms support these tools. Amazon also provides support for Windows PowerShell. As with SDKs, the command line tool entries include links that let you install the extended support, see its associated documentation, and learn more about what the command-line tools can do for you.

Wandering through Amazon Marketplace

Amazon Marketplace (https://aws.amazon.com/marketplace/b/2649276011) helps you locate third-party tools that you need based on search criteria you provide. As shown in Figure 15-1, you have a lot of choices to make in the Amazon Marketplace. Some of the choices aren’t apparent unless you spend time playing with the interface. For example, you can choose between AMI & SaaS (as shown in the figure) or Desktop in the search field.

image

FIGURE 15-1: Amazon Marketplace gives you many choices.

The search filters also offer a great many choices. You can choose the software category, operating system, pricing plan, support type, free trial offering, delivery method, average rating, architecture (32-bit or 64-bit), region, and instance type. The software descriptions also provide you with the vendor name, product name, rating, version number, description, and all sorts of other useful information. Click one of the product links and you see even more information about that product, plus links to perform tasks such as downloading the software, when the option is available.

tip If the page shown in Figure 15-1 seems a little daunting, you can always try the Amazon Marketplace home page (https://aws.amazon.com/marketplace). This page offers a gentler interface that lets you choose from the most popular offerings. In other words, Amazon offers to filter some of the options for you.

Getting Amazon-supported peer help

Amazon provides a wealth of forums on which you can ask for peer support with your AWS-specific issue. You can find a list of these forums at https://forums.aws.amazon.com/index.jspa. Many of the forums give language-specific support. In addition, Amazon developers do sometimes visit the forums to offer additional help beyond that normally offered by peers. Obviously, the level of support, even with Amazon employee help, doesn’t quite match the paid support option at https://aws.amazon.com/premiumsupport/.

tip Fortunately, you don’t have to deal with English-only peer support. The Amazon forums support the Japanese, German, Portuguese, and Korean languages as well. You also have the option to review feeds using RSS, so you can keep up with what other developers are asking about as well (finding the answer that you need before you actually need it).

Partnering with a Third Party

You may decide to employ the shortcut of partnering with a third party to get your application up and running faster. The partner brings expertise to your organization that takes considerable time and effort to build.

The AWS Partner Programs page at https://aws.amazon.com/partners/programs/ describes the long list of partner types, any of which could be helpful to your development effort. However, the most useful developer options appear in the Technology Partner Programs location on the page. For example, members of the AWS SaaS Partner Program (https://aws.amazon.com/partners/saas/) help you build, launch, and grow your application — allowing you to better focus on getting a working application put together.

technicalstuff You may decide that a technique, process, tool, or application that you develop is generalized and useful enough to sell to others. If this is the case, you may want to become an Amazon partner. The details appear on the main partner page at https://aws.amazon.com/partners/. Amazon actively supports developers who create solutions in a broad range of categories.

Developing New Knowledge

Knowledge is power. If you want to power your way through the various issues you face when working through code, you need to find the knowledge that other developers already possess. After all, you may not know that certain tools exist, that they have certain features that you need, or that you can use them in unexpected ways. All these sorts of knowledge require that you either experiment to obtain the information on your own or get it from someone else. The following sections assume that you want to go the fast route and get it from someone else.

Getting an education

Going to school, which is essentially what taking any kind of course amounts to, won’t answer any immediate questions or help you use the tools better today. However, taking a course will help you over the long term to develop a better grasp of precisely how AWS works and how to employ various tools to make your development tasks easier. Third-party sites, such as Linux Academy (https://linuxacademy.com/amazon-web-services/courses), enable you to get the education you need quickly and easily. Interestingly enough, you can even take a course on AWS Developer Tools at https://linuxacademy.com/amazon-web-services/training/course/name/manage-and-deploy-code-with-aws-developer-tools.

When looking for an online course, make sure you choose sites that offer multiple methods of learning the material. Otherwise, you might find THAT the one learning method offered by a site doesn’t help you much. Sites that contain the following types of educational experiences tend to work best (obviously, some types of offerings, such as instructor-led training, cost more):

  • Videos
  • Hands-on labs
  • Downloadable source code
  • Sample tests
  • Slide shows
  • Text-based training
  • Instructor-led training

Locating online blogs and note sources

A number of online sites provide an interesting sort of information source, notes. For example, Compute Patterns (http://www.computepatterns.com/aws-notes/) is a site that specializes in putting out bite-sized pieces of information that you can easily consume and then get right back to work.

Some blogs are also specialized and offer content in short bits. For example, the AWS Startup Collection (https://medium.com/aws-activate-startup-blog) presents this sort of information.

If you want to find an ultimate source of AWS blog posts on every subject imaginable, check out the AWS Labs site at https://github.com/awslabs/. This is actually a good place to discover what Amazon has in mind for the future. You can use these various information sources to get up and running quickly without having to waste time in classes when you need just one answer.

One of the more interesting blog entries you can find online is Chef Supermarket. The cookbooks you find here (https://supermarket.chef.io/cookbooks/) give instructions for performing various tasks in an extremely terse but efficient manner. For example, check out the AWS developer tools post at https://supermarket.chef.io/cookbooks/aws_developer_tools.

Rely on an information repository

A few sites online contain repositories of information. One such site is the StratoScale wiki at http://www.stratoscale.com/wiki/display/privatecloud/Amazon+Web+Services. The site categorizes various repositories for you, and the developer-related posts generally appear in the Operations and Management category at http://www.stratoscale.com/wiki/display/privatecloud/AWS+Operations+and+Management. For example, check out the listing of AWS APIs, SDKs, and Developer Tools at http://www.stratoscale.com/wiki/display/privatecloud/AWS+APIs%2C+SDKs+and+Developer+Tools.

remember A potential down side of using repositories is that some links do become outdated, so you need to exercise care in believing everything you read. However, repositories can also save considerable time trying to research a topic on your own. You don’t have to dig through every available link that turns up when you Google a topic because a repository does the heavy lifting for you.

Using Bitnami Developer Tools-

Going to the Bitnami site (https://bitnami.com/stacks/developer-tools) is a bit like going to a candy store. You like everything you see and have no idea what to pick first. The Bitnami site (https://bitnami.com/) acts as a library for server-based software of all sorts, not just developer tools. In fact, you can find just about anything you can imagine and more than a few things that you didn’t know existed. The site can seem overwhelming, but using the stacks entries (https://bitnami.com/stacks) makes it easier to manage.

tip Keep your eyes on the Coming Soon area at the bottom of each page. These entries appear on the Bitnami wish list. However, Bitnami can’t implement all of them at the same time — the list is just too long. Consequently, you can click your favorite applications in this area to cast your vote for the applications that Bitnami adds next.

Relying on Device Emulators

In all the discussions you read, most of them leave out one essential fact: You can’t see how your application works on other devices unless you own those devices or rely on an emulator. You definitely won’t own all the devices that your users employ unless you have a vault of money stashed somewhere, so the emulator route is the one that most developers use. Taking the shotgun approach to emulators isn’t a good idea, either, because trying to test your application against every emulator out there just won’t work. Here are some tips for working with emulators:

  • Obtain a list of devices that your users actually have.
  • Categorize the devices so that you can create a reasonable list of useful emulators.
  • Locate well-supported emulators (those that have support plans) when you can.
  • Use the version of the device that most of your users have, rather than the newest version.
  • Upgrade your emulator test suite as user choices change (which entails performing surveys regularly).
  • Avoid using emulators that simply check for application parameters and functionality; you want to see how the application will look.
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset