Software Architecture dan Docker Orchestration
Apa itu Software Architecture?
Software architecture adalah blueprint dari sebuah sistem perangkat lunak yang dapat menjelaskan komponen-komponen penting yang ada, hubungan di antara komponen-komponen tersebut, dan cara interaksinya satu sama lain. Selain itu, software architecture juga bisa memberikan solusi untuk memenuhi semua requirement yang ada dengan tujuan mengoptimalkan performa dan keamanan dari sistem yang ingin dibuat. Berikut merupakan beberapa keuntungan yang bisa didapatkan ketika membuat software architecture yang baik di awal proyek:
- Menghindari terbuangnya waktu yang disebabkan perubahan desain atau refactoring kode
- Menghindari pemborosan finansial
- Mengindari mundurnya waktu target penyelesaian proyek
Jenis-Jenis Pattern di Software Architecture
- Client-server
- Peer-to-peer
- Model-View-Controller (MVC)
- Microservices
- Event-driven
- Layered
- Hexagonal
Docker Orchestration
Docker orchestration adalah suatu kegiatan yang terkait dengan pengaturan siklus hidup dari container, terutama di dalam environment yang besar. Salah satu tool yang bisa digunakan untuk melakukan hal tersebut adalah docker swarm. Berikut merupakan hal-hal yang bisa dikontrol dan diautomasi oleh developer ketika menggunakan docker orchestration:
- Proses memulai dan memberhentikan container
- Mengekspos fungsionalitas dari container ke user atau container lainnya
- Memonitor dan merespon perilaku container
- Mendeploy container versi baru dengan zero-downtime
- Scalling secara otomatis atau manual