February 08, 2024
Dalam dunia pengembangan perangkat lunak, pengelolaan konfigurasi menjadi aspek penting dalam memastikan aplikasi berjalan dengan lancar di berbagai lingkungan. Salah satu alat yang telah merevolusi cara pengembang mengelola konfigurasi adalah file .env.
Konsep penggunaan variabel lingkungan (environment - env) untuk mengelola konfigurasi sudah ada sejak lama, terutama dalam sistem operasi seperti Unix dan Linux. Namun, penggunaan variabel env secara langsung dalam kode tidak efisien dan kurang fleksibel, terutama ketika aplikasi harus di-deploy ke berbagai lingkungan (development, staging, production).
Kemunculan file .env menjadi solusi bagi masalah tersebut. .env memungkinkan pengembang menyimpan variabel env di luar kode sumber, dalam bentuk file teks yang mudah dibaca. Pengembang dapat menentukan konfigurasi yang spesifik untuk setiap env tanpa harus memodifikasi kode sumber.
Penggunaan .env mulai populer bersamaan dengan munculnya framework pengembangan web seperti Ruby on Rails dan Laravel. Pengembang menggunakan .env untuk menyimpan informasi sensitif seperti API key atau kredensial database, yang tidak seharusnya disimpan dalam kode sumber. Penggunaan .env juga memungkinkan pengembang untuk dengan mudah berbagi konfigurasi dengan anggota tim lainnya.
Penggunaan file .env membawa beberapa keuntungan, antara lain:
Selain itu, ada beberapa kekurangan:
Dalam dunia pengembangan perangkat lunak modern, .env telah menjadi standar de facto dalam pengelolaan konfigurasi. Pengembang dari berbagai bahasa dan framework menggunakan .env untuk mengelola konfigurasi dengan efisien dan aman.
Salah satu solusi yang muncul untuk mengatasi kekurangan file env adalah menggunakan server konfigurasi. Server konfigurasi adalah aplikasi eksternal untuk menyimpan konfigurasi dan rahasia. Ini dianggap sebagai pusat untuk mengelola rahasia di seluruh lingkungan.
Beberapa layanan cloud dapat berfungsi sebagai server konfigurasi seperti AWS Parameter Store, Google Secrets Manager, atau HashiCorp Vault untuk para penggemar open source. Di tempat saya bekerja sendiri sudah memindahkan konfigurasi dari env file ke layanan Infisical. Setelah kita menyimpan informasi rahasia atau konfigurasi, kita akan diberikan URL seperti https://app.com/config/DB_PASSWORD/v1
.