Ali Ogun
Posted on December 19, 2023
In re:Invent 2023, AWS announced IDE extension for AWS Application Composer. Let’s explore!
About a year ago, OpenAI unveiled ChatGPT, a Large Language Model(LLM) that drove a great attention, and the AI hype got rapidly integrated into our daily lives. In this wave of innovation, AWS — as a key player pioneer in tech advancements — has been leveraging AI in numerous ways, notably with their recent announcements in AWS re:Invent 2023, like AWS Q. As a Cloud Engineer, Infrastructure as Code (IaC) remains a cornerstone of my daily operations, crucial for maintaining sustainable IT infrastructure. However, amidst the buzz, an announcement seems to me that it has slipped under the radar of the community.
The AWS Application Composer and its IDE Extension, fortified with AI enhancements. While Terraform dominates my workload, I can see the potential significance of this release, especially for those relying heavily on CloudFormation. So, shall we?
What is AWS Application Composer?
In AWS re:Invent 2022 event, AWS announced that service and it’s available since March 2023. AWS Application Composer is a powerful tool that makes developing and deploying apps on the AWS cloud easier. It serves as a visual builder that lets developers quickly and effectively design, build, and coordinate different AWS services to create applications.
This tool makes it easier to integrate several AWS services into a coherent application architecture by offering a drag and drop interface. Using pre-built components, templates, and workflows, developers can shorten the time it takes to construct an application.
Without requiring complex manual configuration, customers can use Application Composer to visually sketch out the architecture of their apps, integrating different AWS services including Lambda functions, API Gateways, databases, and more. However, it’s currently available on the AWS website. AWS has elevated its capabilities with an IDE extension. While it’s only available with Visual Studio Code at the moment, I expect broader IDE support in the future. Let’s take a look at it.
What is IDE extension for AWS Application Composer?
Now, AWS Application Composer seamlessly integrates into your IDE, allowing you to visually construct modern applications and refine your IaC(infrastructure as code) templates using AWS CodeWhisperer (CodeWhisperer is a service like GitHub CoPilot, an AI-powered productivity tool for the IDE and command line that generates codesuggestions based on comments and existing code. ).
This IDE extension mirrors the familiar drag-and-drop experience found in the console, empowering you to swiftly prototype ideas and concentrate on your application code. Not only does it bring Application Composer to your IDE, but it also enables generative AI-powered code suggestions(CodeWhisperer) within the CloudFormation template, all while visualizing the application architecture in a split view. With synchronized visualization and CloudFormation template editing in the IDE, you can refine designs without switching between consoles, reducing manual coding and enhancing productivity. And it is available at no charge. Awesome, isn’t it?
Beside from the use cases mentioned in the announcement of the IDE extension for AWS Application Composer, I believe of that this will make it far easier to quickly validate what resources will be created by a CloudFormation template. This will be especially useful in CDK stacks where it will work as a quick way to verify that all the right components of an architecture are present without digging through the actual generated template.
It also integrates directly with StepFunctions workflow studio on Visual Studio Code.
Before proceeding, let’s install it together.
How to Install AWS Application Composer in Visual Studio Code?
We’ll install the latest AWS Toolkit for Visual Studio Code plugin. Don’t mind and go ahead if you already have the AWS Toolkit plugin installed.
In Visual Studio Code Extensions Marketplace, you can search for AWS Toolkit and click the blue install button. Or, just click here.
Now, on left hand side you can see on your Visual Studio Code that AWS and Q sections have been added. But as you can see, now we need to login oeither with AWS Builder ID or SSO(single sign-on). And that’s it. You have it.
In order to start using Application Composer, no need to authenticate into your AWS account. With Application Composer available on your IDE, you can open your existing AWS CloudFormation or AWS SAM templates.
Or simply you can create a new empty file, and right-click on the file, then select “Open with Application Composer” to start developing with drag and drop interface of Application Composer. In my case, I created a “try.yaml” file. You can see in the picture below.
Voila! You have it.
As you can see above, it provided me with a blank canvas which I can work on it. Here I have both code and visual editors at the same time. Any changes that I make on the canvas will also be reflected in real time on my IaC template.
As you can see below, my “try.yaml” file is empty for now.
For instance, I just drag and drop on canvas an API Gateway and a Lambda function. Then I connected them simply with drag and drop functionality again.
Do you remember my empty “try.yaml” file? Now let’s go back and look at my YAML file. You can see below in the image that it’s not empty anymore. Generative AI already wrote the IaC for us.
With available IaC templates in your local, it’ll be easier for you to manage the applications with AWS SAM CLI. You can easily create CI/CD with sam pipeline or deploy your stack with sam deploy.
One of the features which will accelerate your dev workflow is the built-in Sync feature that easily integrates with AWS SAM command sam sync. This feature syncs your local app changes to your AWS account, that’s helpful for you to do test and validation before you deploy your app into the prod.
With the new development of IaC templates with generative AI capabilities, you can instantly launch over 1000 resources in CloudFormation with generative AI code suggestions. This simplifies the integration of standard IaC resources and allows you to easily scale your architecture.
For example, suppose you have configured Amazon MQ, a standard IaC resource, and you want to use Application Composer to adjust some settings in your AWS CloudFormation resource. Adjust the values in the Resource Configuration section and select Generate. Application Composer provides code suggestions that seamlessly integrate with your IaC templates. This feature eliminates the need for context switching and streamlines the development process. Build modern applications with AWS Application Composer Canvas while leveraging tools like Amazon CodeWhisperer and AWS SAM to accelerate your development workflow.[*]
Some Possible Use Cases
Rapid Application Prototyping: In today’s Agile IT World, AWS Application Composer’s visual canvas within the IDE may allow for quick prototyping of application ideas. Developers can easily design, modify, and visualize architectures without relying on manual coding. This may accelerate the initial development phase, and enabling faster experimentation and validation of concepts.
Infrastructure as Code (IaC) Development: For CloudFormation users, the IDE extension powered by Gen-AI offers a game changing approach to IaC development. It generates AI code suggestions, which reducing the time spent old style coding CloudFormation templates. The split view feature combines visualization and template editing, streamlining the iteration process and booming productivity.
Enhanced Collaboration and Iteration: By eliminating the need for constant context switching between consoles, teams may collaboratively work on projects more efficiently. The synchronization of Application Composer’s visualization and CloudFormation template editing in the IDE helps easy collaboration, allowing for quicker iterations and better development cycles.
Code Efficiency and Resource Inclusion: The generative AI capabilities empower developers to easily incorporate CloudFormation’s extensive library of resources. This ensures effective coding by providing suggestions that align with specific resource configurations, enabling easy integration of standard IaC resources into architectural designs.
Streamlined Application Development Workflow: AWS Application Composer, in conjunction with Amazon CodeWhisperer and AWS SAM, facilitates a comprehensive and efficient application development workflow. Developers can harness visual design, AI-driven suggestions, and associated AWS tools to streamline the entire application development lifecycle.
If you have any questions, please don’t hesitate to contact me.
Resources
Posted on December 19, 2023
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.