Implementasi Aplikasi Multi-Tier

Deployment Aplikasi dengan Arsitektur Multi-Tier di Platform Cloud

Estimasi: 240 menit
Tingkat: Advanced
Tiers: 4 Layer Architecture
Pertemuan 12 dari 16

Tujuan Pembelajaran

Setelah mengikuti praktikum ini, mahasiswa diharapkan mampu:

Arsitektur Multi-Tier

Memahami konsep dan komponen arsitektur aplikasi multi-tier modern

Network Design

Mendesain dan mengkonfigurasi networking antara berbagai tier aplikasi

Load Balancing

Mengimplementasikan load balancing dan service discovery

High Availability

Melakukan deployment aplikasi multi-tier dengan high availability

Performance Optimization

Mengoptimalkan performa dan keamanan aplikasi multi-tier

Security Implementation

Menerapkan security best practices pada setiap layer architecture

Arsitektur Multi-Tier Overview

Presentation Tier

Layer 1
CDN
Load Balancer
WAF

Application Tier

Layer 2
Frontend
API Gateway
Microservices

Data Tier

Layer 3
MySQL Cluster
Redis Cache
Elasticsearch

Infrastructure Tier

Layer 4
Service Mesh
Monitoring
Security

Scalability

Setiap tier dapat di-scale independently berdasarkan kebutuhan workload

Security

Layered security dengan network segmentation dan defense in depth

Availability

High availability dengan multi-AZ deployment dan auto-scaling

Maintainability

Isolated components memudahkan maintenance dan updates

Implementasi Detail

1. Infrastructure as Code dengan Terraform

Infrastructure

A. Main Configuration

terraform/main.tf
# Main Terraform Configuration
terraform {
  required_version = ">= 1.0"
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
    kubernetes = {
      source  = "hashicorp/kubernetes"
      version = "~> 2.0"
    }
  }

  backend "s3" {
    bucket = "multi-tier-tf-state"
    key    = "ecommerce-platform/terraform.tfstate"
    region = "us-east-1"
  }
}

# Provider Configuration
provider "aws" {
  region = var.aws_region
  default_tags {
    tags = {
      Environment = var.environment
      Project     = "multi-tier-app"
      ManagedBy   = "terraform"
    }
  }
}

B. Network Architecture

terraform/network.tf
# VPC Configuration dengan Multi-AZ
resource "aws_vpc" "main" {
  cidr_block           = var.vpc_cidr
  enable_dns_hostnames = true
  enable_dns_support   = true

  tags = {
    Name = "${var.cluster_name}-vpc"
  }
}

# Public Subnets untuk Load Balancer
resource "aws_subnet" "public" {
  count = length(var.public_subnet_cidrs)
  
  vpc_id                  = aws_vpc.main.id
  cidr_block              = var.public_subnet_cidrs[count.index]
  availability_zone       = data.aws_availability_zones.available.names[count.index]
  map_public_ip_on_launch = true

  tags = {
    Name = "${var.cluster_name}-public-${count.index + 1}"
    "kubernetes.io/role/elb" = "1"
  }
}

2. Kubernetes Manifests

Orchestration

A. Frontend Deployment

k8s/frontend/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: frontend
  namespace: ecommerce-production
  labels:
    app: frontend
    tier: presentation
spec:
  replicas: 3
  selector:
    matchLabels:
      app: frontend
  template:
    metadata:
      labels:
        app: frontend
        tier: presentation
    spec:
      containers:
      - name: frontend
        image: your-registry/frontend:1.0.0
        ports:
        - containerPort: 80
        env:
        - name: API_BASE_URL
          value: "http://api-gateway:8000"
        resources:
          requests:
            memory: "256Mi"
            cpu: "100m"
          limits:
            memory: "512Mi"
            cpu: "200m"

Detail Setiap Tier

Presentation Tier

User-facing components dan interface

CloudFront CDN

Global content delivery dengan caching dan DDoS protection

aws_cloudfront_distribution.main

Application Load Balancer

Layer 7 load balancing dengan SSL termination

aws_lb.main

Application Tier

Business logic dan processing layer

React Frontend

Single Page Application dengan server-side rendering

Replicas: 3 CPU: 100m-200m Memory: 256Mi-512Mi

API Gateway (Kong)

API management dengan rate limiting dan authentication

Replicas: 2 CPU: 200m-500m Memory: 512Mi-1Gi

Deployment Strategy

GitOps Deployment

Automated deployment menggunakan ArgoCD dengan Git sebagai source of truth

  • Declarative configuration
  • Automated sync
  • Rollback capability
  • Multi-environment support

Canary Releases

Gradual rollout dengan Istio traffic splitting untuk risk mitigation

  • Traffic splitting 10/90
  • Automated promotion
  • Instant rollback
  • Metrics-based validation

Tugas Praktikum

Implementasikan arsitektur multi-tier lengkap dengan requirements berikut:

Desain Arsitektur

30 Points

Requirements:

  • Buat diagram arsitektur lengkap dengan semua komponen
  • Tentukan spesifikasi resource untuk setiap tier
  • Desain network topology dan security groups

Deliverables:

  • Architecture diagram (PDF/PNG)
  • Network design document
  • Resource specification sheet

Implementasi Application Tier

40 Points

Requirements:

  • Implementasi minimal 3 microservices
  • Setup API Gateway dengan rate limiting
  • Implementasi service discovery

Deliverables:

  • Microservices source code
  • Kubernetes manifests
  • API Gateway configuration