The Utoolity team is pleased to present Tasks for AWS 2.12 – this release adds a new task to deploy and operate AWS Step Functions state machines to enable coordination of components of distributed applications and microservices using visual workflows, adds support for Amazon EC2 Container Service (ECS) placement policies, and adds support for AWS Elastic Beanstalk application lifecycle management. You can now create/start/stop/delete AWS Step Functions state machines, specify placement policies when registering Amazon ECS Task Definitions, creating Amazon ECS Services, and running Amazon ECS Tasks, and specify application lifecycle policies when creating an AWS Elastic Beanstalk Application.
New task for AWS Step Functions
Use the AWS Step Functions State Machine task in Bamboo to create, start, stop and delete AWS Step Functions state machines:
AWS Step Functions makes it easy to coordinate the components of distributed applications and microservices using visual workflows. Building applications from individual components that each perform a discrete function lets you scale and change applications quickly. Step Functions is a reliable way to coordinate components and step through the functions of your application.
Continuous Delivery approval workflows
An introductory blog post also emphasizes a notable use case for Continuous Delivery with Bamboo and Tasks for AWS:
A common use case for AWS Step Functions is a task that requires human intervention (for example, an approval process). Step Functions makes it easy to coordinate the components of distributed applications as a series of steps in a visual workflow called a state machine. You can quickly build and run state machines to execute the steps of your application in a reliable and scalable fashion.
In this post, I describe a serverless design pattern for implementing manual approval steps. You can use a Step Functions activity task to generate a unique token that can be returned later indicating either approval or rejection by the person making the decision.
Support for Amazon EC2 Container Service (ECS) placement policies
You can now use the recently introduced Amazon ECS task placement policies:
Amazon EC2 Container Service (ECS) now supports the ability to customize the placement of tasks on container instances. Previously, you would have to write custom schedulers to filter, find, and group resources if you needed to place a task on a container instance with certain resource requirements (e.g., a specific instance type).
Now, you can customize how tasks are placed based on built-in attributes such as instance type, availability zone, or custom attributes that you define. For example, you can use attributes such as environment=production to label resources, use the list APIs to find those resources, and use the RunTask and CreateService APIs to schedule tasks on those resources. You can also use placement strategies such as bin pack and spread to further define where tasks are placed. You can chain policies together to achieve sophisticated placement capabilities without writing any code. [...]
The introductory blog post provides a detailed explanation and illustrations for the available placement constraints and strategies.
Support for AWS Elastic Beanstalk application version lifecycle management
You can now use the recently introduced Application Version Lifecycle Management and CloudWatch Logs Streaming in:
AWS Elastic Beanstalk now supports lifecycle management of your application versions. Previously, you could not automate the removal of unused application versions, requiring you to manually delete application versions in the Elastic Beanstalk console or via APIs. Now, you can enable auto-deletion of application versions based on application version count or application version age. [...] Visit the documentation to learn more.
In addition, logs on Amazon EC2 instances managed by Elastic Beanstalk can now be monitored in real-time using Amazon CloudWatch Logs. [...] To learn more about this feature, visit our documentation.
For more details about this release, please refer to the Tasks for AWS 2.12 Release Notes.