Menu Bar

Kata Mutiara

"Keberhasilan merupakan tetesan dari jeri-payah perjuangan, luka, pengorbanan dan hal-hal yang mengejutkan. Kegagalan merupakan tetesan dari kemalasan, kebekuan, kelemahan, kehinaan dan kerendahan"

ANIMASI TULISAN BERJALAN

Showing posts with label arsitektur IT. Show all posts
Showing posts with label arsitektur IT. Show all posts

Friday, August 22, 2025

Pertimbangan pembuatan TSD dalam project banking

Dalam project banking (atau financial services secara umum), dokumen TSD (Technical Specification Document) itu sangat penting karena sistemnya harus regulasi-compliant, secure, dan audit-ready.

Berikut hal-hal yang perlu diperhatikan saat membuat TSD untuk project banking:


📌 1. Pendahuluan & Konteks

  • Latar belakang sistem (misal: Core Banking, Loan System, Payment Gateway).

  • Scope dokumen → sistem apa saja yang dicakup.

  • Stakeholder → tim developer, QA, security, auditor, regulator.

  • Standar/regulasi → OJK, BI, PCI DSS, ISO 27001.


📌 2. Arsitektur Sistem

  • High-Level Diagram → komponen utama (API Gateway, microservices, Kafka, DB, Redis, security layer).

  • Integration Points → misalnya dengan core banking, ATM switch, payment network (Visa/MasterCard), dll.

  • Data Flow Diagram → aliran data transaksi (contoh: transfer uang dari mobile → API → core banking → settlement).


📌 3. Spesifikasi Teknis

  • Teknologi utama → Java (Spring Boot, Reactive), Database (Oracle, MongoDB, Redis), Kafka, Docker, K8s.

  • Deployment architecture → bare metal, VM, cloud (AWS, GCP, Azure), Kubernetes.

  • Networking → port, ingress/egress rules, firewall.

  • Scalability plan → horizontal scaling via Kubernetes, autoscaler.


📌 4. Keamanan (Security)

  • Authentication & Authorization → OAuth2, JWT, SSO, RBAC.

  • Data Security

    • Encryption in-transit (TLS 1.2/1.3).

    • Encryption at-rest (AES-256 untuk DB, Redis, Kafka).

  • Key Management (Vault, HSM, KMS).

  • Audit Trail → semua transaksi harus log immutable (untuk compliance & fraud detection).

  • Security Controls → OWASP Top 10, anti-SQL injection, anti-CSRF, rate limiting.


📌 5. Data Management

  • Data Model → ERD, schema MongoDB/Oracle, indexing.

  • Data Retention Policy (berapa lama transaksi disimpan).

  • Archiving Strategy → cold storage untuk transaksi lama.

  • Backup & Restore → strategi HA (high availability).

  • Consistency → transaksi harus ACID (atau saga pattern untuk microservices).


📌 6. Integrasi & Messaging

  • Kafka/RabbitMQ → topik, partisi, consumer group, retry & DLQ (Dead Letter Queue).

  • Batch Processing → end-of-day settlement, report generation.

  • External API → misalnya integrasi BI-FAST, SWIFT, VISA/MasterCard.


📌 7. Performance & Reliability

  • Latency Target → misalnya < 500ms untuk transfer antar rekening.

  • Throughput → berapa transaksi per detik yang didukung.

  • High Availability → cluster DB, Kafka, Redis sentinel.

  • Disaster Recovery → RPO/RTO target.


📌 8. Monitoring & Logging

  • Observability → Prometheus, Grafana, OpenTelemetry.

  • Log Management → ELK stack (Elasticsearch, Logstash, Kibana) atau Loki.

  • Alerting → Slack/Email/PagerDuty untuk SLA breach.

  • Business Metrics → jumlah transaksi, gagal transaksi, fraud detection.


📌 9. Compliance & Audit

  • Regulasi → OJK/BI compliance, PCI DSS (jika ada kartu).

  • Audit Logs → immutable, disimpan min. 5–7 tahun.

  • User Privacy → PII handling, GDPR/PDPA compliance.

  • Change Management → semua perubahan harus lewat approval (DevSecOps pipeline).


📌 10. Non-Functional Requirements

  • Skalabilitas, maintainability, portability.

  • SLA & SLO (availability target 99.9% misalnya).

  • Testing strategy → Unit, Integration, UAT, Security Testing, Performance Testing.


⚡ Jadi, TSD untuk banking harus sangat detail, tidak cuma teknis coding, tapi juga regulasi, security, dan audit karena sifat domainnya yang kritikal.

Apa itu K8s ?

 K8s = Kubernetes 🚀

👉 Kubernetes adalah platform open-source untuk orkestrasi container (seperti Docker), yang membantu mengelola deployment, scaling, networking, dan monitoring aplikasi secara otomatis.

Fungsi Utama Kubernetes (K8s)

  1. Container Orchestration

    • Mengatur banyak container (misalnya Docker) yang berjalan di banyak server (cluster).

  2. Automatic Scaling

    • Jika traffic naik, Kubernetes otomatis menambah container (pods). Jika traffic turun, pods bisa dikurangi.

  3. Self-Healing

    • Jika container crash, Kubernetes otomatis menjalankan ulang (restart) pod atau memindahkannya ke node lain.

  4. Service Discovery & Load Balancing

    • Pod punya IP dinamis → K8s memberi DNS/service agar aplikasi bisa saling menemukan.

    • Load balancing otomatis antar pod.

  5. Rolling Updates & Rollback

    • Bisa deploy versi baru aplikasi tanpa downtime (rolling update).

    • Bisa rollback ke versi lama jika ada masalah.

  6. Resource Management

    • Mengatur CPU, RAM, Storage agar efisien.


Komponen Utama K8s

  • Cluster → sekumpulan server (node).

  • Master Node (Control Plane) → otak yang mengatur cluster.

  • Worker Node → menjalankan container.

  • Pod → unit terkecil (berisi 1 atau lebih container).

  • Deployment → cara mendefinisikan jumlah pod & update strategy.

  • Service → memberi akses stabil ke pod (DNS + load balancing).

  • Ingress → aturan routing HTTP/HTTPS ke service (misalnya /accounts/* → Accounts Service).


🔑 Singkatnya:
Kalau Docker = bikin dan jalankan container, maka Kubernetes = mengatur ribuan container agar tetap sehat, scalable, dan mudah di-maintain.

iklan

iklan