0Pricing
DevOps Bootcamp · Pelajaran

Penyetelan Kinerja Pipeline

Identifikasi hambatan dan terapkan teknik tingkat lanjut untuk mengoptimalkan kecepatan eksekusi serta konsumsi sumber daya alur kerja GitHub Actions Anda.

Penyetelan Kinerja Pipeline adalah pelajaran DevOps Bootcamp gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar DevOps Bootcamp, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Meningkatkan Kecepatan Alur

Selamat datang di Penyetelan Performa Alur! Dalam pengembangan modern, alur CI/CD yang cepat sangat penting untuk mendapatkan umpan balik dengan cepat dan menggunakan sumber daya secara efisien.

Alur yang lambat membuang waktu dan biaya. Pelajaran ini akan mengajarkan teknik lanjutan untuk mengidentifikasi hambatan dan mempercepat alur kerja GitHub Actions Anda secara signifikan.

Menemukan Hambatan Alur Kerja

Sebelum melakukan pengoptimalan, Anda perlu mengetahui *apa* yang harus dioptimalkan. GitHub Actions menyediakan alat yang sangat baik untuk menemukan langkah atau tugas yang lambat.

  • Antarmuka GitHub: Lihat log eksekusi alur kerja. Tampilan linimasa menunjukkan dengan jelas berapa lama setiap tugas dan langkah berlangsung.
  • Ringkasan Tugas: Cari langkah yang durasinya jauh lebih lama dari biasanya.
  • Log Tindakan: Log terperinci dapat mengungkap perintah atau proses tertentu yang paling banyak menghabiskan waktu.

Fokuslah pada langkah yang secara konsisten membutuhkan waktu paling lama.

Menjalankan Tugas Independen Secara Paralel

Jika beberapa bagian alur kerja Anda tidak saling bergantung, jalankan bagian-bagian tersebut secara bersamaan! Ini adalah cara sederhana tetapi ampuh untuk mengurangi waktu eksekusi secara keseluruhan.

Tentukan beberapa tugas tingkat teratas dalam alur kerja Anda. GitHub Actions akan menjalankannya secara paralel secara default, selama Anda tidak menentukan dependensi needs di antara tugas-tugas tersebut.

name: Parallel Jobs Example
on: [push]
jobs:
  build-frontend:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build Frontend
        run: echo "Building frontend..."
  build-backend:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build Backend
        run: echo "Building backend..."

Mengoptimalkan Tindakan Checkout

Tindakan actions/checkout mengambil kode repositori Anda. Untuk repositori besar atau repositori dengan riwayat yang panjang, proses ini dapat berlangsung lama. Optimalkan dengan cara berikut:

  • Klon Dangkal: Gunakan fetch-depth: 1 untuk hanya mengambil commit terbaru, sehingga menghemat banyak waktu untuk sebagian besar tugas CI/CD.
  • Checkout Jarang: Jika Anda hanya memerlukan sebagian berkas, pertimbangkan checkout jarang, meskipun biasanya lebih rumit untuk disiapkan.

Hindari fetch-depth: 0 kecuali benar-benar diperlukan, karena perintah tersebut mengunduh seluruh riwayat.

name: Optimized Checkout
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 1 # Only fetch the latest commit
      - name: Run Build
        run: echo "Code checked out and building..."

Mengurangi Ukuran Artefak Build

Jika alur kerja Anda mengunggah atau mengunduh artefak, seperti biner yang dikompilasi atau laporan pengujian, ukurannya berdampak langsung pada performa.

Untuk mempercepat proses:

  • Sertakan Hanya Berkas yang Diperlukan: Jangan mengunggah direktori build sementara atau log yang tidak Anda perlukan.
  • Kompres Artefak: Jika memungkinkan, kompres artefak besar sebelum mengunggahnya. Tindakan actions/upload-artifact menangani kompresi secara otomatis, tetapi pastikan berkas sumber Anda berukuran minimal.

Pemfilteran Jalur untuk Efisiensi

Tidak setiap perubahan kode perlu memicu setiap tugas. Gunakan pemfilteran jalur untuk menjalankan tugas hanya ketika berkas yang relevan diubah.

Hal ini sangat berguna pada repositori yang lebih besar, karena perubahan pada dokumentasi tidak seharusnya memicu build backend secara menyeluruh.

Tentukan paths atau paths-ignore di dalam pemicu on pada alur kerja Anda.

name: Path Filter Example
on:
  push:
    paths:
      - 'frontend/**'
      - 'shared/**'
jobs:
  build-frontend:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build Frontend
        run: echo "Frontend files changed, building..."

Pelaksana yang Lebih Cepat dan Alokasi Sumber Daya

Mesin virtual (pelaksana) yang mengeksekusi alur kerja Anda tersedia dalam berbagai ukuran dan jenis. Untuk tugas yang intensif CPU, pelaksana yang lebih kuat dapat mengurangi waktu eksekusi secara drastis.

  • Pelaksana yang Di-host GitHub dengan Ukuran Lebih Besar: GitHub menyediakan pelaksana yang lebih besar, misalnya ubuntu-latest-xlarge, untuk beban kerja yang lebih berat.
  • Pelaksana yang Di-host Sendiri: Jika Anda memiliki kebutuhan perangkat keras yang sangat spesifik atau ingin meminimalkan latensi jaringan ke sumber daya internal, pelaksana yang di-host sendiri dapat dioptimalkan sesuai kebutuhan Anda.

Strategi Penyimpanan Tembolok Lanjutan

Menyimpan dependensi dalam tembolok, seperti paket npm atau artefak Maven, sangat penting. Gunakan strategi yang lebih dari sekadar penyimpanan dasar dengan kiat berikut:

  • Kunci Tembolok Terperinci: Gunakan kunci tembolok yang lebih spesifik untuk menghindari kegagalan pencarian tembolok yang tidak perlu. Misalnya, sertakan hash dari berkas kunci tertentu dan OS.
  • Beberapa Tembolok: Jangan menaruh semuanya dalam satu tembolok besar. Tembolok terpisah untuk berbagai jenis dependensi, seperti node_modules dan paket pip, dapat meningkatkan tingkat keberhasilan penggunaan tembolok.
  • Kunci Pemulihan: Gunakan restore-keys untuk mencoba beberapa kunci tembolok jika kunci utama tidak ditemukan, sehingga peluang menemukan sebagian data menjadi lebih besar.
name: Advanced Caching
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Cache Node Modules
        uses: actions/cache@v4
        with:
          path: ~/.npm
          key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
          restore-keys: | # Try less specific keys if primary misses
            ${{ runner.os }}-node-
      - name: Install Dependencies
        run: npm ci

Optimalkan Alur Kerja Ini

Pertimbangkan alur kerja yang membangun kode frontend dan backend. Saat ini, proses tersebut berjalan secara berurutan, dan checkout mengambil seluruh riwayat. Perubahan apa yang akan meningkatkan performanya secara signifikan?

name: Inefficient Workflow
on: [push]
jobs:
  build-all:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install Frontend Deps
        run: npm install
      - name: Build Frontend
        run: npm run build
      - name: Install Backend Deps
        run: pip install -r requirements.txt
      - name: Build Backend
        run: python setup.py build

Rangkuman: Menyetel untuk Kecepatan

Anda telah mempelajari teknik-teknik ampuh untuk mengoptimalkan alur kerja GitHub Actions Anda!

  • Identifikasi Hambatan: Gunakan antarmuka GitHub dan log.
  • Jalankan Tugas Secara Paralel: Jalankan tugas yang tidak saling bergantung secara bersamaan.
  • Optimalkan Checkout: Gunakan klon dangkal.
  • Kurangi Artefak: Pertahankan ukuran unggahan dan unduhan agar tetap kecil.
  • Pemfilteran Jalur: Jalankan tugas hanya ketika berkas yang relevan berubah.
  • Pelaksana yang Lebih Cepat: Pilih sumber daya pelaksana yang sesuai.
  • Penyimpanan Tembolok Lanjutan: Gunakan kunci terperinci dan beberapa tembolok.

Dengan menerapkan strategi ini, Anda dapat membuat alur Anda lebih cepat dan efisien, serta menghemat waktu dan sumber daya yang berharga.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penyetelan Kinerja Pipeline” gratis?

Ya — teks lengkap “Penyetelan Kinerja Pipeline” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus DevOps Bootcamp, upgrade ke CoddyKit PRO. Kursus DevOps Bootcamp mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Penyetelan Kinerja Pipeline”?

Identifikasi hambatan dan terapkan teknik tingkat lanjut untuk mengoptimalkan kecepatan eksekusi serta konsumsi sumber daya alur kerja GitHub Actions Anda. Kamu berlatih DevOps Bootcamp dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai DevOps Bootcamp?

Tidak diperlukan pengalaman sebelumnya. DevOps Bootcamp di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Penyetelan Kinerja Pipeline” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran DevOps Bootcamp ini?

Ya. Setiap pelajaran DevOps Bootcamp menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Metrik DORA dan Kesehatan CI/CD
  2. Penyetelan Kinerja Pipeline
  3. Tren Masa Depan dalam Otomatisasi DevOps
  4. Mengoptimalkan Biaya CI/CD dan Efisiensi Runner
← Kembali ke DevOps Bootcamp