Praktik terbaik dan praktik terbaik untuk menjalankan container dan Kubernetes di lingkungan produksi

Praktik terbaik dan praktik terbaik untuk menjalankan container dan Kubernetes di lingkungan produksi
Ekosistem teknologi kontainerisasi berkembang dan berubah dengan cepat, sehingga praktik kerja yang baik di bidang ini masih kurang. Namun, Kubernetes dan container semakin banyak digunakan, baik untuk memodernisasi aplikasi lama maupun untuk mengembangkan aplikasi cloud modern. 

Tim Kubernetes aaS dari Mail.ru mengumpulkan perkiraan, saran, dan praktik terbaik untuk para pemimpin pasar dari Gartner, 451 Research, StacxRoΡ…, dan lainnya. Mereka akan memungkinkan dan mempercepat penerapan kontainer di lingkungan produksi.

Bagaimana Mengetahui Apakah Perusahaan Anda Siap Menerapkan Kontainer di Lingkungan Produksi

Menurut Gartner, pada tahun 2022, lebih dari 75% organisasi akan menggunakan aplikasi dalam container dalam produksi. Jumlah ini jauh lebih tinggi dibandingkan saat ini, ketika kurang dari 30% perusahaan menggunakan aplikasi tersebut. 

Menurut Penelitian 451Proyeksi pasar untuk aplikasi teknologi peti kemas pada tahun 2022 adalah sebesar $4,3 miliar, lebih dari dua kali lipat jumlah yang diproyeksikan pada tahun 2019, dengan tingkat pertumbuhan pasar sebesar 30%.

Π’ Survei Portworx dan Aqua Security 87% responden mengatakan mereka saat ini menggunakan teknologi kontainer. Sebagai perbandingan, pada tahun 2017 terdapat 55% responden seperti itu. 

Meskipun minat dan penggunaan kontainer semakin meningkat, memasukkannya ke dalam produksi memerlukan proses pembelajaran karena ketidakdewasaan teknologi dan kurangnya pengetahuan. Organisasi harus realistis tentang proses bisnis yang memerlukan containerisasi aplikasi. Para pemimpin TI harus mengevaluasi apakah mereka memiliki keahlian untuk bergerak maju dengan kebutuhan untuk belajar dengan cepat. 

Pakar Gartner Kami rasa pertanyaan pada gambar di bawah ini akan membantu Anda menentukan apakah Anda siap menerapkan container dalam produksi:

Praktik terbaik dan praktik terbaik untuk menjalankan container dan Kubernetes di lingkungan produksi

Kesalahan paling umum saat menggunakan container dalam produksi

Organisasi sering kali meremehkan upaya yang diperlukan untuk mengoperasikan kontainer dalam produksi. Gartner menemukan Beberapa kesalahan umum dalam skenario pelanggan saat menggunakan kontainer di lingkungan produksi:

Praktik terbaik dan praktik terbaik untuk menjalankan container dan Kubernetes di lingkungan produksi

Bagaimana menjaga kontainer tetap aman

Keamanan tidak dapat ditangani β€œnanti”. Itu harus dimasukkan ke dalam proses DevOps, itulah sebabnya ada istilah khusus - DevSecOps. Organisasi perlu membuat rencana melindungi lingkungan kontainer Anda sepanjang siklus hidup pengembangan, yang mencakup proses pembuatan dan pengembangan, penerapan, dan peluncuran aplikasi.

Rekomendasi dari Gartner

  1. Integrasikan proses pemindaian gambar aplikasi untuk mencari kerentanan ke dalam alur integrasi berkelanjutan/pengiriman berkelanjutan (CI/CD) Anda. Aplikasi dipindai pada tahap pembuatan dan peluncuran perangkat lunak. Tekankan kebutuhan untuk memindai dan mengidentifikasi komponen, pustaka, dan kerangka kerja sumber terbuka. Pengembang yang menggunakan versi lama dan rentan adalah salah satu penyebab utama kerentanan container.
  2. Tingkatkan konfigurasi Anda dengan tes Pusat Keamanan Internet (CIS), yang tersedia untuk Docker dan Kubernetes.
  3. Pastikan untuk menerapkan kontrol akses, memastikan pemisahan tugas, dan menerapkan kebijakan manajemen rahasia. Informasi sensitif, seperti kunci Secure Sockets Layer (SSL) atau kredensial basis data, dienkripsi oleh orkestrator atau layanan manajemen pihak ketiga dan diekspos pada waktu proses
  4. Hindari kontainer yang ditinggikan dengan mengelola kebijakan keamanan untuk mengurangi potensi risiko pelanggaran.
  5. Gunakan alat keamanan yang menyediakan daftar putih, pemantauan perilaku, dan deteksi anomali untuk mencegah aktivitas berbahaya.

Rekomendasi dari StacxRox:

  1. Manfaatkan kemampuan bawaan Kubernetes. Siapkan akses untuk pengguna menggunakan peran. Pastikan Anda tidak memberikan izin yang tidak perlu kepada masing-masing entitas, meskipun mungkin memerlukan waktu untuk memikirkan izin minimum yang diperlukan. Mungkin tergoda untuk memberikan hak istimewa yang luas kepada administrator klaster karena hal ini menghemat waktu pada awalnya. Namun, kompromi atau kesalahan apa pun dalam akun dapat menimbulkan konsekuensi buruk di kemudian hari. 
  2. Hindari izin akses duplikat. Terkadang ada gunanya jika peran yang berbeda saling tumpang tindih, namun hal ini dapat menyebabkan masalah operasional dan juga menciptakan titik buta saat menghapus izin. Penting juga untuk menghapus peran yang tidak digunakan dan tidak aktif.
  3. Tetapkan kebijakan jaringan: isolasi modul untuk membatasi akses ke modul tersebut; secara eksplisit mengizinkan akses Internet ke modul-modul yang memerlukannya menggunakan tag; Izinkan komunikasi secara eksplisit antar modul yang perlu berkomunikasi satu sama lain. 

Bagaimana mengatur pemantauan kontainer dan layanan di dalamnya

Keamanan dan Pemantauan - permasalahan utama perusahaan saat menerapkan cluster Kubernetes. Pengembang selalu lebih fokus pada fitur aplikasi yang mereka kembangkan dibandingkan aspeknya memantau aplikasi ini

Rekomendasi dari Gartner:

  1. Cobalah untuk memantau keadaan container atau layanan di dalamnya bersamaan dengan memantau sistem host.
  2. Carilah vendor dan alat dengan integrasi mendalam ke dalam orkestrasi container, khususnya Kubernetes.
  3. Pilih alat yang menyediakan pencatatan log terperinci, penemuan layanan otomatis, dan rekomendasi waktu nyata menggunakan analitik dan/atau pembelajaran mesin.

Blog SolarWinds menyarankan:

  1. Gunakan alat untuk menemukan dan melacak metrik kontainer secara otomatis, menghubungkan metrik kinerja seperti CPU, memori, dan waktu aktif.
  2. Pastikan perencanaan kapasitas optimal dengan memperkirakan tanggal habisnya kapasitas berdasarkan metrik pemantauan kontainer.
  3. Pantau ketersediaan dan kinerja aplikasi dalam container, berguna untuk perencanaan kapasitas dan pemecahan masalah kinerja.
  4. Otomatiskan alur kerja dengan memberikan dukungan manajemen dan penskalaan untuk container dan lingkungan hostingnya.
  5. Otomatiskan kontrol akses untuk memantau basis pengguna Anda, menonaktifkan akun lama dan akun tamu, serta menghapus hak istimewa yang tidak perlu.
  6. Pastikan perangkat Anda dapat memantau kontainer dan aplikasi ini di berbagai lingkungan (cloud, lokal, atau hibrid) untuk memvisualisasikan dan mengukur kinerja di seluruh infrastruktur, jaringan, sistem, dan aplikasi.

Bagaimana cara menyimpan data dan menjamin keamanannya

Dengan munculnya container pekerja stateful, klien perlu mempertimbangkan keberadaan data di luar host dan kebutuhan untuk melindungi data tersebut. 

Menurut Survei Portworx dan Aqua Security, keamanan data menduduki peringkat teratas dalam daftar masalah keamanan yang disebutkan oleh mayoritas responden (61%). 

Enkripsi data adalah strategi keamanan utama (64%), namun responden juga menggunakan pemantauan runtime

(49%), memindai registri untuk mencari kerentanan (49%), memindai kerentanan di pipeline CI/CD (49%), dan memblokir anomali melalui perlindungan runtime (48%).

Rekomendasi dari Gartner:

  1. Pilih solusi penyimpanan yang dibangun berdasarkan prinsip arsitektur layanan mikro. Lebih baik fokus pada yang memenuhi persyaratan penyimpanan data untuk layanan kontainer, tidak bergantung pada perangkat keras, digerakkan oleh API, memiliki arsitektur terdistribusi, mendukung penerapan lokal dan penerapan di cloud publik.
  2. Hindari plugin dan antarmuka berpemilik. Pilih vendor yang menyediakan integrasi Kubernetes dan mendukung antarmuka standar seperti CSI (Container Storage Interfaces).

Cara bekerja dengan jaringan

Model jaringan perusahaan tradisional, di mana tim TI menciptakan lingkungan pengembangan, pengujian, jaminan kualitas, dan produksi jaringan untuk setiap proyek, tidak selalu sesuai dengan alur kerja pengembangan berkelanjutan. Selain itu, jaringan kontainer mencakup banyak lapisan.

Π’ blog Magalix dikumpulkan aturan tingkat tinggi yang harus dipatuhi oleh implementasi solusi jaringan cluster:

  1. Pod yang dijadwalkan pada node yang sama harus dapat berkomunikasi dengan pod lain tanpa menggunakan NAT (Network Address Translation).
  2. Semua daemon sistem (proses latar belakang seperti kubelet) yang berjalan pada node tertentu dapat berkomunikasi dengan pod yang berjalan pada node yang sama.
  3. Pod menggunakan jaringan tuan rumah, harus dapat berkomunikasi dengan semua pod lain di semua node lain tanpa menggunakan NAT. Harap dicatat bahwa jaringan host hanya didukung pada host Linux.

Solusi jaringan harus terintegrasi erat dengan kebijakan dan primitif Kubernetes. Para pemimpin TI harus mengupayakan otomatisasi jaringan tingkat tinggi dan menyediakan alat yang tepat dan fleksibilitas yang memadai bagi pengembang.

Rekomendasi dari Gartner:

  1. Cari tahu apakah jaringan CaaS (container as a service) atau SDN (Software Defined Network) Anda mendukung jaringan Kubernetes. Jika tidak atau dukungan tidak mencukupi, gunakan antarmuka jaringan CNI (Container Network Interface) untuk container Anda, yang mendukung fungsionalitas dan kebijakan yang diperlukan.
  2. Pastikan CaaS atau PaaS (platform sebagai layanan) Anda mendukung pembuatan pengontrol ingress dan/atau penyeimbang beban yang mendistribusikan lalu lintas masuk di antara node cluster. Jika ini bukan pilihan, jelajahi penggunaan proxy pihak ketiga atau jaringan layanan.
  3. Latih teknisi jaringan Anda tentang jaringan Linux dan alat otomatisasi jaringan untuk mengurangi kesenjangan keterampilan dan meningkatkan ketangkasan.

Cara mengelola siklus hidup aplikasi

Untuk pengiriman aplikasi yang otomatis dan lancar, Anda perlu melengkapi orkestrasi container dengan alat otomatisasi lainnya, seperti produk infrastruktur sebagai kode (IaC). Ini termasuk Chef, Wayang, Ansible dan Terraform. 

Alat otomatisasi untuk membangun dan meluncurkan aplikasi juga diperlukan (lihat β€œKuadran Ajaib untuk Orkestrasi Rilis Aplikasi"). Kontainer juga memberikan kemampuan ekstensibilitas yang serupa dengan yang tersedia saat menyebarkan mesin virtual (VM). Oleh karena itu, para pemimpin TI harus memilikinya alat manajemen siklus hidup kontainer.

Rekomendasi dari Gartner:

  1. Tetapkan standar untuk gambar kontainer dasar berdasarkan ukuran, lisensi, dan fleksibilitas bagi pengembang untuk menambahkan komponen.
  2. Gunakan sistem manajemen konfigurasi untuk mengelola siklus hidup kontainer yang melapisi konfigurasi berdasarkan gambar dasar yang terletak di repositori publik atau pribadi.
  3. Integrasikan platform CaaS Anda dengan alat otomatisasi untuk mengotomatiskan seluruh alur kerja aplikasi Anda.

Cara mengelola container dengan orkestrator

Fungsionalitas inti untuk menerapkan container disediakan di lapisan orkestrasi dan perencanaan. Selama penjadwalan, container ditempatkan pada host paling optimal di cluster, sesuai dengan kebutuhan lapisan orkestrasi. 

Kubernetes telah menjadi standar orkestrasi container de facto dengan komunitas aktif dan didukung oleh sebagian besar vendor komersial terkemuka. 

Rekomendasi dari Gartner:

  1. Tentukan persyaratan dasar untuk kontrol keamanan, pemantauan, manajemen kebijakan, persistensi data, jaringan, dan manajemen siklus hidup kontainer.
  2. Berdasarkan persyaratan ini, pilih alat yang paling sesuai dengan kebutuhan dan kasus penggunaan Anda.
  3. Gunakan penelitian Gartner (lihat "Cara memilih model penerapan Kubernetes") untuk memahami kelebihan dan kekurangan berbagai model penerapan Kubernetes dan memilih yang terbaik untuk aplikasi Anda.
  4. Pilih penyedia yang dapat menyediakan orkestrasi hibrid untuk kontainer kerja di berbagai lingkungan dengan integrasi backend yang ketat, rencana manajemen umum, dan model harga yang konsisten.

Cara menggunakan kemampuan penyedia cloud

Gartner percayaminat untuk menerapkan container di IaaS cloud publik semakin meningkat karena ketersediaan penawaran CaaS yang siap pakai, serta integrasi yang erat dari penawaran ini dengan produk lain yang ditawarkan oleh penyedia cloud.

Cloud IaaS menawarkan konsumsi sumber daya sesuai permintaan, skalabilitas cepat, dan manajemen Pelayanan, yang akan membantu menghindari kebutuhan akan pengetahuan mendalam tentang infrastruktur dan pemeliharaannya. Sebagian besar penyedia cloud menawarkan layanan manajemen kontainer, dan beberapa menawarkan beberapa opsi orkestrasi. 

Penyedia layanan terkelola cloud utama disajikan dalam tabel: 

Penyedia awan
Jenis layanan
Produk/layanan

Alibaba
Layanan Cloud Asli
Layanan Kontainer Alibaba Cloud, Layanan Kontainer Alibaba Cloud untuk Kubernetes

Layanan Web Amazon (AWS)
Layanan Cloud Asli
Amazon Elastic Container Services (ECS), Amazon ECS untuk Kubernetes (EKS), AWS Fargate

Kawanan Raksasa
MSP
Infrastruktur Kubernetes yang Dikelola Kawanan Raksasa

Google
Layanan Cloud Asli
Mesin Kontainer Google (GKE)

IBM
Layanan Cloud Asli
Layanan IBM Cloud Kubernetes

Microsoft
Layanan Cloud Asli
Layanan Azure Kubernetes, Azure Service Fabric

Peramal
Layanan Cloud Asli
Mesin Kontainer OCI untuk Kubernetes

Platform9
MSP
Kubernet terkelola

Red Hat
Layanan yang Dihosting
OpenShift Khusus & Daring

VMware
Layanan yang Dihosting
Awan PKS (Beta)

Solusi Cloud Mail.ru*
Layanan Cloud Asli
Kontainer Awan Mail.ru

* Kami tidak akan menyembunyikannya, kami menambahkan diri kami sendiri di sini selama penerjemahan :)

Penyedia cloud publik juga menambahkan kemampuan baru dan merilis produk lokal. Dalam waktu dekat, penyedia cloud akan mengembangkan dukungan untuk cloud hybrid dan lingkungan multi-cloud. 

Rekomendasi Gartner:

  1. Evaluasi secara obyektif kemampuan organisasi Anda dalam menerapkan dan mengelola alat yang sesuai, dan mempertimbangkan layanan manajemen kontainer cloud alternatif.
  2. Pilih perangkat lunak dengan hati-hati, gunakan sumber terbuka jika memungkinkan.
  3. Pilih penyedia dengan model operasi umum di lingkungan hibrid yang menawarkan manajemen cluster gabungan satu panel kaca, serta penyedia yang memudahkan untuk menghosting sendiri IaaS.

Beberapa tips memilih penyedia aaS Kubernetes dari blog Replex:

  1. Sebaiknya cari distribusi yang mendukung ketersediaan tinggi. Ini termasuk dukungan untuk beberapa arsitektur utama, komponen dll yang sangat tersedia, serta pencadangan dan pemulihan.
  2. Untuk memastikan mobilitas di lingkungan Kubernetes Anda, sebaiknya pilih penyedia cloud yang mendukung berbagai model penerapan, mulai dari on-premise, hybrid, hingga multi-cloud. 
  3. Penawaran penyedia juga harus dievaluasi berdasarkan kemudahan pengaturan, instalasi, dan pembuatan cluster, serta pembaruan, pemantauan, dan pemecahan masalah. Persyaratan dasarnya adalah mendukung pembaruan klaster yang sepenuhnya otomatis tanpa waktu henti. Solusi yang Anda pilih juga harus memungkinkan Anda menjalankan pembaruan secara manual. 
  4. Manajemen identitas dan akses penting dari sudut pandang keamanan dan tata kelola. Pastikan distribusi Kubernetes yang Anda pilih mendukung integrasi dengan alat autentikasi dan otorisasi yang Anda gunakan secara internal. RBAC dan kontrol akses yang terperinci juga merupakan rangkaian fitur yang penting.
  5. Distribusi yang Anda pilih harus memiliki solusi jaringan asli yang ditentukan perangkat lunak yang mencakup berbagai kebutuhan aplikasi atau infrastruktur, atau mendukung salah satu implementasi jaringan berbasis CNI yang populer, termasuk Flannel, Calico, kube-router, atau OVN.

Pengenalan kontainer ke dalam produksi menjadi arah utama, terbukti dari hasil survei yang dilakukan Sesi Gartner pada infrastruktur, operasi, dan strategi cloud (IOCS) pada bulan Desember 2018:

Praktik terbaik dan praktik terbaik untuk menjalankan container dan Kubernetes di lingkungan produksi
Seperti yang Anda lihat, 27% responden sudah menggunakan container dalam pekerjaannya, dan 63% berencana untuk melakukannya.

Π’ Survei Portworx dan Aqua Security 24% responden melaporkan menginvestasikan lebih dari setengah juta dolar per tahun untuk teknologi kontainer, dan 17% responden menghabiskan lebih dari satu juta dolar per tahun untuk teknologi tersebut. 

Artikel disiapkan oleh tim platform cloud Solusi Cloud Mail.ru.

Apa lagi yang harus dibaca tentang topik tersebut:

  1. Praktik Terbaik DevOps: Laporan DORA.
  2. Kubernetes dalam semangat pembajakan dengan template untuk implementasi.
  3. 25 Alat Berguna untuk Penerapan dan Adopsi Kubernetes.

Sumber: www.habr.com

Tambah komentar