Tujuan Pembelajaran
Setelah mengikuti praktikum ini, mahasiswa diharapkan mampu:
Automasi Deployment Menggunakan Tools Cloud-Native
Setelah mengikuti praktikum ini, mahasiswa diharapkan mampu:
Mengimplementasikan Infrastructure as Code (IaC) dengan Terraform untuk provisioning cloud infrastructure
Membangun pipeline deployment otomatis dengan GitOps menggunakan ArgoCD
Menggunakan tools manajemen konfigurasi (Ansible) untuk automasi deployment
Mengimplementasikan automated testing dalam pipeline DevOps
Membangun monitoring dan observability untuk aplikasi production
Menerapkan security practices dalam pipeline DevOps (DevSecOps)
DevOps adalah budaya dan serangkaian praktik yang menggabungkan pengembangan perangkat lunak (Dev) dan operasi IT (Ops) untuk memperpendek siklus hidup pengembangan sistem.
Kolaborasi antara tim development dan operations
Otomatisasi proses berulang dalam software delivery
Monitoring dan metrics untuk continuous improvement
Berbagi pengetahuan dan tools antar tim
# Prinsip Inti GitOps
1. Konfigurasi Deklaratif
2. Semua Terkontrol Versi
3. Deployment Otomatis
4. Rekonsiliasi Berkelanjutan
5. Umpan Balik Tertutup
# Manfaat
- Peningkatan Frekuensi Deployment
- Waktu Pemulihan Lebih Cepat
- Tingkat Kegagalan Perubahan Lebih Rendah
- Keamanan dan Kepatuhan yang Lebih Baik
Git, GitHub, GitLab
Docker, Jenkins, GitHub Actions
Selenium, Jest, SonarQube
ArgoCD, Terraform, Ansible
Prometheus, Grafana, ELK Stack
terraform {
required_version = ">= 1.0"
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 5.0"
}
}
backend "s3" {
bucket = "my-terraform-state-bucket"
key = "ecommerce-platform/terraform.tfstate"
region = "us-east-1"
}
}
provider "aws" {
region = var.aws_region
default_tags {
tags = {
Environment = var.environment
Project = "ecommerce-platform"
ManagedBy = "terraform"
}
}
}
# Konfigurasi VPC
resource "aws_vpc" "main" {
cidr_block = var.vpc_cidr
enable_dns_hostnames = true
enable_dns_support = true
tags = {
Name = "${var.cluster_name}-vpc"
}
}
# Subnet Private
resource "aws_subnet" "private" {
count = 3
vpc_id = aws_vpc.main.id
cidr_block = cidrsubnet(var.vpc_cidr, 8, count.index + 10)
availability_zone = data.aws_availability_zones.available.names[count.index]
tags = {
Name = "${var.cluster_name}-private-${count.index + 1}"
"kubernetes.io/role/internal-elb" = "1"
}
}
# Internet Gateway
resource "aws_internet_gateway" "main" {
vpc_id = aws_vpc.main.id
tags = {
Name = "${var.cluster_name}-igw"
}
}
Implementasikan solusi DevOps lengkap dengan ketentuan berikut:
| Aspek | Bobot | Kriteria |
|---|---|---|
| Fungsionalitas | 40% | Sistem berjalan sesuai requirements dan semua fitur berfungsi dengan baik |
| Kualitas Kode | 25% | Code yang clean, well-documented, dan mengikuti best practices |
| Keamanan | 20% | Implementasi security best practices dan compliance |
| Otomatisasi | 15% | Tingkat automasi yang dicapai dalam pipeline |