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

Proper tools improve AWS cloud developer productivity

Developers can work with Amazon Machine Images to control a variety of cloud resources, and can use AWS and third-party tools to improve workflows.

Developers have always been able to manage basic Amazon Machine Images, but a slew of newer Amazon services can...

help increase visibility into AWS toolsets to improve development workflows. These services improve application deployment, key management, configuration, service management, provisioning, resource management and application lifecycle management.

Developer productivity and operations management are gaining increased interest in the market, as more vendors direct their attention to faster, more automated and higher quality code deployment. Once applications roll into production, DevOps personnel need to measure the performance of applications running in the Amazon Web Services (AWS) cloud. This includes 24/7 application performance monitoring -- including end-user experience -- and detecting problems before users notice them by quickly finding the root causes to speed recovery.

Improving continuous delivery

CodePipeline, CodeDeploy and CodeCommit work together to enable organizations to implement a continuous delivery process. CodePipeline is a continuous delivery service, which automates the software release process and makes application updates fast and straightforward; it builds, tests and deploys application code whenever a code change occurs. CodeDeploy helps to automate code deployments to AWS and on-premises infrastructure. CodeCommit is a managed source code control service to host secure and scalable Git repositories.

Enterprises with a DevOps process can look at the AWS Management Console using services like CloudWatch, which enables IT teams to gather insights into the performance of AWS infrastructure. CloudWatch allows users to deduce how basic counters like CPU usage could impact end-user experience.

Managing your AWS app ecosystem

Amazon has a host of services that help ensure smooth delivery of code into production, including AWS Config, AWS CloudTrail, AWS Management Console and AWS Service Catalog. AWS Config helps to manage configurations associated with AWS resources, track configuration history and monitor configuration changes. These capabilities can facilitate compliance auditing, security analysis and improve troubleshooting.

A good practice is to complement knowledge of resource usage with CloudTrail logs reflecting API calls and cloud configuration data showing an inventory of AWS resources -- such as Elastic Compute Cloud instances and Elastic Block Store volumes -- and their current configurations. AWS Service Catalog simplifies the creation of enterprise-specific AWS app stores. This makes it easier for administrators to specify approved services to meet security, governance and compliance mandates. Users can then use these building blocks to deploy a new collection of services, as required.

CloudWatch, CloudTrail and Config do not provide the full coverage of all aspects of application performance management. Organizations should consider third-party tools in order to gain better control and visibility into Docker container management, database call monitoring and deployment of microservice architectures. Monitoring of such environments is even more challenging in application container ecosystems like Docker, as this requires the monitoring system to have an understanding of the deployment architecture.

Open your eyes to third-party visibility tools

Enterprises can improve AWS discovery and application performance management using third-party tools from vendors, such as Ruxit, Consul, Dynatrace, CopperEgg and Kaseya. These help bridge the gap between native Amazon services; they can improve agility by taking discovery and application performance management to the next level. For example, Ruxit includes full application stack visibility for application containers, Web services, databases, process interconnection, resource usage and infrastructure health.

Tools for automated topology discovery can help to map dependencies between application components, including AWS-specific entities like Elastic Load Balancer, Relational Database Service or Elastic Block Store. These tools -- which include products from AppDynamics, Cloudify and Grok -- can quickly pinpoint the root cause of problems during production. Automated topology discovery increases developer productivity and operations management, as more developer time can be spent on code development rather than time-consuming problem investigation and reproductions.

Every enterprise needs to choose its own path toward improved AWS cloud management. Pilot projects work quite well with basic AMI tracking and management. But as the enterprise begins to use AWS for more business-critical applications, technical managers need to consider implementing the appropriate monitoring and capabilities upfront. Putting an appropriate AWS management tool chain in place will save considerable time troubleshooting problems and scaling applications in the long run.

Next Steps

Should I shop for a SaaS tool in the AWS Marketplace?

Get the right performance monitoring service

Policing your public cloud with AWS CloudTrail

Dig Deeper on AWS CloudWatch and application performance monitoring