Sabtu, 28 Januari 2023

 

Service Aplikasi

1. Container

Teknologi Container merubah cara mengembangkan, mendistribusikan dan menyebarkan perangkat lunak, Teknologi Container diciptakan untuk memperbaiki skalabilitas dan elastisitas dari aplikasi dan operasi pada cloud computing. Container adalah enkapsulasi aplikasi dengan dependensinya. Pada pertama kemunculannya, Container mempunyai bentuk kecil dari mesin virtual (VM) —seperti VM, Container menampung instance terisolasi dari sistem operasi (OS), yang dapat digunakan untuk menjalankan aplikasi. Perbandingan antara teknologi container dan virtuliasasi hardware seperti virtual machine.Pada teknologi virtual machine terdapat hypervisor yang mengatur management VM dan setiap VM mempunyai Guest OS masing masing sedangkan pada teknologi container fungsi hypervisor di gantikan oleh container enginer seperti docker yang diatasnya terdapat container dengan masing masing applikasi yang teisolasi satu dengan yang lainnya. Managemen interface pada container engine berinteraksi dengan kernel sistem operasi untuk menyediakan dan mengatur container itu sendiri. Container engine memanfaatkan beberapa fitur pada kernel seperti cgroup, namespace, SE Linux dan chroot.

Beberapa penjelasan tentang bagaimana container engine menggunakan fitur kernel tersebut antara lain:

· Cgroup atau control group merupakan salah satu fitur dari linux yang menyediakan pembatasan pengunaan sumber daya seperti cpu, memory, group proses dan disk. Untuk magemen sumber daya teknologi container menggunakan cgroup sebagai mekanisme dasar.

· Namespace menyediakan view pada sistem bagi setiap proses seperti limitasi apa saja yang bisa dilihat oleh proses, Linux namespace membuat abstraksi dari sumber daya dan membuatnya muncul sebagai instance terpisah didalam container, inilah yang membuat beberapa container dapat menggunakan sumber daya yang sama secara simultan.

· SE Linux merupakan kepanjangan dari Security Enhance Linux adalah implementasi dari multi-level security (MLS), mekanisme mandatory access control (MAC) dan multi-category security (MSC) pada linux kernel, dengan penggunaan SE Linux policy, container engine dapat menyediakan keamanan pada setiap container

· Chroo atau change root digunakan untuk merubah root direktori pada proses dan ini adalah turunan proses untuk membuat direktori yang hanya dapat terlihat pada proses yang diberikan akses, tujuan dari penggunaan chroot pada container engine adalah untuk isolasi file system pada setiap container.

 

2. Docker

        Docker container adalah sebuah paket software yang berisi semua dependensi yang diperlukan untuk menjalankan aplikasi tertentu. Semua konfigurasi dan instruksi untuk memulai atau menghentikan container diperintahkan oleh sebuah komponen yang disebut ‘image Docker’. Container ini menghindarkan user dari masalah kompatibilitas yang mungkin terjadi ketika menjalankan aplikasi di beberapa sistem yang berbeda. Sebab, dengan container ini, software akan berjalan dengan cara yang sama di environment mana pun. Kapan pun image dijalankan user, container baru akan dibuat. Pengelolaan container juga mudah berkat bantuan Docker API atau command line interface (CLI). Apabila beberapa container diperlukan, user bisa mengontrolnya dengan Docker compose tool.

Selain container yang baru saja dibahas, arsitektur Docker terdiri dari empat komponen utama, yaitu:

— Client Docker – komponen utama untuk membuat, mengelola, dan menjalankan aplikasi dalam container. Client Docker adalah metode utama untuk mengontrol server Docker melalui CLI seperti Command Prompt (Windows) atau Terminal (macOS, Linux).

— Server Docker – juga disebut daemon Docker. Server Docker menunggu permintaan REST API yang dibuat oleh client Docker serta mengelola image dan container.

— Image Docker – komponen yang memerintahkan server Docker terkait persyaratan tentang cara container Docker dibuat. Image bisa didownload dari website seperti Docker Hub. Anda juga bisa membuat custom image, yaitu dengan membuat Dockerfile dan meneruskannya ke server. Perlu diketahui bahwa Docker tidak menghapus image yang tidak digunakan, jadi user harus menghapus data image sendiri agar tidak menumpuk.

— Registry Docker – aplikasi sisi server open-source yang digunakan untuk menghosting dan mendistribusikan image Docker. Registry sangat berguna untuk menyimpan image secara lokal dan mengelolanya sepenuhnya. Atau, user bisa mengakses Docker Hub yang tadi disebutkan, yang merupakan repositori image Docker terbesar di dunia.

 

Docker memiliki banyak fungsi untuk berbagai contoh penerapan, yitu :

Mencoba Software Baru

Dengan Docker, Anda bisa mencoba software baru tanpa harus menginstalnya secara manual. Docker juga berguna kalau Anda memerlukan software yang harus disiapkan cepat.

Sebagai contoh, proses setup server MySQL bisa memakan waktu lama. Nah, dengan Docker, Anda hanya memerlukan satu perintah melalui CLI untuk melakukannya.

Mempelajari CLI

Meskipun bisa berjalan pada semua jenis perangkat, tadinya Docker dirancang khusus untuk Linux. Jadi, kami menyarankan agar Anda mengonfigurasinya pada sistem yang berbasis Linux.

Dengan begitu, Anda pun bisa mempelajari administrasi sistem, command line interface, dan scripting lebih lanjut dengan lebih baik.

Mengurangi Risiko Insiden

Apabila terjadi kegagalan hardware, user bisa segera mengembalikan perubahan apa pun yang dibuat kalau tersedia image Docker.

User hanya perlu mengimpor backup image ke perangkat baru, lalu Docker akan membereskan sisanya. Backup image Docker juga berguna saat developer ingin melakukan rollback ke versi lama software tertentu karena adanya bug atau masalah kompatibilitas.

 

3. Podman

        Podman adalah alat bantu asli Linux tanpa daemon, sumber terbuka, yang dirancang untuk memudahkan menemukan, menjalankan, membangun, berbagi, dan menggunakan aplikasi menggunakan Open Containers Initiative (OCI) Containers dan Container Images. Podman menyediakan antarmuka baris perintah (CLI) yang akrab bagi siapa pun yang telah menggunakan Docker Container Engine. Sebagian besar pengguna dapat dengan mudah melakukan alias Docker ke Podman (alias docker = podman) tanpa masalah. Serupa dengan Mesin Kontainer umum lainnya (Docker, CRI-O, containerd), Podman mengandalkan Container Runtime yang sesuai dengan OCI (runc, crun, runv, dll) untuk berinteraksi dengan sistem operasi dan membuat kontainer yang sedang berjalan. Hal ini membuat kontainer berjalan yang dibuat oleh Podman hampir tidak dapat dibedakan dengan kontainer yang dibuat oleh mesin kontainer umum lainnya.

Kontainer yang berada di bawah kendali Podman dapat dijalankan oleh root atau oleh pengguna yang tidak memiliki hak istimewa. Podman mengelola seluruh ekosistem kontainer yang meliputi pod, kontainer, citra kontainer, dan volume kontainer menggunakan pustaka libpod. Podman berspesialisasi dalam semua perintah dan fungsi yang membantu Anda memelihara dan memodifikasi citra kontainer OCI, seperti menarik dan menandai. Ini memungkinkan Anda untuk membuat, menjalankan, dan memelihara kontainer dan citra kontainer dalam lingkungan produksi.

 

4. Kubernetes

        Kubernetes, juga dikenal sebagai K8s, adalah sistem sumber terbuka untuk mengelola aplikasi dalam kontainer di beberapa host. Kubernetes menyediakan mekanisme dasar untuk penerapan, pemeliharaan, dan penskalaan aplikasi.

Kubernetes dibangun berdasarkan pengalaman selama satu setengah dekade di Google dalam menjalankan beban kerja produksi dalam skala besar menggunakan sistem yang disebut Borg, yang dikombinasikan dengan ide dan praktik terbaik dari komunitas.

Kubernetes dihosting oleh Cloud Native Computing Foundation (CNCF). Jika perusahaan Anda ingin membantu membentuk evolusi teknologi yang dikemas dalam kontainer, dijadwalkan secara dinamis, dan berorientasi pada layanan mikro, pertimbangkan untuk bergabung dengan CNCF. Untuk detail tentang siapa saja yang terlibat dan bagaimana peran Kubernetes, baca pengumuman CNCF.

 

5. Openshift

        OpenShift adalah platform orkestrasi kontainer yang dikembangkan oleh Red Hat. Platform ini dibangun di atas Kubernetes dan menyediakan platform untuk menerapkan, menskalakan, dan mengelola aplikasi dalam kontainer. OpenShift menawarkan fitur-fitur seperti penskalaan otomatis, penyembuhan mandiri, dan keamanan bawaan. OpenShift juga menyediakan konsol manajemen berbasis web, antarmuka baris perintah, dan API untuk mengotomatiskan penerapan. OpenShift bisa digunakan di lokasi, di awan, atau di lingkungan hibrida. Ini sering digunakan di lingkungan perusahaan untuk menerapkan layanan mikro, aplikasi data besar, dan aplikasi cloud-native.

 

6. Elasticsearch

        Elasticsearch adalah mesin pencari dan analitik terdistribusi open-source real-time yang dibangun di atas Apache Lucene™, sebuah perpustakaan mesin pencari teks lengkap dan dikembangkan di Java. Elasticsearch dimulai sebagai versi skalabel dari kerangka kerja pencarian sumber terbuka Lucene yang menggunakan struktur berdasarkan dokumen, bukan tabel dan skema, serta dilengkapi dengan API REST yang ekstensif untuk menyimpan dan mencari data.

Elasticsearch lebih dari sekadar pencarian teks lengkap. Ini dapat digambarkan dengan lebih baik sebagai penyimpanan dokumen real-time terdistribusi di mana setiap bidang diindeks dan dapat dicari. Ini adalah mesin pencari terdistribusi dengan analitik waktu nyata yang mampu menskalakan ke ratusan server dan petabyte data terstruktur dan tidak terstruktur. Dan mengemas semua fungsionalitas ini ke dalam server mandiri yang dapat digunakan oleh aplikasi Anda melalui RESTful API sederhana, menggunakan klien web atau dari baris perintah.

 

7. Grafana

        Grafana adalah perangkat lunak sumber terbuka yang populer yang memungkinkan pengguna untuk membuat dan melihat dasbor yang indah dan interaktif untuk memantau dan menganalisis data. Grafana dapat diinstal pada sistem Linux menggunakan berbagai metode, seperti menggunakan manajer paket (misalnya apt, yum, dll.) atau dengan mengunduh biner dan menjalankannya secara manual. Setelah terinstal, Grafana dapat dikonfigurasi untuk terhubung ke berbagai sumber data, seperti InfluxDB, Prometheus, Elasticsearch, dan banyak lagi. Pengguna kemudian dapat membuat dan menyesuaikan dasbor, visualisasi, dan peringatan untuk memantau dan menganalisis data mereka secara real-time.

 

8. Ansible

        Ansible meledak menjadi populer segera setelah dirilis pada tahun 2012, dan telah menjadi alat bantu utama bagi para administrator jaringan. Dalam artikel hari ini, kita akan langsung membahas dan memberi Anda gambaran yang bagus tentang apa yang dilakukan Ansible dan bagaimana Anda bisa memaksimalkannya.

Ansible adalah platform otomatisasi sumber terbuka. Artinya, platform ini memungkinkan Anda mengelola instalasi perangkat lunak, pembaruan, konfigurasi, dan tugas-tugas dalam lingkungan jaringan Anda. Ini sangat berguna dalam situasi di mana Anda perlu melakukan operasi berurutan. Ini juga mudah digunakan, jika dibandingkan dengan solusi serupa lainnya.

Ansible merupakan manajer server jarak jauh yang gratis dan bersumber terbuka yang tersedia untuk Linux, Mac, dan BSD. Ada juga versi perusahaan yang disebut Ansible Tower, yang merupakan solusi berbasis web dan membuat segalanya lebih mudah.

 

 

 

Dibuat Oleh : Dwi Gita Anggraeni

Sebagai Peserta Beasiswa Protonema 2022/2023

 

Tidak ada komentar:

Posting Komentar

RESTful API

RESTful API adalah salah satu jenis arsitektur API (Application Programming Interface) yang sering digunakan dalam pengembangan aplikasi web...