1. Container
Container adalah sejenis Software yang mengemas dan mengisolasi aplikasi secara virtual untuk mempermudah software deployment. Dengan artian container ini memiliki fungsi yang sama dengan Virtual Machine. Akan tetapi berbeda dengan konsep dengan virtual Machine, container ini tidak membutuhkan dedicated operation system (OS kernel) tapi Container Kernel ini dapat digunakan secara bersamaan.
2. Docker
Docker adalah platform perangkat lunak yang memungkinkan Anda membuat, menguji, dan menerapkan aplikasi dengan cepat. Dengan arti docker ini bisa mengemas berbagai perangkat lunak ke dalam unit yang standar yang disebut "Kontainer", kontainer ini berfungsi untuk memudahkan kita mengembangkan software, menyederhanakan konfigurasi, melakukan debugging, melakukan multitenancy, meningkatkan sumber daya yang cepat, dan menyediakan semua yang diperlukan oleh perangkat lunak, seperti pustaka, alat sistem, kode, dan waktu proses.
Istilah - istilah yang ada dalam Docker :
- Docker Image => kumpulan dari file yang menunjang aplikasi.
- Docker Container => sebuah wadah untuk mengemas dan menjalankan aplikasi.
- Docker Cleint => Tempat pengguna yang digunakan untuk mengirimkan sebuah perintah seperti Docker Build, Docker pull, dan Docker run kepada Docker daemon.
- Docker Engine Rest API => komponen yang digunakan untuk berinteraksi dengan Docker daemon, komponen ini bisa diakses oleh client dengan menggunakan HTTP.
- Docker Host => komponen yang digunakan sebagai penyedia lingkungan untuk menjalankan aplikasi, Docker Host ini merupakan Docker yang harus bertanggung jawab menerima perintah yang diberikan oleh Docker Client.
- Docker Registry => sebagai wadah untuk menyimpan Docker Image.
- Docker Hub => sebagai layanan untuk menemukan dan berbagi Docker Image.
Fitur - fitur yang ada pada Docker :
- Docker engine => sebagai pembuat image dan container.
- Docker Image => sebagai registry yang berisikan kumpulan dari image-image.
- Docker Compose => sebagai fitur unggulan yang digunakan untuk menjalankan beberapa container sehingga dapat mengefisienkan waktu.
- Docker for Mac => container yang digunakan pada sistem operasi Mac.
- Docker for Linux => container yang digunakan pada sistem operasi Linux.
- Docker for Windows => container yang digunakan pada sistem operasi Windows.
3. Podman
Podman adalah sebuah utilitas yang digunakan untuk membuat, menjalankan, dan men-debug container yang mematuhi standard Open Container Initiave (OCI). Dengan podman, para developer dapat mengelola container tanpa menggunakan daemon.
Podman juga memiliki Command Line Interface (CLI) yang kompotibel dengan docker serta pengintegritasian yang lebih baik dengan systemd. Podman memudahkan para developer untuk mencari, menjalankan, dan membagikan container.
Penggagas atau pencipta dari podman adalah perusahaan Open Source terkemuka yaitu Red Hat, podman ini digunakan juga sebagai pengganti dari Docker pada layanan cloud mereka yaitu Openshift.
Perbedaan yang utama dari Podman dan Docker adalah :
- Podman tidak memerlukan daemon untuk menjalankan container.
- Secara default Podman tidak memerlukan akses root.
dari perbedaan diatas, membuktikan bahwa podman lebih relatif lebih aman secara arsitektur. Karena tidak adanya daemon yang perlu dijalankan dan tidak perlu root untuk menjalankan container kecuali konfigurasi khusus yang dibuat secara spesifik.
4. Kubernetes
Kubernetes adalah platform open source untuk mengelola kumpulan kontainer dalam suatu cluster server. kubernetes memiliki kemampuan utnuk melakukan penjadwalan aplikasi, load balancing server dan peningkatan kapasitas kontainer secara otomatis.
kubernetes ini banyak digunakan untuk membangun microservices, yaitu aplikasi kecil yang menjadi pengembang dari aplikasi besar dan saling terhubung satu sama lain.
Dengan menggunakan Kubernetes, proses pengembangan aplikasi jadi lebih cepat karena proses scale up aplikasi tidak dibuat sekaligus seperti pada pendekatan monolith.
sudah banyak perusahaan yang menggunakan microservices adalah Netflix, Amazon, dan Apple.
Komponen - komponen yang ada pada kubernetes :
- Cluster
Cluster adalah suatu kelompok berisi server fisik atau vps untuk menjalankan kubernetes.
Cluster memiliki 2 jenis server :
a. Master Node
Master Node adalah server utama yang mengatur semua operasi cluster menggunakan tiga komponen yaitu :
- Kube-apiserver => validasi dan konfigurasi data untuk objek API, yaitu pod, services, volume, dan lainnya.
- kube-controller-manager => melakukan monitor cluster agar sesuai dengan konfigurasi data objek di dalam node.
- Kube-scheduler => menambah objek baru ke node. Misalnya, menginstall pod ke node tertentu.
- Etcd => ruang penyimpanan key value konfigurasi data cluster.
b. Worked Node
Worked Node adalah semua server non master yang berfungsi untuk menjalankan dua komponen, yaitu kubelet dan kube-proxy.
- Kubelet => Komponen untuk memastikan kontainer yang beroperasi berada di dalam objek pod.
- Kube-proxy => memelihara network rules dan meneruskan koneksi ke suatu host.
- Docker image => file dari aplikasi Docker yang berfungsi untuk membuat container.
2. Object
Object yaitu entitas untuk merepresentasikan kondisi dari suatu cluster. ada berbagai object yang ada pada sebuah cluster kubernetes, yaitu :
a. Pod
Pod merupakan objek terkecil di dalam cluster kubernetes yang terletak di dalam node. Fungsinya untuk menjalankan docker images yang membentuk sebuah kontainer.
b. Service
Service adalah objek yang digunakan untuk mengarahkan request atau traffic ke beberapa Pod menggunakan IP address. Tujuannya agar Pod bisa diakses dari luar.
c. Volume
Volume adalah objek yang berfungsi untuk penyimpanan data suatu kontainer. Letaknya di luar kontainer. Misalnya, awsElasticBlockStore, azureDisk, azureFile, cephfs, cinder, configMap.
Pada gambar dibawah ini, yang menjadi sebuah volume itu adalah "/mnt/data/" sedangkan ip address "192.168.0.1" itu adalah servicenya.
d. Name Space
Namespace adalah objek untuk memisahkan resource atau environment cluster. Dengan namespace, Anda dapat memisahkan tiap cluster project supaya tidak saling terganggu satu sama lain.
5.Red Hat Openshift
Red Hat Openshift container platform adalah sebuah software yang dikembangkan oleh Red Hat yang digunakan untuk memudahkan komsumen enterprise dan mitra kerja dalam memperoleh teknologi Open Source. Red Hat Openshift container platform merupakan suatu platform yang stabil dan aman untuk pemasangan berbasis kontainerisasi.
Red Hat Openshift containern juga merupakan paltform Kubertenes perusahaan terkemuka, dengan operasi otomatis untuk mengelola penerapan hybrid dan multi-cloud, yang dioptimalkan untuk produktivitas pengembang dan inovasi tanpa hambatan.
Red Hat Openshift memiliki 5 produk yang berbeda-beda, yaitu :
- Red Hat Openshift
Red Hat Openshift Container Platform ini merupaja sebuah platform yang Menyediakan pengembang dan operator TI untuk membangun, mengembangkan, dan mengelola aplikasi baik untuk infrastruktur multi cloud maupun pada hybrid cloud. Maka dari itu, hal ini dapat membuat pengembangan aplikasi dapat menghemat biaya dan pengerjaannya lebih cepat.
2. OKD
OKD merupakan pembagian kubernetes yang dioptimalisasikan bagi pengembangan aplikasi secara multi-tenant deployment dan secara berkepanjangan. Tools DevOps untuk mempercepat perkembangan aplikasi, mempermudah penggunaan,skalabilitas dan siklus pemeliharaan jangka panjang dengan segala ukuran tim juga ditambahkan oleh OKD.
3.Openshift Online
OpenShift Online merupakan sebuah Platform as a Service (PaaS) yang dibuat untuk pengembang dan organisasi TI agar dapat build aplikasi cloud baru secara skalabilitas dan aman dengan konfigurasi dan manajemen overhead yang minim. Dan juga, produk ini mendukung banyak bahasa programming dan framework seperti Java, Ruby, dan PHP.
4. Openshift.io
OpenShift.io adalah layanan Software as a Service (SaaS) yang menawarkan pengembangan toolchain yang telah dikonfigurasi untuk pengembang agar dapat langsung membangun aplikasi yang dikontainerisasi tanpa perlu lagi menginstal dan mengkonfigurasi software.
Fitur-fitur yang terdapat pada Redhat Openshift Platfrom adalah :
- Self Service Platform
seorang pengembang dapat membuat aplikasi secara langsung dari tool yang sering pengembang gunakan dan operator dapat mengoprasikan aplikasi dengan mandiri dengan efektif dan efisien.
- Container Based
Openshift merupakan penyedia platform berbasis kontainer dan berbasis Docker untuk menjalankan dan menyebarkan aplikasi melalui microservices.
- Polygot, Multi language support
Sebuah pengembang yang memiliki kemampuan untuk menjalankan berbagai aplikasi dengan banyak bahasa pemograman, database, dan framework pada suatu platform, yang memungkinkan pengguna unutk lebih mudah memanfaatkan ekosistem yang berbasis Docker.
- Automation
pembuat aplikasi, penyebaran, membuat pengskalaan, health management dan lebih banyak memanfaatkan komponen terintegrasi dari kubernetes yang akan di otomastiskan oleh Openshift.
- Multiple Interaction Model
Pengembang yang dapat membuat dan mengelola aplikasi dengan utility yang sangat bermacam-macam. contohnya : Command line tools, Multi Device Web Console, atau Eclipse yang dapat menyatu dengan jBoss Developer Studio.
6. Elasticsearch
Elasticsearch merupakan mesin pencarian dan analitik terdistribusi yang dibangun di Apache Lucene. Sejak diluncurkan pada tahun 2010, Elasticsearch telah dengan cepat menjadi mesin pencari paling populer dan biasa digunakan untuk analisis log, pencarian teks lengkap, inteligensi keamanan, analisis bisnis, dan kasus penggunaan inteligensi operasional.
Pada 21 Januari 2021, Elastic NV mengumumkan bahwa mereka akan mengubah strategi lisensi perangkat lunak mereka dan tidak merilis versi baru Elasticsearch dan Kibana di bawah lisensi Apache License, Versi 2.0 (ALv2) yang permisif. Sebagai gantinya, versi baru perangkat lunak akan ditawarkan pada lisensi Elastic, dengan kode sumber tersedia pada Elastic License atau SSPL. Lisensi ini bukan sumber terbuka dan tidak menawarkan kebebasan yang sama kepada pengguna. Untuk memastikan bahwa komunitas sumber terbuka dan pelanggan kami terus memiliki suite pencarian dan analitik yang sepenuhnya sumber terbuka, aman, berkualitas tinggi, kami memperkenalkan proyek OpenSearch, cabang sumber terbuka Elasticsearch dan Kibana yang berbasis komunitas dan berlisensi ALv2.
Manfaat yang ada pada Elasticsearch :
1. Waktu penilaian yang cepat
2. Kinerja tinggi
3. Peralatan dan plugin pelengkapan
4. Operasi hampir real time
5. pengembangan aplikasi yang mudah
7. Grafana
Grafana adalah platform yang Observabilitas sumber terbuka untuk membuat dasbor yang memvisualisasikan kumpulan data. kita dapat menggunakan grafana untuk memantau statistik server dengan mudah seperti konsumsi CPU, throughtput jaringan, dan waktu aktif.
singkatnya, grafana adalah sebuah perangkat lunak yang elegan, sangat kaya, kuat, yang digunakan untuk menganalisis dan memantau data waktu nyata.
Ansible adalah sebuah perkakas/tools yang digunakan untuk mengotomatiskan banyak proses dan infrastructure as code yang tersedia secara open source. Dengan Ansbile kita dapat melakukan provisioning (semacam membuat/menghapus) server, configuration management, dan melakukan deployment aplikasi pada server.
Ansible |
Komentar
Posting Komentar