Tren Teknologi Cloud

Edge Computing, Hybrid Cloud, dan Masa Depan Komputasi Awan

Estimasi: 120 menit Tingkat: Intermediate Focus: Future Technologies
Pertemuan 13 dari 16

Tujuan Pembelajaran

Setelah mengikuti praktikum ini, mahasiswa diharapkan mampu:

Edge Computing Architecture

Memahami konsep dan arsitektur edge computing serta perbedaannya dengan cloud tradisional

Hybrid Cloud Strategy

Mengimplementasikan solusi hybrid cloud yang terintegrasi antara public dan private cloud

Use Case Analysis

Menganalisis use cases untuk edge computing dalam skenario IoT dan real-time processing

Distributed Architecture

Membangun arsitektur yang menggabungkan cloud public, private, dan edge locations

Trade-off Analysis

Mengevaluasi trade-offs antara latency, bandwidth, dan cost dalam distributed systems

Real-time Processing

Mengimplementasikan IoT dan real-time processing di edge environment

Edge Computing Revolution

Membawa komputasi lebih dekat ke sumber data untuk mengurangi latency dan mengoptimalkan bandwidth

Traditional Cloud

  • High Latency (100-200ms)
  • Bandwidth Intensive
  • Centralized Management
  • Unlimited Scalability
  • Internet Dependency

Edge Computing

  • Low Latency (<10ms)
  • Bandwidth Optimized
  • Distributed Management
  • Limited Local Resources
  • Offline Operation

1. Arsitektur Edge Computing

Architecture

Cloud Layer

Central Processing
AI/ML Training
Data Warehouse
Analytics

Edge Layer

Regional Processing
Micro Data Centers
Real-time Processing
Data Aggregation

Device Layer

Local Processing
Smart Devices
IoT Sensors
Autonomous Vehicles

Key Benefits:

Ultra-low Latency

Response time <10ms untuk real-time applications

Bandwidth Optimization

Hanya data yang relevan dikirim ke cloud

Enhanced Privacy

Data sensitive diproses secara lokal

Offline Operation

Dapat beroperasi tanpa koneksi internet konstan

2. Implementasi Edge Computing dengan AWS IoT Greengrass

Praktikum

A. Setup AWS IoT Greengrass v2

edge/greengrass-setup.py
import json
import boto3
import psutil
import time
from datetime import datetime
import logging

# Configure logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

class EdgeDevice:
    def __init__(self, thing_name, iot_client):
        self.thing_name = thing_name
        self.iot_client = iot_client
        self.gg_client = boto3.client('greengrassv2')

    def create_thing(self):
        """Create IoT Thing for edge device"""
        try:
            response = self.iot_client.create_thing(
                thingName=self.thing_name
            )
            logger.info(f"Created IoT Thing: {self.thing_name}")
            return response
        except Exception as e:
            logger.error(f"Error creating thing: {e}")
            raise

    def create_certificates(self):
        """Create certificates for secure communication"""
        response = self.iot_client.create_keys_and_certificate(
            setAsActive=True
        )
        certificate_arn = response['certificateArn']
        certificate_pem = response['certificatePem']
        private_key = response['keyPair']['PrivateKey']
        
        logger.info("Created IoT certificates")
        return certificate_arn, certificate_pem, private_key

    def deploy_greengrass_component(self, component_name):
        """Deploy Greengrass component to edge device"""
        try:
            response = self.gg_client.create_component_version(
                inlineRecipe=self.create_component_recipe(component_name)
            )
            logger.info(f"Deployed component: {component_name}")
            return response
        except Exception as e:
            logger.error(f"Error deploying component: {e}")
            raise

    def create_component_recipe(self, component_name):
        """Create component recipe for edge processing"""
        recipe = {
            "RecipeFormatVersion": "2020-01-25",
            "ComponentName": component_name,
            "ComponentVersion": "1.0.0",
            "ComponentDescription": "Edge data processing component",
            "ComponentPublisher": "EdgePlatform",
            "Manifests": [
                {
                    "Platform": {
                        "os": "linux"
                    },
                    "Lifecycle": {
                        "Install": "python3 -m pip install -r {artifacts:decompressedPath}/requirements.txt",
                        "Run": "python3 -u {artifacts:decompressedPath}/edge_processor.py"
                    },
                    "Artifacts": [
                        {
                            "URI": "s3://edge-components/{component_name}/v1.0.0/edge_processor.zip"
                        }
                    ]
                }
            ]
        }
        return json.dumps(recipe)

B. Edge Data Processing Component

edge/edge_processor.py
import json
import time
import logging
from typing import Dict, Any
import awsiot.greengrasscoreipc
import awsiot.greengrasscoreipc.client as client
from awsiot.greengrasscoreipc.model import (
    QOS,
    PublishToIoTCoreRequest,
    SubscribeToTopicRequest,
    SubscriptionResponseMessage
)

# Configure logging
logging.basicConfig(level=logging.INFO)
logger = logging.getLogger(__name__)

class EdgeDataProcessor:
    def __init__(self):
        self.ipc_client = awsiot.greengrasscoreipc.connect()
        self.telemetry_data = []
        self.anomaly_threshold = 2.5  # Standard deviations
        
    def process_sensor_data(self, sensor_data: Dict[str, Any]) -> Dict[str, Any]:
        """Process sensor data at the edge"""
        try:
            # Real-time anomaly detection
            processed_data = {
                'timestamp': sensor_data.get('timestamp'),
                'sensor_id': sensor_data.get('sensor_id'),
                'raw_value': sensor_data.get('value'),
                'processed_value': self.apply_filters(sensor_data.get('value')),
                'anomaly_detected': self.detect_anomaly(sensor_data.get('value')),
                'processing_location': 'edge'
            }
            
            # Only send critical data to cloud
            if processed_data['anomaly_detected']:
                self.publish_to_cloud(processed_data)
            
            return processed_data
            
        except Exception as e:
            logger.error(f"Error processing sensor data: {e}")
            return {}

    def apply_filters(self, value: float) -> float:
        """Apply digital filters for noise reduction"""
        # Simple moving average filter
        self.telemetry_data.append(value)
        if len(self.telemetry_data) > 10:
            self.telemetry_data.pop(0)
        
        return sum(self.telemetry_data) / len(self.telemetry_data)

    def detect_anomaly(self, value: float) -> bool:
        """Detect anomalies using statistical methods"""
        if len(self.telemetry_data) < 5:
            return False
            
        mean = sum(self.telemetry_data) / len(self.telemetry_data)
        variance = sum((x - mean) ** 2 for x in self.telemetry_data) / len(self.telemetry_data)
        std_dev = variance ** 0.5
        
        return abs(value - mean) > self.anomaly_threshold * std_dev

    def publish_to_cloud(self, data: Dict[str, Any]):
        """Publish processed data to AWS IoT Core"""
        try:
            request = PublishToIoTCoreRequest(
                topic_name='edge/processed/data',
                qos=QOS.AT_LEAST_ONCE,
                payload=json.dumps(data).encode()
            )
            self.ipc_client.publish_to_iot_core(request)
            logger.info("Published processed data to cloud")
        except Exception as e:
            logger.error(f"Error publishing to cloud: {e}")

    def run(self):
        """Main execution loop"""
        logger.info("Starting edge data processor...")
        
        while True:
            # Simulate sensor data processing
            sensor_data = {
                'timestamp': datetime.now().isoformat(),
                'sensor_id': 'temperature_sensor_001',
                'value': self.read_sensor_value(),
                'unit': 'celsius'
            }
            
            processed_data = self.process_sensor_data(sensor_data)
            logger.info(f"Processed data: {processed_data}")
            
            time.sleep(1)  # Process every second

if __name__ == "__main__":
    processor = EdgeDataProcessor()
    processor.run()

Hybrid Cloud Strategy

Menggabungkan keunggulan public cloud dan private cloud dengan orchestration yang terintegrasi

3. Arsitektur Hybrid Cloud Modern

Architecture
Public Cloud
AWS
Azure
GCP
Use Cases:
  • Web Applications
  • Big Data Analytics
  • AI/ML Training
  • Disaster Recovery
Orchestration & Management
Private Cloud
On-premises Data Center
VMware / OpenStack
Local Databases
Use Cases:
  • Sensitive Data
  • Legacy Applications
  • Regulatory Compliance
  • Low-latency Processing
Edge Locations
Edge Computing
Factory IoT
Retail Locations
Mobile Devices
Use Cases:
  • Real-time Analytics
  • IoT Data Processing
  • Content Caching
  • Offline Operation

Strategic Benefits:

Cost Optimization

Balance between Capex and Opex dengan workload placement yang optimal

Security & Compliance

Data sovereignty dan regulatory compliance dengan hybrid approach

Flexibility & Control

Workload portability dan deployment flexibility across environments

Performance

Optimal performance dengan workload placement berdasarkan requirements

4. Implementasi Hybrid Cloud dengan AWS Outposts

Praktikum

A. Terraform Configuration untuk Hybrid Setup

terraform/hybrid-setup.tf
# AWS Outposts Configuration
resource "aws_outposts_outpost" "main" {
  name = "production-outpost"
  site_id = var.outpost_site_id
  
  tags = {
    Environment = var.environment
    Purpose     = "hybrid-workloads"
  }
}

# Outpost Subnet Configuration
resource "aws_subnet" "outpost" {
  vpc_id               = aws_vpc.main.id
  cidr_block           = var.outpost_subnet_cidr
  availability_zone    = "${var.aws_region}-outpost-1"
  outpost_arn          = aws_outposts_outpost.main.arn

  tags = {
    Name = "${var.cluster_name}-outpost-subnet"
  }
}

# Hybrid Load Balancer
resource "aws_lb" "hybrid" {
  name               = "${var.cluster_name}-hybrid-alb"
  internal           = false
  load_balancer_type = "application"
  
  subnets = [
    aws_subnet.public[0].id,
    aws_subnet.public[1].id,
    aws_subnet.outpost.id
  ]

  enable_deletion_protection = true

  tags = {
    Environment = var.environment
    Type        = "hybrid"
  }
}

# EC2 Instance pada Outpost
resource "aws_instance" "outpost_worker" {
  ami           = var.outpost_ami_id
  instance_type = "m5.large"
  subnet_id     = aws_subnet.outpost.id
  
  # Outpost-specific configuration
  outpost_arn = aws_outposts_outpost.main.arn

  vpc_security_group_ids = [aws_security_group.outpost.id]

  user_data = base64encode(templatefile("${path.module}/outpost-userdata.sh", {
    cluster_name = var.cluster_name
    region       = var.aws_region
  }))

  tags = {
    Name = "${var.cluster_name}-outpost-worker"
    Environment = var.environment
  }

  depends_on = [aws_outposts_outpost.main]
}

# Hybrid Data Sync Configuration
resource "aws_datasync_location_efs" "hybrid_sync" {
  efs_file_system_arn = aws_efs_file_system.main.arn

  ec2_config {
    security_group_arns = [aws_security_group.datasync.arn]
    subnet_arn         = aws_subnet.private[0].arn
  }

  tags = {
    Name = "hybrid-data-sync"
  }
}

Real-world Use Cases

Implementasi edge computing dan hybrid cloud dalam skenario industri nyata

Smart Manufacturing

Predictive Maintenance

Real-time monitoring of industrial equipment dengan AI-powered anomaly detection

Edge

Vibration sensors & real-time processing

Private Cloud

Historical data & ML model training

Public Cloud

Global analytics & dashboard

99.8% Uptime
45% Cost Reduction
<5ms Response Time

Healthcare IoT

Remote Patient Monitoring

Real-time health monitoring dengan privacy-preserving edge processing

Edge

Wearable devices & local processing

Private Cloud

Patient records & HIPAA compliance

Public Cloud

Research analytics & population health

24/7 Monitoring
HIPAA Compliant
Real-time Alerts

Retail Analytics

In-store Customer Experience

Real-time customer behavior analysis dengan edge video analytics

Edge

Camera feeds & local AI processing

Private Cloud

Store-level analytics & inventory

Public Cloud

Chain-wide insights & CRM

30% Sales Increase
90% Bandwidth Saved
Real-time Inventory

Loading materi pertemuan...