Bagaimana Tim QA GitLab Menggunakan Alat Kinerja GitLab

Terjemahan artikel disiapkan sebelum dimulainya kursus Praktek dan Alat DevOps .




Kami meluncurkan sejumlah inisiatif untuk meningkatkan kinerja GitLab dan kami membutuhkan alat tolok ukur baru.

Pengujian kinerja adalah proses kompleks yang berbeda dari jenis pengujian lainnya. Untuk mendapatkan hasil, sumber daya yang berdedikasi, pendekatan dan alat khusus diperlukan di sini. Ketika saya bergabung dengan perusahaan dan menjadi anggota pertama dari tim ini, tugas saya adalah mentransfer upaya yang baru lahir untuk meningkatkan produktivitas ke skala yang lebih besar. Untuk melakukan ini, kami membuat alat baru dengan nama sederhana GitLab Performance Too l (GPT).

Kami sangat senang mengumumkan rilis publik GPT. Dalam posting ini, kami akan menjelaskan bagaimana kami menggunakan GPT untuk menguji kinerja GitLab, dan juga bagaimana Anda dapat menggunakannya untuk menguji lingkungan Anda.

Namun, lihat dulu dengan apa kita menggunakannya.

Referensi arsitektur dan data uji


Dalam pengalaman kami, bagian yang paling sulit dalam pengujian kinerja bukanlah dalam pengujian itu sendiri, tetapi dalam menyiapkan lingkungan dan data pengujian yang benar.

Dengan demikian, salah satu inisiatifnya adalah pengembangan Arsitektur Referensi GitLab , yang dapat mengatasi sejumlah besar pengguna. Kami ingin menggunakan arsitektur ini sebagai cara untuk membakukan konfigurasi yang kami rekomendasikan untuk menyediakan pelanggan dengan penyebaran GitLab berkinerja tinggi, dapat diskalakan, dan sangat mudah diakses.

Untuk alat seperti itu, kita memerlukan data pengujian realistis, misalnya, proyek besar dengan komitmen dan permintaan gabungan. Untuk iterasi pertama, kami mengambil proyek GitLab itu sendiri.

Setelah mengatur dan menjalankan lingkungan pengujian, kami siap mengujinya menggunakan GPT.

Apa itu alat Kinerja GitLab (GPT)?


GPT dapat digunakan untuk menjalankan berbagai tes beban untuk tolok ukur GitLab. Semua yang diperlukan adalah untuk mengetahui throughput apa yang dapat ditahan oleh lingkungan uji (dalam bentuk permintaan per detik), dan memastikan persiapan data uji.

GPT dikembangkan berdasarkan salah satu alat utama untuk pengujian beban - k6 . Berikut adalah beberapa fitur GPT:

  • Satu set besar tes di luar kotak, mencakup berbagai titik akhir GitLab, dengan kemampuan untuk menambahkan tes Anda sendiri. Lihat dokumentasi untuk deskripsi tes jadi, tes baru sering ditambahkan di sana.
  • , GitLab .
  • .
  • .
  • , time to first byte ( ), .

Tim Load Impact yang berbakat menciptakan k6 , yang merupakan inti dari GPT. Kami dengan cepat menyadari bahwa kami tidak perlu menemukan kembali roda, karena k6 memenuhi sebagian besar persyaratan kami: ditulis dalam Go, itulah sebabnya ia sangat produktif dan open source. Terima kasih kepada tim tidak hanya untuk mengembangkan k6, tetapi juga untuk bekerja dengan kami.

Bagaimana kita menggunakan GPT


GPT digunakan dalam beberapa pipa GitLab CI otomatis untuk memberikan umpan balik cepat tentang pengoperasian GitLab. Jalur pipa CI dari arsitektur referensi bekerja dengan pra-rilis terbaru dan, sebagai aturan, dijalankan setiap hari atau setiap minggu. Segera setelah pengujian, kami menganalisis hasilnya untuk menemukan masalah. Kami menerbitkan semua hasil terbaru dalam wiki GPT sesuai dengan nilai Transparansi kami .

GPT juga digunakan dalam pipa uji pembandingan untuk melihat bagaimana kinerja GitLab berubah dari rilis ke rilis. Hasil ini penting karena menunjukkan gambaran peningkatan kinerja. Hasil perbandingan benchmark juga tersedia di wiki GPT .

Dengan menggunakan GPT, kami dapat mengidentifikasi beberapa hambatan dalam kinerja GitLab dan, bersama dengan pengembang, memprioritaskan peningkatan. Proses ini telah membuahkan hasil, dan kami berharap dapat meningkatkan kinerja dengan setiap rilis GitLab. Misalnya, rilis 12.6 menunjukkan beberapa peningkatan nyata di semua bidang, di mana salah satu di antaranya kami mencapai penurunan 92%! Anda dapat melihat masalah yang terdeteksi di pelacak bug kami .

Bagaimana Anda bisa menggunakan GPT


Kami telah lama memutuskan bahwa kami ingin mengikuti prinsip open source yang sama dengan produk utama kami, oleh karena itu, ketika membuat GPT, kami fokus pada semua pengguna, dan bukan menjadikannya produk internal yang eksklusif. Karena itu, kami tidak hanya mengizinkan orang lain untuk menggunakannya, tetapi juga mendorongnya! Ini bermanfaat bagi kami dan klien kami, karena kami menerima umpan balik dari sudut pandang yang berbeda, yang tidak kami pikirkan. Beberapa contohnya adalah meningkatkan pedoman untuk spesifikasi berbasis bandwidth yang direkomendasikan , atau meningkatkan penggunaan GPT offline untuk pengguna dengan cloud pribadi .

Jika Anda ingin menggunakan GPT untuk diri sendiri, sebaiknya mulai dengan dokumentasi. Sebagaimana dicatat, sebagian besar upaya untuk menggunakan GPT adalah mempersiapkan lingkungan yang sesuai. Dokumentasi membahas poin ini dan penggunaan langsung GPT.

GPT beraksi


Akhirnya, setelah berbicara tentang GPT, saatnya menunjukkannya dalam aksi. Berikut adalah cara uji beban berjalan untuk Daftar Grup Proyek API dengan arsitektur referensi 10k : asciinema.org/a/O96Wc5fyxvLb1IDyviTwbujj8 Untuk informasi lebih lanjut tentang hasilnya, lihat dokumentasi GPT.






Apa berikutnya


Tujuan kami adalah menjadikan GitLab, dalam hal kinerja, yang terbaik di kelasnya. Dan kita baru berada di awal perjalanan ini. Kami senang bahwa kami dapat meningkatkan kualitas layanan pelanggan dengan memberi mereka alat tambahan.

Beberapa rencana kami untuk rilis di masa depan termasuk memperluas cakupan uji fungsionalitas GitLab, titik masuk (API, Web, Git), memperluas kerja pada arsitektur referensi, data uji, dan pola perilaku pengguna untuk menjadikannya lebih representatif dan realistis.

Bagikan umpan balik dan / atau saran GPT Anda di repositori proyek GPT ! Kami menyambut ide dan saran Anda.



Ansible: Mulai Cepat.



All Articles