Apa yang dimaksud dengan platform developer internal (IDP)?

Salah satu tujuan utama rekayasa software adalah memecahkan masalah dan menciptakan nilai, tetapi fokus tersebut dapat hilang dalam gesekan sehari-hari pengembangan modern. Platform developer internal (IDP) dirancang untuk meringankan beban developer agar mereka dapat berfokus pada pengembangan software. Tujuan utama IDP bukan hanya untuk mengirimkan software lebih cepat, tetapi juga untuk mengurangi beban mental developer dengan membuat template dan otomatisasi yang aman, efisien, dan didukung dengan baik—sering disebut "jalur ideal"—untuk membangun dan men-deploy aplikasi.

Membangun platform developer internal di Google Kubernetes Engine Enterprise

Definisi platform developer internal (IDP)

Platform developer internal mengintegrasikan serangkaian teknologi dan alat yang diseleksi, yang dibangun dan dipelihara oleh tim platform khusus. Stack ini sering kali mencakup solusi untuk orkestrasi container, alat infrastructure as code (IaC), dan pipeline CI/CD yang didukung oleh project open source.

Platform developer internal (IDP) harus didekati sebagai produk, dengan developer sebagai penggunanya. Penting untuk menangani kasus penggunaan mereka, mengumpulkan masukan mereka, dan terus menyempurnakan platform melalui iterasi. IDP adalah lapisan yang menghubungkan alat-alat ini, dan menghilangkan kerumitannya sehingga developer dapat melakukan tugas melalui model layanan mandiri yang sederhana. Tujuannya adalah untuk membuat cara yang tepat menjadi cara yang mudah, sehingga developer dapat membangun dan mengirimkan aplikasi dengan percaya diri dan mandiri.

H2: Apa itu beban kognitif?

Beban kognitif mengacu pada jumlah total upaya mental yang digunakan dalam memori kerja seseorang. Anggap saja ini sebagai bandwidth mental yang dimiliki developer. Ketika bandwidth tersebut digunakan untuk tugas non-coding, kemampuan mereka untuk berfokus pada pemecahan masalah yang kompleks akan berkurang.

Developer sering kali harus beralih di antara puluhan alat, dasbor, dan file konfigurasi yang berbeda hanya untuk menerapkan perubahan sederhana. Setiap peralihan konteks memaksa otak untuk memuat serangkaian informasi baru, yang melelahkan secara mental. Penggunaan alat dan proses yang terus-menerus ini meningkatkan beban kognitif, yang dapat menyebabkan kejenuhan, lebih banyak kesalahan, dan inovasi yang lebih lambat.

Peran platform engineering

Engineering platform adalah disiplin ilmu yang berfokus pada perancangan, pembangunan, dan pemeliharaan platform developer internal. Anggap saja seperti ini: jika IDP adalah produknya, maka tim engineering platform adalah tim produk yang bertanggung jawab atas siklus prosesnya. Pelanggan mereka adalah developer organisasi.

Pendekatan ini berarti platform diperlakukan seperti produk software lainnya. Tim engineering platform bertanggung jawab untuk memahami kebutuhan developer, menentukan roadmap, dan menyediakan serangkaian alat yang andal, aman, dan mudah digunakan.

Platform developer internal versus portal developer internal

Pertanyaan yang sering diajukan adalah perbedaan antara platform dan portal. Meskipun istilah ini terkadang digunakan secara bergantian, keduanya mewakili lapisan pengalaman developer yang berbeda. Anggap platform developer internal (IDP) sebagai keseluruhan mesin, yang mencakup semua alat, alur kerja, dan infrastruktur yang mendukung siklus proses pengembangan Anda.

Di sisi lain, portal developer internal adalah dasbor untuk mesin tersebut. Ini adalah antarmuka pengguna grafis (GUI) yang memberi developer satu tempat terpusat untuk mengakses kemampuan platform. Portal developer dapat membantu developer menemukan dan menggunakan alat, melihat dokumentasi, membuat kerangka layanan baru, dan memeriksa status build mereka tanpa perlu memahami mekanisme kompleks yang berjalan di bawahnya. Meskipun IDP yang komprehensif sering kali mencakup portal developer untuk meningkatkan kegunaan dan keterlihatan, platform itu sendiri adalah serangkaian teknologi dasar dan proses otomatis yang lengkap.

Komponen utama IDP

Meskipun kebutuhan setiap perusahaan berbeda, sebagian besar IDP dibangun dari beberapa komponen inti yang bekerja sama. Komponen ini berfokus pada pembuatan jalur yang efisien, aman, dan praktis dari pengembangan hingga produksi.

Pengalaman developer adalah antarmuka pusat yang mengabstraksi kompleksitas infrastruktur yang mendasarinya. Biasanya, portal developer atau antarmuka command line (CLI) memberi developer akses mandiri ke alat, dokumentasi, dan resource yang mereka butuhkan. Misalnya, plugin IDE seperti Cloud Code membantu developer menulis dan men-debug kode langsung di dalam alat yang sudah mereka kenal, sementara portal yang dibangun dengan solusi seperti Backstage di Google Cloud memberikan satu tampilan gabungan dari seluruh ekosistem software mereka.

Template aplikasi, yang terkadang disebut jalur ideal, memberi developer struktur praktik terbaik yang telah ditentukan sebelumnya untuk aplikasi baru. Template ini dapat mencakup kode boilerplate, pipeline CI/CD yang dikonfigurasi, file infrastructure-as-code, dan dasbor pemantauan. Aset seperti App Design Center dapat membantu tim membuat dan mengelola katalog template ini, sehingga memastikan praktik terbaik mudah ditemukan dan digunakan kembali. Pendekatan ini mempercepat orientasi developer dan menciptakan konsistensi di semua layanan.

Komponen ini mengintegrasikan keamanan langsung ke dalam alur kerja pengembangan. Layanan ini mengotomatiskan penerapan kebijakan keamanan, seperti Identity and Access Management (IAM), role-based access control (RBAC), kebijakan jaringan, pemindaian kerentanan, dan penguatan infrastruktur. Dengan menyematkan keamanan ke dalam fondasi platform, tim dapat "menerapkan langkah-langkah keamanan secara keseluruhan" dan mengatasi potensi masalah sejak awal siklus proses pengembangan. Hal ini mencegah keamanan menjadi hambatan tepat sebelum produksi.

Fondasi yang berpusat pada aplikasi menciptakan lapisan abstraksi standar di atas infrastruktur yang mendasarinya. Ini menyediakan model terpadu untuk masalah operasional utama, yang menawarkan satu pendekatan untuk jaringan, keamanan, dan observasi yang berfungsi di semua lingkungan. Konsistensi ini menyederhanakan pengelolaan dan mengurangi beban kognitif pada developer, yang tidak perlu mengkhawatirkan detail unik dari setiap target deployment, seperti konfigurasi cluster Google Kubernetes Engine (GKE) tertentu.

IDP mengelola runtime aplikasi tempat kode dijalankan. Runtime ini dapat berupa platform orkestrasi container seperti GKE, platform serverless seperti Cloud Run, atau lingkungan komputasi lainnya. IDP mengotomatiskan penyediaan, konfigurasi, dan pemeliharaan runtime ini. Hal ini memungkinkan developer men-deploy aplikasi mereka dengan cepat dan andal tanpa memerlukan keahlian mendalam dalam layanan komputasi yang mendasarinya.

Platform aplikasi cloud adalah serangkaian layanan cloud terintegrasi yang berfungsi sebagai tulang punggung untuk seluruh IDP. Ini menggabungkan komputasi, penyimpanan, jaringan, Cloud API, alat CI/CD, dan kemampuan observasi ke dalam sistem yang kohesif. Membangun IDP di fondasi yang komprehensif seperti Google Cloud dapat memungkinkan tim memanfaatkan layanan terkelola yang canggih untuk mempercepat pengembangan, meningkatkan keandalan, dan memastikan platform dapat diskalakan untuk memenuhi permintaan.

Manfaat IDP

Mengadopsi platform developer internal dapat memberikan keuntungan signifikan bagi organisasi engineering.

Pengalaman developer yang lebih baik

Dengan mengurangi beban kognitif dan menyediakan alur kerja layanan mandiri yang sederhana, IDP dapat membantu meningkatkan pengalaman developer.

Waktu penyiapan produk lebih cepat

Otomatisasi dan standardisasi dapat membantu mempercepat proses pembuatan dan deployment software, sehingga tim dapat memberikan nilai kepada pelanggan dengan lebih cepat.

Peningkatan keandalan dan konsistensi

IDP dapat membantu menerapkan praktik terbaik melalui jalur ideal, dan dapat menghasilkan deployment aplikasi yang lebih konsisten dan andal.

Keamanan dan kepatuhan yang ditingkatkan

Kebijakan keamanan dapat diintegrasikan langsung ke dalam template dan alur kerja otomatis platform, sehingga memastikan bahwa semua layanan baru memenuhi persyaratan kepatuhan sejak awal.

Otonomi developer yang lebih besar

Memusatkan pengelolaan platform dapat membantu developer berfokus pada fitur dan memberi mereka otonomi untuk mengelola siklus proses aplikasi mereka.

Cara IDP menghubungkan stack yang ada

Untuk melihat cara kerja IDP dalam praktik, mari kita lihat contoh platform developer internal umum yang menggunakan Google Cloud. Bayangkan seorang developer perlu menjalankan microservice baru yang memerlukan database dan pipeline CI/CD sendiri.

Tanpa IDP

Developer perlu membuat Cloud Source Repository secara manual, menulis modul Terraform untuk menyediakan database Cloud SQL, membuat dan mengonfigurasi file deployment Google Kubernetes Engine (GKE) (YAML), menyiapkan pemicu baru di Cloud Build, dan mengelola izin IAM untuk semuanya. Proses ini dapat memakan waktu berhari-hari dan melibatkan banyak tim.

Dengan IDP

Prosesnya jauh lebih sederhana.

Permintaan dari portal: Developer login ke portal developer dan menemukan template bawaan untuk "microservice Python dengan database Cloud SQL".

Input sederhana: Mereka mengisi formulir singkat dengan nama layanan dan nama tim mereka.

Orkestrasi dimulai: Developer mengklik "Create", dan orkestrator platform mengambil alih.

Tindakan otomatis: Di balik layar, orkestrator menjalankan serangkaian tugas otomatis menggunakan Google Cloud API:

  • Hal ini membuat repositori baru di Cloud Source Repositories dari template
  • Hal ini menjalankan rencana Terraform untuk menyediakan instance Cloud SQL untuk PostgreSQL yang baru
  • Hal ini membuat manifes yang diperlukan dan menerapkannya ke cluster Google Kubernetes Engine (GKE) untuk membuat lingkungan deployment baru
  • Hal ini mengonfigurasi pipeline CI/CD baru di Cloud Build untuk otomatis membangun dan men-deploy layanan

Penyelesaian: Proses selesai dalam hitungan menit. Developer mendapatkan notifikasi dengan link ke repositori baru mereka, aplikasi yang berjalan di lingkungan staging GKE, dan kredensial database, semuanya tanpa menulis satu baris konfigurasi pun.

Mengatasi tantangan bisnis Anda dengan Google Cloud

Pelanggan baru mendapatkan kredit gratis senilai $300 untuk dibelanjakan di Google Cloud.
Masalah apa yang ingin Anda temukan solusinya?
What you'll get:
Panduan langkah demi langkah
Arsitektur referensi
Solusi siap pakai yang tersedia
Layanan ini dibangun dengan Vertex AI. Anda harus berusia 18 tahun ke atas untuk menggunakannya. Jangan memasukkan informasi sensitif, rahasia, atau pribadi.

Referensi tambahan

Untuk mempelajari lebih lanjut konsep dan teknologi yang membentuk platform developer internal, lihat referensi tambahan berikut:

  • Engineering platform di Google Cloud: Pelajari disiplin ilmu dalam mendesain dan membangun toolchain dan alur kerja yang memungkinkan layanan mandiri developer
  • DevOps: Pelajari lebih dalam budaya, praktik, dan alat yang membantu organisasi menghadirkan aplikasi dan layanan dengan kecepatan tinggi

Langkah selanjutnya

Mulailah membangun solusi di Google Cloud dengan kredit gratis senilai $300 dan lebih dari 20 produk yang selalu gratis.