DevOps adalah kombinasi dari filosofi budaya, penerapan, dan peralatan yang meningkatkan kemampuan organisasi untuk memberikan aplikasi dan layanan dalam kecepatan yang tinggi: mengembangkan dan meningkatkan produk dalam waktu yang lebih cepat dari organisasi yang menggunakan pengembangan perangkat lunak dan proses pengelolaan infrastruktur tradisional. Kecepatan ini memungkinkan organisasi untuk melayani pelanggan mereka dengan lebih baik dan berkompetisi dengan lebih efektif di pasaran.
Di bawah model DevOps, tim pengembangan dan pengoperasian tidak lagi “terisolasi.” Terkadang, dua tim tersebut digabungkan menjadi satu tim tempat teknisi bekerja di seluruh siklus hidup aplikasi, dari pengembangan dan pengujian hingga penerapan dan pengoperasian, serta mengembangkan cakupan keterampilan yang tidak terbatas pada satu fungsi saja.
Dalam beberapa model DevOps, tim penjaminan mutu dan tim keamanan juga dapat sangat terintegrasi dengan pengembangan dan pengoperasian dan di seluruh siklus hidup aplikasi. Saat keamanan adalah fokus setiap orang di tim DevOps, seringkali ini disebut sebagai DevSecOps.
Tim-tim tersebut menggunakan langkah untuk mengautomasi proses yang secara historis bersifat manual dan lamban. Mereka menggunakan tumpukan teknologi dan peralatan yang membantu mereka mengoperasikan dan mengubah aplikasi dengan cepat dan andal. Peralatan ini juga membantu teknisi untuk menyelesaikan tugas secara independen (misalnya, menerapkan kode atau menyediakan infrastruktur) yang normalnya memerlukan bantuan dari tim lain, dan ini semakin meningkatkan kecepatan tim.
Bergerak dalam kecepatan tinggi sehingga Anda dapat melakukan inovasi untuk pelanggan dengan lebih cepat, beradaptasi dengan lebih baik di pasar yang berubah, dan menjadi lebih efisien dalam mendorong hasil bisnis. Model DevOps memungkinkan tim pengembang dan pengoperasian Anda untuk mencapai hasil tersebut. Misalnya, layanan mikcro dan pengiriman berkelanjutan memungkinkan tim mendapatkan kepemilikan layanan dan kemudian meluncurkan pembaruannya dengan lebih cepat.
Tingkatkan frekuensi dan kecepatan peluncuran sehingga Anda dapat berinovasi dan meningkatkan produk Anda dengan lebih cepat. Semakin cepat Anda dapat meluncurkan fitur baru dan memperbaiki bug, semakin cepat Anda dapat merespons kebutuhan pelanggan dan mendapatkan keuntungan yang kompetitif. Integrasi berkelanjutan dan pengiriman berkelanjutan merupakan praktik yang mengautomasi proses peluncuran software, dari pembuatan hingga penerapan.
Memastikan kualitas pembaruan aplikasi dan perubahan infrastruktur sehingga Anda dapat memberikan dengan andal pada kecepatan yang lebih tinggi sambil mempertahankan pengalaman yang positif bagi pengguna akhir. Gunakan praktik seperti integrasi berkelanjutan dan pengiriman berkelanjutan untuk menguji bahwa tiap perubahan berfungsi dan aman. Praktik pemantauan dan pembuatan log membantu Anda tetap mendapatkan informasi performa secara waktu-nyata.
Operasikan dan kelola infrastruktur dan proses pengembangan dalam skala apa pun. Automasi dan konsistensi membantu Anda mengelola sistem yang kompleks atau berubah secara efisien dan dengan risiko yang berkurang. Misalnya, infrastruktur sebagai kode membantu Anda mengelola pengembangan, pengujian, dan lingkungan produksi dengan cara yang dapat diulang dan lebih efisien.
Bangun tim yang lebih efektif di bawah model kultural DevOps, yang menekankan nilai seperti kepemilikan dan akuntabilitas. Tim pengembang dan pengoperasian berkolaborasi dengan erat, mengemban tanggung jawab bersama, dan menggabungkan alur kerja mereka. Ini mengurangi inefisiensi dan menghemat waktu (misalnya periode pengalihan yang dikurangi antara pengembang dan pengoperasian, menulis kode yang mempertimbangkan lingkungan di mana aplikasi dijalankan).
Bergerak lebih cepat sambil mempertahankan kendali dan menjaga kepatuhan. Anda dapat menggunakan model DevOps tanpa mengorbankan keamanan dengan menggunakan kebijakan kepatuhan yang terautomasi, kontrol yang menyeluruh, dan teknik manajemen konfigurasi. Misalnya, dengan menggunakan infrastruktur sebagai kode dan kebijakan sebagai kode, Anda dapat menentukan dan kemudian melacak kepatuhan pada skalanya.
Software dan internet telah mengubah dunia dan industri, dari belanja hingga hiburan sampai perbankan. Software tidak lagi sekadar mendukung bisnis; tetapi telah menjadi komponen integral dari setiap bagian bisnis. Perusahaan berinteraksi dengan pelanggan mereka melalui software yang diluncurkan sebagai layanan online atau aplikasi dan pada berbagai perangkat. Mereka juga menggunakan software untuk meningkatkan efisiensi operasional dengan mengubah tiap bagian rantai nilai, seperti logistik, komunikasi, dan pengoperasian. Sebagaimana perusahaan barang fisik mengubah bagaimana mereka merancang, membangun, dan mengirimkan produk menggunakan automasi industri di sepanjang abad ke-20, perusahaan di masa kini harus mengubah bagaimana mereka membangun dan menghadirkan software.
Beralih ke DevOps memerlukan perubahan dalam budaya dan pola pikir. Pada tingkat paling sederhana, DevOps adalah tentang menghilangkan pemisah antara dua tim yang terisolasi secara tradisional, yaitu pengembangan dan pengoperasian. Di beberapa organisasi, bahkan tidak ada tim pengembangan dan tim pengoperasian yang terpisah; teknisi mengerjakan keduanya. Dengan DevOps, dua tim bekerja bersama untuk mengoptimalkan produktivitas pengembang dan keandalan pengoperasian. Mereka berusaha untuk sering berkomunikasi, meningkatkan efisiensi, dan meningkatkan kualitas layanan yang mereka berikan kepada pelanggan. Mereka mengambil kepemilikan penuh untuk layanan, seringkali melebihi cakupan peran atau jabatan yang sebenarnya dengan memikirkan tentang kebutuhan pelanggan akhir dan bagaimana mereka dapat berkontribusi untuk memenuhi kebutuhan tersebut. Tim penjaminan mutu dan keamanan juga erat terintegrasi dengan tim tersebut. Organisasi yang menggunakan model DevOps, terlepas dari struktur organisasinya, memiliki tim yang melihat seluruh siklus hidup pengembangan dan infrastruktur sebagai bagian dari tanggung jawab mereka.
Terdapat beberapa praktik kunci yang membantu organisasi berinovasi dengan lebih cepat melalui automasi dan mempersingkat pengembangan software dan proses manajemen infrastruktur. Sebagian besar praktik tersebut dilakukan dengan peralatan yang benar.
Satu praktik yang mendasar adalah melakukan pembaruan yang sangat sering tetapi sedikit. Ini adalah cara organisasi berinovasi dengan lebih cepat untuk pelanggan mereka. Pembaruan tersebut seringnya bersifat lebih tambahan dari pembaruan sesekali yang dilakukan dalam praktik peluncuran tradisional. Pembaruan yang sering namun kecil memungkinkan penerapan yang lebih kecil risikonya. Mereka membantu tim mengatasi bug dengan lebih cepat karena tim dapat mengidentifikasi penerapan terakhir yang menyebabkan kesalahan. Meskipun irama dan ukuran pembaruan dapat bervariasi, organisasi yang menggunakan model DevOps menerapkan pembaruan dengan jauh lebih sering dari organisasi yang menggunakan praktik pengembangan software tradisional.
Organisasi juga dapat menggunakan arsitektur layanan mikro untuk membuat aplikasi mereka lebih fleksibel dan memungkinkan inovasi yang lebih cepat. Arsitektur layanan mikro memisahkan sistem kompleks yang besar menjadi proyek yang independen dan sederhana. Aplikasi dibagi menjadi banyak komponen (layanan) individual dengan tiap layanan dicakupkan ke satu tujuan atau fungsi, dan dioperasikan secara independen dari layanan rekanannya dan aplikasi secara keseluruhan. Arsitektur ini mengurangi koordinasi atashulu aplikasi yang sedang diperbarui, dan jika tiap layanan dipasangkan dengan tim yang tangkas dan kecil yang mengambil kepemilikan tiap layanan, organisasi dapat bergerak dengan lebih cepat.
Namun, kombinasi layanan mikro dan frekuensi rilis yang ditingkatkan mengakibatkan penerapan yang lebih banyak secara signifikan yang dapat menyebabkan tantangan operasional. Oleh karena itu, praktik DevOps seperti integrasi berkelanjutan dan pengiriman berkelanjutan mengatasi masalah ini dan memungkinkan organisasi melakukan pengiriman dengan cara yang lebih aman dan andal. Praktik automasi infrastruktur, seperti infrastruktur sebagai kode dan manajemen konfigurasi, membantu menjaga sumber daya komputasi tetap elastis dan responsif terhadap perubahan yang sering. Selain itu, penggunaan pemantauan dan pembuatan log membantu teknisi melacak performa aplikasi dan infrastruktur sehingga mereka dapat bereaksi dengan cepat terhadap masalah.
Bersama-sama, praktik tersebut membantu organisasi memberikan pembaruan yang lebih andal dan cepat untuk pelanggan mereka. Berikut ini gambaran umum praktik DevOps yang penting.
Berikut ini adalah praktik terbaik DevOps:
- Integrasi Berkelanjutan
- Pengiriman Berkelanjutan
- Layanan mikro
- Infrastruktur sebagai Kode
- Pemantauan dan Pembuatan Log
- Komunikasi dan Kolaborasi
Integrasi berkelanjutan adalah praktik pengembangan software di mana pengembang secara berkala menggabungkan perubahan kode mereka ke repositori pusat, yang setelahnya dilakukan pembangunan otomatis dan pengujian. Tujuan utama integrasi berkelanjutan adalah menemukan dan mengatasi bug dengan lebih cepat, meningkatkan kualitas software, dan mengurangi waktu yang dibutuhkan untuk melakukan validasi dan meluncurkan pembaruan software terbaru.
Pengiriman berkelanjutan adalah praktik pengembangan software dimana perubahan kode secara otomatis dibuat, diuji, dan dipersiapkan untuk diluncurkan ke produksi. Praktik ini memperluas integrasi berkelanjutan dengan menerapkan semua perubahan kode ke lingkungan pengujian dan/atau lingkungan produksi setelah tahap pembuatan. Apabila pengiriman berkelanjutan dilakukan dengan benar, pengembang akan selalu memiliki artefak pembuatan yang siap diterapkan yang telah melewati proses pengujian terstandardisasi.
Pelajari selengkapnya tentang pengiriman berkelanjutan dan AWS CodePipeline »
Arsitektur layanan mikro merupakan pendekatan desain untuk membangun satu aplikasi sebagai rangkaian layanan kecil. Tiap layanan berjalan dalam prosesnya sendiri dan berkomunikasi dengan layanan lain melalui antarmuka yang terdefinisi dengan baik menggunakan mekanisme yang ringan, umumnya adalah antarmuka pemrograman aplikasi (API) berbasis HTTP. Layanan mikro dibuat di sekitar kemampuan bisnis; tiap layanan ditujukan untuk satu tujuan. Anda dapat menggunakan kerangka kerja atau bahasa pemrograman yang berbeda untuk menulis layanan mikro dan menerapkannya secara independen, baik sebagai satu layanan atau sebagai kelompok layanan.
Pelajari selengkapnya tentang Amazon Container Service (Amazon ECS) »
Infrastruktur sebagai kode adalah praktik di mana infrastruktur dibuat dan dikelola menggunakan kode dan teknik pengembangan software, seperti kontrol versi dan integrasi berkelanjutan. Model yang digerakkan API dari cloud memungkinkan pengembang dan administrator sistem berinteraksi dengan infrastruktur secara terprogram, dan pada skalanya, alih-alih perlu mengatur dan mengonfigurasi sumber daya secara manual. Oleh karena itu, teknisi dapat berinteraksi dengan infrastruktur menggunakan peralatan berbasis kode dan memperlakukan infrastruktur dengan cara yang mirip dengan cara mereka memperlakukan kode aplikasi. Akibat ditentukan oleh kode, infrastruktur dan server dapat diterapkan dengan cepat menggunakan pola terstandardisasi, yang diperbarui dengan patch dan versi terbaru, atau diduplikasi dengan cara yang dapat diulang.
Pelajari cara mengelola infrastruktur sebagai kode dengan AWS CloudFormation »
Pengembang dan administrator sistem menggunakan kode untuk mengautomasi sistem operasi dan melakukan hosting konfigurasi, tugas operasional, dan lainnya. Penggunaan kode memungkinkan perubahan konfigurasi dapat diulang dan terstandardisasi. Ini membebaskan pengembang dan administrator sistem dari konfigurasi sistem operasi, aplikasi sistem, atau software server secara manual.
Pelajari cara menggunakan manajemen konfigurasi dengan AWS OpsWorks »
Dengan infrastruktur dan konfigurasinya yang dikodifikasi dengan cloud, organisasi dapat memantau dan menegakkan kepatuhan secara dinamis dan pada skalanya. Infrastruktur yang dijelaskan dengan kode dapat dilacak, divalidasi, dan dikonfigurasi ulang dengan cara yang otomatis. Ini mempermudah organisasi untuk mengatur perubahan di sumber daya dan memastikan bahwa tindakan keamanan telah dilaksanakan dengan menyeluruh (misalnya keamanan & kepatuhan informasi dengan PCI-DSS atau HIPAA). Ini memungkinkan tim dalam organisasi untuk bergerak dengan kecepatan yang lebih tinggi karena sumber daya yang tidak patuh dapat secara otomatis ditandai untuk investigasi selanjutnya atau bahkan dikembalikan secara otomatis sesuai kepatuhan.
Organisasi memantau metrik dan log untuk melihat bagaimana performa aplikasi dan infrastruktur memengaruhi pengalaman pengguna akhir produk mereka. Dengan mengumpulkan, membuat kategorisasi, dan kemudian menganalisis data dan log yang dibuat oleh aplikasi dan infrastruktur, organisasi memahami bagaimana perubahan atau pembaruan memengaruhi pengguna, memberikan wawasan tentang akar masalah atau perubahan yang tidak terduga. Pemantauan aktif menjadi semakin penting karena layanan harus tersedia 24 jam dan karena frekuensi pembaruan aplikasi dan infrastruktur meningkat. Membuat peringatan atau melakukan analisis waktu-nyata dari data ini juga membantu organisasi memantau layanan mereka dengan lebih proaktif.
Komunikasi dan kolaborasi yang meningkat di sebuah organisasi merupakan salah satu kunci aspek budaya DevOps. Penggunaan peralatan DevOps dan automasi proses pengiriman software membentuk kolaborasi dengan membuat kebersamaan secara fisik dalam alur kerja dan tanggung jawab pengembangan dan pengoperasian. Selain itu, tim tersebut menetapkan norma budaya yang kuat seputar pembagian informasi dan memfasilitasi komunikasi melalui penggunaan aplikasi obrolan, sistem pelacakan masalah atau proyek, dan wiki. Ini membantu mempercepat komunikasi antarpengembang, pengoperasian, dan bahkan tim lain seperti pemasaran atau penjualan, sehingga memungkinkan semua bagian organisasi lebih selaras dalam hal tujuan dan proyek.
Model DevOps bergantung pada peralatan yang efektif untuk membantu tim menerapkan dengan cepat dan andal, serta berinovasi untuk pelanggan. Peralatan ini mengautomasi tugas manual, membantu tim mengelola lingkungan yang kompleks sesuai skala penerapan, dan membuat teknisi tetap memegang kendali dari kecepatan tinggi yang difasilitasi oleh DevOps. AWS memberikan layanan yang dirancang untuk DevOps dan yang dibuat utamanya untuk penggunaan dengan AWS Cloud. Layanan ini membantu Anda melakukan praktik DevOps yang dijelaskan di atas.