Apa itu ISTIO?

Apa itu ISTIO?

Istio adalah lapisan service-mesh sumber terbuka yang dapat dikonfigurasi yang menghubungkan, memantau, dan mengamankan kontainer dalam klaster Kubernetes.

Saat tulisan ini dibuat, Istio bekerja secara native hanya dengan Kubernetes, tetapi sifat sumber terbukanya memungkinkan siapa saja untuk menulis ekstensi yang memungkinkan Istio berjalan pada perangkat lunak klaster apa pun. Hari ini, kami fokus menggunakan Istio dengan Kubernetes, contoh penggunaan yang paling populer.

Kubernetes adalah alat orkestrasi kontainer, dan salah satu unit inti Kubernetes adalah node. Sebuah node terdiri dari satu atau lebih kontainer, bersama dengan sistem file atau komponen lainnya. Sebuah arsitektur layanan mikro mungkin memiliki selusin node yang berbeda, masing-masing mewakili layanan mikro yang berbeda. Kubernetes mengelola ketersediaan dan konsumsi sumber daya node, menambahkan pod saat permintaan meningkat dengan autoscaler pod. Istio menyuntikkan lebih banyak kontainer ke dalam pod untuk menambah keamanan, manajemen, dan pemantauan.

Karena bersifat sumber terbuka, Istio dapat berjalan pada penyedia cloud publik mana pun yang mendukungnya dan cloud privat mana pun dengan administrator yang bersedia.

Video berikut menjelaskan lebih lanjut tentang dasar-dasar Istio:

Jaring layanan jaringan

Ketika organisasi berpindah ke layanan mikro, mereka perlu mendukung puluhan atau ratusan aplikasi tertentu. Mengelola titik akhir tersebut secara terpisah berarti mendukung banyak mesin virtual atau VM, termasuk permintaan. Perangkat lunak klaster seperti Kubernetes dapat membuat pod dan meningkatkannya, tetapi Kubernetes tidak menyediakan perutean, aturan lalu lintas, atau alat pemantauan atau debugging yang kuat.

Masuk ke jaring layanan.

Seiring bertambahnya jumlah layanan, jumlah cara potensial untuk berkomunikasi meningkat secara eksponensial. Dua layanan hanya memiliki dua jalur komunikasi. Tiga layanan memiliki enam, sedangkan 10 layanan memiliki 90. Sebuah service mesh menyediakan satu cara untuk mengonfigurasi jalur komunikasi tersebut dengan membuat kebijakan untuk komunikasi tersebut.

Jaring layanan menginstrumentasi layanan dan mengarahkan lalu lintas komunikasi sesuai dengan konfigurasi yang telah ditentukan. Itu berarti bahwa alih-alih mengonfigurasi kontainer yang sedang berjalan (atau menulis kode untuk melakukannya), seorang administrator dapat memberikan konfigurasi ke service mesh dan memintanya untuk menyelesaikan pekerjaan itu. Ini sebelumnya selalu harus terjadi dengan server web dan komunikasi layanan-ke-layanan.

Cara yang paling umum untuk melakukan hal ini dalam sebuah klaster adalah dengan menggunakan pola sespan. Sespan adalah kontainer baru di dalam pod yang mengarahkan dan memonitor lalu lintas komunikasi antara layanan dan kontainer.

Pemandangan udara dari jalan raya

Dapatkan ketenangan saat menggunakan cloud 


Dapatkan Buletin Think mingguan untuk mendapatkan panduan pakar dalam mengoptimalkan pengaturan multicloud di era AI.

Istio dan Kubernetes

Seperti yang telah disebutkan sebelumnya, Istio berada di atas Kubernetes, menambahkan kontainer yang tidak terlihat oleh programmer dan administrator. Disebut kontainer samping, kontainer ini berfungsi sebagai orang yang berada di tengah, mengarahkan lalu lintas dan memantau interaksi antar komponen. Keduanya bekerja dalam kombinasi dalam tiga cara: konfigurasi, pemantauan dan manajemen.

Konfigurasi

Metode utama untuk mengatur konfigurasi dengan Kubernetes adalah perintah kubectl, biasanya "kubectl -f <filename>" , di mana berkas tersebut adalah berkas YAML. Pengguna Istio dapat menjalankan jenis file YAML yang baru dan berbeda dengan kubectl atau menggunakan perintah ioctl yang baru dan opsional.

Pemantauan

Dengan Istio, Anda dapat dengan mudah memantau kesehatan aplikasi Anda yang berjalan dengan Kubernetes. Instrumentasi Istio dapat mengelola dan memvisualisasikan kesehatan aplikasi, memberikan lebih banyak insight daripada pemantauan umum klaster dan node yang disediakan Kubernetes.

Manajemen

Karena antarmuka untuk Istio pada dasarnya sama dengan Kubernetes, mengelolanya hampir tidak membutuhkan pekerjaan tambahan. Bahkan, Istio memungkinkan pengguna untuk membuat kebijakan yang berdampak dan mengelola seluruh klaster Kubernetes, mengurangi waktu untuk mengelola setiap klaster sambil menghilangkan kebutuhan akan kode manajemen khusus.

AI Academy

Mencapai kesiapan AI dengan hybrid cloud

Dipandu oleh pemimpin terkemuka IBM, kurikulumnya dirancang untuk membantu pemimpin bisnis dalam mendapatkan pengetahuan yang diperlukan untuk memprioritaskan investasi AI yang dapat mendorong pertumbuhan.

Manfaat Istio

Manfaat utama dari service mesh termasuk kemampuan untuk meningkatkan debugging, pemantauan, perutean, keamanan, dan penggunaan. Artinya, dengan Istio, dibutuhkan sedikit usaha untuk mengelola kelompok layanan yang lebih luas.

Peningkatan debugging

Katakanlah, misalnya, bahwa layanan memiliki beberapa dependensi. Layanan pay_claim di perusahaan asuransi memanggil layanan deductible_amt, yang memanggil layanan is_member_covered, dan sebagainya. Rantai dependensi yang kompleks mungkin memiliki 10 atau 12 panggilan layanan. Ketika salah satu dari 12 itu gagal, akan ada serangkaian kegagalan yang menghasilkan semacam kesalahan 500, kesalahan 400 atau mungkin tidak ada respons sama sekali.

Untuk men-debug rangkaian panggilan itu, Anda dapat menggunakan sesuatu seperti jejak tumpukan. Di sisi depan, pengembang sisi klien dapat melihat elemen apa saja yang ditarik kembali dari server web, dalam urutan apa, dan memeriksanya. Pemrogram frontend bisa mendapatkan diagram air terjun untuk membantu debugging.

Apa yang tidak ditunjukkan oleh contoh tersebut adalah apa yang terjadi di dalam pusat data-bagaimana callback=parselLotamaAudiences memanggil empat layanan web lainnya dan mana yang merespons lebih lambat. Kemudian, kita melihat bagaimana Istio menyediakan alat untuk melacak panggilan fungsi dalam diagram seperti ini.

Pemantauan dan observabilitas

Tim DevOps dan administrasi TI mungkin ingin mengamati lalu lintas untuk melihat latensi, waktu dalam layanan, kesalahan sebagai persentase lalu lintas, dan sebagainya. Seringkali, mereka ingin melihat dasbor. Dasbor menyediakan visualisasi jumlah, atau rata-rata, atau metrik tersebut dari waktu ke waktu, mungkin dengan kemampuan untuk menelusuri ke node, layanan, atau pod tertentu. Kubernetes tidak menyediakan fungsi-fungsi ini secara native.

Kebijakan

Secara default, Kubernetes memperbolehkan setiap pod untuk mengirim lalu lintas ke setiap pod lainnya. Istio memungkinkan administrator membuat kebijakan untuk membatasi layanan mana yang dapat bekerja sama satu sama lain. Jadi, misalnya, layanan hanya dapat memanggil layanan lain yang merupakan dependensi sebenarnya. Kebijakan lain untuk menjaga layanan tetap berjalan adalah pembatasan kecepatan, yang akan menghentikan lalu lintas berlebih agar tidak menyumbat layanan dan mencegah serangan denial-of-service.

Perutean dan penyeimbangan beban

Secara default, Kubernetes menyediakan load balancing round-robin.Jika ada enam pod yang menyediakan layanan mikro, Kubernetes akan menyediakan penyeimbang beban, atau layanan yang mengirimkan permintaan ke setiap pod secara berurutan, lalu memulai dari awal. Namun, terkadang perusahaan menerapkan versi yang berbeda dari layanan yang sama dalam produksi.

Contoh paling sederhana dari ini mungkin penerapan biru atau hijau. Dalam hal ini, perangkat lunak dapat membuat versi aplikasi yang sama sekali baru dalam produksi tanpa mengirim pengguna produksi ke versi tersebut. Setelah mempromosikan versi baru, perusahaan bisa tetap menggunakan server lama untuk melakukan peralihan dengan cepat jika terjadi kegagalan.

Dengan Istio, ini semudah menggunakan tagging dalam file konfigurasi. Administrator juga dapat menggunakan label untuk menunjukkan jenis layanan yang akan disambungkan dan membuat aturan berdasarkan header. Jadi, misalnya, pengguna beta dapat mengarahkan ke pod canary dengan versi terbaru dan terhebat, sementara pengguna reguler menggunakan versi produksi yang stabil.

Pemutus sirkuit

Jika layanan kelebihan beban atau down, lebih banyak permintaan gagal saat terus membebani sistem. Karena Istio melacak kesalahan dan penundaan, Istio dapat memaksa jeda, memungkinkan layanan untuk pulih, setelah sejumlah permintaan tertentu yang ditetapkan oleh kebijakan. Anda bisa menerapkan kebijakan ini di seluruh klaster dengan membuat file teks kecil dan mengarahkan Istio untuk menggunakannya sebagai kebijakan baru.

Keamanan

Istio menyediakan identitas, kebijakan, dan enkripsi secara default, bersama dengan otentikasi, otorisasi dan audit (AAA). Setiap pod yang dikelola yang berkomunikasi dengan yang lain menggunakan lalu lintas terenkripsi, mencegah pengamatan apa pun. Layanan identitas, dikombinasikan dengan enkripsi, membantu memastikan bahwa tidak ada pengguna yang tidak sah yang dapat memalsukan atau "mengerjai" panggilan layanan. AAA memberi profesional keamanan dan operasi alat yang mereka butuhkan untuk memantau, dengan biaya overhead yang lebih sedikit.

Administrasi yang disederhanakan

Aplikasi tradisional masih membutuhkan fitur identitas, kebijakan, dan keamanan yang ditawarkan Istio. Itu membuat pemrogram dan administrator bekerja pada tingkat abstraksi yang salah, menerapkan kembali aturan keamanan yang sama berulang kali untuk setiap layanan. Istio memungkinkan mereka untuk bekerja pada tingkat yang tepat, menetapkan kebijakan untuk klaster melalui satu panel kontrol.

Solusi terkait
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud adalah OpenShift Container Platform (OCP) yang dikelola sepenuhnya.

Jelajahi Red Hat OpenShift
Solusi Kontainer

Solusi kontainer menjalankan dan meningkatkan beban kerja dalam kontainer dengan keamanan, inovasi sumber terbuka, dan penerapan yang cepat.

Jelajahi kontainer
Layanan Konsultasi Cloud 

Dapatkan kemampuan baru dan dorong ketangkasan bisnis dengan layanan konsultasi cloud IBM. Temukan cara berkolaborasi dalam menciptakan solusi, mempercepat transformasi digital, dan mengoptimalkan kinerja melalui strategi hybrid cloud dan kemitraan pakar.

Layanan cloud
Ambil langkah selanjutnya

Modernisasi infrastruktur Anda dengan solusi kontainer IBM. Jalankan, skalakan, dan kelola beban kerja kontainer di seluruh lingkungan dengan fleksibilitas, keamanan, dan efisiensi dengan platform kontainer IBM yang komprehensif.

Jelajahi solusi kontainer Buat akun IBM Cloud gratis Anda