Pemahaman tentang DevOps & Maintainability, hingga Docker

Patricia Anugrah
4 min readJun 24, 2021

--

Sumber: baytechconsulting.com

Apakah itu DevOps dan Maintainability?

DevOps berasal dari kata Development dan Operation. DevOps merupakan prinsip developer untuk mengkoordinasikan antar tim, dari tim development dengan tim operations dengan efektif dan efisien dalam seluruh service lifecycle, dari desain, proses development, hingga production. Maintainability adalah kemudahan suatu sistem software, produk, atau komponen yang dapat di-maintain untuk mudah memodifikasi untuk memperbaiki kekurangan, meningkatkan performa atau atribut lain, menemukan kebutuhan baru, dan membuat maintenance di masa depan lebih mudah, atau menghadapi kemudahan untuk beradaptasi dengan perubahan environment.

Salah satu platform terkenal yang digunakan untuk develop dan maintain software oleh DevOps Engineers atau DevOps practitioners adalah docker. Docker ini merupakan open platform yang memiliki banyak kegunaan, seperti untuk developing, shipping, dan running aplikasi. Developers menggunakan docker untuk deploy aplikasi ke dalam suatu container yang berjalan di host sistem operasi. Saya akan menjelaskan lebih dalam tentang docker di bawah ini.

Docker..??

Sebenarnya docker juga merupakan suatu hal yang saya baru kenal. Selain itu, pada PPL 2021 kali ini tidak menggunakan docker sehingga saya belum pernah mempraktekkannya sendiri penggunaannya. Namun, tidak ada salahnya untuk mengetahui tentang docker ini. Untuk memahami apa itu docker, perlu dipahami container orchestration terlebih dahulu. Sebab, docker merupakan open platform yang dibangun sebagai container orchestrastion.

Container Orchestration

…merupakan otomatisasi dari segala aspek dalam mengkoordinasi dan mengelola containers. Container orchestration berfokus pada pengelolaan siklus kehidupan dari containers dan environments dinamis mereka.

Kenapa Kita Membutuhkan Container Orchestration?

Container orchestration digunakan untuk mengotomatisasi tasks at scale berikut:
• Mengkonfigurasi dan menjadwalkan kontainer.
• Penyediaan dan penyebaran kontainer.
• Ketersediaan kontainer.
• Konfigurasi aplikasi pada kontainer yang mereka jalankan.
• Penskalaan kontainer untuk menyeimbangkan beban kerja aplikasi secara merata di seluruh infrastruktur.
• Pengalokasian sumber daya antar kontainer.
Load balancing, traffic routing, and service discovery dari kontainer.
• Pemantauan kesehatan kontainer.
• Pengamanan interaksi antar kontainer.

Bagaimana Cara Bekerja Container Orchestration?

Container Orchestration bekerja dengan tools seperti Kubernetes dan Docker Swarm. Files konfigurasi memberi tahu container orchestration tool bagaimana jaringan antara kontainer-kontainer dan di mana menyimpan logs. Orchestration tool juga menjadwalkan deployment dari kontainer kepada clusters dan menentukan host terbaik untuk kontainer. Setelah host terpilih, orchestration tool mengelola lifecycle dari kontainer berdasarkan spesifikasi yang telah ditentukan. Container orchestration tools bekerja pada environment apapun yang menjalankan kontainer.

Orchestration tools untuk Docker termasuk berikut:

  • Docker MachineProvision hosts dan meng-install Docker Engine.
  • Docker Swarm Clusters multiple Docker hosts di bawah single host. Ini juga dapat berintegrasi dengan tool apa saja yang bekerja pada single Docker host.
  • Docker Compose — Menjalankan aplikasi-aplikasi multi-container dengan menciptakan kontainer-kontainer yang dibutuhkan.

Lalu, mengapa Docker?

Anggap saja terjadi dua pekerja, satu developer dan satu lagi seorang tester. Ketika sebelum ada docker, developer tersebut menjalankan kode yang telah dia buat dengan lancar. Lalu, dia mengirim kode ini kepada tester. Namun, pada tester, dia tidak dapat menjalankan kode tersebut pada sistemnya. Kode ini tidak dapat berjalan pada sistem lain karena terdapat perbedaan pada environments komputer mereka. Jadi, apakah solusi dari permasalahan ini?

Ada yang bilang Virtual Machine dapat menjadi solusi permasalahan tersebut. Namun, menurut orang lain, docker dapat menjadi solusi yang lebih baik. Seperti yang dilihat pada gambar di bawah ini, perbedaan paling signifikan dari VM dan docker adalah VM mempunyai Guest OS.

Perbedaan VM dan Docker.

Namun, berikut merupakan alasan mengapa Docker lebih baik daripada VM.

  • OS Support: Docker mengambil space lebih sedikit.
  • Boot-up time: Waktu docker lebih sebentar.
  • Performance: Pada VM, menjalankan beberapa VM menyebabkan performa yang tidak stabil. Sementara kontainer memiliki performa lebih baik karena mereka dijalankan di satu mesin Docker.
  • Scaling: Docker mudah di-scale up, sementara VM susah.
  • Efficiency: Docker memiliki efisiensi yang tinggi.
  • Portability: Docker mudah dilewati pada platform-platform berbeda.
  • Space allocation: Pada Docker, data dapat dibagi dan digunakan dalam beberapa kontainer.

Sehingga, setelah menggunakan docker, kasus developer dan tester di atas mendapatkan solusi. Tester yang turut memakai docker dapat menjalankan kode developer.

Lebih tepatnya, apakah itu Docker?

Docker merupakan tool yang digunakan untuk mengotomatisasi deployment dari aplikasi dengan kontainer yang lightweight sehingga aplikasi dapat bekerja secara efisien pada environment yang berbeda. Kontainer sendiri merupakan software package yang berisi seluruh dependencies yang dibutuhkan untuk menjalankan sebuah aplikasi. Sehingga, dengan docker, multiple containers dapat dijalankan pada hardware yang sama, mengelola aplikasi yang terpisahkan, produktivitas tinggi, dan konfigurasi yang cepat dan mudah.

Sebagai contoh untuk menjelaskan penggunaan docker, ada empat blok diisi dengan tiga kamar dan satu dapur. Tiga tamu yang menginap pada satu penginapan yang sama. Namun, ketiga tamu ini tidak ingin berbagi dapur. Sama halnya, dengan contoh ini menggunakan komputer, terdapat tiga spacae untuk tiga aplikasi yang menggunakan tiga framework berbeda dan satu space untuk menyimpan tiga framework tersebut. Untuk masalah penginapan, solusinya adalah setiap kamar tamu diberikan dapur sendiri. Sama halnya dengan masalah komputer, dengan menggunakan docker, ketiga aplikasi dapat menggunakan framework yang dibutuhkan. Space yang sekarang menjadi kosong dari komputer tersebut dapat diisi dengan aplikasi baru dengan framework yang dibutuhkan.

Referensi

--

--

No responses yet