Apps

Overview

Apps are the core unit of deployment in Tapitalee. An app represents a complete application environment including all containers, infrastructure, and configuration needed to run your software. Apps provide isolation, resource management, and deployment orchestration for your Docker-based applications.

Purpose and Benefits

  • Application Isolation: Complete separation of resources between different applications
  • Resource Management: Centralized control over CPU, memory, and scaling configurations
  • Environment Organization: Logical grouping of related services and configuration

How Apps Work

App Structure

Each Tapitalee app consists of:

  • Processes: Container-based services (web servers, APIs, workers)
  • Add-ons: Infrastructure components (databases, storage, networking)
  • Variables: Configuration and secrets
  • Domains: Custom domain names and routing
  • Deploy Tokens: Authentication for CI/CD systems

AWS Infrastructure

Tapitalee creates the following AWS resources for each app:

  • ECS Cluster: Container orchestration and management
  • VPC: Isolated network environment
  • Security Groups: Network access controls
  • Load Balancer: Traffic distribution and health checking
  • IAM Roles: Service authentication and permissions
  • CloudWatch: Monitoring and logging

CLI Usage

Create App

tapit create app <app_name> [region=ap-southeast-2] [memory=0.5] [cpu=0.25] [demand=1] [spot=0] [command=] [image=] [-w|--wait]

Required Parameters

  • app_name: Application name (alphanumeric with hyphens, must be unique)

Optional Parameters

  • region: AWS region for deployment (default: ap-southeast-2)
  • memory: Default memory allocation in GB (default: 0.5)
  • cpu: Default CPU allocation in vCPUs (default: 0.25)
  • demand: Default number of on-demand instances (default: 1)
  • spot: Default number of spot instances (default: 0)
  • command: Default command to run in containers
  • image: Default Docker image for containers
  • -w|--wait: Wait for app creation to complete before returning

Examples

# Basic app creation
tapit create app myapp

# App with custom resource allocation
tapit create app myapp memory=1.0 cpu=0.5 demand=2 spot=1

# App in specific region with wait
tapit create app myapp region=us-west-2 --wait

# Production app with larger resources
tapit create app prodapp memory=2.0 cpu=1.0 demand=3 spot=0 region=ap-southeast-2

Show App Details

tapit  show app

Displays comprehensive information about your application including configuration, resources, recent deployments, and status.

List Apps

tapit  list apps [--include-preview-apps]

Shows all applications in your account, with optional inclusion of preview/temporary apps.

Delete App

tapit delete [--force] app <app_name> [--delete-previews]

Permanently deletes an application and all associated resources.

Parameters

  • --force: Skip confirmation prompts
  • --delete-previews: Also delete all preview apps based on this app
  • app_name: Name of the application to delete

App Configuration

Resource Defaults

When you create an app, the default resource allocations apply to new processes unless overridden:

  • Memory: RAM allocation per container instance
  • CPU: Processing power allocation per container instance
  • Demand Instances: Always-on instances for guaranteed capacity
  • Spot Instances: Lower-cost instances that may be interrupted

You can mix demand and spot instances to guarantee some capacity and have some cost-optimized when usually available.

Environment Management

Multi-Environment Pattern

# Create environments for different stages
tapit create app myapp-dev region=ap-southeast-2
tapit create app myapp-staging region=ap-southeast-2
tapit create app myapp-prod region=ap-southeast-2 memory=2.0 cpu=1.0 demand=3

Preview Apps

Temporary environments for testing:

# Create preview app from main app
tapit  create preview <new_app_name> [domain=www.myapp.com] [delete_in_days=7] [-w|--wait]

Monitoring and Observability

Application Health

  • Process Health: Container health checking and automatic restart
  • Resource Utilization: CPU, memory, and network monitoring
  • Logging: Container application output (stdout/stderr) sent to Cloudwatch Logs