Latest / M365.FM – Podcast Microsoft 365, Copilot & AI Bahasa Indonesia / ALM Power Platform dengan GitHub Actions: Source, Build, Test, dan Deploy Tanpa Menebak (Sulih Suara AI)
Transcript
- 0:00Siap untuk 10 hari pembahasan Microsoft 365, Copilot AI, Azure, dan para penggerak
- 0:05Masa depan dunia kerja
- 0:07Januari ini, M365 John kembali hadir dengan skala yang lebih besar
- 0:11Bergabunglah dalam sesi langsung
- 0:14Demo nyata dan ilmu praktis dari MVP serta pakar industri di seluruh dunia
- 0:18Tanpa slide yang umum, tanpa istilah teknis yang berubah
- 0:21Kita akan membahas tantangan nyata
- 0:23Copilot Studio, agen AI, fabrik, keamanan, tata kelola, dan otomatisasi
- 0:28Baik Anda seorang profesional TI, pengembang, atau pemimpin bisnis
- 0:32Ada sesi yang gerancang khusus untuk Anda
- 0:34Selama 10 hari penuh, Anda bisa menjelajahi berbagai teknologi
- 0:38Dan terhubung dengan komunitas global
- 0:40Saksikan secara langsung, dan bawa wasam praktis kembali ke organisasi Anda
- 0:44Januari 2020 7, 10 hari, satu komunitas Microsoft
- 0:49Pendaftaran sudah dibuka sekarang
- 0:50Amankan tempat Anda hari ini
- 0:54Kunjungi m365.com.net
- 0:58Daftar sekarang di m365.com.net
- 1:02Dan sampai jumpa, secara langsung di bulan Januari
- 1:04Pernah merasa penerapan power platform Anda seperti kota hitam yang misterius?
- 1:08Apakah Anda merilis pembaruan, menahan nafas, dan hanya berharap semua yang berjalan lancar di lingkungan dev, tes, dan prod?
- 1:13Bagaimana jika Anda bisa mengontrol dan melihat setiap tahap proses ALM Anda
- 1:16Menggunakan GitHub Actions tanpa perlu menebak-nebak atau melakukan perbaikan manual?
- 1:20Mari kita buka tirai tentang bagaimana setiap komponen, kontrol sumber, otomatisasi, dan variable aman sebenarnya terhubung
- 1:27Ah, ini bukan sekadar panduan biasa
- 1:29Ini adalah alasan yang sering diabaikan panduan lain agar penerapan Anda berikutnya tidak membuat Anda ragu
- 1:34Jadi, mengapa ALM Power Platform terasa seperti labirin?
- 1:38Jika Anda pernah mencoba menerapkan power app dan merasa tidak yakin seperti ada sesuatu yang penting terlewatkan, Anda tidak sendiri
- 1:44Di atas kertas, Power Platform menjanjikan pengembangan aplikasi yang mudah, namun, dibalik tampilan ramai itu, ALM justru sangat rumit
- 1:52Aplikasi web disebarkan, dari kontrol sumber, dibangun dalam pipeline, dan mendarat diproduksi dengan perilaku yang dapat diprediksi
- 1:58Sebaliknya, Power Platform menyembunyikan separuh logikanya di dalam antarmuka seret lepas, layar konektor, dan rumus yang tidak terlihat di repository Git manapun
- 2:07Jadi, meskipun Anda mengikuti setiap langkah dari panduan admin tingkat atas
- 2:11Anda tetap akan menemukan kegagalan aneh yang sulit didiagnosis saat aplikasi bisnis penting keluar dari tahap pengembangan
- 2:16Mari kita lihat panduan ALM yang beredar di luar sana
- 2:19Sebagian besar akan memandu Anda untuk mengeksplore zip solusi dan mengimpornya ke tempat lain
- 2:23Cukup sederhana, bukan?
- 2:25Namun, cara melakukannya hanya set rapi sensasi
- 2:27Yang mereka lewatkan adalah alasannya
- 2:28Mengapa penerapan Power Platform rusak dengan cara yang tidak pernah terjadi pada kode biasa?
- 2:33Itulah penyebab kebingungan yang tidak habisnya
- 2:35Akar masalahnya adalah logika, koneksi, dan konfigurasi di Power Apps tidak disimpan seperti kode klasik
- 2:41Anda tidak hanya sekadar mengkloning repo dan melihat hasil pengujian unit
- 2:44Jadi, saat Anda mencoba memindahkan aplikasi, semua dependensi tersembunyi, koneksi ke Outlook SharePoint, dan API Custom tidak selalu tersimpan rapi di dalam file zip tersebut
- 2:53Jelas, sekian adunya
- 2:55Anda memiliki aplikasi baru yang berfungsi dengan baik di lingkungan berkontak
- 2:57Anda mengekspor solusi mengimpornya ke lingkungan pengejian tes dan tiba-tiba alur kerjanya berhenti berhenti
- 3:02Ini jarang terjadi hanya karena masalah, Pak
- 3:03Sebaliknya, koneksi mengarah ke tempat yang salah, izin tidak selaras, dan kebijakan data memblokir koneksi yang tadinya baik-baik saja beberapa menit lalu
- 3:11Sekarang, bayangkan melakukan ini di tiga lingkungan
- 3:14Dev, Tes, dan Prod
- 3:15Dengan masing-masing, menggunakan koneksi, kebijakan pelindungan data, penyetuju, dan pengamaran admin yang berbeda
- 3:21Anda tidak bisa mengatasinya yang saya menempel
- 3:23Penelitian mendukung apa yang dilihat admin dan pembuat aplikasi setiap minggunya
- 3:27Mayoritas kegagalan penerapan power platform berasal dari referensi konektor yang hilang atau variable lingkungan yang tidak dikelola dengan benar
- 3:33Kehilangan referensi konektor berarti alur kerja tidak dapat menemukan koneksi Outlook atau Dataverse-nya
- 3:39Jadi, saat Anda mencoba menjalankan aplikasi atau alur kerja di lingkungan lain, Anda akan mendapatkan kesalahan waktu proses
- 3:45Dan karena variable lingkungan di power platform bekerja berbeda dibandingkan produk Microsoft 365 lainnya, hal ini sering menjebak pengembang berpengalaman sekalipun
- 3:54Variable seharusnya menangani endpoint kunci atau konfigurasi khusus penyewa, tenat
- 3:59Namun, jika seseorang lupa memperbaruinya setelah mengekspor solusi, perubahan yang terlihat sepeli pun bisa merusak aplikasi yang sedang berjalan
- 4:06Banyak dari kita terjebak dalam masalah yang sama pada awalnya
- 4:08Anda mungkin mengekspor zip solusi sudah mencakup segalanya, padahal sebenarnya sistem melewatkan referensi konektor dinamis
- 4:14Misalnya, Anda memiliki aplikasi yang menggunakan konektor HTTP untuk layanan pihak ketiga di pengandang
- 4:19Saat Anda mengimpor kelingkungan tes atau prod, instans konektor tersebut tidak akan ada
- 4:23Referensi konektor di dalam aplikasi Anda mengarah ke objek yang hilang
- 4:27Dan alur kerja di dalam solusi tersebut rusak diam-diam
- 4:30Hingga pengguna atau admin membuat ulang dan memetakan koneksi secara manual
- 4:34Jika Anda memiliki lebih dari satu pembuat atau admin
- 4:37Akan lebih mudah kehilangan jejak referensi
- 4:39Dan tidak ada yang menginginkan evaluasi pasca kejadian di dev tadi berhasil
- 4:43Masalah lainnya adalah service prinsipal
- 4:46Kebanyakan orang mulai dengan menggunakan akun pengguna
- 4:49Untuk mengekspor dan mengimpor solusi karena lebih cepat untuk memulai
- 4:52Namun, saat Anda mencoba melakukan otomatisasi dengan GitHub Actions atau sistem CI
- 4:57Apapun menggunakan kredensial pribadi akan menemui jalan bentuk dengan cepat
- 4:59Anda akan terbenturi izin, terkadang tanpa pesan kesalahan yang jelas
- 5:02Atau bahkan memicu audit kepatuhan karena Anda menjalankan penerapan kritis
- 5:05Menggunakan akun pribadi bukan akun yang memang ditujukan untuk otomatisasi
- 5:08Bukan akun yang memang ditujukan untuk otomatisasi
- 5:10Service prinsipal yang pada dasarnya adalah identitas aplikasi yang dibuat di Azure AD
- 5:14Menangani semua izin, pencatatan, dan audit yang dibutuhkan pipeline Anda
- 5:18Tanpanya, rantai otomatisasi Anda berubah menjadi serangkaian serah terima
- 5:22Antara orang yang tidak rapi dan Anda tidak akan pernah tahu siapa yang mengubah apa
- 5:25Kontrol sumber pun menjadi tidak menentu
- 5:27Dengan kode biasa, Anda memiliki rewak commit dan alat pelacakan perubahan
- 5:31File solusi Power Platform hanya memakai snapshot
- 5:34Yang berarti Anda kehilangan pelacakan perubahan secara mendetail
- 5:36Logika yang tersembunyi dalam rumus layar Canvas App
- 5:39Atau dalam alur yang kurang terdokumentasi tidak terlihat sampai Anda mengekspornya kembali
- 5:43Seseorang mengubah pengaturan alur di UI
- 5:46Dan semoga berhasil mencari tahu mengapa lingkungan hilir tiba-tiba berperilaku berbeda
- 5:49Hasil akhirnya, mengelola ILM untuk Power Platform
- 5:52Terasa seperti menyusun teka-teki dengan separuh bagian yang hilang
- 5:55Atau setidaknya tersembunyi di bawah kotak
- 5:56Dependensi yang tidak terlihat, konektor spesifik lingkungan, dan variable
- 6:00Yang tidak bisa Anda lihat dalam kode
- 6:02Semuanya mengubah alur kerja pengembang yang biasa
- 6:05Dan itu belum termasuk fakta bahwa lingkungan produksi hampir selalu memiliki izin yang lebih ketat
- 6:10Kebijakan data yang berbeda
- 6:12Dan persyaratan audit yang tidak tampak di lingkungan pengembangan atau pengujian
- 6:15Tapi nah sisi positifnya
- 6:18Kompleksitas ini bukan kebetulan
- 6:19Ada alasan praktis mengapa Power Platform menangani sumber variable dan konektor dengan carai
- 6:25Yang unik
- 6:26Platform ini berupaya agar pengguna bisnis dapat membangun aplikasi canggih tanpa perlu khawatir soal kode
- 6:31Efek sampingnya adalah Anda sebagai orang yang mengatur otomatisasi harus melacak apa yang tersembunyi di balik layar
- 6:37Jika Anda tahu kemana kabel-kabel tak terlihat itu terhubung
- 6:41Anda dapat memperbaiki atau menghindari sebagian besar kesalahan fatal yang mengganggu ALM Power Platform
- 6:45Sekarang jika semua ini terdengar berat
- 6:48Anda tidak salah
- 6:49Namun ada empat pilar ALM yang benar-benar membantu mengurai kerumitan ini
- 6:53Sumber bangun uji dan sebarkan
- 6:55Masing-masing memiliki keunikan di Power Platform tetapi bersama-sama mereka menggembalikan struktur ke dalam situasi yang terasa kacau
- 7:01Sistem ALM inti sumber bangun uji sebarkan
- 7:04Setiap kali seseorang meminta pipeline Power Platform yang langsung berfungsi
- 7:08Hal pertama yang terlintas di pikiran adalah empat pilar ALM lama tersebut yaitu sumber bangun uji dan sebarkan
- 7:14Dalam dunia pengembangan tradisional Anda hampir bisa melakukannya sambil tidur
- 7:18Power Platform tidak membiarkan Anda lepas dengan mudah
- 7:21Tiba-tiba sumber tidak berarti kode
- 7:24Itu berarti harus bergulat dengan file solusi
- 7:26Mengekspor bundel zip berisi aplikasi alur dan terkadang konektor yang berpura-pura menjadi bagian dari sumber
- 7:33Mari mulai dengan dasarnya
- 7:35Lalu beda apa yang membuat setiap pilar terasa sedikit aneh di dunia ini
- 7:38Anda memiliki file tips Anda
- 7:40Ini bukan kode dalam pengertian biasa
- 7:41Buka file tersebut dan Anda akan disambut oleh file penjelasan XML dan JSON bukan logika yang biasa Anda lihat di TypeScript atau C-SARP
- 7:48Namun inilah sumber untuk workload
- 7:50Tim seringkali terkendala di sini
- 7:52Terlihat portable sampai Anda menyadari sebagian besar perubahan
- 7:55Seperti memperbarui rumus di layar atau mengubah logika alur tidak terlihat jelas sampai Anda mengekspor zip solusi yang baru
- 8:01Jadi ya Anda bisa membuat versi file solusi ini di git tetapi kecuali Anda disiplin mengekspor setelah setiap pengeditan yang relevan
- 8:07Riwet Anda akan memiliki celah yang mencolok
- 8:09Sekarang masuk ke konfigurasi
- 8:11Untuk aplikasi biasa Anda mungkin menyimpan string koneksi dalam file konfigurasi dan selesai
- 8:16Power Platform menyisipkan data khusus lingkungan di dalam solusi ini
- 8:20Ini bukan hanya variable lingkungan tetapi referensi konektor, titik akhir dinamis, peran, dan izin yang digabungkan bersama logika bisnis
- 8:28Jika Anda lupa memperbaruinya sebelum mengekspor dari pengembangan atau pengujian, Anda mengunci penunjuk ke tempat yang salah
- 8:35Saya telah melihat tim dengan tekun melakukan komit pada file zip solusi mereka
- 8:39Hanya untuk menyadari saat diterapkan bahwa separuh aplikasi mereka masih terhubung ke data first pengembangan
- 8:44Bukan produksi karena tidak ada yang memetakkan ulang referensi konektor
- 8:47Selanjutnya kita masuk ke tab
- 8:49Kata build biasanya memunculkan bayangan kompilasi kode dan melihat tanda centang hijau dalam pekerjaan CI
- 8:54Dengan Power Platform, proses build adalah tentang menyimpan bundel zip tersebut, memeriksa skema dua kali, dan meverifikasi dependensi
- 9:01Dalam pipeline GitHub Actions, pekerjaan build mengambil file solusi yang Anda komit lalu menggunakan shell i, power platform Microsoft untuk membongkar, memvalidasi, dan mengemas ulang solusi tersebut
- 9:11Langkah validasi adalah tempat keajaiban atau kekacauan terjadi
- 9:14Langkah ini mungkin mendeteksi referensi yang rusak atau tindakan yang tidak didukai
- 9:17Lebih buruk lagi, jika perubahan pada alur Anda bergantung pada konektor custom yang tidak pernah masuk ke kontrol sumber
- 9:22Build Anda secara diam-diam mengemas sesuatu yang tidak lengkap
- 9:25Disinilah keadaan menjadi rumit
- 9:27Pekerjaan build tersebut lebih tentang mengatur ekspor yang andal dan memastikan apa yang ada di dalamnya siap dikirim
- 9:33Bukan sekadar kompilasi, bukan sekadar kompilasi
- 9:35Tim yang melewatkan atau terburu-buru melakukan ini akan dengan cepat berada dalam situasi di mana build secara teknis berhasil
- 9:40Tetapi apa yang sampai ke UAT atau produksi kehilangan separuh fitur yang diinginkan
- 9:44Microsoft terus menekankan pesan bahwa file solusi membuat ALM portable namun selalu ada catatan kaki
- 9:49Portabilitas bergantung pada konektor yang dipetakan dengan benar dan peran yang disiapkan di seluruh lingkungan
- 9:54Pengujian adalah tab berikutnya
- 9:56Dalam pipeline aplikasi web, pengujian otomatis mungkin menjalankan tes unit atau pemeriksaan UI
- 10:01Untuk power platform, apa yang dianggap sebagai pengujian masih bisa diperbatkan
- 10:05Terkadang itu adalah validasi solusi
- 10:07Dengan kata lain apakah solusi terbuka dan apakah dependensi utama teratasi
- 10:11Dilain waktu itu adalah menjalankan alur pengujian atau meriksa apakah konektor merespons di lingkungan pengujian-pengujian
- 10:17Seringkali pengujian dilakukan secara manual karena memvalidasi logika bisnis di dalam kanvas app belum terhubung ke alur kerja otomatis
- 10:24Wits
- 10:24Namun, Anda bisa mengotomatiskan pemeriksaan untuk mendeteksi konektor yang hilang memvalidasi alur penting
- 10:29Atau sekadar melakukan ping ke lingkungan pengujian untuk memastikan kredensial berfungsi
- 10:33Penyebaran BWM adalah bagian ini
- 10:35Saat mendeplay aplikasi standar, Anda mungkin hanya perlu mendorong artefak web ke Azure
- 10:39Dengan power platform, Anda harus membutuhkan koneksi, menetapkan izin, memperbarui rahasia, menukar variable lingkungan
- 10:44Dan akhirnya memicu import menggunakan service prinsipal, bukan akun biasa
- 10:48Bukan akun biasa
- 10:49Jika tidak, Anda akan terjebak dengan audit dan penolakan izin
- 10:52GitHub Actions dapat menyatukan proses ini
- 10:55Tetapi hanya jika setiap tugas tahu lingkungan mana yang dituju dan rahasia mana yang digunakan
- 10:59Saya pernah melihat tim mencoba jalan pintas dengan menggunakan satu set kredensial untuk dev dan prod
- 11:04Yang justru memicu kekacauan, kebocoran data, kesalahan izin, dan fitur rusak yang hanya muncul di satu lingkungan
- 11:09Dan fitur lingkungan
- 11:10Ambil contoh tim nyata yang sudah bekerja dengan saya beberapa bulan lalu
- 11:13Mereka melakukan banyak hal dengan benar
- 11:15Seperti menggunakan repository git standar, file chip solusi perversi, dan percambangan engine
- 11:18Namun, pipeline mereka selalu gagal saat deployment
- 11:20Mereka tidak pernah menukar variable lingkungan
- 11:23Atau memperbarui referensi konektor sebelum mengimpor ke prod
- 11:26Hal itu menyebabkan alu utama mengarah ke titik akhir yang salah
- 11:29Dengan data yang mengalir ke sistem yang clear
- 11:30Solusinya adalah
- 11:32Menambahkan langkah-langkah script di pipeline GitHub mereka
- 11:34Yang menukar variable dan memetakkan ulang setiap konektor saat import
- 11:37Panduan resmi dari Microsoft sangat jelas mengenai hal ini
- 11:40Gunakan file solusi untuk memindahkan komponen antar lingkungan
- 11:43Namun, selalu tangani referensi konektor dan pembetahan peran sebagai bagian dari pipeline Anda
- 11:47Mereka menekankan bahwa melewatkan langkah-langkah ini adalah penyebab utama rusaknya aplikasi
- 11:51Terutama saat lingkungan semakin diperketat keamanannya
- 11:53Setelah Anda memperlakukan sumber, build, pengujian, dan penyebaran sebagai bagian yang saling terhubung
- 11:58Bukan langkah terpisah akan lebih mudah untuk melihat mengapa banyak upaya LM gagal
- 12:02Dan bagaimana Anda bisa memecahkan masalah alih-alih hanya berharap
- 12:05Selanjutnya, mari kita bahas bagaimana GitHub Actions mengkoordinasikan proses ini
- 12:11Pemicu, percambangan, dan pemisahan tugas yang menjaga otomatisasi power platform Anda tetap fleksibel dan aman
- 12:16GitHub Actions menghubungkan semuanya dengan pemicu dan tugas
- 12:20Jika Anda pernah menunggu pipeline GitHub Actions selesai setelah memperbarui Power App
- 12:24Anda tahu bahwa otomatisasi tidak berarti instan dan tentu saja bukan sihir
- 12:27Kebanyakan tim terbentur kendala tepat setelah keseruan melihat alur kerja pertama mereka berjalan
- 12:33Anda menyiapkan skrip, menghubungkannya ke repository, dan berharap setiap komitmen baru akan dirilis dengan mulus di semua lingkungan
- 12:41Lalu kenyataan mulai terasa
- 12:42Alih-alih sekadar menjalankan skrip, kita baiknya menggunakan rantai logika
- 12:46Yang dibangun berdasarkan pemicu, tugas, dan serah terima antar lingkungan
- 12:50Urutan dan struktur tersebut menjaga penerapan agar tidak menjadi tumpukan langkah yang gagal dan kesalahan yang aneh
- 12:56Titik awal dalam sistem ini adalah pemicu
- 12:58Kebanyakan pengguna pemula membuat alur kerja yang aktif
- 13:02Pada setiap dorongan push atau kapanpun permintaan tarik pull request masuk ke cabang utama
- 13:07Sekilas, itu tampak seperti terbaik
- 13:10Mengapa tidak menjalankan alur pipa Anda setiap kali jangan?
- 13:12Inilah masalahnya
- 13:13Saat Anda hanya mengatur pemicu di cabang utama, semuanya disalurkan melalui satu jalur saja
- 13:17Bagaimana jika perubahan perlu masuk ke dev tetapi tidak ke tes atau prod?
- 13:20Bagaimana jika Anda siap mendorong ke prod tetapi tes masih menjalankan validasi?
- 13:23Tim yang terpaku pada pemicu satu ukuran untuk semua cenderung mengalami masalah
- 13:27Dimana fitur yang ditujukan untuk lingkungan pengembangan menyusup ke produksi
- 13:30Atau penerapan pengujian secara tiba-tiba menimpa pengaturan prod
- 13:34Anda bisa mencabangkan alur kerja untuk setiap lingkungan
- 13:37Dev, tes, dan prod
- 13:38Serta mengatur pemicu yang sangat spesifik untuk masing-masing
- 13:42Sebagai contoh, atur alur kerja yang hanya berjalan saat ada dorongan ke cabang dev
- 13:45Atau aktifkan alur kerja berbeda saat seseorang menggabungkan ke release prod
- 13:49Pendekatan ini memberikan lebih banyak kontrol dan menciptakan batasan yang jelas
- 13:53Antara pekerjaan yang sedang berlangsung dan perubahan langsung
- 13:55Namun banyak tim tidak pernah menjauh kembali pemicu mereka setelah membuat
- 13:58Begitulah rahasia dari satu lingkungan bisa menyelinap ke lingkungan lain
- 14:01Dan konfigurasi yang ditujukan untuk dev berakhir di prod secara tidak sengaja
- 14:05Satu tim yang pernah bekerja dengan saya mencoba menjalankan seluruh proses alam mereka dari satu alur kerja tulu
- 14:10Untuk sementara, itu tampak baik-baik saja
- 14:12Sampai seseorang menyadari bahwa string koneksi basis data produksi muncul di lingkungan dev muncul di lingkungan dev
- 14:18Mereka tidak menyadari bahwa rahasia mereka dibagikan di antara tugas-tugas
- 14:21Dan begitu kode berpindah antar lingkungan, rahasia-rahasia itu bocor bersamanya
- 14:24Itu bukan kerusakan atau kesalahan yang mencob
- 14:26Itu terjadi sejarah game
- 14:27Kebocoran data semacam ini lebih umum terjadi daripada yang Anda kira
- 14:30Terutama jika Anda tidak mengatur alur kerja untuk memisahkan rahasia dan variable lingkungan
- 14:34Setiap tugas dalam alur kerja GitHub Actions menangani bagian yang jelas dari proses tersebut
- 14:39Satu tugas mungkin menangani ekspor solusi dari lingkungan sumber
- 14:43Tugas lain menangani validasi pembongkaran
- 14:45Pemindahkan metadata solusi, memeriksa semua dependensi
- 14:48Dan memastikan referensi, konektor, ada
- 14:51Selanjutnya adalah tugas yang menyiapkan variable khusus lingkungan
- 14:55Menerjemahkan solusi agar sesuai dengan lingkungan targetnya
- 14:58Tugas terakhir memicu proses impor menggunakan prinsip pelayanan untuk menulis perubahan ke dalam lingkungan yang tepat
- 15:04Anda mungkin menganggap variable lingkungan dan rahasia sebagai penampung dasar
- 15:07Tetapi dalam prakteknya mereka adalah perkat yang menyatukan semuanya
- 15:10Merekat yang menyatukan semua
- 15:12String koneksi, kunci API, dan kata Sandy bersama harus ditukar
- 15:16Antar tugas tetapi tidak boleh bocor melintasi batasan
- 15:19Dalam ILM Power Platform Anda mungkin memiliki koneksi data khusus yang berbeda untuk setiap lingkungan
- 15:24Atau perlu menukar titik akhir tergantung pada alur atau power app yang ditargetkan
- 15:28Jika Anda menggunakan kembali variable atau membuat kode rahasia secara permanen hardcode Anda akan berakhir dengan pipeline yang rapuh atau yang lebih buruk risiko keamanannya signifikan
- 15:36Proses impor bergantung pada pengambilan rahasia hanya dari berangkas yang tepat sehingga produksi tidak terekspos oleh kesalahan pengujian atau pengembangan
- 15:43Model mental yang baik untuk rahasia di GitHub Actions adalah dengan membayangkan setiap lingkungan memiliki berangkas digital sendiri sebuah kotak terkunci yang hanya bisa dilihat oleh tugas yang tepat
- 15:52GitHub memberi Anda kontrolan presisi
- 15:54Anda dapat membatasi rahasia pada lingkungan tertentu sehingga tugas yang berjalan di dev tidak dapat mengakses kredensial prod dan sebaliknya
- 16:01Atur berangkas ini dan meskipun seseorang yang mengubah pipeline mencoba sesuatu yang berisiko
- 16:06Aturan perlindungan lingkungan akan mencegah kesalahan meluas
- 16:09Dokumentasi dari Microsoft maupun GitHub sendiri sangat menekankan poin ini
- 16:13Mereka merekomendasikan aturan perlindungan lingkungan dan perbatasan rahasia yang ketat untuk menghentikan kebocoran antar lingkungan sebelum terjadi
- 16:19Tanpa perlindungan semacam itu, alur kerja ALM yang dirancang paling baik sekalipun akan berantakan
- 16:24Bayangkan alur kerja yang menyebarkan ke prod saat masih menggunakan string koneksi dev atau lingkungan pengujian yang tiba-tiba memiliki akses ke data prod
- 16:32Hal ini tidak salah merusak sistem secara kesat mata
- 16:34Terkadang ini hanya berarti bendera kepatuhan menyala atau log dipenuhi dengan kesalahan halus yang perlahan menumpuk menjadi masalah yang lebih besar
- 16:40Inilah sebabnya alur kerja percabang dan pembatasan rahasia bukan sekadar topik tingkat lanjut
- 16:44Hal-hal tersebut adalah jaring pengaman yang menjaga otomatisasi Anda agar tidak hancur secara dip
- 16:48Ada juga nilai dalam membagi alur kerja tidak hanya berdasarkan lingkungan tetapi berdasarkan tanggung jawab
- 16:52Koda yang mengekspor dan memvalidasi solusi seharusnya bahkan tidak perlu tahu cara menyebarkan atau menukar rahasia
- 16:59Jika setiap tugas menangani satu bagian dari teka-teki akan jauh lebih mudah untuk menemukan dimana letak kerusakan melakukan pemulihan dan mengaudit perubahan setelahnya
- 17:07Rahasia tetap berada di berangkasnya tugas mengikuti izin yang dibatasi dengan jelas dan kegagalan pipeline langsung menunjuk ke bagian yang perlu diperbaiki
- 17:15Memahami bagaimana GitHub Actions menyerahkan pekerjaan dari satu tugas ke tugas lain
- 17:19Sambil menjaga rahasia tetap terbatas dan pemicu didefinisikan dengan jelas adalah hal yang mengubah ALM dari eksperimen harapan menjadi praktik yang andal aman dan dapat diprediksi
- 17:28Segmentasi alur kerja ini bukan sekadar tentang mengikuti praktek terbaik
- 17:32Hal ini memblokir kebocoran keamanan, diam-diam, dan penimpaan yang tidak disengaja
- 17:37Serta memotong seluruh kategori kesalahan tidak terlihat sebelum mulai menghantui lingkungan Anda
- 17:41Sekarang dengan bagian-bagian yang bekerja bersama melalui otomatisasi yang dibatasi dengan tepat saatnya kita mengatasi hambatan lainnya
- 17:48Konektor, prinsip layanan, dan jebakan kecil namun krusial yang bisa menghambat penerapan Anda tepat saat Anda mulai merasa percaya diri
- 17:56Rahasia prinsip layanan dan masalah pada konektor
- 17:59Jika Anda pernah mencoba mendahkan power app atau flow dari dev ke prod, Anda pasti tahu ceritanya
- 18:04Semuanya berjalan lancar di satu lingkungan, tetapi begitu Anda beralih, semuanya terhenti atau muncul kesalahan koneksi yang membingungkan
- 18:12Ini bukan hanya di alam latin tertentu saja
- 18:15Setiap admin power platform pada akhirnya akan menghadapi kendala ini
- 18:18Akar permasalahannya terletak pada bagaimana konektor dan rahasia bekerja di balik layar
- 18:23Anda tidak bisa begitu saja mengekspor jeb solusi dari pengembangan dan berharap itu berfungsi di tempat lain karena alurnya berubah di setiap lingkungan
- 18:32Ambil contoh referensi konektor sebagai permulaan
- 18:34Di power platform, konektor bukanlah sekadar informasi statis yang dibundang ke dalam aplikasi Anda, dev
- 18:40Sifatnya dinamis bisa diubah dan seringkali unik untuk setiap lingkungan
- 18:43Saat Anda mengekspor solusi, referensi konektor bertindak hampir seperti penanda
- 18:47Referensi tersebut menunjuk ke objek koneksi yang hanya ada di lingkungan tempat objek tersebut dibuat
- 18:52Jadi saat Anda mengimpor ke uji coba atau prod titik akhir HTTP atau tautan data first Anda tidak selalu dibuat ulang dengan cara yang sama atau bahkan tidak dibuat sama sekali
- 19:00Di sini ada tim seringkali tebak
- 19:02Jika dev menggunakan konektor untuk data uji dan konfigurasi yang sama tidak tercermin di prod, alur, atau aplikasi Anda akan gagal diam-diam atau berhenti saat pertama kali mencoba terhubung
- 19:16Banyak orang mencoba mengatasinya dengan membagikan kredensial pengguna di seluruh lingkungan
- 19:20Mereka pikir, jika menggunakan akun atau kata sandi yang sama untuk membuat koneksi di dev, mungkin itu akan berhasil di prod
- 19:26Kenyataannya, cara ini mengundang banyak masalah, mulai dari penolakan izin hingga pemicu audit kepatuhan
- 19:31Panduan Microsoft sudah jelas menggunakan kredensial pengguna individu untuk penerapan otomatis tidak layak atau tidak aman
- 19:38Hal ini membuat otomatisasi Anda bergantung pada pengaturan ulang kata sandi dan bisa meninggalkan jejak yang membingungkan dalam loka audita
- 19:44Tidak ada akuntabilitas yang jelas dan pada akhirnya izin akan memblokir alur kerja saat pengguna asli ditandai, dihapus, atau kehilangan akses
- 19:52Mesyuapan Prinsip Layanan
- 19:54Jika Anda belum pernah menggunakannya, bayangkan Prinsip Layanan sebagai tangan digital tambahan yang dibuat khusus untuk otomatisasi
- 20:00Tidak seperti pengguna biasa, prinsip layanan terikat pada pendaftaran aplikasi di Azure AD bukan orang sungguhan
- 20:08Anda memberinya izin minimum yang diperlukan untuk menjalankan tugas penerapan Anda
- 20:12Terdengar sederhana, tetapi hasilnya sangat besar
- 20:14Alih-alih mengandalkan pengguna yang bisa saja keluar dari organisasi atau berganti peran, penerapan tetap konsisten, dapat diaudit, dan dapat dilacak
- 20:21Setiap lingkungan hanya mendapatkan akses ke koneksi dan sumber daya yang tepat, dan setiap perubahan dicatat di bawah akun robot ini
- 20:27Ketika terjadi kegagalan, Anda memiliki jejak audit yang jelas dan tidak akan mendapati alur kerja yang terbengkalai tanpa bisa diperbaiki
- 20:33Terkait masalah pemetaan konektor, pertimbangkan apa yang terjadi ketika lingkungan kerja menjadi tidak selaras
- 20:39Mungkin tim pengembang mendapatkan persetujuan untuk konektor kustom yang baru
- 20:43Katakanlah konektor itu mengakses API Sandbox
- 20:45Saat waktunya pindah ke lingkungan produksi, konektor itu tidak hanya hilang, tetapi mungkin juga tidak diizinkan oleh kebijakan data organisasi
- 20:52Jika Anda lupa memetakan ulang, aplikasi akan memanggil ketika akhir yang salah atau rusak sepenuhnya
- 20:57Saya baru saja melihat hal ini berdampak berupa di sebuah perubahan yang sehat
- 21:00Satu pemetaan konektor yang terlewat memicu penggunaan data uji dalam produksi dan hampir menciptakan insiden kepatuhan
- 21:06Pipa otomatis mereka mengekspor semuanya sesuai rencana, tetapi referensi konektor di dalam solusi masih mengarah ke basis data uji lama
- 21:13Yang tidak ditandai oleh power platform, hingga data asli mulai mengalir melalui jalur yang salah hingga jalur yang salah
- 21:19Variable lingkungan hadir untuk meredakan sebagian kesulitan ini
- 21:22Berbeda dengan pemudaan titik akhir atau kunci API, secara permanen variabel lingkungan memungkinkan Anda memisahkan apa yang berubah antar lingkungan dari apa yang tetap sama
- 21:30Anda dapat menukar titik akhir kunci API atau rahasia lainnya di setiap penyebaran tanpa menulis ulang aplikasi atau alur kerja Anda
- 21:37Contohnya, alur yang bekerja dengan tabel dataverse pengembang dapat dikonfigurasi ulang saat impor untuk menggunakan tabel produksi hanya dengan mengubah variabel lingkungan di dalam proses penyebaran Anda
- 21:47Pipa GitHub Actions membuat hal ini menjadi perak
- 21:50Setiap pekerjaan dapat menuntikkan nilai yang tepat pada waktu yang tepat
- 21:53Namun, disiplin tetap menjadi kuncinya
- 21:55Lupa memperbarui variabel atau membiarkan rahasia bocor antar lingkungan dapat membuat alur kerja Anda tiba-tiba terekspos
- 22:02Microsoft nekankan perlunya membatasi ruang lingkungan rahasia dengan cermat dan memetakan referensi konektor secara sengaja
- 22:08Kebijakan pencegahan kehilangan data, DLP mereka ada karena suatu alasan untuk mencegah informasi sensitif berpindah antar lingkungan atau muncul di tempat yang salah
- 22:17Jika Anda mencoba mengabaikan ini dengan berbagi variabel atau koneksi
- 22:21Anda akan terbentur kendali keamanan atau kepatuhan perusahaan
- 22:26Lebih penting lagi Anda kehilangan pereditabilitas karena tidak ada lagi batasan antara apa yang ditujukan untuk pengembangan, pengujian, atau produksi
- 22:32Manfaat yang didapat ketika Anda melakukan semua ini dengan benar sangatlah besar
- 22:36Prinsip layanan yang dikombinasikan dengan variabel lingkungan yang terkelola dengan baik dan konektor yang dipetakan dengan tepat akan mengubah pipa kerja Anda
- 22:42Penyebaran Anda menjadi dapat diprediksi
- 22:44Saat terjadi kerusakan, Anda memiliki rantai pengawasan yang jelas dan tahu persis kemana harus mencarinya
- 22:48Apakah itu kesalahan pembentangan konektor, variabel, atau izin yang terlewat
- 22:52Auditor dapat melacak perubahan dan tidak ada keraguan saat seseorang meninggalkan organisasi atau mengubah kata sandi
- 22:57Semuanya bermuara pada cara menangani rahasia, konektor, dan prinsip layanan seolah-olah itu hal yang penting
- 23:01Selamat menikmati