Ramai di antara anda mungkin mengetahui semua teori yang berkaitan dengan . Tetapi adakah anda tahu bagaimana menerapkan prinsip DevOps dalam kehidupan sebenar? Dalam blog ini, saya akan membincangkan senario DevOps Real Time yang akan membantu anda mendapatkan pemahaman ringkas tentang bagaimana sesuatu berfungsi dalam masa nyata.
Petunjuk yang akan saya bahas dalam perkara iniArtikel Senario Masa Sebenar DevOpsadalah:
- Apa itu DevOps?
- Masalah diselesaikan oleh DevOps
- Senario CI (Integrasi Berterusan)
- Senario CT (Ujian Berterusan)
- Senario CD (Penghantaran Berterusan)
- Senario Data DevOps
Oleh itu mari kita mulakan dengan topik pertama kita.
apa itu hashmap di java
Apa itu DevOps?
DevOps adalah pendekatan pengembangan perisian yang melibatkan Pembangunan Berterusan, Pengujian Berterusan, Integrasi Berterusan, Penerapan Berterusan dan Pemantauan Berterusan perisian sepanjang kitaran hidup pengembangannya. Kegiatan ini hanya boleh dilakukan di DevOps, bukan tangkas atau air terjun. Inilah sebabnya mengapa Facebook dan syarikat terkemuka lain memilih DevOps sebagai jalan maju untuk tujuan perniagaan mereka.DevOps lebih disukai terutamanya untuk membangunkan perisian berkualiti tinggi dalam kitaran pengembangan yang lebih pendek yang menghasilkan kepuasan pelanggan yang lebih besar.
Di bahagian seterusnya iniArtikel Senario Masa Sebenar DevOps, kita akan melihat pelbagai masalah yang diselesaikan oleh DevOps.
Masalah diselesaikan oleh DevOps
1. Menyampaikan nilai kepada Pelanggan
- DevOps meminimumkan masa diperlukan untuk memberikan nilai kepada pelanggan. Masa kitaran dari penyelesaian cerita / tugas pengembang sehingga pengeluaran berkurang dengan ketara, yang memungkinkan nilainya dapat direalisasikan secepat mungkin.
Nilai terpenting yang dicapai melalui DevOps adalah bahawa ia membenarkan organisasi IT fokus pada aktiviti perniagaan 'inti' mereka . Dengan menghilangkan kekangan dalam aliran nilai dan mengotomatiskan saluran paip penyebaran, pasukan dapat fokus pada aktiviti tersebut. Ini membantu dalam mewujudkan nilai pelanggan dan bukannya hanya memindahkan bit dan bait. Aktiviti-aktiviti ini meningkatkan kelebihan daya saing syarikat yang berkekalan dan menghasilkan hasil perniagaan yang lebih baik.
2. Mengurangkan masa kitaran
Secara dalaman DevOps adalah satu-satunya cara untuk mencapai kelincahan untuk memberikan kod selamat dengan pandangan. Penting untuk mempunyai gerbang dan proses DevOps yang dibuat dengan baik. Semasa anda memberikan versi baru, versi tersebut dapat berjalan berdampingan dengan versi semasa. Anda juga dapat membandingkan metrik untuk mencapai apa yang anda mahukan dengan metrik aplikasi dan prestasi.
DevOps mendorong pasukan pembangunan ke arah peningkatan berterusan dan kitaran pelepasan yang lebih pantas . Sekiranya dilakukan dengan baik, proses berulang ini membolehkan lebih banyak fokus dari masa ke masa, pada perkara-perkara yang sangat penting. Seperti perkara-perkara yang mencipta pengalaman hebat bagi pengguna - dan lebih sedikit masa dalam menguruskan alat, proses, dan teknologi.
3. Masa untuk memasarkan
Masalah yang paling penting diselesaikan adalah pengurangan kerumitan proses. Ini memberikan sumbangan yang besar terhadap kejayaan perniagaan kami dengan memendekkan masa kami ke pasar, memberi kami maklum balas cepat mengenai ciri-ciri, dan menjadikan kami lebih responsif terhadap keperluan pelanggan kami.
4. Penyelesaian Masalah
Nilai terbesar pelaksanaan DevOps yang berjaya adalah keyakinan yang lebih tinggi dalam penyampaian, keterlihatan, dan kebolehlacakan terhadap apa yang berlaku, sehingga anda dapat menyelesaikan masalah dengan lebih cepat.
Kelebihan penting lain dari DevOps adalah tidak membuang masa. Menyelaraskan orang dan sumber daya organisasi membolehkan penyebaran dan kemas kini dengan pantas. Ini membolehkan program DevOps menyelesaikan masalah sebelum berubah menjadi bencana.DevOps mewujudkan budaya ketelusan yang mendorong fokus dan kolaborasi antara pasukan pengembangan, operasi, dan keselamatan.
CI (Integrasi Berterusan) diSenario Masa Sebenar DevOps
1. Individu Boleh Melihat Integrasi Berterusan Berkontruktif
Anggota pasukan pembangunan mempunyai peranan, tanggungjawab, dan keutamaan yang berbeza. Ada kemungkinan bahawa keutamaan pertama pengurus Produk mungkin melancarkan ciri baru, pengurus projek harus memastikan bahawa pasukan mereka memenuhi tarikh akhir. Pengaturcara mungkin berfikir bahawa jika mereka berhenti untuk memperbaiki bug kecil setiap kali ia berlaku, akan memperlahankannya. Mereka mungkin merasa menjaga kebersihan bangunan adalah beban tambahan bagi mereka dan mereka tidak akan mendapat manfaat daripada usaha ekstra mereka. Ini berpotensi membahayakan proses penyesuaian.
Untuk mengatasi ini:
Pertama, pastikan seluruh pasukan anda berada sebelum anda menggunakan integrasi berterusan.
CTO dan ketua pasukan mesti membantu ahli pasukan memahami kos dan faedah integrasi berterusan.
Soroti apa dan kapan pengkod akan mendapat manfaat dengan mendedikasikan diri mereka pada kaedah kerja yang berbeza yang memerlukan sedikit lebih banyak keterbukaan dan fleksibiliti.
2. Mengintegrasikan CI ke dalam Aliran Perkembangan Sedia Ada Anda
Mengadopsi CI pasti datang dengan keperluan untuk mengubah sebahagian bahagian aliran kerja pembangunan anda. Ada kemungkinan pembangun anda mungkin tidak memperbaiki aliran kerja jika tidak rosak. Ini mungkin berlaku terutamanya jika pasukan anda mempunyai rutin yang lebih besar dalam menjalankan aliran kerja mereka sekarang.
Sekiranya anda ingin mengubah aliran kerja maka anda mesti melakukannya dengan berhati-hati. Jika tidak, ia boleh menjejaskan produktiviti pasukan pembangunan dan juga kualiti produk. Tanpa sokongan pimpinan yang mencukupi, pasukan pengembangan mungkin sedikit enggan melakukan tugas dengan risiko yang terlibat.
Untuk mengatasi ini:
Anda mesti memastikan bahawa anda memberi cukup masa untuk pasukan anda mengembangkan aliran kerja baru mereka. Ini dilakukan untuk memilih penyelesaian integrasi berterusan yang fleksibel yang dapat menyokong aliran kerja baru mereka.
Juga, pastikan syarikat itu mempunyai sokongan walaupun perkara itu tidak berjalan lancar pada awalnya.
3. Berbalik kepada Tabiat Ujian Bekas
Kesan langsung dari penggunaan integrasi berterusan ialah pasukan anda akan melakukan ujian lebih kerap. Oleh itu, lebih banyak ujian akan memerlukan lebih banyak kes ujian dan menulis kes ujian boleh memakan masa. Oleh itu, pembangun sering kali perlu membahagikan masa antara membetulkan bug dan menulis kes ujian.
Untuk sementara waktu, pembangun mungkin dapat menjimatkan masa dengan menguji secara manual, tetapi mungkin lebih menyakitkan dalam jangka masa panjang. Semakin banyak mereka menunda kes ujian penulisan, semakin sukar untuk mengetahui perkembangan perkembangannya. Dalam senario terburuk, pasukan anda mungkin akan kembali ke proses ujian lama mereka.
Untuk mengatasi ini:
Anda mesti menekankan bahawa menulis kes ujian dari awal dapat menjimatkan banyak masa untuk pasukan anda dan dapat memastikan liputan ujian tinggi terhadap produk anda.
Juga, masukkan idea dalam budaya syarikat anda bahawa kes ujian adalah aset berharga seperti pangkalan data itu sendiri.
4. Pembangun Mengabaikan Mesej Ralat
Ini adalah masalah umum bahawa apabila pasukan yang lebih besar bekerjasama, jumlah pemberitahuan CI menjadi berlebihan dan pembangun mula mengabaikan dan mematikannya. Oleh itu, ada kemungkinan mereka terlepas kemas kini yang berkaitan dengan mereka.
Ini boleh membawa ke tahap di mana pengkoder mengembangkan kekebalan relatif terhadap binaan yang rosak dan mesej ralat. Semakin lama mereka mengabaikan pemberitahuan yang relevan, semakin lama mereka berkembang tanpa maklum balas ke arah yang salah. Ini berpotensi menyebabkan kemunduran besar, pembaziran wang, sumber daya, dan masa.
Untuk mengatasi ini:
Anda hanya perlu menghantar kemas kini kritikal.
Hantarkan pemberitahuan hanya kepada pembangun masing-masing yang bertugas memperbaikinya.
CT (Ujian Berterusan) dalamSenario Masa Sebenar DevOps
Mendapatkan Spesifikasi Keperluan dengan betul
Sekiranya anda mendapat keperluan anda dengan tepat maka hampir separuh pertempuran dimenangi. Oleh itu, jika anda mempunyai pemahaman tentang keperluan yang sangat spesifik dan tepat, anda boleh merancang rancangan ujian dengan lebih baik dan merangkumi keperluan dengan baik.
Namun, banyak pasukan menghabiskan banyak masa dan usaha hanya untuk menjelaskan syarat. Ini adalah perangkap yang sangat biasa dan untuk mengelakkannya, pasukan boleh menggunakan teknik pengujian berasaskan Model dan teknik berdasarkan tingkah laku. Ini membantu merancang senario ujian dengan tepat dan mencukupi.
Amalan ini pasti dapat mengatasi dan menyelesaikan jurang dengan lebih cepat. Ia juga membolehkan mereka menghasilkan lebih banyak kes ujian secara automatik dari peringkat awal pecut.
Orkestrasi Paip
Kelebihan ujian berterusan dan penghantaran berterusan berkait rapat dengan orkestrasi saluran paip. Ini secara langsung bermaksud memahami bagaimana ia berfungsi, mengapa ia berfungsi, bagaimana menganalisis hasilnya, dan bagaimana dan kapan untuk membuat skala. Semuanya bergantung pada saluran paip dan oleh itu anda perlu mengintegrasikan saluran paip dengan rangkaian automasi.
Tetapi alasan pasukan meremehkan adalah bahawa, tidak ada satu pun penyelesaian yang menyediakan rantai alat lengkap yang diperlukan untuk membina saluran paip CD.
Pasukan biasanya harus mencari potongan teka-teki yang sesuai untuknya. Tidak ada alat yang sempurna, biasanya hanya alat terbaik, yang memberikan integrasi bersama dengan pelbagai alat lain. Dan tentu saja, API yang membolehkan integrasi mudah juga.
overriding vs overloading c ++
Pendek kata, mustahil untuk melaksanakan pengujian berterusan tanpa kepantasan dan kebolehpercayaan saluran paip standard dan automatik.
Meningkatkan dan menguruskan kerumitan
Senario penting lain ialah ujian berterusan menjadi lebih kompleks ketika bergerak menuju ke persekitaran pengeluaran. Ujian bertambah banyak serta kerumitan dengan kod matang dan persekitaran menjadi lebih kompleks.
Anda mesti mengemas kini ujian setiap kali anda mengemas kini fasa dan skrip automatik yang berbeza. Akibatnya, keseluruhan masa yang diperlukan untuk menjalankan ujian juga cenderung meningkat menjelang pelepasan.
Penyelesaian untuk ini terletak pada orkestrasi ujian yang lebih baik yang memberikan jumlah liputan ujian yang tepat dalam kitaran pecut yang lebih pendek dan membolehkan pasukan menyampaikan dengan yakin. Sebaik-baiknya, keseluruhan proses mesti automatik dengan CT dilakukan pada pelbagai peringkat. Ini dilakukan dengan menggunakan gerbang kebijakan dan intervensi manual, hingga kod tersebut diturunkan ke produksi.
Membuat gelung maklum balas
Tanpa pengulangan maklum balas yang kerap pada setiap peringkat kitaran pembangunan, ujian berterusan tidak mungkin dilakukan. Ini adalah sebahagian sebab mengapa CT sukar dilaksanakan. Anda tidak hanya memerlukan ujian automatik, tetapi anda juga perlu melihat hasil dan pelaksanaan ujian.
Gelung maklum balas tradisional seperti alat log, profiler kod, dan alat pemantauan prestasi tidak lagi berkesan. Mereka tidak bekerjasama dan tidak memberikan pandangan mendalam yang diperlukan untuk menyelesaikan masalah. Papan pemuka masa nyata yang menghasilkan laporan secara automatik dan maklum balas yang dapat ditindaklanjuti di seluruh SDLC membantu melepaskan perisian dengan lebih cepat ke pengeluaran dengan kecacatan yang lebih sedikit. Akses masa nyata ke papan pemuka dan akses untuk semua ahli pasukan membantu mekanisme maklum balas berterusan.
Kekurangan Persekitaran
Ujian Berterusan bermaksud pengujian lebih kerap dan ini memerlukan lebih banyak menyerang persekitaran. Ini memberikan masalah jika persekitaran tersebut tidak tersedia pada waktu yang diperlukan. Beberapa persekitaran tersedia melalui API dan beberapa melalui pelbagai antara muka. Sebilangan persekitaran ini boleh dibina menggunakan seni bina moden sementara yang lain dengan sistem klien / pelayan atau mainframe warisan monolitik.
Tetapi persoalannya di sini adalah bagaimana anda menyelaraskan ujian melalui pelbagai pemilik persekitaran? Ada juga kemungkinan mereka tidak selalu menjaga lingkungan hidup dan berjalan. Jawapan untuk semua ini adalah Permuafakatan . Dengan maya alam sekitar, anda boleh menguji kodnya tanpa terlalu risau tentang kawasan yang tidak berubah.Menjadikan persekitaran dapat diakses dan tersedia berdasarkan permintaan melalui virtualisasi pasti membantu menghilangkan masalah yang ketara dari saluran paip anda.
CD (Penghantaran Berterusan) dalamSenario Masa Sebenar DevOps
Penerapan terlalu lama
Aplikasi yang diedarkan biasanya memerlukan lebih daripada ‘menyalin dan menampal’ fail ke pelayan. Kerumitan cenderung meningkat jika anda mempunyai kumpulan pelayan. Ketidakpastian mengenai apa yang hendak dikerahkan, di mana, dan bagaimana, adalah perkara yang cukup normal. Keputusan? Masa menunggu yang lama untuk menjadikan artifak kita ke persekitaran laluan seterusnya untuk menunda segalanya, ujian, masa untuk hidup, dll.
Apa yang dibawa oleh DevOps ke meja? Pasukan pengembangan dan operasi IT menentukan proses penyebaran dalam sesi kolaborasi tanpa cela. Pertama, mereka mengesahkan yang berfungsi dan kemudian membawanya ke tahap seterusnya dengan automasi untuk memudahkan penghantaran berterusan. Ini secara drastik mengurangkan masa untuk penyebaran, ia juga membuka jalan untuk penggunaan yang lebih kerap.
Artifak, skrip, dan ketergantungan lain tidak ada
Kita sering menemui kegagalan selepas penyebaran versi baru perisian yang berfungsi. Ini sering disebabkan oleh perpustakaan yang hilang atau skrip pangkalan data tidak dikemas kini. Ini biasanya disebabkan oleh kurangnya kejelasan mengenai kebergantungan mana yang akan digunakan dan lokasi mereka. Memupuk kerjasama antara pembangunan dan operasi dapat membantu menyelesaikan masalah seperti ini dalam kebanyakan kes.
Ketika berkaitan dengan automasi, anda dapat menentukan kebergantungan yang sangat membantu dalam mempercepat penggunaan. Alat pengurusan konfigurasi seperti Boneka atau Ketua menyumbang dengan tahap definisi kebergantungan tambahan. Kami dapat menentukan bukan sahaja kebergantungan dalam aplikasi kami tetapi juga pada tahap konfigurasi infrastruktur dan pelayan. Sebagai contoh, kita boleh membuat mesin maya untuk ujian, dan memasang / mengkonfigurasi tomcat sebelum artifak kami diterbitkan.
Pemantauan pengeluaran yang tidak berkesan
Kadang kala anda mengkonfigurasi alat pemantauan dengan cara yang menghasilkan banyak data yang tidak relevan dari pengeluaran, namun pada masa yang lain mereka tidak menghasilkan cukup atau tidak sama sekali. Tidak ada definisi tentang apa yang anda perlukan untuk menjaga dan metriknya.
Anda mesti bersetuju dengan apa yang hendak dipantau dan maklumat yang hendak dihasilkan, dan kemudian meletakkan kawalan. Alat pengurusan Prestasi Aplikasi sangat membantu jika organisasi anda mampu melihat AppDynamics, New Relic dan AWS X-Ray.
Senario Data DevOps
DevOps adalah mengenai menghilangkan risiko yang berkaitan dengan pengembangan perisian baru: Analisis data mengenal pasti risiko tersebut. Untuk terus mengukur dan meningkatkan proses DevOps, analisis harus merangkumi seluruh saluran paip. Ini memberikan pandangan yang tidak ternilai bagi pihak pengurusan di semua peringkat kitaran hidup pengembangan perisian.
1. Kurang masa untuk menganalisis data
Dengan semua data yang dihasilkan pada waktu tertentu, organisasi perlu menerima bahawa mereka tidak dapat menganalisis semuanya. Cukup banyak masa dalam sehari - dan malangnya, robot belum cukup canggih untuk melakukan semuanya untuk kita.
Atas sebab itu, penting untuk menentukan set data mana yang paling penting. Dalam kebanyakan kes, ini akan berbeza bagi setiap organisasi. Oleh itu, sebelum menyelami, tentukan objektif dan matlamat perniagaan utama. Biasanya, tujuan ini berkisar pada keperluan pelanggan - terutamanya ciri paling berharga yang paling penting bagi pengguna akhir. Untuk peruncit, misalnya, menganalisis bagaimana lalu lintas berinteraksi dengan halaman pembayaran di laman web ini dan menguji cara kerjanya di bahagian belakang berada di bahagian atas senarai.
Beberapa petua cepat untuk mengenal pasti data mana yang paling penting untuk dianalisis:
Buat carta: Tentukan kesan gangguan pada perniagaan anda, dengan mengemukakan soalan seperti, 'Jika X pecah , apa kesannya terhadap ciri lain? '
Lihat data sejarah: Kenal pasti di mana masalah timbul pada masa lalu dan teruskan menganalisis data dari ujian dan membina untuk memastikannya tidak berulang.
2. Komunikasi sukar
Hari ini, kebanyakan organisasi masih beroperasi dengan pasukan dan perseorangan yang berbeza mengenal pasti matlamat mereka sendiri dan menggunakan alat dan teknologi mereka sendiri. Setiap pasukan bertindak secara bebas, terputus dari saluran paip dan bertemu dengan pasukan lain hanya semasa fasa integrasi.
Ketika melihat gambaran yang lebih besar dan mengenal pasti apa yang sedang dan tidak berfungsi, organisasi berusaha keras untuk menemui satu penyelesaian. Ini kerana kebanyakan orang gagal berkongsi keseluruhan data, membuat analisis tidak mungkin dilakukan.
Untuk mengatasi masalah ini, periksa arus komunikasi untuk memastikan semua orang berkolaborasi di seluruh SDLC, bukan hanya semasa proses integrasi.
Pertama, pastikan terdapat penyegerakan yang kuat pada metrik DevOps dari awal. Kemajuan setiap pasukan harus ditunjukkan dalam satu papan pemuka tunggal, menggunakan Petunjuk Prestasi Utama (KPI) yang sama untuk memberikan penglihatan pengurusan ke seluruh proses. Ini dilakukan supaya mereka dapat mengumpulkan semua data yang diperlukan untuk menganalisis apa yang salah (atau apa yang berjaya).
Di luar perbincangan metrik awal, harus ada komunikasi berterusan melalui mesyuarat pasukan atau saluran digital seperti Slack.
3. Kekurangan tenaga kerja
Ketika memiliki staf pendek, kami memerlukan alat yang lebih pintar yang menggunakan pembelajaran mendalam untuk memasukkan data yang kami kumpulkan dan mengambil keputusan dengan cepat. Bagaimanapun, tidak ada yang mempunyai masa untuk melihat setiap pelaksanaan ujian (dan bagi beberapa organisasi besar, terdapat sekitar 75,000 dalam satu hari). Caranya adalah dengan menghilangkan kebisingan dan mencari perkara yang tepat untuk difokuskan.
Di sinilah kecerdasan buatan dan pembelajaran mesin dapat membantu. Banyak alat di pasaran hari ini menggunakan AI dan ML untuk melakukan perkara seperti:
Kembangkan skrip dan ujian untuk memindahkan dan mengesahkan kepingan data yang berbeza
pengecualian pengendalian dalam prosedur yang disimpan oracle
Laporkan kualiti berdasarkan tingkah laku yang dipelajari sebelumnya
Bekerja sebagai tindak balas terhadap perubahan masa nyata.
Oleh itu, kita sampai pada akhir artikel ini mengenai Senario Masa Sebenar DevOps.
Sekarang setelah anda memahami apa itu Senario Masa Sebenar DevOps, lihat ini oleh Edureka, sebuah syarikat pembelajaran dalam talian yang dipercayai dengan rangkaian lebih daripada 250,000 pelajar berpuas hati yang tersebar di seluruh dunia. Kursus Latihan Persijilan Edureka DevOps membantu pelajar memahami apa itu DevOps dan memperoleh kepakaran dalam pelbagai proses dan alat DevOps seperti Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack dan GIT untuk mengautomasikan beberapa langkah dalam SDLC.
Ada soalan untuk kami? Sila sebutkan di bahagian komen iniArtikel Senario Masa Sebenar DevOpsdan kami akan menghubungi anda.