Skip to content

IngMatrix-PGB/Serverless-Containerized-App-Deployment-Project-on-AWS

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

38 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿฆ Shell Bank - Modern Cloud Banking Platform

A complete full-stack banking application built with modern cloud-native architecture, demonstrating enterprise-grade deployment practices using AWS ECS Fargate and automated CI/CD pipelines.

๐Ÿ“‹ Overview

Shell Bank is a modern banking application that showcases how financial institutions can leverage cloud-native technologies to deliver secure, scalable, and maintainable banking services. This project demonstrates the complete journey from development to production deployment using industry best practices.

Live Application: https://d2a9m3x91glum2.cloudfront.net

๐Ÿ“Œ Use Case

Shell Bank represents a large financial services company operating across multiple regions. Like many traditional banks, they needed to modernize their application deployment strategy to stay competitive in the digital banking space while maintaining the highest security and compliance standards.

โš ๏ธ Problem

Traditional banking infrastructure faces several critical challenges:

  • Complex Infrastructure Management: Legacy Kubernetes setups required specialized engineers and extensive maintenance
  • Slow Deployment Cycles: Infrastructure upgrades took 2-4 weeks, significantly slowing innovation
  • High Operational Overhead: Teams spent 60% of their time on maintenance instead of building customer value
  • Talent Shortage: Finding and retaining Kubernetes experts was expensive and difficult
  • Security Concerns: Manual deployments increased risk of configuration errors and security vulnerabilities
  • Scalability Issues: Difficulty handling traffic spikes during peak banking hours

๐ŸŽฏ The Goal

Transform the banking application deployment strategy to:

  • Simplify Operations: Reduce infrastructure complexity and maintenance overhead
  • Accelerate Innovation: Enable teams to focus on customer-facing features rather than infrastructure
  • Improve Reliability: Achieve zero-downtime deployments with automated rollbacks
  • Enhance Security: Implement secure, compliant deployment practices
  • Reduce Costs: Optimize resource utilization and eliminate over-provisioning
  • Enable Scalability: Handle traffic fluctuations automatically

๐Ÿ› ๏ธ The Solution

Technology Stack

  • Frontend: React.js with modern responsive design
  • Backend: Flask API with JWT authentication
  • Database: SQLite (demo) / RDS (production-ready)
  • Containerization: Docker multi-stage builds
  • Infrastructure: AWS ECS Fargate (serverless containers)
  • CDN: CloudFront for global content delivery
  • CI/CD: GitHub Actions for automated deployments
  • Infrastructure as Code: Terraform for reproducible deployments

Key Components

๐Ÿš€ Serverless Container Platform

  • AWS ECS Fargate: No servers to manage, automatic scaling
  • Application Load Balancer: Intelligent traffic routing
  • Auto Scaling: Automatic container scaling based on CPU utilization

๐Ÿ”’ Security & Compliance

  • HTTPS Everywhere: SSL/TLS encryption via CloudFront
  • JWT Authentication: Secure user session management
  • VPC Isolation: Private networking with security groups
  • IAM Roles: Least-privilege access controls

๐Ÿ“ฆ Automated Deployment Pipeline

  • GitHub Actions: Automated CI/CD on every code push
  • Docker Registry: Amazon ECR for container image storage
  • Zero-Downtime Deployments: Rolling updates with health checks

โœ… Results

Operational Improvements

  • Zero-Time Upgrades: Eliminated 2-4 week deployment cycles
  • Faster Onboarding: New developers productive in under 1 week
  • Reduced Maintenance: 80% reduction in infrastructure management time
  • Improved Reliability: 99.9% uptime with automated scaling

Business Impact

  • Cost Reduction: 40% lower infrastructure costs through serverless architecture
  • Faster Time-to-Market: Feature releases accelerated from weeks to days
  • Enhanced Security: Automated security patching and compliance
  • Better Customer Experience: Global CDN reduces page load times by 60%

๐Ÿ—๏ธ How It Works

Development Workflow

  1. Code Changes: Developers push code to GitHub master branch
  2. Automated Build: GitHub Actions triggers Docker image builds
  3. Container Registry: Images pushed to Amazon ECR
  4. Deployment: ECS services automatically updated with new images
  5. Traffic Routing: Load balancer routes traffic to healthy containers

Auto-Scaling Behavior

  • Minimum Containers: 2 (always running for high availability)
  • Maximum Containers: 5 (scales up during high traffic)
  • Scaling Trigger: CPU utilization above 60%
  • Cooldown Period: 2 minutes between scaling actions

๐Ÿ›๏ธ High-Level Architecture

image_alt

๐Ÿš€ Getting Started

Prerequisites

  • AWS Account with appropriate permissions
  • GitHub repository
  • Docker installed locally
  • Terraform installed

Quick Deployment

# 1. Clone repository
git clone https://github.com/Tatenda-Prince/Serverless-Containerized-App-Deployment-Project-on-AWS.git

2. Initialize Terraform

terraform init

This downloads required providers and initializes the backend.

2. Validate Configuration

terraform validate

Checks syntax and validates configuration files.

3. Plan Infrastructure

terraform plan

Shows what resources will be created, modified, or destroyed.

4. Apply Infrastructure

terraform apply

Creates the infrastructure. Type yes when prompted.

5. Get Outputs

terraform output

Displays important URLs and resource names:

  • website_url: CloudFront distribution URL

๐Ÿงช Testing the System

Check Infrastructure Status

  • Check ECS services are running

    image_alt

Test Application Functionality

  • Frontend: Visit CloudFront URL and verify UI loads

    image_alt

  • Backend: Register a new user and perform banking transactions

    image_alt

  • Auto-scaling: Monitor container count during load

    image_alt

  • CI/CD: Push code changes and verify the GitHub workflow

    image_alt

  • CI/CD: verify the changes

    image_alt

๐Ÿ”ฎ Future Enhancements

  • Database Migration: Move from SQLite to Amazon RDS for production
  • Enhanced Monitoring: Implement detailed application metrics
  • Multi-Region Deployment: Deploy across multiple AWS regions
  • Advanced Security: Add WAF and additional security layers
  • Mobile API: Extend API for mobile banking applications

About

''Serverless Containerized Banking App Deployment Project on AWS"

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • HCL 43.3%
  • Python 21.6%
  • JavaScript 20.7%
  • CSS 14.1%
  • HTML 0.3%