About Running Apps
The Running Apps component focuses on:
- Enabling developers in your organization to deploy and run containerized applications.
- Supporting developers to run individual Lambda functions.
- Providing patterns for managing multiple clusters across teams.
What's included
- Strategy. For EKS, Gruntwork employs an opinionated GitOps workflow called "GruntOps."
- IaC Modules. Running Apps provides access to multiple IaC modules for EKS, ECS, and individual Lambda functions.
- Tooling. It leverages Kubernetes tools like Karpenter and Argo alongside Gruntwork's tools to enhance the ECS and Lambda user experience.
- Setup. Detailed documentation is included for configuring EKS or ECS clusters.
- Updates. Gruntwork regularly publishes updates to EKS, ECS, and Lambda modules. You can use Patcher to automate updates to the latest versions of these modules.
Available approaches
Running Apps supports workloads on EKS, ECS, and individual Lambda functions. You can adopt one or more of these approaches; however, we recommend minimizing your operational surface area where possible.
EKS
The standard EKS setup uses IaC to provide:
- A best-practices EKS cluster configuration.
- Support for self-managed or managed worker nodes.
- Out-of-the-box configurations for logging, ALBs, external DNS, and more.
- IAM role to RBAC mappings.
- Cluster autoscaling, including support for Karpenter.
- An opinionated GitOps workflow ("GruntOps") leveraging ArgoCD.
ECS
The standard ECS setup uses IaC to deliver:
- A best-practices ECS cluster configuration.
- Optional support for ECS Fargate.
- Deployment of ECS services.
- ECS service discovery, load balancer integration, canary deployments, and additional features.
Lambda
Gruntwork supports deploying and invoking Lambda functions for various use cases, including:
- General-purpose Lambda functions.
- Lambda functions behind an API Gateway.
- Lambda@Edge functions.
- Scheduled Lambda jobs.
To manage complex serverless applications, we recommend using the Serverless Framework, available separately through Serverless, Inc.
Missing functionality
If the functionality you need is not currently supported, you have the following options:
- Submit a pull request to contribute the functionality.
- Extend the functionality on your own.
- Collaborate with Gruntwork through a paid engagement.
- Request that Gruntwork add the functionality to its roadmap.