Daftar Isi
Keywords: Portofolio Data Engineer, CI/CD Project, Apache Airflow, Terraform, GitHub Actions, Docker, Automated Testing, DataOps.
Selamat datang di langkah paling krusial dalam perjalanan karir Data Engineer (DE): Membangun Portofolio Killer.
Jika artikel sebelumnya membahas mengapa skill CI/CD membuat gajimu meroket, maka artikel ini akan memberikan Blueprint Proyek Nyata—sebuah cetak biru yang bisa kamu ikuti langkah demi langkah untuk membangun portofolio yang akan membuat Hiring Manager langsung mengirimkan undangan interview.
Portofolio DE yang killer bukan hanya tentang kode Python yang bersih, tapi tentang bukti bahwa kamu bisa membangun Sistem Data Otomatis, Andal, dan Production-Ready. Dan itu adalah definisi dari Data Pipeline yang di-deploy dengan CI/CD.
Siapkan akun GitHub dan mari kita bedah arsitektur proyek yang paling dicari perusahaan tech dunia!
baca juga:Panduan Praktis Membuat Model Matematika dari Soal Sehari-hari
The Ultimate DataOps Project: Blueprint Portofolio CI/CD
Judul proyek ini harus sejelas mungkin menunjukkan kombinasi skill langka:
“Fully Automated ELT Pipeline Deployment on Cloud using Apache Airflow, Terraform, and GitHub Actions”
Proyek ini akan dibagi menjadi tiga komponen utama yang wajib terpisah di repository GitHub-mu:
- Kode Aplikasi Data (Data Code): Python, SQL, dan Data Quality Tests.
- Orkestrasi (Orchestration): Apache Airflow DAGs.
- Otomasi Infrastruktur & Deployment (CI/CD): Terraform, Docker, dan GitHub Actions YAML.
Komponen 1: Kode Aplikasi Data (The ELT Logic)
Ini adalah inti dari pipeline datamu. Gunakan public dataset yang menarik (misalnya, live data cuaca, data e-commerce fiktif, atau data harga saham).
| File/Folder Wajib | Deskripsi & Nilai Jual |
src/etl_logic.py | Berisi fungsi Python untuk Transformasi Data (misal: membersihkan string, agregasi, atau penggabungan data). |
tests/test_etl.py | Kunci Sakti 1: Berisi Unit Tests menggunakan Pytest. Setiap fungsi di etl_logic.py harus punya tes. Tunjukkan bahwa kamu menguji logika, bukan hanya syntax. |
tests/data_quality_tests.py | Kunci Sakti 2: Berisi tes menggunakan Great Expectations (atau library serupa) untuk memastikan kualitas data (misal: schema tidak berubah, null rate di bawah 1%). |
requirements.txt | Mencantumkan semua dependensi Python (pandas, requests, pytest, great-expectations, dll.). |
Ekspor ke Spreadsheet
Tujuan di tahap ini: Memastikan setiap perubahan logika data diuji otomatis sebelum masuk ke tahap deployment.
Komponen 2: Orkestrasi (Apache Airflow DAG)
Ini adalah otak yang menjadwalkan dan menjalankan kode datamu.
| File Wajib | Deskripsi & Nilai Jual |
dags/main_data_dag.py | Berisi DAG Airflow yang memanggil fungsi ELT dari src/etl_logic.py. |
Docker/Dockerfile | Containerization! Berisi instruksi untuk membuat Docker Image Airflow yang sudah terinstal semua dependensi di requirements.txt dan menyalin semua kode DAG & Aplikasi datamu. |
Ekspor ke Spreadsheet
Nilai Jual Terpenting: Dengan menggunakan Docker, kamu memastikan bahwa pipeline datamu akan berjalan konsisten di mana pun ia di-deploy—lokal, staging, maupun production. Ini menghilangkan masalah “works on my machine“.
Komponen 3: Otomasi Infrastruktur & Deployment (The CI/CD Magic)
Ini adalah bagian yang membedakanmu dengan DE lain. Di sinilah kamu menunjukkan skill DevOps for Data.
3A. Infrastructure as Code (IaC) dengan Terraform
Tujuan: Membuat infrastruktur dasar di Cloud (misal: AWS) secara otomatis.
| File Wajib | Deskripsi & Nilai Jual |
iac/main.tf | Berisi konfigurasi Terraform untuk membuat sumber daya Cloud yang dibutuhkan pipeline (misal: AWS S3 Bucket untuk landing zone data dan AWS RDS/PostgreSQL sebagai Data Warehouse tujuan). |
iac/variables.tf | Berisi variabel yang bisa diubah (misal: nama bucket, region). |
Ekspor ke Spreadsheet
Tujuan di tahap ini: Menunjukkan kamu bisa menyediakan lingkungan Data Warehouse secara otomatis, cepat, dan terulang (Idempotent). Kamu bukan hanya user infrastruktur, tapi Arsitek Infrastruktur.
3B. CI/CD Pipeline dengan GitHub Actions
GitHub Actions (atau GitLab CI, Jenkins) adalah engine yang mengikat semua komponen di atas menjadi proses yang otomatis.
| File Wajib | Deskripsi & Nilai Jual |
.github/workflows/data_pipeline_ci_cd.yml | File konfigurasi utama yang mendefinisikan seluruh proses otomatisasi. |
Ekspor ke Spreadsheet
Tahapan Wajib dalam File YAML:
- Trigger: Mulai ketika ada
pushataupull requestke branchmain. - Stage 1: CI (Continuous Integration)
- Linting: Cek kerapihan kode Python (
flake8atauBlack). - Unit Test: Jalankan
pytestdi dalam container Docker. Jika ada satu tes gagal, pipeline berhenti. - Data Quality Test: Jalankan
Great Expectations. Jika kualitas data gagal, pipeline berhenti.
- Linting: Cek kerapihan kode Python (
- Stage 2: Build & Push Artifact
- Build Docker Image: Buat image Airflow terbaru yang berisi kode yang sudah teruji.
- Push Image: Push image yang sudah teruji ke Docker Hub atau AWS ECR (Container Registry).
- Stage 3: CD (Continuous Deployment)
- Deploy Infrastructure (Optional/Advanced): Jalankan
terraform applyuntuk memastikan database dan bucket sudah siap (hanya untuk perubahan infrastruktur). - Deploy Airflow DAG: Push atau sinkronkan kode DAG yang baru ke server Airflow staging atau production (Biasanya menggunakan
git-syncdi server Airflow atau API Airflow).
- Deploy Infrastructure (Optional/Advanced): Jalankan
Cara Jitu Memamerkan Proyek di GitHub
File README di repository adalah etalase kamu. Jangan hanya mencantumkan kode!
- Arsitektur Diagram: Tampilkan diagram alir yang jelas (Gambarkan Airflow, Docker, AWS S3, dan panah CI/CD Engine). Ini menunjukkan kamu memahami gambaran besar (big picture).
- Link Pipeline Run: Berikan screenshot atau link video pendek (YouTube/Loom) yang menunjukkan pipeline CI/CD di GitHub Actions/GitLab CI berhasil berjalan mulus dari commit hingga deployment.
- Tantangan & Solusi: Ceritakan tantanganmu (misal: “Awalnya sulit mengintegrasikan secret keys AWS, lalu saya memutuskan menggunakan GitHub Secrets untuk keamanan”) dan solusi yang kamu ambil. Ini menunjukkan kemampuan problem-solving.
- Instruksi How to Run: Tulis instruksi yang sangat jelas, termasuk perintah
docker compose uplokal. Ini membuktikan bahwa proyekmu mudah di-replicate.
Kesimpulan:
Portofolio Data Engineer yang paling killer adalah yang menunjukkan bahwa kamu bisa membuat otomatisasi penuh dari hulu ke hilir. Proyek ini membuktikan kamu tidak hanya mahir Python dan SQL, tetapi juga menguasai praktik DevOps, Cloud, dan Software Engineering.
Dengan Blueprint Proyek CI/CD ini, kamu telah menciptakan bukti nyata bahwa kamu adalah Elite Data Engineer yang siap membawa value tinggi ke perusahaan. Selamat berkarya, dan bersiaplah menerima telepon dari Hiring Manager!
penulis: Wilda Juliansyah
Post Comment