24.5 Cloud, Infrastruktur, dan Keamanan: Wilayah yang Harus Dikenali

Setelah mampu merancang sistem, arsitek juga harus paham bagaimana sistem itu dijalankan dan diamankan. Sebab, diagram yang indah di papan tulis belum berarti apa-apa sampai sistem itu berjalan di lingkungan produksi dan melayani pengguna sungguhan.

Bayangkan lapisan-lapisan berikut sebagai fondasi yang harus dikuasai arsitek, di mana setiap lapisan di atas memengaruhi keputusan di bawahnya.

flowchart TD A[Desain Sistem: Microservice, Event-Driven] --> B[Cloud: Elasticity, Network, Storage] B --> C[Infrastruktur: IaC, Container, Monitoring] C --> D[Keamanan & Reliability: Security by Design, Fault Tolerance, Disaster Recovery] D --> E[Keputusan Arsitek yang Matang]

Bayangkan skenario ini: Anda merancang arsitektur microservice dengan event-driven communication. Setiap service terisolasi, skalabilitas terjaga, dan failure mode sudah diperhitungkan. Tapi ketika tim operasional mulai men-deploy, mereka bertanya: "Bagaimana cara memonitor event yang gagal? Di mana log-nya? Siapa yang punya akses ke message broker?" Anda tidak bisa menjawab karena selama ini Anda hanya berpikir sampai level kode dan komunikasi antar-service.

Di sinilah pentingnya mengenali cloud, infrastruktur, keamanan, dan reliability. Bukan berarti Anda harus menjadi administrator server atau spesialis keamanan. Tapi Anda harus cukup paham untuk membuat keputusan desain yang mempertimbangkan lingkungan produksi.

Mulai dari cloud. Di era sekarang, hampir semua sistem berjalan di atas cloud, entah itu public cloud seperti AWS, Azure, atau GCP, maupun private cloud internal. Sebagai arsitek, Anda tidak perlu hafal semua layanan cloud. Tapi Anda perlu memahami konsep cloud native: bagaimana aplikasi dirancang agar memanfaatkan elastisitas cloud, bagaimana penyimpanan data bekerja di lingkungan terdistribusi, dan bagaimana network traffic diatur. Ketika seorang engineer mengusulkan menyimpan file di server lokal, Anda harus bisa melihat implikasinya terhadap skalabilitas dan disaster recovery.

Selanjutnya infrastruktur. Dulu, infrastruktur adalah urusan tim operasional. Sekarang, batas antara pengembang dan operasional semakin kabur. Infrastructure as code, container orchestration, dan deployment jalur pemrosesan adalah realitas sehari-hari. Anda tidak perlu menulis Terraform setiap hari, tapi Anda harus paham bagaimana keputusan desain Anda mempengaruhi cara sistem di-deploy dan di-scale. Misalnya, memilih database yang membutuhkan persistent volume akan mempengaruhi strategi deployment dan recovery.

Keamanan adalah area yang paling sering diabaikan oleh orang yang baru masuk ke peran arsitek. Mereka berpikir keamanan adalah urusan tim security. Padahal, keputusan desain yang Anda buat hari ini bisa menjadi celah keamanan besar di kemudian hari. Inilah yang disebut security by design: mempertimbangkan keamanan sejak awal, bukan menambahkannya setelah sistem jadi. Contoh sederhana: bagaimana data mengalir antar-service, siapa yang boleh mengakses API tertentu, bagaimana authentication dan authorization diimplementasikan. Anda tidak perlu menjadi ahli kriptografi, tapi Anda harus tahu pola umum yang aman dan yang tidak.

Terakhir, reliability engineering. Sistem yang baik tidak hanya berfungsi saat semuanya normal, tapi juga saat terjadi kegagalan. Anda perlu memahami konsep seperti fault tolerance, graceful degradation, dan disaster recovery. Bagaimana sistem Anda merespon ketika satu data center mati? Apa yang terjadi ketika traffic tiba-tiba melonjak sepuluh kali lipat? Pertanyaan-pertanyaan ini harus muncul di benak Anda saat merancang, bukan setelah sistem produksi tumbang.

Mengenali keempat area ini bukan berarti Anda harus mengambil sertifikasi cloud atau menjadi penetration tester. Tujuan Anda sebagai arsitek adalah membuat keputusan desain yang matang, yang mempertimbangkan bagaimana sistem akan hidup di dunia nyata. Semakin Anda paham lingkungan produksi, semakin kecil kemungkinan desain Anda kandas di tahap implementasi.

Setelah Anda mampu memikirkan desain dari sisi operasional, langkah selanjutnya adalah memastikan desain itu benar-benar sampai ke tangan tim dan diimplementasikan dengan baik. Di sinilah delivery, platform, dan komunikasi menjadi penentu.