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 CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus CI/CD with GitHub Actions & DevOps Pipelines 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: 1untuk 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-artifactmenangani 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-keysuntuk 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 CI/CD with GitHub Actions & DevOps Pipelines, upgrade ke CoddyKit PRO. Kursus CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines?
Tidak diperlukan pengalaman sebelumnya. CI/CD with GitHub Actions & DevOps Pipelines 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 CI/CD with GitHub Actions & DevOps Pipelines ini?
Ya. Setiap pelajaran CI/CD with GitHub Actions & DevOps Pipelines 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
- Metrik DORA dan Kesehatan CI/CD
- Penyetelan Kinerja Pipeline
- Tren Masa Depan dalam Otomatisasi DevOps
- Mengoptimalkan Biaya CI/CD dan Efisiensi Runner