01 Pengenalan Logging Pada Golang
Pengenalan Logging
Logging yang berisikan informasi dari sebuah sistem bisa memberikan pesan yang jelas terkait suatu kejadian yang terjadi pada sistem kita. Logging bukan hanya untuk kebutuhan menampilkan informasi dan kadang juga bisa digunakan sebagai proses debugging ketika terjadi masalah pada sistem yang sudah kita buat.
12 Membuat Dependecy Injection Library Google Wire
Kali ini kita akan memcoba membuat dependency Injection menggunakan Library Wire dari github.com/google/wire. Kegunaan dari library ini yaitu kita bisa membuat dependency yang begitu banyak bisa kita generate langsung dengan ringkas dan mudah.
11 Tambah Unit Test Menggunakan Mockery
Pada tahapan ini kita akan membutuhkan dependency sebagai berikut
brew install mockery
go get github.com/stretchr/testify
go mod tidy
go mod vendor
go get github.com/DATA-DOG/go-sqlmock
Pada projek kali ini kita akan mencoba membuat unit test menggunakan library mocking dengan nama mockery
. Library ini banyak dipakai oleh kalangan developer golang karena kemudahan penggunaannya dan memiliki kelebihan fitur-fitur yang bisa mengcover semua unit test yang diperlukan. Jika teman-teman pernah menggunakan unit test pada golang mungkin sudah tahu library ini tetapi jika teman-teman ingin lebih mendapatkan referensi yang lebih banyak, Santekno juga telah memberikan postingan sebelumnya diantaranya:
10 Menambahkan Authentication Sederhana
Pada tahapan ini kita akan mencoba menambahkan Authentication sederhana dengan menggunakan middleware pada Golang. Perlu teman-teman ketahui bahwa middleware adalah proses mencegat suatu API yang mana sebelum service ketika diakses menuju ke dalam handler layer maka akan melewati middleware layer ini (yang akan kita buat) untuk menangkap dan memproses sesuatu untuk kebutuhan tertentu. Misalkan, pada kasus ini kita akan mencekat proses service untuk melihat apakah API tersebut memiliki header dengan ketentuan key X-API-Key
.
Deployement Service ke Google Kubernetes Engine Cloud (GKE)
Pada kali ini kita akan coba untuk melakukan deployment service kita ke dalam Server Google Cloud Platform. Pada Google Cloud sudah disediakan khusus untuk deployment berbentuk Kubernetes yaitu berupa Google Kubernetes Engine sehingga ketika kita ingin mendeploy service kita menjadi lebih mudah.
Implementasi Microservices Architecture menggunakan Kubernetes
Pada kesempatan ini kita akan mencoba membuat aplikasi yang sudah mengimplementasikan Microservice Architecture dengan menggunakan Kubernetes. Agar lebih tergambar bagaimana kita akan mencoba membuatnya yaitu kita bisa melihat gambar dibawah ini.
Memahami Kubernetes Services
Kubernetes Service memberikan komunikasi antar komponen di dalam ataupun diluar dari aplikasi. Kubernetes Services ini akan membantu menghubungkan aplikasi satu sama lain terhubung dengan pengguna juga.
Memahami Kubernetes Networking
Networking pada Kubernetes memang sangat challenging karena beberapa perlu kamu tahu bagaimana jaringan komputer berkomunikasi. Kubernetes memiliki mekanisme sharing machine atau virtual machine setiap antara aplikasi-aplikasi. Maka Kubernetes bekerja menggunakan ports yang mana ports tersebut tidak boleh sama dengan yang lainnya untuk menghindari konflik ports.
Memahami Kubernetes Deployments
Kita akan belajar bagaimana Kubernetes bekerja dalam proses deployment. Kuberntes bisa memberikan beberapa tags environment sehingga kita bisa tahu deployment itu dengan label apa.
Memahami Kubernetes Replica Controller dan Replicaset
Replica Controller
Replica Controller adalah mekanisme yang digunakan untuk melakukan replikasi aplikasi dan kita bisa handle ketika aplikasi kita terdapat failure atau melakukan inisialisasi POD yang failed. Maka dengan Replica controller ini kita bisa mengatur scale suatu aplikasi kita yang sedang berjalan.
Memahami PODs Kubernetes
Kita akan mencoba membuat pod
menggunakan YAML file pada Kubernetes. Kubernetes biasanya menggunakan YAML file untuk membuat suatu objek-objek konfigurasi terkait PODs, replica, deployment, service dan lainnya.
Mempelajari Kembali Sintaks YAML
YAML Konfigurasi
A YAML file digunakan untuk mewakili data. Data konfigurasi kasus di sini adalah perbandingan cepat data sampel dalam tiga format berbeda.