Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020

Mulai gunakan alat DevOps terbaik hari ini!

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Revolusi DevOps akhirnya mengambil alih dunia dan alat DevOps menjadi sangat populer. Menurut layanan Google Trends, jumlah permintaan untuk β€œalat DevOps” terus meningkat, dan tren ini terus berlanjut.

Metodologi DevOps mencakup seluruh siklus hidup pengembangan perangkat lunak, sehingga para profesional dapat memilih dari berbagai alat. Namun, seperti yang Anda ketahui, tidak ada alat yang bisa menjadi alat universal untuk semua orang. Namun, beberapa solusi menawarkan beragam fungsi sehingga dapat menangani hampir semua tugas.

Mari kita bagi alat DevOps ke dalam beberapa kategori dan membandingkannya dengan analog:

  • pengembangan dan pembuatan alat
  • alat otomasi pengujian
  • alat untuk mengatur penyebaran
  • Alat waktu proses
  • alat kolaborasi.

Implementasi yang sukses dan bijaksana Praktisi DevOps mencakup instrumen dari kelima kelompok yang tercantum di atas. Analisis rangkaian alat yang ada di proyek Anda agar tidak melewatkan elemen penting dari alur CI/CD.

Alat Pengembangan dan Pembangunan

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Ini adalah dasar dari tumpukan pipeline CI/CD. Semuanya dimulai di sini! Alat terbaik dalam kategori ini dapat mengelola beberapa aliran acara dan berintegrasi dengan mudah dengan produk lain.

Pada tahap siklus hidup pengembangan ini, ada tiga kelompok alat:

  • sistem kontrol versi (SCM)
  • integrasi berkelanjutan (CI)
  • Manajemen data

GIT memiliki rekam jejak yang positif pada tahun 2020, sehingga alat SCM Anda seharusnya memiliki dukungan yang lancar untuk GIT. Untuk CI, prasyaratnya adalah kemampuan untuk mengeksekusi dan menjalankan build di lingkungan container yang terisolasi. Dalam pengelolaan data diperlukan kemampuan untuk melakukan perubahan skema database dan memelihara database sesuai versi aplikasi.

Alat SCM + CI #1

Pemenang: GitLab dan GitLab-CI

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Tidak diragukan lagi, alat terbaik dalam siklus DevOps 2020 adalah GitLab, dan GitLab pasti akan terus memimpin inovasi dalam waktu dekat.

Fungsi utama GitLab adalah menyediakan pengelolaan repositori Git yang nyaman. Antarmuka webnya intuitif dan mudah digunakan. GitLab menyediakan semua yang Anda butuhkan dalam versi gratis dan hadir sebagai SaaS dan lokal (menggunakan sumber daya Anda sendiri untuk menghosting perangkat lunak).

Tidak ada alat SCM lain yang menggunakan integrasi berkelanjutan (CI) langsung di repositori Anda, dan GitLab telah melakukan hal ini sejak lama. Untuk menggunakan GitLab-CI, Anda harus menambahkan file .gitlab-ci.yml ke root kode sumber Anda, dan perubahan apa pun pada proyek akan memicu tindakan berdasarkan apa yang Anda tentukan. GitLab dan GitLab-CI pantas diakui sebagai pemimpin di bidang integrasi berkelanjutan (CI-as-code).

Manfaat Utama

  • Keandalan - Produk telah dipasarkan sejak 2013; stabil; didukung dengan baik.
  • Open Source - Versi gratis GitLab tidak membatasi fungsionalitas inti yang dibutuhkan tim pengembangan. Paket layanan berbayar memberikan fitur tambahan yang berguna bagi perusahaan dengan berbagai ukuran dan kebutuhan.
  • CI yang tertanam - Tidak ada alat lain di pasar yang membangun integrasi berkelanjutan langsung ke SCM seperti GitLab-CI. Penggunaan Docker memastikan pembangunan terisolasi tanpa kerumitan, dan laporan bawaan memudahkan proses debug. Kami tidak memerlukan integrasi yang rumit dan pengelolaan beberapa alat secara bersamaan.
  • Integrasi Tanpa Batas - GitLab menyediakan integrasi mudah dari semua alat DevOps yang Anda perlukan. Hal ini memastikan bahwa tim pengembangan dan pemeliharaan memiliki satu sumber informasi tentang aplikasi mereka di lingkungan apa pun.

pesaing

Berpartisipasi dalam pertempuran, tetapi tidak menang

Ada alat populer lainnya dalam kategori ini, namun tidak sebagus GitLab. Dan itulah kenapa:

GitHub β€” Ini adalah sistem kontrol versi SaaS yang sangat baik untuk perusahaan kecil dan tahap awal pengembangan. Untuk perusahaan besar yang menganggap penting untuk menyimpan alamat IP di jaringan mereka sendiri, satu-satunya solusi dari GitHub adalah mesin virtual .OVA tanpa dukungan untuk sistem ketersediaan tinggi. Hal ini membuat pemeliharaan di lokasi menjadi sulit; selain itu, .OVA hanya cocok untuk bisnis skala menengah, jika tidak, server akan mogok karena beban yang lebih besar. Kurangnya Tindakan GitHub (hingga saat ini dan belum tersedia dalam versi lokal) atau CI sebagai kode berarti Anda harus memilih alat CI terpisah dan kemudian mengelola integrasi tersebut. Terakhir, GitHub jauh lebih mahal daripada versi GitLab mana pun.

Jenkins β€” Meskipun Jenkins dianggap sebagai standar di antara alat integrasi berkelanjutan secara default, Jenkins selalu kekurangan kemampuan kontrol versi. Ternyata Anda menggunakan Jenkins plus semacam alat SCM. Terlalu sulit jika GitLab bisa melakukan keduanya. Desain UX yang biasa-biasa saja tidak cocok untuk aplikasi web modern dan meninggalkan banyak hal yang diinginkan.

BitBucket/Bambu β€” Saya harus mengenalinya sebagai pecundang otomatis: mengapa ada dua alat ketika GitLab melakukan semuanya secara mandiri. BitBucket Cloud mendukung fungsionalitas GitLab-CI / GitHub Action, tetapi tidak ada perusahaan besar selain startup yang dapat dengan mudah mengimplementasikannya. Server BitBucket lokal bahkan tidak mendukung saluran pipa BitBucket!

Alat Manajemen Data #1

Pemenang: Jalur TerbangDB

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Dalam pengembangan aplikasi web, otomatisasi database biasanya tidak dianggap penting. Gagasan untuk menerapkan perubahan skema basis data untuk versi aplikasi yang baru datang terlambat. Perubahan skema sering kali mengakibatkan kolom atau tabel ditambahkan dan diganti namanya. Jika versi aplikasi tidak sesuai dengan versi skema, aplikasi mungkin mengalami crash. Selain itu, mengelola perubahan database saat memperbarui aplikasi dapat menjadi tantangan karena terdapat dua sistem yang berbeda. FlyWayDB memecahkan semua masalah ini.

Manfaat Utama

  • Pembuatan versi basis data - Flyway memungkinkan Anda membuat versi basis data, melacak migrasi basis data, dan dengan mudah mentransfer atau mengembalikan perubahan skema tanpa alat tambahan untuk ini.
  • Biner atau Tertanam - Kita dapat memilih untuk menjalankan Flyway sebagai bagian dari aplikasi atau sebagai biner yang dapat dieksekusi. Flyway memeriksa kompatibilitas versi saat startup dan memulai migrasi yang sesuai, menjaga versi database dan aplikasi tetap sinkron. Dengan menjalankan perintah cmd line ad-hoc, kami memberikan fleksibilitas pada database yang ada tanpa membangun kembali seluruh aplikasi.

pesaing

Berpartisipasi dalam pertempuran, tetapi tidak menang

Tidak banyak alat di area ini. Mari kita lihat beberapa di antaranya:

Basis Cair β€” Liquibase menyerupai FlywayDB. Saya ingin mengaturnya di atas Flyway jika saya memiliki seseorang di tim saya yang lebih berpengalaman dengan Liquibase.

Berkelompok - Hanya dapat berfungsi untuk aplikasi dalam container. Agar berhasil menjalankan database dalam container, semuanya harus direncanakan dengan sempurna. Saya merekomendasikan penggunaan RDS (Relational Database Service) untuk database dan tidak menyarankan menyimpan informasi penting dalam sebuah container.

Alat Otomasi Uji

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Mari kita mulai diskusi kita tentang alat otomatisasi pengujian dengan mengklasifikasikannya berdasarkan piramida pengujian.

Piramida pengujian (tes) memiliki 4 tingkatan:

  • Pengujian Unit - Ini adalah dasar dari seluruh proses pengujian otomatis. Harus ada lebih banyak pengujian unit dibandingkan dengan jenis pengujian lainnya. Pengembang menulis dan menjalankan pengujian unit untuk memastikan bahwa bagian dari aplikasi (dikenal sebagai "unit") sesuai dengan desainnya dan berperilaku seperti yang diharapkan.
  • Component Tests- Tujuan utama pengujian komponen adalah untuk memverifikasi perilaku input/output objek pengujian. Kita harus memastikan bahwa fungsionalitas objek uji diimplementasikan dengan benar sesuai spesifikasi.
  • Tes integrasi - Suatu jenis pengujian di mana modul perangkat lunak individual digabungkan dan diuji sebagai sebuah kelompok.
  • Tes End-to-End - Langkah ini cukup jelas. Kami memantau seluruh aplikasi dan memastikannya berfungsi sesuai rencana.

Karena pengujian unit dan pengujian komponen hanya dilakukan oleh pengembang dan seringkali spesifik untuk bahasa pemrograman, kami tidak akan mengevaluasi alat ini untuk domain DevOps.

Alat Pengujian Integrasi #1

Pemenang: Timun

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Mentimun menggabungkan spesifikasi dan dokumentasi pengujian menjadi satu dokumen hidup. Spesifikasinya selalu up to date karena sudah teruji otomatis oleh Timun. Jika Anda ingin membangun kerangka pengujian otomatis dari awal dan memodelkan perilaku pengguna dalam aplikasi web, maka Selenium WebDriver dengan Java dan Cucumber BDD adalah cara terbaik untuk mempelajari dan mengimplementasikan Mentimun dalam sebuah proyek.

Manfaat Utama

  • Pendekatan BDD (Pengembangan Berbasis Perilaku - β€œpengembangan melalui perilaku” sebagai lawan dari pendekatan β€œpengembangan yang didorong oleh pengujian”) - Mentimun dirancang untuk pengujian BDD, pada awalnya dibuat untuk tugas ini.
  • Dokumentasi Hidup - Dokumentasi selalu menyusahkan! Karena pengujian Anda ditulis sebagai kode, Cucumber menguji dokumentasi yang dibuat secara otomatis untuk memastikan bahwa pengujian dan dokumentasi sinkron.
  • Dukungan - Kita dapat memilih dari banyak alat, namun Mentimun memiliki sumber daya keuangan yang diperlukan dan sistem pendukung yang terorganisir dengan baik untuk membantu pengguna dalam situasi sulit apa pun.

pesaing

Berpartisipasi dalam pertempuran, tetapi tidak menang

Di antara kerangka kerja dan alat khusus teknologi lainnya, hanya Mentimun yang dapat dianggap sebagai solusi universal.

Alat Pengujian Ujung ke Ujung

Saat melakukan pengujian end-to-end, Anda perlu fokus pada dua poin utama:

  • pengujian fungsional
  • Tes Stres.

Dalam pengujian fungsional, kami memeriksa apakah semua yang kami inginkan benar-benar terjadi. Misalnya, ketika saya mengklik elemen tertentu dari SPA saya (aplikasi satu halaman), mengisi formulir dan memilih "Kirim", data muncul di database dan pesan "Sukses!" muncul di layar.

Penting juga bagi kami untuk memeriksa apakah sejumlah pengguna yang menjalankan skenario yang sama dapat diproses tanpa kesalahan.

Tidak adanya 2 jenis pengujian ini akan menjadi kelemahan signifikan dalam pipeline CI/CD Anda.

Alat pengujian ujung ke ujung #1. Pengujian fungsional

Pemenang: SabunUI Pro

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
SoapUI telah lama berada di ruang pengujian API sejak layanan web berbasis SOAP menjadi standarnya. Meskipun kami tidak lagi membuat layanan SOAP baru dan nama alatnya tidak berubah, bukan berarti alat tersebut tidak berkembang. SoapUI menyediakan kerangka kerja yang sangat baik untuk membuat pengujian fungsional backend otomatis. Pengujian dapat dengan mudah digabungkan dengan alat integrasi berkelanjutan dan digunakan sebagai bagian dari pipeline CI/CD.

Manfaat Utama

  • Dokumentasi terperinci - SoapUI telah ada di pasaran cukup lama, jadi ada banyak sumber online yang dapat membantu Anda memahami cara menyiapkan pengujian.
  • Kemudahan Penggunaan - Meskipun alat ini mendukung banyak protokol untuk menguji API, kehadiran antarmuka umum SoapUI untuk beberapa layanan membuat pengujian penulisan menjadi lebih mudah.

pesaing

Berpartisipasi dalam pertempuran, tetapi tidak menang

Selenium adalah instrumen hebat lainnya di grup ini. Saya sarankan menggunakannya jika Anda sedang membangun dan menjalankan aplikasi berbasis Java. Namun, jika Anda membangun aplikasi web lengkap dengan berbagai teknologi, hal ini dapat menjadi sulit untuk komponen non-Java.

Alat pengujian ujung ke ujung #1. Tes Stres

Pemenang: LoadRunner

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Penjelasan: Ketika tiba waktunya untuk menguji beban setiap elemen aplikasi Anda, hanya LoadRunner yang dapat menyelesaikan tugas tersebut. Ya, ini mahal dan sulit pada awalnya, tetapi LoadRunner adalah satu-satunya alat yang memberi saya, sebagai arsitek teknis, keyakinan penuh bahwa kode baru akan bekerja dalam kondisi beban ekstrem. Selain itu, menurut saya sudah waktunya LoadRunner diambil alih oleh tim pengembangan daripada tim pengujian.

Manfaat Utama

  • Dokumentasi ekstensif - LoadRunner telah ada di pasaran selama beberapa waktu, jadi ada banyak sumber daya online yang dapat membantu Anda memahami cara menyiapkan pengujian beban.
  • Dukungan protokol - Load Runner mendukung segalanya mulai dari ODBC hingga AJAX, HTTPS, dan protokol non-sepele lainnya yang mungkin digunakan aplikasi Anda. Kami mencoba untuk tidak menggunakan banyak alat untuk pengujian beban, karena ini hanya mempersulit proses.

pesaing

Berpartisipasi dalam pertempuran, tetapi tidak menang

Sekali lagi, tidak banyak alat universal di bidang ini, jadi solusi terbaik adalah solusi yang dapat digunakan di lingkungan apa pun dengan teknologi apa pun.

Alat penerapan

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Alat penerapan mungkin merupakan aspek pengembangan yang paling sedikit dipahami. Untuk tim operasi tanpa pemahaman mendalam tentang kode dan fungsionalitas aplikasi, sulit untuk menggunakan alat tersebut. Bagi pengembang, manajemen penerapan adalah tanggung jawab baru, sehingga mereka belum memiliki cukup pengalaman bekerja dengan alat tersebut.

Pertama-tama, mari kita bagi semua alat penerapan menjadi tiga subkategori:

  • manajemen artefak
  • manajemen konfigurasi
  • menyebarkan.

Alat Manajemen Artefak #1

Pemenang: Nexus

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Repositori artefak Nexus mendukung hampir semua teknologi utama, mulai dari Java, NPM, hingga Docker. Kita bisa menggunakan alat ini untuk menyimpan semua artefak yang kita gunakan. Proksi manajer paket jarak jauh juga secara signifikan mempercepat proses pembuatan CI, membuat paket lebih mudah diakses untuk dibuat. Keuntungan lainnya adalah kemampuan untuk mendapatkan gambaran lengkap tentang semua paket yang digunakan dalam beberapa proyek perangkat lunak, memblokir paket sumber terbuka yang tidak aman (dapat bertindak sebagai vektor serangan).

Manfaat Utama

  • Dukungan teknis - Produk yang andal; didukung dengan baik.
  • Open Source - Versi gratis tidak membatasi fungsionalitas inti yang dibutuhkan tim pengembangan.

Alat Manajemen Konfigurasi #1

Pemenang: Mungkin

Ansible menjadi pemimpin karena satu alasan sederhana: tanpa kewarganegaraan. Sebelumnya, alat serupa berfokus pada manajemen status konfigurasi. Saat diluncurkan, alat tersebut, setelah menerima konfigurasi yang diinginkan, akan mencoba memperbaiki konfigurasi aplikasi saat ini. Dan dengan pendekatan baru, hanya komponen tanpa kewarganegaraan yang hadir. Kode versi baru adalah artefak yang disebarkan untuk menggantikan yang sudah ada. Ini dapat dianggap sebagai lingkungan yang bersifat sementara dan berjangka pendek.

Manfaat Utama

  • Stateless - Playbook diluncurkan dari mesin penerapan dan dijalankan di server target. Saya tidak perlu khawatir tentang keadaan objek jarak jauh dengan menggunakan alat seperti Packer untuk membuat objek yang dapat diterapkan.
  • Open Source - Seperti CentOS, Ansible juga didukung oleh RedHat. Ini membantu menjaga komunitas dan menyediakan modul berkualitas tinggi dan mudah digunakan.
  • Pengujian dengan Molekul (kerangka kerja yang Mungkin) - Karena manajemen konfigurasi adalah kode, seperti yang lainnya, pengujian sangatlah penting. Kerangka kerja pengujian peran Ansible Molecule bekerja dengan sempurna, memastikan bahwa konfigurasi memiliki kualitas yang sama dan mengikuti jalur CI/CD yang sama dengan kode aplikasi.
  • YAML - Dibandingkan alat lain, YAML lebih mudah dipahami. Karena manajemen konfigurasi biasanya merupakan tantangan baru bagi mereka yang menerapkan praktik DevOps, kesederhanaan adalah keunggulannya.

pesaing

Berpartisipasi dalam pertempuran, tetapi tidak menang

Koki OpsCode β€” Saya memulai karir DevOps saya sebagai pengembang buku masak. Ruby dan Chef tentu saja sangat saya sayangi, namun keduanya tidak memecahkan masalah aplikasi cloud-native modern yang stateless. OpsCode Chef adalah alat hebat untuk aplikasi yang lebih tradisional, namun dalam artikel ini kami fokus pada masa depan.

Wayang β€” Wayang tidak pernah memiliki banyak penggemar, apalagi jika dibandingkan dengan Chef dan Ansible. Ini bagus untuk penyediaan dan bekerja dengan perangkat keras, tetapi tidak memiliki dukungan manajemen konfigurasi modern untuk aplikasi web.

Alat penerapan #1

Pemenang: Terraform

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Terraform memecahkan masalah dalam mendeskripsikan infrastruktur Anda sebagai kode, mulai dari komponen jaringan hingga gambar server lengkap. Produk ini telah berkembang pesat sejak peluncuran awal, dengan begitu banyak plugin yang dibuat dan komunitas yang kuat yang dibangun sehingga Anda pasti akan mendapatkan bantuan dalam skenario penerapan apa pun. Kemampuan untuk mendukung segala jenis lingkungan (on-premise, cloud, atau di tempat lain) tidak ada bandingannya. Terakhir, versi terbaru menyediakan fungsi dan kelas logika yang sama di HCL seperti bahasa pemrograman tradisional lainnya, membuat Terraform mudah dipahami oleh pengembang dengan cepat dan mudah.

Manfaat Utama

  • Lingkungan agnostik - Terraform menggunakan fungsi yang bertindak sebagai antarmuka antara kode Terraform Anda, semua API, dan logika internal untuk berkomunikasi dengan penyedia infrastruktur. Artinya saya akan menguasai satu alat saja dan kemudian bisa bekerja di mana saja.
  • Open Source - Sulit mengalahkan alat gratis! Dukungan masyarakat pada tingkat tertinggi.

pesaing

Berpartisipasi dalam pertempuran, tetapi tidak menang

Formasi AWS Cloud β€” Meskipun Anda hanya bekerja di lingkungan cloud AWS, pekerjaan Anda berikutnya mungkin menggunakan alat yang berbeda. Mendedikasikan seluruh waktu dan energi Anda hanya pada satu platform adalah keputusan jangka pendek. Selain itu, banyak layanan AWS baru sering kali tersedia sebagai modul Terraform sebelum tersedia di CloudFormation.

Alat waktu proses

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020

Tujuan akhir dari setiap proyek pengembangan adalah meluncurkan aplikasi ke dalam produksi. Di dunia DevOps, kami ingin sepenuhnya menyadari semua kemungkinan masalah pada lingkungan kami, dan kami juga ingin meminimalkan intervensi manual. Memilih seperangkat alat runtime yang tepat sangat penting untuk mencapai nirwana pengembangan aplikasi.

Subkategori alat runtime:

  • X-as-a-service (XaaS)
  • orkestrasi
  • pemantauan
  • pencatatan.

X-alat-sebagai-layanan #1

Pemenang: Amazon Web Services

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Amazon selalu menjadi pemimpin dalam teknologi cloud, namun tidak berhenti di situ: beragam layanan baru bagi pengembang sangat membuka mata. Bawa teknologi dan templat apa pun ke AWS dan teknologi dan templat tersebut akan dibangun dan dijalankan. Biaya alat ini cukup masuk akal: bandingkan dengan perakitan, pengelolaan, dan pemeliharaan peralatan di pusat data Anda sendiri. Versi gratisnya memungkinkan Anda bereksperimen dan membuat keputusan yang tepat sebelum mengeluarkan uang.

Manfaat Utama

  • Prevalensi - Jika Anda memiliki pengalaman membangun aplikasi di AWS, Anda dapat bekerja di mana saja. Bisnis menyukai AWS, dan perusahaan rintisan juga menghargai biayanya yang rendah.
  • Versi gratisnya merupakan faktor penting yang membedakan AWS dari rekan-rekannya. Izinkan saya mencoba layanan ini dan melihat cara kerjanya sebelum saya membuat keputusan pembelian, saya tidak ingin menghabiskan ribuan dolar untuk sesuatu yang tidak perlu. Versi gratisnya selalu cukup bagi saya untuk menguji konsep apa pun.

pesaing

Berpartisipasi dalam pertempuran, tetapi tidak menang

Biru langit β€œAzure telah mengalami banyak kemajuan sejak pertama kali dirilis, dan hal ini patut dipuji. Namun, keinginan untuk tampil beda menyebabkan munculnya nama-nama layanan yang aneh, sehingga seringkali mempersulit pekerjaan. Apa yang dimaksud dengan "penyimpanan gumpalan"? Meskipun kode .NET berkinerja lebih baik di ekosistem Microsoft, kecil kemungkinan Anda hanya akan menggunakan .NET untuk setiap komponen aplikasi Anda.

Heroku β€” Saya tidak akan pernah menjalankan apa pun selain proyek pribadi di Heroku karena rendahnya tingkat keandalan dan transparansi, sehingga perusahaan tidak boleh menggunakannya sebagai platform. Heroku sangat bagus untuk mendemonstrasikan sesuatu di blog, tetapi untuk penggunaan praktis - β€œTidak, terima kasih!”

Alat Orkestrasi #1

Pemenang: Pergeseran Terbuka

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Anda mungkin menggunakan Docker atau container lain di tumpukan aplikasi Anda. Aplikasi tanpa server memang bagus, tetapi mungkin tidak cocok untuk semua arsitektur. Menjalankan container tanpa platform orkestrasi tidak akan berhasil. Kubernetes Core (K8s) tidak ada bandingannya dalam hal keamanan dan peralatan. OpenShift adalah satu-satunya platform berbasis Kubernetes yang dapat mengumpulkan Source2Image, mendukung penerapan otomatis ke pod, dan mendukung pelacakan dan pemantauan. OpenShift dapat dijalankan di lokasi, di cloud, atau di lokasi dan di cloud secara bersamaan.

Manfaat Utama

  • Keamanan Bawaan - Mengelola keamanan K8 mungkin memerlukan gelar yang lebih tinggi. Setiap detail harus dipikirkan dan diperhitungkan dengan cermat! Mekanisme keamanan yang dibangun secara default dengan OpenShift meringankan beban pengembang dan menyediakan platform yang lebih aman untuk aplikasi.
  • Solusi lengkap - Berbeda dengan K8 dasar, yang tidak menyertakan alat penyeimbang beban secara default, OpenShift memiliki semuanya. Saya dapat menggunakannya untuk membuat dan menghosting container, menjalankan alat CI/CD, mengelola proses eksternal, mengelola kunci, dan banyak lagi. Meskipun antarmuka pengguna grafis masih jauh dari sempurna, pendekatan berbasis API berarti bahwa segala sesuatu dapat dijelaskan dalam sebuah skrip. Tidak seperti GUI lain untuk K8, OpenShift membuat pembelajaran dasar-dasar Kubernetes menjadi lebih mudah. Anda bahkan tidak perlu mendapatkan gelar!

pesaing

Berpartisipasi dalam pertempuran, tetapi tidak menang

Kawanan Docker β€” Docker Swarm mencoba menyederhanakan K8 dengan membuang banyak hal. Ini bagus untuk aplikasi kecil, tetapi untuk aplikasi perusahaan tidak berfungsi. Selain itu, solusi seperti AWS ECS mengambil pendekatan serupa tetapi membuatnya lebih mudah untuk bekerja dengan layanan lain yang juga dapat berinteraksi dengan saya (Lambda, IAM, dll.).

Alat pemantauan #1

Pemenang: Peninggalan Baru

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Rilis awal New Relic memberikan satu hal yang baik - pemantauan APM (Application Performance Monitoring). Sekarang menjadi alat pemantauan berfitur lengkap yang memungkinkan Anda memantau kinerja server, kontainer, basis data, pemantauan pengalaman pengguna akhir, dan tentu saja, pemantauan kinerja aplikasi.

Manfaat Utama

  • Kemudahan Penggunaan - Ketika saya bekerja sebagai insinyur sistem, saya menggunakan banyak alat pemantauan, namun saya belum pernah menemukan alat yang sederhana dan mudah digunakan seperti New Relic. Ini SaaS, jadi Anda tidak perlu menginstalnya sendiri.
  • Visibilitas ujung ke ujung - Alat lain mencoba memantau satu elemen spesifik aplikasi Anda. Misalnya saja metrik penggunaan prosesor atau lalu lintas jaringan, namun semua itu harus dipantau secara komprehensif agar aplikasi dapat bekerja dengan benar. New Relic memberi Anda kemampuan untuk menyatukan semua data Anda untuk mendapatkan gambaran komprehensif tentang apa yang terjadi.

pesaing

Berpartisipasi dalam pertempuran, tetapi tidak menang

Zabbix β€” Sistem pemantauan pertama dan favorit saya, tetapi sudah ketinggalan zaman karena kurangnya perkembangan teknologi cloud dan di bidang pemantauan kinerja aplikasi APM. Zabbix masih melakukan pemantauan infrastruktur server tradisional dengan baik, tapi itu saja.

DataDog β€” Terlalu fokus pada proses pengelolaan lingkungan produksi aplikasi, dan bukan pada kode itu sendiri. Dengan tim DevOps yang melibatkan pengembang, kami tidak harus bergantung pada alat yang sulit digunakan untuk memberikan dukungan terbaik.

Alat pencatatan #1

Pemenang: Splunk

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Sulit untuk bersaing dengan Splunk! Untuk jangka waktu yang lama, beliau tetap menjadi pemimpin dalam bidang penebangan kayu, dan terus melakukannya dengan lebih baik dibandingkan orang lain. Dengan penawaran lokal dan SaaS, Anda dapat menggunakan Splunk di mana saja. Kelemahan terbesarnya adalah harganya: Splunk masih sangat mahal!

Manfaat Utama

  • Pervasiveness - Bisnis menyukai Splunk, dan perusahaan mempunyai uang untuk membelinya.
  • Meskipun para startup berusaha menutup biaya, banyak fungsi yang dapat diselesaikan berkat analog open source.
  • Pemeliharaan - Sederhananya, Splunk berfungsi dan melakukannya dengan baik. Muncul dengan banyak pengaturan default dan fitur yang siap digunakan. Tidak perlu membuang waktu membaca dokumentasi dan mencoba membuat Splunk berfungsi atau menguraikan apa pun.

pesaing

Berpartisipasi dalam pertempuran, tetapi tidak menang

ELK Stack (ElasticSearch, LogStash, dan Kibana) β€œAlat-alat ini sepertinya menjadi favorit karena Anda bahkan tidak perlu menjual hati Anda untuk menggunakannya.” Namun, seiring bertambahnya jumlah log dan jumlah aplikasi yang ada, pekerjaan menjadi semakin sulit. Dibandingkan dengan Splunk, dengan ELK Stack saya menghabiskan lebih banyak waktu menyiapkan perkakas sebelum membuat dasbor apa pun dibandingkan sebelumnya.

Alat Kolaborasi

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
DevOps pada dasarnya adalah tentang mengubah budaya dalam suatu organisasi. Membeli alat apa pun tidak akan mengubah praktik yang ada saat ini dalam sekejap, namun hal ini tentu dapat mendorong kolaborasi dan cara-cara baru dalam berinteraksi.

Subkategori alat kolaborasi:

  • pelacakan tugas
  • Obrolan
  • dokumentasi.

Alat Pelacakan Masalah #1

Pemenang: Jira

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Jira mempertahankan posisi kepemimpinannya, meskipun persaingan di bidang ini semakin meningkat. Fleksibilitas Jira yang luar biasa memungkinkan tim pengembangan dan pemeliharaan mengelola pekerjaan proyek dan tugas sprint. Standar bawaan yang menggunakan terminologi Agile memudahkan peralihan dari cara kerja tradisional ke proses yang lebih efisien.

Manfaat Utama

  • Popularitas - Seperti banyak alat lainnya, Jira digunakan hampir di mana saja. Tim kecil menggunakan versi yang lebih murah dan mudah diakses serta mendapatkan semua yang mereka butuhkan, sementara perusahaan besar mampu membeli lisensi yang lebih mahal.
  • Integrasi - Jira adalah pionir di bidangnya. Fakta ini dan pesatnya perkembangan produk mengarah pada fakta bahwa perusahaan lain memilih Jira untuk membuat integrasi mereka sendiri, sehingga meningkatkan nilai alat tersebut. Kami dapat mengintegrasikan Jira dengan semua alat yang tercantum dalam artikel ini dengan sedikit konfigurasi.

pesaing

Berpartisipasi dalam pertempuran, tetapi tidak menang

Trello β€” Trello dengan cepat mendapatkan popularitas berkat alat Kanban gratisnya. Namun, setelah proses berskala dan Anda beralih dari lusinan tugas menjadi ribuan, Trello menjadi sulit untuk dinavigasi, dicari, dan dilaporkan.

Pelacak Penting β€” Saya adalah penggemar berat alat ini ketika saya bekerja di sebuah startup. Namun, Pivotal Tracker lebih fokus pada manajemen produk daripada tugas teknis. Meskipun manajemen produk di Jira sedikit lebih rumit, namun tetap dapat diterapkan di sana tanpa menggunakan alat tambahan.

Alat ChatOps #1

Pemenang: MatterMost

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Penjelasan: Mungkin kejutan terbesar bagi Anda dalam pilihan saya, dan itu kabar baik! MatterMost memperoleh popularitas dengan mengambil yang terbaik dari alat-alat sebelumnya tetapi menempatkannya di tempat. Hal ini sangat penting bagi perusahaan: MatterMost memungkinkan Anda mengontrol data dan juga membantu Anda mengintegrasikannya dengan alat yang berjalan secara lokal. Kita tidak perlu lagi keluar dari firewall untuk memeriksa obrolan kantor.

Manfaat Utama

  • Open Source – Versi open source dari MatterMost berfungsi baik untuk tim menengah dan besar. Berbeda dengan paket gratis Slack, yang menghapus riwayat pesan Anda, menjalankan server Anda sendiri berarti Anda menyimpan semua data Anda.
  • Integrasi - Karena API ini hampir 100% didasarkan pada API Slack, hampir semua integrasi Slack dapat digunakan langsung dengan MatterMost.

pesaing

Berpartisipasi dalam pertempuran, tetapi tidak menang

Kendur β€” Slack memang keren, tetapi orang-orang ini telah berkembang pesat sehingga mereka mulai mencari keuntungan. Fase pengembalian bisnis semakin dekat, yang menghilangkan nilai utama mereka: Slack menyediakan layanan gratis; Kerugian paling penting dari versi gratis adalah penghapusan riwayat obrolan.

Microsoft Tim β€” Coba integrasikan produk Microsoft dengan sesuatu yang bukan milik Microsoft... Semoga berhasil! Itu saja yang ingin saya katakan tentang alat ini!

Alat Dokumentasi #1

Pemenang: Pertemuan

Alat DevOps yang Harus Dipelajari Semua Orang di tahun 2020
Membuat dan memelihara dokumentasi teknis yang berkualitas adalah proses yang kompleks, apa pun alat yang Anda gunakan. Meskipun banyak alat dokumentasi SaaS yang memasuki pasar baru-baru ini, saya akan kesulitan untuk melakukan outsourcing penyimpanan dokumentasi teknis tentang aplikasi penting kepada pihak ketiga. Lebih baik menyimpan data dan dokumen di lokasi, dan inilah cara Confluence menyelesaikannya.

Manfaat Utama

  • Mudah dioperasikan - Sebagian besar alat yang berdiri sendiri mungkin agak rumit untuk diatur dan dioperasikan serta memerlukan pengetahuan untuk memeliharanya. Confluence Server berfungsi dengan baik untuk 10 atau 10,000 pengguna.
  • Plugin - Pujian untuk Confluence karena memiliki navigasi yang indah dan mudah digunakan, dan kemampuan untuk menambahkan plugin untuk hampir semua hal membuka potensi seperti Wiki.

pesaing

Berpartisipasi dalam pertempuran, tetapi tidak menang

Baca dokumennya β€” Keren untuk open source, tapi jangan berpikir untuk menyimpan pengetahuan penting di sini.

Penurunan harga - Bagus untuk mendokumentasikan kode, tetapi sulit untuk memposting arsitektur, proses, atau jenis dokumentasi lainnya karena format MarkDown yang spesifik.

Jekyll β€” Saat mendokumentasikan pengetahuan teknis, saya tidak ingin membuat situs statis baru yang akan diterapkan setiap kali ada perubahan. Sistem kontrol versi Confluence yang sederhana sangat menyederhanakan dokumentasi internal.

Menyimpulkan

Ada ratusan alat DevOps di pasaran, sehingga sulit untuk mengetahui mana yang akan digunakan dan kapan harus diterapkan. Ikuti panduan sederhana ini untuk memilih alat DevOps untuk pipeline CI/CD yang lengkap.

Pastikan untuk memilih alat dari kelima kategori:

  • pengembangan dan pembuatan alat
  • alat otomasi pengujian
  • alat penyebaran
  • Alat waktu proses
  • alat kolaborasi.

Rekomendasi utama: Otomatiskan semuanya!

Terima kasih Zach Shapiro!

Sumber: www.habr.com

Tambah komentar