Lewati Navigasi

Apa itu DevOps?

Pelajari bagaimana DevOps menyatukan orang, proses, dan teknologi untuk menghadirkan produk yang lebih baik kepada pelanggan dengan lebih cepat.

Definisi DevOps

Sebuah gabungan dari pengembangan (Dev) dan operasi (Ops), DevOps adalah penyatuan orang, proses, dan teknologi untuk terus memberikan nilai kepada pelanggan.

Apa artinya DevOps untuk tim? DevOps memungkinkan peran yang sebelumnya tertutup—pengembangan, operasi TI, rekayasa kualitas, dan keamanan—untuk berkoordinasi dan berkolaborasi guna menghasilkan produk yang lebih baik dan dapat diandalkan. Dengan mengadopsi kultur DevOps beserta praktik dan alat DevOps, tim memperoleh kemampuan untuk merespons kebutuhan pelanggan dengan lebih baik, meningkatkan keyakinan pada aplikasi yang mereka buat, dan mencapai tujuan bisnis lebih cepat.

Keuntungan DevOps

Tim yang mengadopsi kultur, praktik, dan alat DevOps menjadi berkinerja tinggi sehingga dapat membuat produk yang lebih baik dengan lebih cepat untuk kepuasan pelanggan yang lebih besar. Kolaborasi dan produktivitas yang ditingkatkan ini juga penting untuk mencapai tujuan bisnis seperti ini:

Mempercepat waktu pemasaran

Beradaptasi dengan pasar dan kompetisi

Menjaga stabilitas dan keandalan sistem

Meningkatkan waktu rata-rata untuk pemulihan

DevOps dan siklus hidup aplikasi

DevOps memengaruhi siklus hidup aplikasi di seluruh fase perencanaan, pengembangan, pengiriman, dan pengoperasiannya. Setiap fase bergantung pada fase lainnya dan fase tidak spesifik untuk peran. Dalam kultur DevOps yang sebenarnya, setiap peran dilibatkan dalam setiap fase hingga batas tertentu.

Perencanaan

Dalam fase perencanaan, tim DevOps mengembangkan ide, mendefinisikan, dan menjelaskan fitur serta kemampuan aplikasi dan sistem yang mereka bangun. Mereka melacak kemajuan pada tingkat granularitas rendah dan tinggi—dari tugas produk tunggal hingga tugas yang mencakup portofolio beberapa produk. Membuat backlog, melacak bug, mengelola pengembangan perangkat lunak yang tangkas dengan Scrum, menggunakan papan Kanban, dan memvisualisasikan kemajuan dengan dasbor adalah beberapa cara yang dilakukan tim DevOps dalam merencanakan dengan ketangkasan dan visibilitas.

Pengembangan

Fase pengembangan mencakup semua aspek pengodean—penulisan, pengujian, peninjauan, dan integrasi kode oleh anggota tim—serta membangun kode itu menjadi artefak build yang dapat disebarkan ke berbagai lingkungan. Tim DevOps berusaha berinovasi dengan cepat tanpa mengorbankan kualitas, stabilitas, dan produktivitas. Untuk melakukan itu, mereka menggunakan alat yang sangat produktif, mengotomatiskan langkah-langkah biasa dan manual, dan mengulanginya secara bertahap dengan pengujian otomatis dan integrasi berkelanjutan.

Pengiriman

Pengiriman adalah proses penyebaran aplikasi ke lingkungan produksi dengan cara yang konsisten dan dapat diandalkan. Fase pengiriman juga mencakup penyebaran dan konfigurasi infrastruktur dasar yang sepenuhnya diatur yang membentuk lingkungan tersebut.

Pada fase pengiriman, tim menentukan proses manajemen rilis dengan tahapan persetujuan manual yang jelas. Mereka juga mengatur gerbang otomatis yang memindahkan aplikasi antar tahap hingga tersedia untuk pelanggan. Mengotomatiskan proses ini membuatnya dapat diskalakan, dapat diulang, dan terkontrol. Dengan cara ini, tim yang mempraktikkan DevOps dapat sering melakukan pengiriman dengan mudah, percaya diri, dan tenang.

Pengoperasian

Fase pengoperasian melibatkan pemeliharaan, pemantauan, dan pemecahan masalah aplikasi di lingkungan produksi. Dalam mengadopsi praktik DevOps, tim bekerja untuk memastikan keandalan sistem, ketersediaan tinggi, dan menargetkan waktu henti nol selagi memperkuat keamanan dan tata kelola. Tim DevOps berusaha mengidentifikasi masalah sebelum memengaruhi pengalaman pelanggan dan mengurangi masalah dengan cepat ketika terjadi. Menjaga kewaspadaan ini memerlukan telemetri yang beragam, peringatan yang dapat ditindaklanjuti, dan visibilitas penuh untuk aplikasi dan sistem dasar.

Kultur DevOps

Saat mengadopsi praktik DevOps, teknologi dapat mengotomatiskan dan mengoptimalkan proses. Semua ini dimulai dari kultur di dalam organisasi dan orang-orang yang berperan di dalamnya. Untuk menumbuhkan kultur DevOps, diperlukan perubahan besar dalam cara orang bekerja dan berkolaborasi. Namun, ketika organisasi berkomitmen pada kultur DevOps, mereka dapat menciptakan lingkungan bagi tim berkinerja tinggi untuk berkembang.

Kolaborasi, visibilitas, dan penyelarasan

Salah satu keunggulan kultur DevOps yang baik adalah kolaborasi antar tim yang dimulai dengan visibilitas. Tim yang berbeda seperti pengembangan dan operasi TI harus berbagi proses, prioritas, dan masalah DevOps mereka satu sama lain. Tim ini juga harus merencanakan kerja sama serta menyelaraskan tujuan dan ukuran keberhasilan yang terkait dengan bisnis.

Jadwal kerja dalam lingkup dan akuntabilitas

Saat tim menyelaraskan, mereka mengambil kepemilikan dan terlibat dalam fase siklus hidup tambahan di luar peran inti mereka. Misalnya, pengembang menjadi bertanggung jawab tidak hanya pada inovasi dan kualitas yang ditetapkan pada fase pengembangan, tetapi juga pada kinerja dan stabilitas akibat perubahan yang mereka buat pada fase pengoperasian. Pada saat yang sama, operator TI juga akan menyertakan tata kelola, keamanan, dan kepatuhan dalam fase perencanaan dan pengembangan.

Siklus rilis yang lebih pendek

Tim DevOps tetap tangkas dengan merilis perangkat lunak dalam siklus pendek. Siklus rilis yang lebih pendek mempermudah perencanaan dan manajemen risiko karena kemajuannya bertahap, yang juga mengurangi dampak pada stabilitas sistem. Mempersingkat siklus rilis juga memungkinkan organisasi untuk menyesuaikan dan bereaksi terhadap kebutuhan pelanggan yang terus berkembang dan tekanan yang kompetitif.

Pembelajaran berkelanjutan

Tim DevOps berkinerja tinggi menciptakan pola pikir yang berkembang. Mereka bisa langsung gagal, tetapi mereka menanamkan pembelajaran ke dalam proses, terus menyempurnakan, meningkatkan kepuasan pelanggan, dan mempercepat inovasi serta kemampuan beradaptasi di pasar. DevOps adalah perjalanan, sehingga selalu ada ruang untuk berkembang.

Lihat bagaimana tim di seluruh Microsoft mengadopsi kultur DevOps Pelajari selengkapnya

Praktik DevOps

Selain membangun kultur DevOps, tim menghidupkan DevOps dengan menerapkan praktik tertentu di seluruh siklus hidup aplikasi. Beberapa praktik ini membantu mempercepat, mengotomatiskan, dan meningkatkan fase tertentu. Lainnya mencakup beberapa fase, membantu tim membuat proses tanpa hambatan yang membantu meningkatkan produktivitas.

Integrasi berkelanjutan dan pengiriman berkelanjutan (CI/CD)

Manajemen konfigurasi mengacu pada pengelolaan status sumber daya dalam sistem termasuk server, mesin virtual, dan database. Menggunakan alat manajemen konfigurasi, tim dapat meluncurkan perubahan dengan cara yang terkontrol dan sistematis, mengurangi risiko pengubahan konfigurasi sistem. Tim menggunakan alat manajemen konfigurasi untuk melacak status sistem dan membantu menghindari penyimpangan konfigurasi, yaitu keadaan saat konfigurasi sumber daya sistem menyimpang dari status yang diinginkan dan ditentukan untuknya seiring waktu.

Dipraktikkan bersama dengan infrastruktur sebagai kode, definisi dan konfigurasi sistem mudah dijadikan templat dan diotomatiskan, membantu tim mengoperasikan lingkungan kompleks dalam skala besar.

Kontrol Versi

Kontrol versi adalah praktik pengelolaan kode dalam versi—melacak revisi dan riwayat perubahan agar kode mudah ditinjau dan dipulihkan. Praktik ini biasanya diterapkan 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 dasar, membantu tim pengembangan bekerja sama, membagi tugas pengodean antar anggota tim, dan menyimpan semua kode untuk kemudahan pemulihan jika diperlukan.

Kontrol versi juga merupakan elemen yang diperlukan dalam praktik lain seperti integrasi berkelanjutan dan infrastruktur sebagai kode.

Pengembangan perangkat lunak Agile

Agile adalah pendekatan pengembangan perangkat lunak yang menekankan kolaborasi tim, umpan balik pelanggan dan pengguna, serta kemampuan beradaptasi yang tinggi terhadap perubahan melalui siklus rilis singkat. Tim yang mempraktikkan Agile menyediakan perubahan dan peningkatan berkelanjutan bagi 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 waterfall, 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 menentukan sumber daya sistem dan topologi dengan cara deskriptif yang memungkinkan tim mengelola sumber daya tersebut seperti yang akan dikodekan. Definisi tersebut juga dapat disimpan dan diberi versi dalam sistem kontrol versi, di mana definisi tersebut dapat ditinjau dan dikembalikan 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 diandalkan dan dapat diulang 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 efisien.

Manajemen konfigurasi

Manajemen konfigurasi mengacu pada pengelolaan status sumber daya dalam sistem termasuk server, mesin virtual, dan database. Menggunakan alat manajemen konfigurasi, tim dapat meluncurkan perubahan dengan cara yang terkontrol dan sistematis, mengurangi risiko pengubahan konfigurasi sistem. Tim menggunakan alat manajemen konfigurasi untuk melacak status sistem dan membantu menghindari penyimpangan konfigurasi, yaitu keadaan saat konfigurasi sumber daya sistem menyimpang dari status yang diinginkan dan ditentukan untuknya seiring waktu.

Dipraktikkan bersama dengan infrastruktur sebagai kode, definisi dan konfigurasi sistem mudah dijadikan templat dan diotomatiskan, membantu tim mengoperasikan lingkungan kompleks dalam skala besar.

Pemantauan berkelanjutan

Pemantauan berkelanjutan berarti memiliki visibilitas penuh dan real time untuk performa dan kesehatan seluruh tumpukan aplikasi, dari infrastruktur dasar yang menjalankan aplikasi ke komponen perangkat lunak dengan tingkat lebih tinggi. Visibilitas ini terdiri dari kumpulan telemetri dan metadata serta pengaturan peringatan untuk kondisi yang telah ditentukan yang menjamin perhatian dari operator. Telemetri terdiri dari data kejadian dan log yang dikumpulkan dari berbagai bagian sistem, yang disimpan agar dapat dianalisis dan dikueri.

Tim DevOps berkinerja tinggi memastikan mereka mengatur peringatan yang dapat ditindaklanjuti dan bermakna, serta mengumpulkan telemetri yang beragam 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 mendatang.

Kembali ke Tab

Alat DevOps

Tim memiliki banyak alat DevOps untuk membantu mereka memfasilitasi kultur DevOps di organisasi mereka. Sebagian besar tim mengandalkan beberapa alat, membuat toolchain kustom yang sesuai dengan kebutuhan mereka untuk setiap fase dalam siklus hidup aplikasi. Meskipun mengadopsi alat atau teknologi tertentu tidak sama dengan mengadopsi DevOps, ketika kultur DevOps ada dan prosesnya ditentukan, orang-orang dapat menerapkan dan menyederhanakan praktik DevOps jika mereka memilih alat yang tepat. Dapatkan alat untuk mempraktikkan DevOps:

DevOps dan cloud

Adopsi cloud secara mendasar telah mengubah cara tim membangun, menyebarkan, dan mengoperasikan aplikasi. Bersama dengan adopsi DevOps, tim kini memiliki kesempatan yang lebih besar untuk meningkatkan praktik mereka dan melayani pelanggan dengan lebih baik.

Ketangkasan cloud

Dengan kemampuan untuk dengan cepat menyediakan dan mengonfigurasi lingkungan cloud multi-wilayah dengan sumber daya tak terbatas, tim mendapatkan ketangkasan dalam menyebarkan aplikasi mereka. Sekarang, daripada harus membeli, mengonfigurasi, dan memelihara server fisik, tim membuat lingkungan cloud yang kompleks dalam hitungan menit, lalu mematikannya saat tidak lagi diperlukan.

Kubernetes

Karena semakin banyak aplikasi yang menggunakan teknologi kontainer, Kubernetes menjadi solusi industri untuk mengatur kontainer dalam skala besar. Mengotomatiskan proses pembuatan dan penyebaran kontainer melalui alur CI/CD dan memantau kontainer ini dalam produksi menjadi praktik penting di era Kubernetes.

Komputasi tanpa server

Dengan sebagian besar overhead pengelolaan infrastruktur yang dipindahkan ke penyedia cloud, tim dapat fokus pada aplikasi mereka, bukan infrastruktur dasar. Komputasi tanpa server menawarkan kemampuan untuk menjalankan aplikasi tanpa mengonfigurasi dan mengelola server. Beberapa opsi mengurangi kompleksitas dan risiko penyebaran dan operasi.

Mulai perjalanan DevOps Anda

Dengan semua praktik dan solusi yang tersedia, DevOps pada awalnya mungkin tampak berlebihan. Kuncinya adalah memulai dari hal kecil dan belajar dari orang lain.

Tanya jawab umum

  • DevOps dipraktikkan di berbagai peran dalam organisasi dan mengharuskan beberapa di antaranya untuk berkolaborasi secara erat. Biasanya, peran DevOps mencakup pengembangan, TI, operasi, keamanan, dan dukungan.

    Pelajari cara membangun praktik DevOps

  • DevOps tidak terbatas pada satu peran. Setiap orang yang berpartisipasi dalam setiap fase siklus hidup aplikasi harus menggunakan kultur DevOps. Namun, di beberapa organisasi, ada beberapa orang atau tim yang fokusnya hanya mengaktifkan otomatisasi, menentukan praktik, dan menerapkan alur CI/CD. Terkadang, jabatan resmi peran ini adalah teknisi DevOps atau spesialis DevOps.

  • Mengadopsi DevOps di organisasi besar dapat sangat menantang. Mengubah kultur organisasi besar serta melakukan standardisasi proses dan alat memerlukan kesabaran dan ketekunan. Di kebanyakan organisasi besar, ada pengadopsi awal praktik DevOps. Karena praktik ini mencapai kematangan dan membuahkan hasil positif, tim lain biasanya mengikuti—memulai perjalanan DevOps mereka.

    Pelajari bagaimana tim di seluruh Microsoft mengadopsi kultur DevOps.

  • Arti sebenarnya dari DevOps adalah tentang memberikan nilai berkelanjutan kepada pelanggan. Hasil adopsi DevOps harus diukur sehubungan dengan tujuan bisnis. Tim DevOps menyelaraskan tujuan ini dan mencapainya menggunakan siklus rilis singkat. Siklus ini memungkinkan respons tangkas terhadap pasar dan pembelajaran berkelanjutan melalui umpan balik pelanggan.

  • DevOps dan Agile adalah kerangka kerja pengembangan perangkat lunak modern untuk memproduksi produk, peluncuran, atau rilis. DevOps adalah kultur yang mendorong kolaborasi di antara semua peran yang terlibat dalam pengembangan dan pemeliharaan perangkat lunak. Agile adalah metodologi pengembangan yang dirancang untuk menjaga produktivitas dan mendorong rilis dengan realitas umum perubahan kebutuhan. DevOps dan Agile tidak eksklusif dan sering dipraktikkan bersama.

    Pelajari cara menggabungkan DevOps dan AgilePelajari cara menggabungkan DevOps dan Agile.

  • Bersama dengan integrasi berkelanjutan, pengiriman berkelanjutan dan penyebaran berkelanjutan adalah praktik yang mengotomatiskan fase pengiriman perangkat lunak.

  • Jelajahi jalur pembelajaran DevOpsJelajahi jalur pembelajaran DevOps.