AWS has fully released Application Composer, a visual designer for serverless applications. First introduced at the re:Invent conference late last year, the tool aims to simplify the design and configuration of applications running on Lambda, the AWS service for serverless functions. However only a small portion of the full AWS platform is supported, limiting its value.
At re:Invent CTO Werner Vogels said: “Developers that never used serverless before. How do they know where to start? Which services do they need? How do they work together? We really wanted to make this easier.”
The tool presents a canvas, accessed via the AWS Management Console, on which developers drag, drop and connect resources. The tool automatically sets permissions for these resources to interact. The project can also be viewed as YAML code, representing an AWS Cloud Formation template, with two-way synchronization between the text and visual view. CloudFormation is a tool for automating the creation and maintenance of AWS resources. There is an option (Chrome and Edge only) to give the browser temporary permission to read and write files, in which case the project can be synchronized to files in an IDE such as Visual Studio Code. Developers can also use the tool to import an existing CloudFormation template in order to visualize its contents.
Application Composer does not generate code other than the YAML which describes the infrastructure, nor does it deploy applications. It works in tandem with the AWS SAM (Serverless Application Model) CLI (Command Line Interface), so you can generate an application design using the Composer, and deploy it using the SAM CLI. The SAM CLI extends CloudFormation.
New features since the first preview include improved integration with Amazon SQS (Simple Queue Service); a change inspector that shows what changes when resources are connected; smaller resource cards to enable more detail to be viewed in one screen; and zoom controls.
The list of resources fully surfaced in Application Composer is short: just 13 services at the time of writing, but including Lambda, API Gateway, Cognito, EventBridge (for scheduling), DynamoDB, S3 (Simple Storage Service) and SQS. Other resources included in an imported template may be either hidden resources, which have limited support, or read-only resources, which appear greyed out. Such resources can be configured in the text-based template. “When prioritizing resources to feature, we consider those that are popular in usage, powerful in combination with others, and challenging to configure,” the docs explain.
The complexity of AWS services is a factor behind the popularity of services like Fly.io which is struggling with reliability issues after a rapid influx of users.
Note also that AWS also offers CloudFormation Designer, another web-based drag and drop tool for visualizing and working with CloudFormation templates. Unlike Application Composer, the Designer tool does not try to simplify the configuration of services, but only to make it easier to author and work with the templates. Still, it does raise the question of why AWS chose to create a new tool rather than enhancing its existing one – though the company may have wanted the sharp focus on serverless rather than more general applications.