From 1240370160302359a73b9742be614b36f0b21bc1 Mon Sep 17 00:00:00 2001 From: alex-504 Date: Tue, 1 Jul 2025 18:34:58 +0900 Subject: [PATCH 1/3] updated README, and removed some comments --- README.md | 411 +++++++++++++++++---------------------- SCHEDULE.md | 228 ---------------------- app/beer_catalog/app.py | 12 +- app/beer_catalog/seed.py | 17 ++ imgs/infra.png | Bin 0 -> 223078 bytes mindset.md | 24 --- 6 files changed, 209 insertions(+), 483 deletions(-) delete mode 100644 SCHEDULE.md create mode 100644 app/beer_catalog/seed.py create mode 100644 imgs/infra.png delete mode 100644 mindset.md diff --git a/README.md b/README.md index 5b66a66..4fa3453 100644 --- a/README.md +++ b/README.md @@ -1,306 +1,257 @@ -## DevOps exercise +# Beer Catalog DevOps Assignment -## Exercise -There is an app written in Python and a Terraform folder. - -The `docker` folder contains a simple Dockerfile. - -### Create the following resource: -In terraform: -- ECR resources (if you choose ECR, github registry is also fine) -- ECS Cluster -- ECS Service -- RDS Instance (postgres based) - -### For the app: -You need a local setup for the project, i.e. some readme entry showing how to run the app on your machine - -- We need to automate the build process -- Locally the app runs in a virtenv, but on prod it will run the Dockerfile - -### CD/CI -- GitHub Actions Workflows - - Pull Request Checks - - Build image - - Push image to ECR (or github registries) - - Deployment of the app into non-prod envs (or prod like envs, if you have the time) - -### Extras -- Postgres user and permission configuration in terraform -- There are intentional mistakes all over the place. Kudos if you find and solve them. - -## App -The small app in python has only two endpoints -- Get all beers -- Insert one beer -- Seed beers (for testing) - -## Considerations -- More than the TF code to be running we will check the plan it generates. -- Doesn't need to be perfect -- Avoid using open source modules for setting networking / ecs. We want to see your capabilities at writing the resources - -## What will be evaluated -- Terraform best practices -- Structure of the terraform code -- Naming conventions -- Separation of concerns -- AWS knowledge - -## How to Deploy This Infrastructure to AWS 👈🏻👈🏻👈🏻👈🏻👈🏻👈🏻👈🏻👈🏻👈🏻👈🏻👈🏻👈🏻👈🏻👈🏻👈🏻👈🏻👈🏻 - -This project is ready to be deployed to AWS using Terraform. Follow these steps to connect your resources to your AWS account and provide all required variables. +## Project Overview +This project demonstrates a complete DevOps workflow for a Python web application, containerized with Docker, deployed on AWS using Terraform, and automated with GitHub Actions. The solution follows 12-factor app and SOLID principles, with a focus on security, automation, and documentation. --- -### 1. **Set Up AWS Credentials** - -Terraform needs AWS credentials to create resources in your account. -You can provide credentials in several ways, but the most common is using the AWS CLI: - -```sh -aws configure -``` -- Enter your AWS Access Key ID -- Enter your AWS Secret Access Key -- Enter your default region (e.g., us-east-1) -- Enter your default output format (json is fine) +## Architecture +- **Flask App** (Dockerized, venv for local dev) +- **PostgreSQL** (AWS RDS) +- **ECS Fargate** (App hosting) +- **ECR** (Docker image registry) +- **VPC, Subnets, Security Groups** (Terraform-managed) +- **CloudWatch** (Logging & Alarms) +- **GitHub Actions** (CI/CD) -Alternatively, you can set these as environment variables: -```sh -export AWS_ACCESS_KEY_ID=your-access-key -export AWS_SECRET_ACCESS_KEY=your-secret-key -export AWS_DEFAULT_REGION=us-east-1 -``` +![Architecture Diagram](imgs/infra.png) --- -### 2. **Set Required Terraform Variables** - -Some resources require variables that must be provided at runtime, such as your database password and the Docker image for your app. +## Local Development -You can provide these variables in several ways: - -**A. As environment variables:** +### 1. Clone the repository ```sh -export TF_VAR_db_password="yourStrongPassword" -export TF_VAR_app_image="123456789012.dkr.ecr.us-east-1.amazonaws.com/beer-catalog-app:latest" +git clone git@github.com:alex-504/devops-test-master.git +cd devops-test-master/app/beer_catalog ``` -**B. As command-line arguments:** +### 2. Set up virtual environment (venv) ```sh -terraform apply -var="db_password=yourStrongPassword" -var="app_image=123456789012.dkr.ecr.us-east-1.amazonaws.com/beer-catalog-app:latest" -``` - -**C. In a `terraform.tfvars` file:** -```hcl -db_password = "yourStrongPassword" -app_image = "123456789012.dkr.ecr.us-east-1.amazonaws.com/beer-catalog-app:latest" +python3 -m venv venv +source venv/bin/activate +pip install -r requirements.txt ``` --- -### 3. **Initialize and Validate Terraform** +### 3. Running with PostgreSQL + +**Prerequisites:** +- PostgreSQL installed (e.g., `brew install postgresql@14` on macOS) +- Database created: + ```sh + createdb beer_catalog + ``` +**Set the environment variable and run:** ```sh -terraform init -terraform validate +export DATABASE_URL="postgresql://localhost/beer_catalog" +python app.py ``` --- -### 4. **Plan and Apply** +### 4. Running with SQLite -**Preview the changes:** -```sh -terraform plan -``` +**No prerequisites needed.** -**Apply the changes (provision resources):** +**Set the environment variable and run:** ```sh -terraform apply +export DATABASE_URL="sqlite:///beers.db" +python app.py ``` --- -### 5. **Notes** +### 5. Testing Endpoints -- You must have sufficient AWS permissions to create VPCs, subnets, ECS, RDS, ECR, and IAM roles. -- The `app_image` variable should point to a Docker image you have pushed to your ECR repository. -- The `db_password` should be a strong password for your PostgreSQL database. -- No AWS resources will be created until you run `terraform apply`. -- You can destroy all resources with: +- **Health check:** + ```sh + curl http://127.0.0.1:5000/health + ``` +- **Get all beers:** + ```sh + curl http://127.0.0.1:5000/beers + ``` +- **Add a beer:** + ```sh + curl -X POST http://127.0.0.1:5000/beers \ + -H "Content-Type: application/json" \ + -d '{"name": "Heineken", "style": "Lager", "abv": 5.0}' + ``` + You can add as many as you prefer. Just don't drink them all! 🍻 +- **Seed the database:** ```sh - terraform destroy + python seed.py ``` --- -**If you do not have an AWS account, you can still review and validate the code with `terraform validate`.** +## Running the App with Docker -## How to test the app +You can run the app locally using Docker, just like in production (ECS). This ensures consistency and lets you test the container before deploying. -Pre-requisites: -- PostgreSQL installed (brew install postgresql@14 on macOS) -- Python 3.11+ installed -- Poetry installed (pip install poetry) +### 1. Build the Docker image +```sh +docker build -t beer-catalog-app . +``` -Step 1: Cteate a PostgreSql database -```bash -brew install postgresql@14 +### 2. Run the app with SQLite (no extra setup needed) +```sh +docker run -p 5000:5000 beer-catalog-app ``` +- The app will be available at [http://localhost:5000](http://localhost:5000). -Step 2: Create a virtual environment -```bash -cd app # if not in app already -python3 -m venv venv +### 3. Run the app with PostgreSQL +- Make sure you have a PostgreSQL instance running and accessible. +- Set the `DATABASE_URL` environment variable: +```sh +docker run -p 5000:5000 -e DATABASE_URL="postgresql://:@:/beer_catalog" beer-catalog-app +``` -# Activate virtual environment -source venv/bin/activate +> **Note:** This is the same Docker image that is pushed to ECR and used by ECS in production, ensuring consistency between local and cloud environments. -# Install Poetry (if not already installed) -pip install poetry +--- -# Update Poetry lock file (after dependency changes) -poetry lock +## Deploying to AWS (using Dockerfile) -# Install project dependencies -poetry install +### 1. Build & Push Docker Image +- Automated via GitHub Actions on push to `main`, `master`, `feature/*` branches. For production, we can use the `main` branch. (next updates would be added) + +### 2. Provision Infrastructure +```sh +cd terraform +terraform init +terraform plan +terraform apply ``` +- All AWS resources (ECR, ECS, RDS, VPC, etc.) are created from scratch (no prebuilt modules). -**Step 3: Test with PostGres** -```bash -export DATABASE_URL="postgresql://localhost/beer_catalog" +### 3. App Access (using ECS Public IP) +- App will be available at the `ECS public IP` (see ECS task details in AWS Console). +For example, if the ECS public IP is `123.456.789.012`, the app will be available at `http://123.456.789.012:5000`. -# Create the database -createdb beer_catalog +--- -# Run the Flask application -python -m flask --app beer_catalog/app run --debug -``` +## CI/CD Pipeline (workflows/docker-ecr.yml) +- **Pull Request Checks:** Linting and (optional) tests on every PR. +- **Docker Build & Push:** On merge to `main`, `master`, `feature/*` branches, image is built and pushed to ECR. +- **ECS Deployment:** ECS service is updated with the new image. +- **Push image to ECR:** On push, the new image is built and pushed to ECR. +- **Deploy app to ECS:** ECS service is updated with the new image. -Step 4: Test endpoints -```bash -# Health check -curl http://127.0.0.1:5000/health -# Expected: {"status": "healthy", "database": "connected"} +The workflows are define on `.github/workflows/` folder. -# Get beers (initially empty) -curl http://127.0.0.1:5000/beers -# Expected: [] +--- -# Seed the database -python seed.py -# Expected: JSON output with seeding status +## Terraform Infrastructure +- **ECR repository** for Docker images +- **ECS cluster & service** for app hosting +- **RDS PostgreSQL instance** +- **VPC, subnets, security groups** (built from scratch) +- **CloudWatch log group & alarms** +- **No prebuilt modules used for ECS or networking** -# Get beers (now populated) -curl http://127.0.0.1:5000/beers -# Expected: Array of beer objects -``` +--- -** Running the app with Sqlite** +## API Endpoints +| Method | Endpoint | Description | +|--------|------------------|--------------------| +| GET | /health | Health check | +| GET | /beers | List all beers | +| POST | /beers | Add a new beer | +| POST | /seed | Seed database | -**Step 1: Setup Python environment** -```bash -cd app -python3 -m venv venv -source venv/bin/activate -pip install poetry -poetry lock -poetry install -``` +> **Note:** No `/beers/` endpoint as per the original app. -**Step 2: Run the app with Sqlite** -```bash -export DATABASE_URL="sqlite:///beers.db" -python -m flask --app beer_catalog/app run --debug -``` +--- -**Step 3: Test endpoints** -```bash -# Health check -curl http://127.0.0.1:5000/health -# Expected: {"status": "healthy", "database": "connected"} +## Best Practices & Gotchas +- **Intentional Issues:** Documented and fixed in `ISSUES_FOUND.md`. +- **12-factor & SOLID:** Environment variables, logging, error handling, and code structure. +- **Security:** IAM roles, least privilege, no hardcoded secrets. +- **Naming & Structure:** Consistent resource names, clear separation of concerns. -# Get beers (initially empty) -curl http://127.0.0.1:5000/beers -# Expected: [] becase it is not seeded yet +--- -# Seed the database -python seed.py -# Expected: JSON output with seeding status +## Monitoring & Logging +- **CloudWatch Logs:** ECS task logs +- **CloudWatch Alarms:** RDS high CPU, ECS task failures -# Get beers (now populated) -curl http://127.0.0.1:5000/beers -# Expected: Array of beer objects +--- -``` +## Screenshots of AWS Console +(All rerouces were created from scratch and provisioned using Terraform) +### AWS Console: +* [ECS cluster](https://loom.com/i/6ef15cfc31134456a40189fdb4cdd986), +* [ECS Logs](https://loom.com/i/dbc136a6fc3c4658936bb742ad26fa3f), +* [RDS PostgreSQL DB](https://loom.com/i/02449ce6b4c049f2b55c28304dae4a30), +* [RDS Monitoring](https://loom.com/i/4140cdba78774d3c8a2e7efa9ea67176), +* [RDS User Permission Setup](https://loom.com/i/03da3cd136f541999745a76d89171b06), +* [VPC](https://loom.com/i/a03bed3225d74aebb01bbaa0044307b3), +* [CloudWatch log events](https://loom.com/i/a77189d4c7fb4de6b398535894c5cee6), +* [CloudWatch Alarms](https://loom.com/i/047193a0a7e84e81b2dd2b0b98997666) +### App endpoints tested via 'curl' +- health Check: `curl http://3.27.247.99:5000/health` -> [screenshot](https://www.loom.com/i/488f3093723d48c1945b88fae43526ae) +- get all beers: curl `http://3.27.247.99:5000/beers` -> [screenshot](https://loom.com/i/1a78218075ae481782c82a44a2862176) +- add a beer: `curl -X POST http://3.27.247.99:5000/beers -H "Content-Type: application/json" -d '{"name": "Heineken", "style": "Lager", "abv": 5.0}'` -> [screenshot](https://loom.com/i/2f445224a9ea41a79ebdce70c24ac064) +- ❌ seed the database: `curl -X POST http://3.27.247.99:5000/seed` -> [screenshot](https://loom.com/i/79f75d35e15345d381e3f7e318017c9f) + +### CI/CD pipeline runs +- [PR Checks](https://loom.com/i/6f4d55c60d0747959f1fe52062a4dbca) +- [Build and Push Docker Image to ECR](https://loom.com/i/243f707b845c4e91bed08453d95296dd) +- [ECR Repository](https://loom.com/i/56434a184635491994c211caa5c81627) +- [ECS Service](https://loom.com/i/3e1cdec272854f52b8aeff94fa1fea3e) +- [ECR Tasks Overview](https://loom.com/i/c068637d241b44b8af4b4936094e3bb7) -** Summary of DB tests: -| Step | SQLite Command/Setting | PostgreSQL Command/Setting | -|---------------------|-----------------------------------------------|---------------------------------------------------| -| **Set DB URL** | `export DATABASE_URL="sqlite:///beers.db"` | `export DATABASE_URL="postgresql://localhost/beer_catalog"` | -| **Start Flask** | `python -m flask --app beer_catalog/app run --debug` | `python -m flask --app beer_catalog/app run --debug` | -| **Seed Data** | `python seed.py` | `python seed.py` | -| **Test Endpoints** | Same for both | Same for both | - -## Useful commands - -**Adding new beers** -```bash -url -X POST http://127.0.0.1:5000/beers \ - -H "Content-Type: application/json" \ - -d '{"name": "Heineken", "style": "Lager", "abv": 5.0}' -``` -**Get all beers** -```bash -curl http://127.0.0.1:5000/beers -``` +--- -**Health check** -```bash -curl http://127.0.0.1:5000/health -``` +## Troubleshooting & Common Issues +- **Region Mismatch:** Ensure AWS CLI and Console are set to `ap-southeast-2`. +- **Resource Already Exists:** Delete or import orphaned resources. +- **App Not Responding:** Check ECS task status, security groups, and logs. +- **Terraform State Issues:** Use `terraform import` or clean up resources as needed. -**Seed the database** -- To reseed, first we need to clear the database -```bash -dropdb beer_catalog -createdb beer_catalog -python seed.py -``` +--- -## 🐳 ECS (Elastic Container Service) Setup +## Evaluation Points +- **Infrastructure design:** Built for scalability and team collaboration. +- **Naming & documentation:** Clear, standardized, and recruiter-friendly. +- **CI/CD pipeline:** Automated, reliable, and secure. +- **Resilience & security:** Follows AWS and DevOps best practices. +- **Troubleshooting:** All intentional issues found and documented. -This project uses AWS ECS Fargate to run the Beer Catalog app in a scalable, managed container environment. +--- + +## Bonus Features (status) +- [✓] RDS user/permission automation. Refer to `aws_db_instance`, `aws_db_user`, `aws_db_parameter_group`, or `aws_db_role` +- [✓] Secret management. Refer to `terraform.tfvars` +- [X] ECS Service Auto Scaling. I did not have time to implement this since it required very specific configuration on AWS and loadbalancer. -### What's Set Up -- **ECS Cluster**: The environment where your containers run -- **Task Definition**: The "recipe" for your app container (image, ports, env vars) -- **Task Execution Role**: Lets ECS pull images from ECR and write logs -- **ECS Service**: Keeps your app running and accessible in the public subnet +--- -### How to Configure the App Image -- Set the `app_image` variable to the full ECR image URL you want to deploy (e.g., `123456789012.dkr.ecr.us-east-1.amazonaws.com/beer-catalog-app:latest`). -- You can do this via environment variable, command-line flag, or `terraform.tfvars` (see AWS deployment instructions above). +## Next Steps / Improvements +- Add `/beers/` endpoint +- Add authentication/authorization +- Use Terraform modules for larger projects +- Add automated integration tests +- ECS Service Auto Scaling +- Add ECR Lifecycle policy: to restrict the number of images in the repository. It would limit the growth of images in the repository. -### How to Access the App -- After deployment, the app will be running in the public subnet on port 5000. -- You can find the public IP by checking the ECS task in the AWS console (or by adding a Terraform output for the task ENI/public IP). -- If you add a load balancer, update this section to explain how to access the app via the load balancer DNS name. +--- -### Notes -- The ECS service is set to run 1 copy of your app by default. You can scale this by changing the `desired_count` in the Terraform code. -- For production, consider adding a load balancer and auto-scaling. -## Monitoring & Alerts +## Minor Personal Notes +- Time Investment notes: ~2h to complete the full AWS Deployment. +- I would like to have tested more the CI/CD pipeline. +- Cost optimization: I created a [budget Status](https://loom.com/i/e293bf96e91d4b7799a8987bb9943d7f) on AWS Console, to avoid unexpected costs. +- I would like to have added a deletion protection on RDS instance (`deletion_protection = var.environment == "prod" ? true : false`), maybe next time. -- **CloudWatch Alarms:** - - `ECS-Task-Failures`: Triggers if any ECS task fails in the `beer-catalog-service`. - - `RDS-High-CPU`: Triggers if RDS CPU utilization exceeds 80%. -- Both alarms are provisioned via Terraform and can be viewed in the AWS CloudWatch console. -- See `cloudwatch_alarms.png` for a screenshot of the alarms in the AWS Console. +## Contact +Alexandre Vieira +[https://www.linkedin.com/in/alexandre-dev/] diff --git a/SCHEDULE.md b/SCHEDULE.md deleted file mode 100644 index 3716ce0..0000000 --- a/SCHEDULE.md +++ /dev/null @@ -1,228 +0,0 @@ -# DevOps Assignment - Strategic Schedule (Updated) - -## Overview -This schedule is designed for a 10-12 hour completion window, prioritizing learning and best practices over speed. Each phase builds upon the previous one, following DevOps principles. **Updated to address identified "gotchas" strategically.** - -## Phase 1: Foundation & Critical Fixes (2-3 hours) -**Goal**: Fix critical issues and establish working local development environment - -### 1.1 Application Analysis & Critical Fixes (1 hour) -- [ ] Examine the Python application structure -- [ ] **CRITICAL**: Fix database configuration (SQLite → PostgreSQL) -- [ ] **CRITICAL**: Add PostgreSQL driver dependency -- [ ] **CRITICAL**: Implement environment variable configuration -- [ ] **CRITICAL**: Add basic error handling and input validation -- [ ] Fix data types (ABV as Float instead of String) -- [ ] Add health check endpoint for load balancer -- [ ] Document all fixes made - -### 1.2 Local Environment Setup (1 hour) -- [ ] Set up Python virtual environment -- [ ] Install dependencies (Poetry) - fix configuration issues -- [ ] Configure local PostgreSQL database -- [ ] Test application locally with proper error handling -- [ ] Document local setup in README -- [ ] Test all endpoints including health check - -### 1.3 Docker Foundation & Security (1 hour) -- [ ] Review existing Dockerfile -- [ ] **SECURITY**: Fix root user issue (create non-root user) -- [ ] **SECURITY**: Add environment variable support -- [ ] Test Docker build locally -- [ ] Ensure 12-factor app compliance -- [ ] Test containerized application -- [ ] Validate security fixes - -**Learning Focus**: Understanding application architecture, fixing critical production issues, containerization basics, and security best practices. - ---- - -## Phase 2: Infrastructure Planning & Design (2-3 hours) -**Goal**: Design scalable, secure infrastructure that addresses identified issues - -### 2.1 Infrastructure Architecture Design (1 hour) -- [ ] Plan VPC and networking structure -- [ ] Design ECS cluster architecture with health checks -- [ ] Plan RDS PostgreSQL setup with proper security -- [ ] Design ECR/container registry strategy -- [ ] Plan secrets management for database credentials -- [ ] Document infrastructure decisions and how they address the "gotchas" - -### 2.2 Terraform Structure Planning (1 hour) -- [ ] Design Terraform module structure (networking, compute, database) -- [ ] Plan separation of concerns based on identified issues -- [ ] Design naming conventions -- [ ] Plan state management strategy -- [ ] Create Terraform directory structure -- [ ] Plan how to handle environment variables in infrastructure - -### 2.3 Security & Best Practices Planning (1 hour) -- [ ] Plan IAM roles and policies for ECS tasks -- [ ] Design security groups for RDS and ECS -- [ ] Plan secrets management approach (AWS Secrets Manager) -- [ ] Design backup and disaster recovery for RDS -- [ ] Plan monitoring and logging (CloudWatch) -- [ ] Plan how to handle the session management issues in production - -**Learning Focus**: Infrastructure as Code principles, AWS services, security best practices, and how infrastructure addresses application issues. - ---- - -## Phase 3: Terraform Implementation (3-4 hours) -**Goal**: Implement infrastructure that properly supports the fixed application - -### 3.1 Networking Foundation (1 hour) -- [ ] Implement VPC with public/private subnets -- [ ] Configure Internet Gateway and NAT Gateway -- [ ] Set up security groups with proper rules -- [ ] Configure route tables -- [ ] Test networking connectivity -- [ ] Ensure security groups allow proper database access - -### 3.2 Database Infrastructure (1 hour) -- [ ] Implement RDS PostgreSQL instance with proper configuration -- [ ] Configure database security groups -- [ ] Set up database subnet group in private subnets -- [ ] Configure backup and maintenance windows -- [ ] **BONUS**: Implement PostgreSQL user and permission setup -- [ ] Test database connectivity from local environment - -### 3.3 Container Registry (30 min) -- [ ] Implement ECR repository -- [ ] Configure repository policies -- [ ] Test image push/pull operations -- [ ] Set up lifecycle policies -- [ ] Configure ECR login for GitHub Actions - -### 3.4 ECS Infrastructure (1-1.5 hours) -- [ ] Implement ECS cluster -- [ ] Create ECS task definition with proper environment variables -- [ ] Configure ECS service with health checks -- [ ] Set up application load balancer -- [ ] Configure auto-scaling (bonus) -- [ ] Ensure proper IAM roles for ECS tasks - -**Learning Focus**: Terraform syntax, AWS resource relationships, infrastructure dependencies, and how infrastructure supports the fixed application. - ---- - -## Phase 4: CI/CD Pipeline (2-3 hours) -**Goal**: Automate deployment pipeline with proper testing and validation - -### 4.1 GitHub Actions Foundation (1 hour) -- [ ] Set up GitHub repository secrets for AWS credentials -- [ ] Create basic workflow structure -- [ ] Configure AWS credentials in GitHub Actions -- [ ] Test basic workflow execution -- [ ] Plan how to handle environment variables in CI/CD - -### 4.2 Build Pipeline (1 hour) -- [ ] Implement Docker build workflow -- [ ] Configure image tagging strategy -- [ ] Set up image push to ECR -- [ ] Add build validation and testing -- [ ] **BONUS**: Add security scanning for Docker images -- [ ] Test the complete build pipeline - -### 4.3 Deployment Pipeline (1 hour) -- [ ] Implement ECS deployment workflow -- [ ] Configure blue-green deployment strategy -- [ ] Set up deployment validation with health checks -- [ ] Add rollback capabilities -- [ ] **BONUS**: Add automated testing in deployment pipeline -- [ ] Test the complete deployment pipeline - -**Learning Focus**: CI/CD principles, GitHub Actions, deployment strategies, and automation best practices. - ---- - -## Phase 5: Testing & Optimization (1-2 hours) -**Goal**: Ensure everything works correctly and validate all fixes - -### 5.1 End-to-End Testing (1 hour) -- [ ] Test complete deployment pipeline -- [ ] Validate application functionality (all endpoints) -- [ ] Test database connectivity and data persistence -- [ ] Verify security configurations work properly -- [ ] Test error handling and validation -- [ ] Test auto-scaling (if implemented) -- [ ] Validate all "gotcha" fixes are working - -### 5.2 Documentation & Cleanup (1 hour) -- [ ] Update README with complete instructions -- [ ] Document all infrastructure decisions and why they were made -- [ ] Create troubleshooting guide -- [ ] Document all issues found and how they were resolved -- [ ] Document the "gotchas" and their fixes for the recruiter -- [ ] Clean up temporary resources -- [ ] Create final presentation of the solution - -**Learning Focus**: Testing methodologies, documentation best practices, and production readiness. - ---- - -## DevOps Principles Applied - -### 12-Factor App Compliance -- [ ] Codebase: Single codebase tracked in version control -- [ ] Dependencies: Explicitly declared and isolated -- [ ] Config: Stored in environment variables (FIXED) -- [ ] Backing Services: Treated as attached resources (PostgreSQL) -- [ ] Build, Release, Run: Strictly separated build and run stages -- [ ] Processes: Stateless and share-nothing -- [ ] Port Binding: Self-contained and export services via port binding -- [ ] Concurrency: Scale out via the process model -- [ ] Disposability: Fast startup and graceful shutdown -- [ ] Dev/Prod Parity: Keep development, staging, and production as similar as possible -- [ ] Logs: Treat logs as event streams -- [ ] Admin Processes: Run admin/management tasks as one-off processes - -### SOLID Principles in Infrastructure -- **Single Responsibility**: Each Terraform module has one clear purpose -- **Open/Closed**: Infrastructure can be extended without modification -- **Liskov Substitution**: Modules can be replaced with compatible alternatives -- **Interface Segregation**: Use specific IAM policies and security groups -- **Dependency Inversion**: Depend on abstractions (variables) not concrete implementations - -## Success Criteria -- [ ] Application runs locally with virtual environment -- [ ] Application runs in Docker container securely -- [ ] Infrastructure provisions successfully with Terraform -- [ ] CI/CD pipeline builds and deploys automatically -- [ ] Application is accessible and functional in AWS -- [ ] **ALL intentional issues are identified and resolved** -- [ ] Documentation is complete and clear -- [ ] Code follows best practices and is maintainable -- [ ] **Security issues are addressed** -- [ ] **Error handling is robust** - -## Time Allocation Summary -- **Phase 1**: 2-3 hours (Foundation + Critical Fixes) -- **Phase 2**: 2-3 hours (Planning) -- **Phase 3**: 3-4 hours (Implementation) -- **Phase 4**: 2-3 hours (Automation) -- **Phase 5**: 1-2 hours (Testing & Documentation) - -**Total Estimated Time**: 10-15 hours - -## Key Changes from Original Schedule - -### **Phase 1 Enhancements:** -- **Critical fixes first**: Address the most important issues before building infrastructure -- **Security focus**: Fix Docker and application security issues early -- **Error handling**: Add robust error handling before deployment - -### **Phase 2 Enhancements:** -- **Issue-aware planning**: Design infrastructure that specifically addresses the "gotchas" -- **Security by design**: Plan security measures from the beginning - -### **Phase 3-5 Enhancements:** -- **Validation focus**: Ensure each phase validates the fixes from previous phases -- **Documentation**: Track all issues and their resolutions - -## Notes -- Each phase now specifically addresses the identified "gotchas" -- The schedule prioritizes fixing critical issues before building infrastructure -- Security and error handling are addressed early and throughout -- Documentation includes tracking of all issues found and resolved -- Focus on quality and best practices rather than rushing to completion \ No newline at end of file diff --git a/app/beer_catalog/app.py b/app/beer_catalog/app.py index cb8ad02..72eea35 100644 --- a/app/beer_catalog/app.py +++ b/app/beer_catalog/app.py @@ -6,8 +6,9 @@ from flask import Flask, jsonify, request from beer_catalog.db import engine, session_local from beer_catalog.beer import Base, Beer +from seed import seed_database -# Load environment variables (12-factor app principle #3) +# Load environment variables load_dotenv() # Configure logging @@ -99,6 +100,15 @@ def create_beer(): return jsonify({"error": "Failed to create beer"}), 500 +@app.route("/seed", methods=["POST"]) +def seed(): + try: + seed_database() + return jsonify({"message": "Database seeded with test beers"}), 200 + except Exception as e: + return jsonify({"error": str(e)}), 500 + + @app.errorhandler(404) def not_found(error): return jsonify({"error": "Endpoint not found"}), 404 diff --git a/app/beer_catalog/seed.py b/app/beer_catalog/seed.py new file mode 100644 index 0000000..65efc3c --- /dev/null +++ b/app/beer_catalog/seed.py @@ -0,0 +1,17 @@ +from beer_catalog.db import session_local +from beer_catalog.beer import Beer + +def seed_database(): + session = session_local() + beers = [ + Beer(name="Heineken", style="Lager", abv=5.0), + Beer(name="Guinness", style="Stout", abv=4.2), + Beer(name="Sierra Nevada", style="Pale Ale", abv=5.6), + ] + session.add_all(beers) + session.commit() + session.close() + +if __name__ == "__main__": + seed_database() + print("Database seeded with test beers.") \ No newline at end of file diff --git a/imgs/infra.png b/imgs/infra.png new file mode 100644 index 0000000000000000000000000000000000000000..3ed14fd5cc6d6bfc69d4f2f9af4b83929d5bbfca GIT binary patch literal 223078 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

<1XXr~0594(G{fBF* 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 z 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

JB)L2uITxPO_!MU}A6ngN#_THkr_1FElnQC1> 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�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�x0_BO{dvf2pUC&o=i{ysNPM}y8 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 Date: Tue, 1 Jul 2025 19:26:36 +0900 Subject: [PATCH 2/3] Udpate local testing instructions --- README.md | 77 +++++++++++++++++++++++++++++++++---------------------- 1 file changed, 47 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 4fa3453..ad11d07 100644 --- a/README.md +++ b/README.md @@ -26,65 +26,80 @@ git clone git@github.com:alex-504/devops-test-master.git cd devops-test-master/app/beer_catalog ``` -### 2. Set up virtual environment (venv) +### 2. Set up a virtual environment and install Poetry ```sh python3 -m venv venv source venv/bin/activate -pip install -r requirements.txt +pip install poetry ``` +### 3. Install dependencies with Poetry +```sh +poetry install +``` + +--- + +### 4. Run the app with SQLite (quick start, no setup needed) +```sh +export DATABASE_URL="sqlite:///beers.db" +poetry run python -m flask --app beer_catalog/app run --debug +``` +- The app will be available at [http://127.0.0.1:5000](http://127.0.0.1:5000). + --- -### 3. Running with PostgreSQL +### 5. Run the app with PostgreSQL **Prerequisites:** - PostgreSQL installed (e.g., `brew install postgresql@14` on macOS) -- Database created: +- Start PostgreSQL (macOS/Homebrew): + ```sh + brew services start postgresql@14 + # or for other versions: + # brew services start postgresql + ``` +- Check status: + ```sh + brew services list + ``` +- Create the database (if not already created): ```sh createdb beer_catalog ``` + - If you see an error like `database "beer_catalog" already exists`, you can skip this step. + +**Set the DATABASE_URL environment variable:** +- The default user is usually your macOS username (e.g., `alexandrevieira`). +- If you use a password, add it after the username: `postgresql://:@localhost:5432/beer_catalog` -**Set the environment variable and run:** ```sh -export DATABASE_URL="postgresql://localhost/beer_catalog" -python app.py +export DATABASE_URL="postgresql://@localhost:5432/beer_catalog" ``` ---- - -### 4. Running with SQLite - -**No prerequisites needed.** - -**Set the environment variable and run:** +**Run the app:** ```sh -export DATABASE_URL="sqlite:///beers.db" -python app.py +poetry run python -m flask --app beer_catalog/app run --debug ``` +- The app will be available at [http://127.0.0.1:5000](http://127.0.0.1:5000). --- -### 5. Testing Endpoints - -- **Health check:** +### Testing Endpoints +- Health check: ```sh curl http://127.0.0.1:5000/health ``` -- **Get all beers:** +- Get all beers: ```sh curl http://127.0.0.1:5000/beers ``` -- **Add a beer:** +- Add a beer: ```sh curl -X POST http://127.0.0.1:5000/beers \ -H "Content-Type: application/json" \ -d '{"name": "Heineken", "style": "Lager", "abv": 5.0}' ``` - You can add as many as you prefer. Just don't drink them all! 🍻 -- **Seed the database:** - ```sh - python seed.py - ``` --- @@ -103,12 +118,14 @@ docker run -p 5000:5000 beer-catalog-app ``` - The app will be available at [http://localhost:5000](http://localhost:5000). -### 3. Run the app with PostgreSQL -- Make sure you have a PostgreSQL instance running and accessible. -- Set the `DATABASE_URL` environment variable: +### 3. Run the app with PostgreSQL (macOS/Windows) +If you want to use your local PostgreSQL database with Docker: ```sh -docker run -p 5000:5000 -e DATABASE_URL="postgresql://:@:/beer_catalog" beer-catalog-app +docker run -p 5000:5000 -e DATABASE_URL="postgresql://@host.docker.internal:5432/beer_catalog" beer-catalog-app ``` +- Replace `` with your Postgres username. +- If you use a password, add it after the username. +- The app will be available at [http://localhost:5000](http://localhost:5000). > **Note:** This is the same Docker image that is pushed to ECR and used by ECS in production, ensuring consistency between local and cloud environments. From 82ae46734f31b662b45f5b65c51f6709b45d7970 Mon Sep 17 00:00:00 2001 From: alex-504 Date: Tue, 1 Jul 2025 19:29:06 +0900 Subject: [PATCH 3/3] style: auto-format seed.py with Black --- app/beer_catalog/seed.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/beer_catalog/seed.py b/app/beer_catalog/seed.py index 65efc3c..5a8300a 100644 --- a/app/beer_catalog/seed.py +++ b/app/beer_catalog/seed.py @@ -1,6 +1,7 @@ from beer_catalog.db import session_local from beer_catalog.beer import Beer + def seed_database(): session = session_local() beers = [ @@ -12,6 +13,7 @@ def seed_database(): session.commit() session.close() + if __name__ == "__main__": seed_database() - print("Database seeded with test beers.") \ No newline at end of file + print("Database seeded with test beers.")