Aspek Inti Implementasi Platform

Selesai

Rekayasa platform adalah pendekatan multidisiplin yang menggabungkan rekayasa perangkat lunak, desain sistem, dan keunggulan operasional untuk menciptakan infrastruktur yang andal dan dapat diskalakan untuk membangun dan menyebarkan aplikasi. Pada intinya, ini tidak hanya melibatkan pembangunan platform yang kuat, tetapi menciptakan lingkungan layanan mandiri yang memberdayakan tim pengembangan sambil memastikan keselarasan dengan tujuan bisnis. Inisiatif rekayasa platform yang sukses dimulai dengan tim yang tepat dan pemahaman yang jelas tentang ruang masalah. Fondasi ini memungkinkan pengembangan sistem yang menyederhanakan operasi, mengurangi gesekan, dan memungkinkan pengembang untuk fokus membangun aplikasi daripada mengelola infrastruktur.

Setelah tim diberlakukan, fokus bergeser ke mengotomatiskan area toil tinggi, mengidentifikasi tugas manual dan berulang yang dapat diotomatisasi untuk menghemat waktu dan mengurangi kesalahan. Setelah ini, inventarisasi sumber daya yang ada sangat penting, memungkinkan tim untuk memusatkan alat dan layanan, membuatnya lebih mudah dikelola dan diskalakan. Langkah selanjutnya disebut sebagai menetapkan jalur beraspal, yang melibatkan pembuatan alur kerja dan lingkungan standar untuk memastikan konsistensi di semua proyek. Setelah itu, menyebarkan lingkungan sebagai layanan membantu menyederhanakan proses lebih lanjut, memungkinkan tim untuk dengan cepat memutar lingkungan sesuai permintaan. Pada saat itu, tujuan utama menjadi mengoptimalkan pengalaman pengembang layanan mandiri, memberdayakan pengembang untuk mengelola alur kerja mereka secara independen sambil memastikan mereka memiliki alat dan dukungan yang diperlukan untuk keberhasilan. Pendekatan ini mengubah bagaimana tim pengembangan berinteraksi dengan infrastruktur, menciptakan lingkungan yang tangkas dan berkinerja tinggi untuk membangun dan mengirimkan aplikasi.

Diagram yang menunjukkan pekerjaan Rekayasa Platform yang akan dilakukan.

Selain memiliki rencana implementasi yang jelas, daripada mendekati rekayasa platform sebagai konsep tunggal yang luas, akan sangat membantu untuk memecahnya menjadi empat area utama untuk memfasilitasi proses implementasi:

  • Sistem Teknik, yang mencakup alat dan layanan yang memungkinkan pengembangan, seperti CI/CD, manajemen paket, lingkungan pengodean berbasis cloud, pemindai kode dan linter, serta asisten Kecerdasan Buatan (AI) seperti GitHub Copilot.
  • Platform Aplikasi, yang terdiri dari pilihan layanan yang dikumpulkan yang digunakan sebagai blok penyusun tumpukan aplikasi yang umum digunakan (misalnya, Azure Policy, Azure Key Vault, Azure Container Apps, atau Cosmos DB).
  • Templat Aplikasi, yang menyediakan templat khusus organisasi yang memiliki definisi jelas untuk memfasilitasi penyediaan beban kerja dan selaras dengan praktik terbaik.
  • Kemampuan Self-Service Pengembang, yang memungkinkan pengembang mengelola alur kerja mereka secara otonom sambil memastikan tata kelola dan kepatuhan terhadap standar organisasi.

Menggabungkan area ini ke dalam strategi implementasi Anda mengurangi toil pengembang, menumbuhkan inovasi, dan menciptakan pengalaman pengembangan yang mulus.

Diagram yang menunjukkan strategi implementasi termasuk sistem rekayasa, platform aplikasi, templat aplikasi, dan kemampuan layanan mandiri pengembang.

Membangun tim

Dalam organisasi teknik platform, menumbuhkan budaya yang tepat sangat penting untuk keberhasilan jangka panjang. Transisi dari reaktif ke budaya proaktif adalah kunci, di mana tim platform bertanggung jawab untuk membangun dan memelihara alat untuk mendukung organisasi. Pergeseran ini sangat penting untuk mengurangi silo pengetahuan dan gangguan operasional. Keberhasilan upaya rekayasa platform selaras dengan kemampuan investasi yang diuraikan dalam Model Kemampuan Rekayasa Platform, yang menekankan bergerak melalui tahap kematangan organisasi—mulai dari provisi hingga pengoptimalan. Pada tahap provisi, perusahaan mengakui kebutuhan akan rekayasa platform tetapi mungkin tidak memiliki keselarasan penuh antara kepemimpinan dan tim pengembangan. Ketika organisasi matang, pembelian eksekutif dan pergeseran budaya mendorong lingkungan yang lebih kolaboratif dan inovatif di mana tim platform diberdayakan untuk mendorong perubahan yang bermakna, memungkinkan organisasi untuk menskalakan secara efektif.

Tim teknik platform memerlukan serangkaian keterampilan teknis yang beragam dan pola pikir yang berpusat pada produk untuk membangun dan menskalakan platform pengembang internal yang andal, efisien, dan aman. Insinyur platform diharapkan mahir di beberapa area utama, termasuk orkestrasi kontainer (misalnya, Kubernetes), alur CI/CD (misalnya, GitHub Actions, Azure Pipelines), dan alat pemantauan (misalnya, Azure Monitor, Prometheus, Grafana). Keahlian dalam alat Infrastruktur sebagai Kode (IaC) seperti Terraform dan Bicep sangat penting untuk mengotomatiskan provisi infrastruktur. Selain itu, teknisi platform harus nyaman menulis kode dalam bahasa skrip seperti Python, PowerShell, atau Bash untuk mengaktifkan otomatisasi dan integrasi di seluruh sistem. Meskipun kumpulan bakat untuk insinyur platform dapat menantang untuk digunakan, tim yang sukses harus menggabungkan keahlian dari berbagai latar belakang, seperti pengembangan perangkat lunak, rekayasa keandalan situs (SRE), dan operasi TI.

Mengotomatiskan area toil tinggi

Mengotomatiskan area dengan toil tinggi umumnya mewakili jalur beraspal pertama di jalan untuk memungkinkan kemampuan layanan mandiri pengembang. Untuk menerapkannya, mulailah dengan mengidentifikasi proses yang sering, rawan kesalahan, atau padat karya, terutama yang terkait dengan operasi manual atau meja layanan. Selanjutnya, menilai faktor-faktor seperti frekuensi proses, kompleksitas, dan auditabilitas untuk memprioritaskan target otomatisasi. Menerapkan infrastruktur sebagai kode (IaC) dalam alur pengiriman berkelanjutan (CD) Anda tidak hanya menyederhanakan penyebaran aplikasi tetapi juga memungkinkan provisi dinamis infrastruktur dan alat bersama. Gunakan platform CI/CD yang fleksibel seperti GitHub Actions dan Azure DevOps, atau solusi GitOps seperti Flux dan Argo CD untuk mengurangi hambatan dan memberdayakan tim.

Seiring waktu, mengadopsi pola "Everything as Code" (EaC) membuat kerangka kerja otomatisasi yang aman dan dapat diulang, menggunakan repositori Git terpusat untuk templat dan konfigurasi IaC (termasuk, misalnya, templat Bicep dan Azure Resource Manager, file manifes Terraform, dan bagan Helm). Repositori ini, dikelola oleh tim operasi, memungkinkan pengembang untuk mengirimkan permintaan pull yang ditinjau dan diaudit dengan aman sebelum menggabungkan. Alat CI/CD yang sama kemudian dapat menyediakan dan mengonfigurasi infrastruktur, alat, atau layanan apa pun—baik khusus aplikasi atau bersama. Pendekatan ini mendukung skalabilitas, layanan mandiri pengembang, dan integrasi yang mulus dengan proses tata kelola, memastikan bahwa rekayasa platform selaras dengan tujuan organisasi sambil menumbuhkan kelincahan operasional.

Pendekatan "Semuanya sebagai Kode" berputar mewakili hampir semua sumber daya atau proses sebagai file dalam repositori Git yang aman. Fitur keamanan Git yang kuat—seperti riwayat penerapan, kontrol akses, permintaan penarikan, dan perlindungan cabang—pastikan transparansi, aktifkan tinjauan kolaboratif, dan terapkan pemeriksaan otomatis sebelum perubahan terintegrasi. Dikombinasikan dengan sistem CI/CD, ini menciptakan kerangka kerja yang serbaguna, dapat diaudit, dan aman untuk mengelola infrastruktur, alat, dan proses.

Inventarisasi dan terpusat

Ketika organisasi tumbuh, volume dan kompleksitas aset teknis mereka berkembang, sering menyebabkan duplikasi upaya, proyek yatim piatu, dan sumber daya yang terbuang-. Memusatkan inventarisasi dan pelacakan aset adalah langkah penting dalam rekayasa platform untuk mengatasi tantangan ini. Sistem inventarisasi memungkinkan tim untuk melacak dan mengelola aset seperti kode, API, kontainer, komputer virtual (VM), izin, dan banyak lagi. Proses ini tidak hanya meningkatkan tata kelola tetapi juga mempromosikan penggunaan kembali dan meningkatkan kemampuan penemuan, memungkinkan tim untuk beroperasi lebih efisien dan efektif.

Inventarisasi terpusat memainkan peran penting dalam meningkatkan tata kelola dengan menandai dan mengatur aset. Pemberian tag yang tepat memastikan bahwa sumber daya dikaitkan dengan pemilik atau tim masing-masing, sehingga lebih mudah untuk mengelola siklus hidup dan memahami potensi dampak perubahan. Kemudahan penemuan yang ditingkatkan adalah manfaat utama lainnya, karena mengurangi keluasan teknis dengan membantu tim menemukan dan menggunakan kembali sumber daya yang ada, mencegah duplikasi upaya yang tidak perlu. Selain itu, memusatkan inventaris membantu organisasi mengoptimalkan sumber daya dengan mengidentifikasi dan membersihkan aset yang ketinggalan zaman atau tidak perlu, yang menyebabkan berkurangnya limbah dan peningkatan penghematan biaya.

Berbagai alat mendukung inventori dan pelacakan aset, masing-masing melayani berbagai aspek ekosistem teknis. Misalnya, Azure Deployment Environments (ADE) menyediakan cara untuk melacak infrastruktur kompleks yang dibuat melalui Infrastruktur sebagai Kode (IaC). Demikian pula, Azure API Center memungkinkan pengembang untuk menemukan dan mengelola API secara efisien. Registri paket seperti Paket GitHub atau Azure Artifacts menawarkan nilai ekstra dengan meningkatkan keamanan rantai pasokan dan mengelola paket dan SDK yang disetujui.

Untuk lebih meningkatkan manfaat sistem inventarisasi, organisasi dapat membangun hubungan hubungan antara aset untuk menciptakan pandangan yang lebih komprehensif tentang ekosistem mereka. Misalnya, memetakan hubungan antara definisi API, repositori kodenya, lingkungan terkait, dan kebijakan tata kelola memungkinkan tim mengelola sumber daya dengan presisi yang lebih besar.

Jalur beraspal Blaze

Dalam rekayasa platform, analogi "jalur beraspal" menyampaikan keseimbangan antara menumbuhkan inovasi dan memberikan panduan standar. Awalnya, tim dapat mengambil jalur informal yang bervariasi untuk mencapai tujuan mereka, bereksperimen dengan alat dan alur kerja yang berbeda. Seiring waktu, tim platform mengamati pendekatan yang paling efektif dan diadopsi secara luas dan mengonversinya menjadi "jalur beraspal"—alur kerja yang dioptimalkan yang efisien, ramah pengguna, dan menarik bagi tim untuk diadopsi.

Proses ini, yang sering digambarkan sebagai "jalur beraspal menyala," melibatkan identifikasi pola umum dalam alur kerja tim dan mengubahnya menjadi solusi yang terstandarisasi dan dapat diskalakan. Jalur ini dengan mulus mengintegrasikan keamanan, praktik terbaik arsitektur, dan persyaratan kepatuhan, menawarkan pengalaman yang lancar dan andal. Pengembang mendapat manfaat dari pengurangan beban kognitif, API yang konsisten untuk integrasi, kemampuan modular yang dapat dikombinasikan sesuai kebutuhan, dan performa yang dapat diprediksi yang selaras dengan tujuan operasional.

Model Kemampuan Rekayasa Platform memainkan peran penting dalam proses ini, membantu organisasi menentukan kapan harus bertransisi dari jalur informal ke jalur yang diaspal. Ini mengidentifikasi area yang memerlukan standardisasi dan memberikan wawasan tentang cara menskalakan praktik ini secara efektif. Pendekatan terstruktur ini memastikan inovasi tidak tertahankan sambil mempertahankan fokus pada kualitas, kepatuhan, dan performa.

Pendekatan jalur beraspal blaze mendorong praktik yang baik tanpa terlalu preskriptif. Ini mendukung kontribusi komunitas, memungkinkan tim untuk berkolaborasi dan membentuk platform sambil mempertahankan fleksibilitas untuk kasus penggunaan unik. Dengan menyeimbangkan inovasi dan standardisasi, metodologi ini menumbuhkan lingkungan di mana tim dapat unggul sambil memastikan persyaratan organisasi terpenuhi secara konsisten.

Diagram memperlihatkan jalur beraspal blaze dengan CI dan CD yang tidak didukung.

Diagram memperlihatkan jalur beraspal blaze dengan CI dan CD yang tidak digunakan lagi.

Menyebarkan lingkungan sebagai layanan

Menyebarkan lingkungan sebagai layanan dirancang untuk memungkinkan penyediaan infrastruktur yang aman, terstandarisasi, dan otomatis. Prinsip utama dalam pendekatan ini adalah mempertahankan penyediaan identitas dan rahasia dengan cara yang mencegah pengembang mengaksesnya secara langsung. Hal ini memberlakukan tata kelola sekaligus memastikan pembaruan infrastruktur tetap aman. Misalnya, Azure Deployment Environments (ADE) mencontohkan model ini dengan mendukung pemisahan peran dan memusatkan manajemen templat IaC.

Dengan ADE, teknisi platform dan tim operasi secara kolaboratif membangun dan memelihara katalog templat untuk jenis lingkungan tertentu. Templat ini, diperkaya dengan pengaturan yang telah dikonfigurasi sebelumnya, mengintegrasikan identitas terkelola dan mengontrol akses berdasarkan peran. Pengembang kemudian dapat menggunakan alur CI/CD untuk menyediakan infrastruktur melalui alat seperti Azure CLI atau Azure Developer CLI, tanpa memerlukan akses langsung ke kredensial sensitif atau langganan yang mendasarinya. Pemisahan ini memastikan kepatuhan dan keamanan sambil mempertahankan produktivitas pengembang.

Diagram memperlihatkan alur kerja Insinyur Platform dengan Katalog Dev Center, pemetaan jenis lingkungan, portal, dan alur penyebaran otomatis.

Bahkan jika ADE tidak digunakan, prinsip yang sama dapat diterapkan lebih luas, dengan konten infrastruktur sebagai kode (IaC) yang bersumber dari lokasi yang aman dan tidak dapat diubah dan manajemen rahasia otomatis dan terisolasi. Dengan mengaktifkan praktik ini, rekayasa platform memberdayakan tim untuk menyebarkan lingkungan yang konsisten sambil menjaga tata kelola organisasi dan efisiensi operasional.

Mengoptimalkan pengalaman pengembang layanan mandiri

Pengalaman pengembang layanan mandiri yang mulus sangat penting untuk keberhasilan rekayasa platform, tetapi mencapai hal ini sering membutuhkan pertemuan pengguna di mana mereka berada. Setiap peran—pengembang, operasi, dan lainnya—memahami alat dan lingkungan tertentu yang menentukan alur kerja mereka. Untuk pengalaman baru untuk mendapatkan adopsi, penting untuk menyelaraskan dengan "pusat gravitasi" yang ada ini. Pendekatan pragmatis melibatkan perencanaan beberapa antarmuka pengguna yang disesuaikan dengan alat yang sudah digunakan, memungkinkan tim untuk memulai dengan peningkatan sederhana, membuktikan nilainya, dan berkembang menuju solusi yang lebih canggih saat kebutuhan muncul.

Alih-alih menciptakan pengalaman yang sama sekali baru, pertimbangkan untuk meningkatkan dan mengintegrasikan alat yang ada. Platform seperti editor, Lingkungan Pengembangan Terpadu (IDEs), suite DevOps, alat CLI, dan lingkungan kode rendah sering memiliki model ekstensibilitas yang memungkinkan penyesuaian dan ekspansi dengan overhead minimal. Pendekatan ini mengurangi pemeliharaan, menerapkan pengalaman pengguna yang akrab, dan mempercepat adopsi. Misalnya, ekstensi IDE berbasis web, seperti yang dibangun untuk Visual Studio Code atau vscode.dev, menyediakan titik awal yang fleksibel dan kompatibel dengan web yang dapat diskalakan ke lingkungan pengembangan lokal. Demikian pula, antarmuka ChatOps dalam alat seperti Microsoft Teams atau Slack menawarkan cara intuitif untuk memicu alur kerja otomatisasi dan berintegrasi dengan platform CI/CD.

Untuk organisasi yang membutuhkan antarmuka terpusat, berinvestasi di portal pengembang kustom dapat memberikan manfaat jangka panjang tetapi membutuhkan perencanaan dan sumber daya yang cermat. Solusi seperti Backstage.io, toolkit yang awalnya dikembangkan oleh Spotify, menawarkan portal yang sangat dapat disesuaikan yang dapat mengintegrasikan plugin dan alat pihak ketiga, menciptakan hub yang ber sentris pengembang dinamis. Baik Anda mulai dengan solusi ringan seperti Power Pages atau membangun portal yang komprehensif, tujuannya adalah untuk memberikan pengalaman yang dapat diskalakan dan ramah pengguna yang memberdayakan pengembang sambil menyelaraskan dengan kebutuhan organisasi.