Manage Learn to apply best practices and optimize your operations.
This article is part of our Essential Guide: AWS re:Invent 2015: A guide to Amazon's sold-out event

New AWS products complicate cloud app development

AWS offers a host of native tools for app development, and third-party tools add to the influx of options boosting developer productivity.

This article can also be found in the Premium Editorial Download: Modern Infrastructure: Data center water use grows

Cloud app development is more complicated than ever. Gone are the days when a developer just uploaded a workload to one of a few basic cloud instances. Today, public cloud providers like Amazon provide a bewildering array of features and services -- many with overlapping capabilities -- and the menu of public cloud services is still growing.

A proliferation of services has made cloud app development increasingly difficult to design and optimize the architecture for public cloud workloads.

"It seems like every few months there's a new product offering that's almost identical to one they're already offering but different just enough to make you re-think your entire architecture," said Chris Moyer, vice president of technology at ACI Information Group. The burgeoning list of Amazon Web Services (AWS) instance types and services also complicates service optimization and pricing, making it difficult to achieve optimum workload performance, predict costs and understand billing changes.

The speed, flexibility and scalability available in the public cloud have had a profound impact on applications development. A decade ago, it might take up to two years before a new application was even ready for testing. Developers can now take short-term, incremental approaches and experiment with designs in ways that would have been impractical with traditional development methods. "For every success there's going to be a thousand failures, so it's much better if there's little to no upfront costs," Moyer said.

In the past year, public cloud providers have begun supporting platform-as-a-service offerings like Docker or AWS Lambda event-driven computing services. These services have reduced the need for low-level operating system knowledge, and developers can simply focus on building and deploying code. The system administrator role is changing too; moving away from basic OS know-how and emphasizing cloud OS features like load balancing, auto-scaling, clusters, virtual private cloud (VPC) configurations and so on.

But the growing array of public cloud features and changes in app dev practices have changed the demand for tools. Application developers are turning to tools that track costs, suggest strategies to optimize workload performance and streamline integration with AWS. Third-party tools such as CloudCheckr add another layer of monitoring beyond native AWS tools like Trusted Advisor, helping enterprises with cost management, security, resource reporting, monitoring and policy management. Then there are tools such as Codeship that integrate with AWS CodeDeploy to assist with application testing, deployment, and workflow organization for public cloud applications. And a utility such as Jenkins gives developers an open source platform to automate code tests and builds.

While third-party tools are not essential, they can help make applications more cloud-agnostic. "Codeship works on bare metal or AWS, so you could have your same tool even if you decided to drop or migrate away from AWS," Moyer said, adding that third-party code repository hosting like GitHub or Bitbucket can also be helpful. Although AWS now has its own repository, I can be helpful for developers to maintain their own in a redundant external location.

This was last published in September 2015

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

This is the typical complexity associated with a younger technology that hasn’t established a stable ecosystem. Lack of or competing standards, the mad shuffle by everyone to be the biggest, baddest cloud provider, new architectural challenges, etc., all add to the initial chaos. What would be interesting to see would be some sort of complexity measure taken now and again when things settle down a bit, and see how much the complexity is reduced as the ecosystem stabilizes.

Nice article. Gartner calculates that there are 1.7 MILLION decisions to make, just when configuring a single EC2 instance. And that's out of date, as AWS has released more configuration types/sizes since then. As you point out, @CloudCheckr (where I work) can help right-size as well as securing your infrastructure.