Bagikan melalui


Apa itu DevOps?

DevOps menggabungkan pengembangan (Dev) dan operasi (Ops) untuk menyatukan orang, proses, dan teknologi dalam perencanaan, pengembangan, pengiriman, dan operasi aplikasi. DevOps memungkinkan koordinasi dan kolaborasi antara peran yang sebelumnya di-silo seperti pengembangan, operasi TI, rekayasa kualitas, dan keamanan.

Teams mengadopsi budaya, praktik, dan alat DevOps untuk meningkatkan keyakinan pada aplikasi yang mereka bangun, merespons kebutuhan pelanggan dengan lebih baik, dan mencapai tujuan bisnis lebih cepat. DevOps membantu tim terus memberikan nilai kepada pelanggan dengan menghasilkan produk yang lebih baik dan lebih andal.

DevOps dan siklus hidup aplikasi

DevOps memengaruhi siklus hidup aplikasi sepanjang fase perencanaan, pengembangan, pengiriman, dan operasinya. Setiap fase bergantung pada fase lain, dan fasenya tidak spesifik peran. Budaya DevOps melibatkan semua peran dalam setiap fase hingga batas tertentu.

Diagram berikut mengilustrasikan fase gaya hidup aplikasi DevOps:

Conceptual diagram that illustrates the DevOps application lifecycle.

Tujuan dan manfaat DevOps

Ketika tim mengadopsi budaya, praktik, dan alat DevOps, mereka dapat mencapai hal-hal yang luar biasa:

Mempercepat waktu ke pasar

Melalui peningkatan efisiensi, kolaborasi tim yang ditingkatkan, alat otomatisasi, dan penyebaran berkelanjutan--tim dapat dengan cepat mengurangi waktu dari awal produk hingga peluncuran pasar.

Beradaptasi dengan pasar dan persaingan

Budaya DevOps menuntut tim memiliki fokus pertama pelanggan. Dengan mengawinkan kelincahan, kolaborasi tim, dan fokus pada pengalaman pelanggan, tim dapat terus memberikan nilai kepada pelanggan mereka dan meningkatkan daya saing mereka di marketplace.

Menjaga stabilitas dan keandalan sistem

Dengan mengadopsi praktik peningkatan berkelanjutan, tim dapat membangun peningkatan stabilitas dan keandalan produk dan layanan yang mereka sebarkan. Praktik ini membantu mengurangi kegagalan dan risiko.

Meningkatkan waktu rata-rata untuk pemulihan

Waktu rata-rata untuk metrik pemulihan menunjukkan berapa lama waktu yang diperlukan untuk pulih dari kegagalan atau pelanggaran. Untuk mengelola kegagalan perangkat lunak, pelanggaran keamanan, dan rencana peningkatan berkelanjutan, tim harus mengukur dan bekerja untuk meningkatkan metrik ini.

Mengadopsi budaya DevOps

Untuk mengimplementasikan DevOps sepenuhnya, Anda harus mengadopsi budaya DevOps. Mengolah budaya DevOps membutuhkan perubahan mendalam dalam cara orang bekerja dan berkolaborasi. Ketika organisasi berkomitmen pada budaya DevOps, mereka menciptakan lingkungan bagi tim berkinerja tinggi untuk berkembang. Saat mengadopsi praktik DevOps mengotomatiskan dan mengoptimalkan proses melalui teknologi, tanpa pergeseran ke budaya DevOps dalam organisasi dan orang-orangnya, Anda tidak akan mendapatkan manfaat penuh dari DevOps.

Gambar berikut mengambil aspek utama dari budaya situs langsung Microsoft.

Diagram of Microsoft's live site culture.

Praktik berikut adalah komponen utama dari budaya DevOps:

  • Kolaborasi, visibilitas, dan keselarasan: Ciri khas budaya DevOps yang sehat adalah kolaborasi antar tim. Kolaborasi dimulai dengan visibilitas. Pengembangan, IT, dan tim lain harus berbagi proses, prioritas, dan kekhawatiran DevOps satu sama lain. Dengan merencanakan kerja sama, mereka lebih baik diposisikan untuk menyelaraskan tujuan dan ukuran kesuksesan karena berkaitan dengan bisnis.
  • Pergeseran dalam cakupan dan akuntabilitas: Saat tim selaras, mereka mengambil kepemilikan dan terlibat dalam fase siklus hidup lainnya—bukan hanya yang terpusat pada peran mereka. Misalnya, pengembang menjadi bertanggung jawab tidak hanya pada inovasi dan kualitas yang ditetapkan dalam fase pengembangan, tetapi juga pada performa dan stabilitas perubahan mereka membawa fase operasi. Pada saat yang sama, operator TI yakin untuk menyertakan tata kelola, keamanan, dan kepatuhan dalam fase rencana dan pengembangan.
  • Siklus rilis yang lebih pendek: Tim DevOps tetap tangkas dengan merilis perangkat lunak dalam siklus pendek. Siklus rilis yang lebih pendek membuat perencanaan dan manajemen risiko lebih mudah karena kemajuan bertahap, yang juga mengurangi dampak pada stabilitas sistem. Mempersingkat siklus rilis juga memungkinkan organisasi untuk beradaptasi dan bereaksi terhadap kebutuhan pelanggan yang berkembang dan tekanan kompetitif.
  • Pembelajaran berkelanjutan: Tim DevOps berkinerja tinggi membangun pola pikir pertumbuhan. Mereka gagal dengan cepat dan memasukkan pembelajaran ke dalam proses mereka. Mereka berusaha untuk terus meningkatkan, meningkatkan kepuasan pelanggan, dan mempercepat inovasi dan kemampuan beradaptasi pasar.

Menerapkan praktik DevOps

Anda menerapkan DevOps dengan mengikuti praktik DevOps (dijelaskan di bagian berikut) sepanjang siklus hidup aplikasi. Beberapa praktik ini membantu mempercepat, mengotomatiskan, dan meningkatkan fase tertentu. Yang lain mencakup beberapa fase, membantu tim menciptakan proses yang mulus yang membantu meningkatkan produktivitas.

Integrasi Berkelanjutan dan Penyediaan Berkelanjutan (CI/CD)

Integrasi Berkelanjutan (CI) adalah praktik yang digunakan oleh tim pengembangan untuk mengotomatiskan, menggabungkan, dan menguji kode. CI membantu menangkap bug di awal siklus pengembangan, yang membuatnya lebih murah untuk diperbaiki. Pengujian otomatis dijalankan sebagai bagian dari proses CI untuk memastikan kualitas. Sistem CI menghasilkan artefak dan memberinya umpan untuk merilis proses untuk mendorong penyebaran yang sering.

Pengiriman Berkelanjutan (CD) adalah proses di mana kode dibangun, diuji, dan disebarkan ke satu atau beberapa lingkungan pengujian dan produksi. Penyebaran dan pengujian di beberapa lingkungan meningkatkan kualitas. Sistem CD menghasilkan artefak yang dapat disebarkan, termasuk infrastruktur dan aplikasi. Proses rilis otomatis menggunakan artefak ini untuk merilis versi dan perbaikan baru ke sistem yang ada. Sistem yang memantau dan mengirim pemberitahuan berjalan terus-menerus untuk mendorong visibilitas ke seluruh proses CD.

Kontrol Versi

Kontrol versi adalah praktik pengelolaan kode dalam versi—melacak revisi dan riwayat perubahan untuk membuat kode mudah ditinjau dan dipulihkan. Praktik ini biasanya diimplementasikan menggunakan sistem kontrol versi seperti Git, yang memungkinkan beberapa pengembang untuk berkolaborasi dalam penulisan kode. Sistem ini menyediakan proses yang jelas untuk menggabungkan perubahan kode yang terjadi dalam file yang sama, menangani konflik, dan mengembalikan perubahan ke status sebelumnya.

Penggunaan kontrol versi adalah praktik DevOps mendasar, membantu tim pengembangan bekerja sama, membagi tugas pengkodean antara anggota tim, dan menyimpan semua kode untuk pemulihan yang mudah jika diperlukan. Kontrol versi juga merupakan elemen yang diperlukan dalam praktik lain seperti integrasi berkelanjutan dan infrastruktur sebagai kode.

Pengembangan perangkat lunak yang tangkas

Agile adalah pendekatan pengembangan perangkat lunak yang menekankan kolaborasi tim, umpan balik pelanggan dan pengguna, serta kemampuan beradaptasi yang tinggi untuk berubah melalui siklus rilis singkat. Tim yang mempraktikkan Agile memberikan perubahan dan peningkatan berkelanjutan kepada pelanggan, mengumpulkan umpan balik mereka, lalu mempelajari dan menyesuaikan berdasarkan keinginan dan kebutuhan pelanggan. Agile secara substansial berbeda dari kerangka kerja lain yang lebih tradisional seperti air terjun, yang mencakup siklus rilis panjang yang ditentukan oleh fase berurutan. Kanban dan Scrum adalah dua kerangka kerja populer yang terkait dengan Agile.

Infrastruktur sebagai kode

Infrastruktur sebagai kode mendefinisikan sumber daya sistem dan topologi dengan cara deskriptif yang memungkinkan tim untuk mengelola sumber daya tersebut seperti yang mereka kodekan. Definisi tersebut juga dapat disimpan dan diberi versi dalam sistem kontrol versi, di mana definisi tersebut dapat ditinjau dan dikembalikan—sekali lagi seperti kode.

Mempraktikkan infrastruktur sebagai kode membantu tim menyebarkan sumber daya sistem dengan cara yang andal, dapat diulang, dan terkontrol. Infrastruktur sebagai kode juga membantu mengotomatiskan penyebaran dan mengurangi risiko kesalahan manusia, terutama untuk lingkungan besar yang kompleks. Solusi yang dapat diulang dan dapat diandalkan untuk penyebaran lingkungan ini memungkinkan tim mempertahankan lingkungan pengembangan dan pengujian yang identik dengan produksi. Menduplikasi lingkungan ke pusat data dan platform cloud yang berbeda juga menjadi lebih sederhana dan lebih efisien.

Manajemen konfigurasi

Manajemen konfigurasi mengacu pada pengelolaan status sumber daya dalam sistem termasuk server, komputer virtual, dan database. Dengan menggunakan alat manajemen konfigurasi, tim dapat meluncurkan perubahan dengan cara yang terkontrol dan sistematis, mengurangi risiko memodifikasi konfigurasi sistem. Teams menggunakan alat manajemen konfigurasi untuk melacak status sistem dan membantu menghindari penyimpangan konfigurasi, yaitu bagaimana konfigurasi sumber daya sistem menyimpang dari waktu ke waktu dari status yang diinginkan yang ditentukan untuknya.

Seiring dengan infrastruktur sebagai kode, mudah untuk membuat templat dan mengotomatiskan definisi dan konfigurasi sistem, yang membantu tim mengoperasikan lingkungan kompleks dalam skala besar.

Memantau secara terus menerus

Pemantauan berkelanjutan berarti memiliki visibilitas penuh dan real-time ke dalam performa dan kesehatan seluruh tumpukan aplikasi. Visibilitas ini berkisar dari infrastruktur yang mendasar yang menjalankan aplikasi ke komponen perangkat lunak tingkat yang lebih tinggi. Visibilitas dicapai melalui pengumpulan telemetri dan metadata dan pengaturan pemberitahuan untuk kondisi yang telah ditentukan sebelumnya yang menjamin perhatian dari operator. Telemetri terdiri dari data peristiwa dan log yang dikumpulkan dari berbagai bagian sistem, yang disimpan di mana mereka dapat dianalisis dan dikueri.

Tim DevOps berkinerja tinggi memastikan mereka menetapkan pemberitahuan yang dapat ditindaklaksikan dan bermakna dan mengumpulkan telemetri yang kaya sehingga mereka dapat menarik wawasan dari sejumlah besar data. Wawasan ini membantu tim mengurangi masalah secara real time dan melihat cara meningkatkan aplikasi dalam siklus pengembangan di masa mendatang.

Perencanaan

Dalam fase perencanaan, tim DevOps menyusun, mendefinisikan, dan menjelaskan fitur dan kemampuan aplikasi dan sistem yang mereka rencanakan untuk dibangun. Tim melacak kemajuan tugas pada tingkat granularitas rendah dan tinggi, dari produk tunggal hingga beberapa portofolio produk. Teams menggunakan praktik DevOps berikut untuk merencanakan dengan kelincahan dan visibilitas:

  • Membuat backlog.
  • Lacak bug.
  • Mengelola pengembangan perangkat lunak Agile dengan Scrum.
  • Gunakan papan Kanban.
  • Visualisasikan kemajuan dengan dasbor.

Untuk gambaran umum tentang beberapa pelajaran yang dipelajari dan praktik yang diadopsi Microsoft untuk mendukung perencanaan DevOps di seluruh tim perangkat lunak perusahaan, lihat Cara Microsoft merencanakan dengan DevOps.

Pengembangan

Fase pengembangan mencakup semua aspek pengembangan kode perangkat lunak. Dalam fase ini, tim DevOps melakukan tugas-tugas berikut:

  • Pilih lingkungan pengembangan.
  • Tulis, uji, tinjau, dan integrasikan kode.
  • Buat kode menjadi artefak untuk disebarkan ke berbagai lingkungan.
  • Gunakan kontrol versi, biasanya Git, untuk berkolaborasi pada kode dan bekerja secara paralel.

Untuk berinovasi dengan cepat tanpa mengorbankan kualitas, stabilitas, dan produktivitas, tim DevOps:

Untuk gambaran umum praktik pengembangan yang diadopsi Microsoft untuk mendukung pergeseran mereka ke DevOps, lihat Bagaimana Microsoft berkembang dengan DevOps.

Kirim

Pengiriman adalah proses penyebaran aplikasi secara konsisten dan andal ke lingkungan produksi, idealnya melalui pengiriman berkelanjutan (CD).

Dalam fase pengiriman, tim DevOps:

  • Tentukan proses manajemen rilis dengan tahap persetujuan manual yang jelas.
  • Atur gerbang otomatis untuk memindahkan aplikasi antar tahap hingga rilis akhir kepada pelanggan.
  • Mengotomatiskan proses pengiriman untuk membuatnya dapat diskalakan, diulang, dikontrol, dan diuji dengan baik.

Pengiriman juga termasuk menyebarkan dan mengonfigurasi infrastruktur dasar lingkungan pengiriman. Tim DevOps menggunakan teknologi seperti infrastruktur sebagai kode (IaC), kontainer, dan layanan mikro untuk memberikan lingkungan infrastruktur yang sepenuhnya diatur.

Brankas praktik penyebaran dapat mengidentifikasi masalah sebelum memengaruhi pengalaman pelanggan. Praktik ini membantu tim DevOps sering memberikan kemudahan, kepercayaan diri, dan ketenangan pikiran.

Prinsip dan proses Azure Core DevOps yang berevolusi Microsoft untuk menyediakan sistem pengiriman yang efisien dijelaskan dalam Cara Microsoft memberikan perangkat lunak dengan DevOps.

Operasional

Fase operasi melibatkan pemeliharaan, pemantauan, dan pemecahan masalah aplikasi di lingkungan produksi, termasuk cloud hibrid atau publik seperti Azure. Tim DevOps bertujuan untuk keandalan sistem, ketersediaan tinggi, keamanan yang kuat, dan waktu henti nol.

Praktik pengiriman otomatis dan penyebaran yang aman membantu tim mengidentifikasi dan mengurangi masalah dengan cepat saat terjadi. Menjaga kewaspadaan membutuhkan telemetri yang kaya, peringatan yang dapat ditindaklanjuti, dan visibilitas penuh ke dalam aplikasi dan sistem yang mendasar.

Praktik yang digunakan Microsoft untuk mengoperasikan platform online yang kompleks dijelaskan dalam Cara Microsoft mengoperasikan sistem yang andal dengan DevOps.

Langkah berikutnya

Sumber daya lainnya

Pelatihan dan Sertifikasi