Alat DevOps Perlu Dipelajari Semua Orang pada 2020

Mula menggunakan alat DevOps terbaik hari ini!

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Revolusi DevOps akhirnya telah mengambil alih dunia dan alat DevOps telah menjadi sangat popular. Mengikut perkhidmatan Google Trends, bilangan permintaan untuk "alat DevOps" sentiasa berkembang dan aliran ini berterusan.

Metodologi DevOps merangkumi keseluruhan kitaran hayat pembangunan perisian, jadi profesional boleh memilih daripada pelbagai alat. Tetapi, seperti yang anda ketahui, tiada alat boleh menjadi alat universal untuk semua orang. Walau bagaimanapun, sesetengah penyelesaian menawarkan pelbagai fungsi yang boleh mengendalikan hampir semua tugas.

Mari bahagikan alat DevOps ke dalam kategori dan bandingkannya dengan analog:

  • pembangunan dan membina alatan
  • alat automasi ujian
  • alat untuk mengatur penempatan
  • Alat masa jalan
  • alat kerjasama.

Pelaksanaan yang berjaya dan bernas Pengamal DevOps termasuk instrumen daripada semua lima kumpulan yang disenaraikan di atas. Analisis set alat semasa dalam projek anda supaya tidak terlepas elemen penting dalam saluran paip CI/CD.

Alat Pembangunan dan Bina

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Ini adalah asas timbunan saluran paip CI/CD. Semuanya bermula di sini! Alat terbaik dalam kategori ini boleh mengurus berbilang aliran acara dan disepadukan dengan mudah dengan produk lain.

Pada peringkat kitaran hayat pembangunan ini, terdapat tiga kumpulan alat:

  • sistem kawalan versi (SCM)
  • integrasi berterusan (CI)
  • Pengurusan Data

GIT mempunyai rekod prestasi yang positif pada tahun 2020, jadi alat SCM anda sepatutnya mempunyai sokongan yang lancar untuk GIT. Untuk CI, prasyarat ialah keupayaan untuk melaksanakan dan menjalankan binaan dalam persekitaran kontena terpencil. Apabila ia berkaitan dengan pengurusan data, ia memerlukan keupayaan untuk membuat perubahan pada skema pangkalan data dan mengekalkan pangkalan data mengikut versi aplikasi.

Alat SCM + CI #1

Pemenang: GitLab dan GitLab-CI

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Alat terbaik kitaran DevOps 2020 adalah GitLab, dan ia pasti akan terus menerajui inovasi dalam masa terdekat.

Fungsi utama GitLab adalah untuk menyediakan pengurusan repositori Git yang selesa. Antara muka web adalah intuitif dan mudah digunakan. GitLab menyediakan semua yang anda perlukan dalam versi percuma dan datang sebagai SaaS dan on-prem (menggunakan sumber anda sendiri untuk mengehoskan perisian).

Tiada alat SCM lain telah menggunakan penyepaduan berterusan (CI) secara langsung pada repositori anda dan GitLab telah melakukan ini untuk masa yang lama. Untuk menggunakan GitLab-CI, anda mesti menambah fail .gitlab-ci.yml pada akar kod sumber anda dan sebarang perubahan pada projek akan mencetuskan tindakan berdasarkan apa yang anda nyatakan. GitLab dan GitLab-CI layak diiktiraf sebagai peneraju dalam bidang penyepaduan berterusan (CI-as-code).

Faedah Utama

  • Kebolehpercayaan - Produk telah berada di pasaran sejak 2013; stabil; disokong dengan baik.
  • Sumber Terbuka - Versi percuma GitLab tidak mengehadkan fungsi teras yang diperlukan oleh pasukan pembangunan. Pakej perkhidmatan berbayar menyediakan ciri berguna tambahan untuk syarikat dengan saiz dan keperluan yang berbeza-beza.
  • CI tertanam - Tiada alat lain di pasaran yang telah membina integrasi berterusan terus ke SCM seperti GitLab-CI. Menggunakan Docker memastikan binaan terpencil tanpa kerumitan, dan laporan terbina dalam memudahkan penyahpepijatan. Kami tidak memerlukan penyepaduan kompleks dan pengurusan berbilang alatan pada masa yang sama.
  • Integrasi Tanpa Had - GitLab menyediakan penyepaduan mudah semua alat DevOps yang anda perlukan. Ini memastikan bahawa pasukan pembangunan dan penyelenggaraan mempunyai satu sumber maklumat tentang aplikasi mereka dalam mana-mana persekitaran.

pesaing

Mengambil bahagian dalam pertempuran, tetapi tidak menang

Terdapat alat popular lain dalam kategori ini, tetapi ia tidak sebaik GitLab. Dan itulah sebabnya:

GitHub β€” Ini adalah sistem kawalan versi SaaS yang sangat baik untuk syarikat kecil dan peringkat awal pembangunan. Bagi syarikat besar yang perlu menyimpan alamat IP pada rangkaian mereka sendiri, satu-satunya penyelesaian daripada GitHub ialah mesin maya .OVA tanpa sokongan untuk sistem ketersediaan tinggi. Ini menyukarkan penyelenggaraan di premis, selain itu, .OVA hanya sesuai untuk perniagaan bersaiz sederhana, jika tidak pelayan hanya akan ranap di bawah beban yang lebih besar. Kekurangan Tindakan GitHub (sehingga baru-baru ini dan belum dalam versi on-prem) atau CI-as-code bermakna anda perlu memilih alat CI yang berasingan dan kemudian mengurus penyepaduan itu. Akhirnya, GitHub jauh lebih mahal daripada mana-mana versi GitLab.

Jenkins β€” Walaupun Jenkins dianggap sebagai standard antara alat penyepaduan berterusan secara lalai, ia sentiasa kekurangan keupayaan kawalan versi. Ternyata anda menggunakan Jenkins ditambah beberapa jenis alat SCM. Terlalu sukar apabila GitLab boleh melakukan kedua-duanya. Reka bentuk UX biasa-biasa sahaja tidak sesuai untuk aplikasi web moden dan meninggalkan banyak perkara yang diingini.

BitBucket/Buluh β€” Saya mesti mengenalinya sebagai pecundang automatik: mengapa dua alat apabila GitLab melakukan segala-galanya secara bebas. BitBucket Cloud menyokong fungsi GitLab-CI / GitHub Action, tetapi tiada syarikat yang lebih besar daripada permulaan boleh melaksanakannya dengan mudah. Pelayan BitBucket di premis tidak pun menyokong saluran paip BitBucket!

#1 Alat Pengurusan Data

Pemenang: FlywayDB

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Dalam pembangunan aplikasi web, automasi pangkalan data biasanya tidak diberi kepentingan. Idea untuk menggunakan perubahan skema pangkalan data untuk versi baharu aplikasi datang lewat. Perubahan skema selalunya menyebabkan lajur atau jadual ditambah dan dinamakan semula. Jika versi aplikasi tidak sepadan dengan versi skema, aplikasi mungkin ranap. Selain itu, mengurus perubahan pangkalan data apabila mengemas kini aplikasi boleh menjadi mencabar kerana terdapat dua sistem yang berbeza. FlyWayDB menyelesaikan semua masalah ini.

Faedah Utama

  • Versi pangkalan data - Flyway membolehkan anda membuat versi pangkalan data, menjejaki migrasi pangkalan data dan dengan mudah memindahkan atau mengembalikan perubahan skema tanpa alat tambahan untuk ini.
  • Binari atau Terbenam - Kita boleh memilih untuk menjalankan Flyway sebagai sebahagian daripada aplikasi atau sebagai boleh laku binari. Flyway menyemak keserasian versi pada permulaan dan memulakan migrasi yang sesuai, memastikan pangkalan data dan versi aplikasi dalam penyegerakan. Dengan menjalankan perintah ad-hoc baris cmd, kami menyediakan fleksibiliti kepada pangkalan data sedia ada tanpa membina semula keseluruhan aplikasi.

pesaing

Mengambil bahagian dalam pertempuran, tetapi tidak menang

Tidak banyak alat di kawasan ini. Mari lihat beberapa daripada mereka:

LiquiBase β€” Liquibase menyerupai FlywayDB. Saya ingin menyediakannya di atas Flyway jika saya mempunyai seseorang dalam pasukan saya yang lebih berpengalaman dengan Liquibase.

berkerumun - Hanya boleh berfungsi untuk aplikasi kontena. Untuk berjaya menjalankan pangkalan data kontena, semuanya mesti dirancang dengan sempurna. Saya mengesyorkan menggunakan RDS (Perkhidmatan Pangkalan Data Perhubungan) untuk pangkalan data dan tidak menasihati menyimpan maklumat penting dalam bekas.

Alat Automasi Ujian

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Mari mulakan perbincangan kita tentang alat automasi ujian dengan mengklasifikasikannya berdasarkan piramid ujian.

Piramid ujian (ujian) mempunyai 4 peringkat:

  • Ujian Unit - Ini adalah asas kepada keseluruhan proses ujian automatik. Perlu ada lebih banyak ujian unit berbanding jenis ujian lain. Pembangun menulis dan menjalankan ujian unit untuk memastikan bahawa sebahagian daripada aplikasi (dikenali sebagai "unit") mematuhi reka bentuknya dan berkelakuan seperti yang diharapkan.
  • Ujian Komponen βˆ’ Tujuan utama ujian komponen adalah untuk mengesahkan kelakuan input/output objek ujian. Kita mesti memastikan bahawa kefungsian objek ujian dilaksanakan dengan betul mengikut spesifikasi.
  • Ujian integrasi - Satu jenis ujian di mana modul perisian individu digabungkan dan diuji sebagai satu kumpulan.
  • Ujian Hujung-ke-Hujung - Langkah ini adalah jelas. Kami memantau keseluruhan aplikasi dan memastikan ia berfungsi seperti yang dirancang.

Memandangkan ujian unit dan ujian komponen hanya dilakukan oleh pembangun dan selalunya khusus bahasa pengaturcaraan, kami tidak akan menilai alatan ini untuk domain DevOps.

Alat Pengujian Penyepaduan #1

Pemenang: Timun

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Timun menggabungkan spesifikasi dan dokumentasi ujian ke dalam satu dokumen hidup. Spesifikasi sentiasa terkini kerana ia diuji secara automatik oleh Timun. Jika anda ingin membina rangka kerja ujian automatik dari awal dan memodelkan tingkah laku pengguna dalam aplikasi web, maka Selenium WebDriver dengan Java dan Cucumber BDD ialah cara terbaik untuk mempelajari dan melaksanakan Cucumber dalam projek.

Faedah Utama

  • Pendekatan BDD (Pembangunan Didorong Tingkah Laku - "pembangunan melalui tingkah laku" berbanding pendekatan "pembangunan dipacu ujian") - Timun direka untuk ujian BDD, ia pada asalnya dicipta untuk tugas ini.
  • Dokumentasi Hidup - Dokumentasi sentiasa menyakitkan! Memandangkan ujian anda ditulis sebagai kod, Cucumber menguji dokumentasi yang dijana secara automatik untuk memastikan ujian dan dokumentasi disegerakkan.
  • Sokongan - Kami boleh memilih daripada banyak alat, tetapi Timun mempunyai sumber kewangan yang diperlukan dan sistem sokongan yang teratur untuk membantu pengguna dalam sebarang situasi yang sukar.

pesaing

Mengambil bahagian dalam pertempuran, tetapi tidak menang

Antara rangka kerja dan alat khusus teknologi lain, hanya Timun boleh dianggap sebagai penyelesaian universal.

Alat Pengujian Hujung-ke-Hujung

Semasa menjalankan ujian hujung ke hujung, anda perlu memberi tumpuan kepada dua perkara utama:

  • ujian berfungsi
  • Ujian Tekanan.

Dalam ujian berfungsi, kami menyemak sama ada semua yang kami mahukan benar-benar berlaku. Sebagai contoh, apabila saya mengklik pada elemen tertentu SPA saya (permohonan halaman tunggal), isikan borang dan pilih "Serah", data muncul dalam pangkalan data dan mesej "Berjaya!" muncul pada skrin.

Ia juga penting bagi kami untuk menyemak bahawa sebilangan pengguna yang menjalankan senario yang sama boleh diproses tanpa ralat.

Ketiadaan 2 jenis ujian ini akan menjadi kelemahan yang ketara dalam saluran paip CI/CD anda.

#1 alat ujian hujung ke hujung. Ujian fungsional

Pemenang: SoapUI Pro

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
SoapUI telah berada dalam ruang ujian API untuk masa yang lama sejak perkhidmatan web berasaskan SOAP adalah standard. Walaupun kami tidak lagi mencipta perkhidmatan SOAP baharu dan nama alat itu tidak berubah, itu tidak bermakna ia tidak berkembang. SoapUI menyediakan rangka kerja yang sangat baik untuk mencipta ujian fungsi bahagian belakang automatik. Ujian boleh digabungkan dengan mudah dengan alat penyepaduan berterusan dan digunakan sebagai sebahagian daripada saluran paip CI/CD.

Faedah Utama

  • Dokumentasi terperinci - SoapUI telah berada di pasaran untuk masa yang agak lama, jadi terdapat banyak sumber dalam talian yang boleh membantu anda memahami cara menyediakan ujian.
  • Kemudahan Penggunaan - Walaupun alat ini menyokong berbilang protokol untuk menguji API, kehadiran SoapUI antara muka biasa untuk berbilang perkhidmatan menjadikan ujian penulisan lebih mudah.

pesaing

Mengambil bahagian dalam pertempuran, tetapi tidak menang

Selenium adalah satu lagi instrumen yang hebat dalam kumpulan ini. Saya mengesyorkan menggunakannya jika anda membina dan menjalankan aplikasi berasaskan Java. Walau bagaimanapun, jika anda membina aplikasi web penuh dengan pelbagai teknologi, ia boleh menjadi sukar untuk komponen bukan Java.

#1 alat ujian hujung ke hujung. Ujian Tekanan

Pemenang: LoadRunner

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Penjelasan: Apabila tiba masanya untuk memuatkan ujian setiap elemen aplikasi anda, hanya LoadRunner boleh menyelesaikan tugas itu. Ya, ia mahal dan sukar pada mulanya, tetapi LoadRunner adalah satu-satunya alat yang memberi saya, sebagai arkitek teknikal, keyakinan penuh bahawa kod baharu akan berfungsi dalam keadaan beban yang melampau. Selain itu, saya rasa sudah tiba masanya untuk LoadRunner diambil alih oleh pasukan pembangunan dan bukannya pasukan ujian.

Faedah Utama

  • Dokumentasi yang luas - LoadRunner telah berada di pasaran untuk sekian lama, jadi terdapat banyak sumber dalam talian untuk membantu anda memahami cara menyediakan ujian beban.
  • Sokongan protokol - Load Runner menyokong segala-galanya daripada ODBC hingga AJAX, HTTPS dan mana-mana protokol bukan remeh lain yang mungkin digunakan oleh aplikasi anda. Kami cuba untuk tidak menggunakan berbilang alat untuk ujian beban, kerana ini hanya merumitkan proses.

pesaing

Mengambil bahagian dalam pertempuran, tetapi tidak menang

Sekali lagi, tidak banyak alat universal di kawasan ini, jadi penyelesaian terbaik adalah yang akan berfungsi dalam mana-mana persekitaran dengan sebarang teknologi.

Alat penyebaran

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Alat penyebaran mungkin merupakan aspek pembangunan yang paling kurang difahami. Bagi pasukan operasi tanpa pemahaman yang mendalam tentang kod dan kefungsian aplikasi, adalah sukar untuk menggunakan alat tersebut. Bagi pembangun, pengurusan penempatan ialah tanggungjawab baharu, jadi mereka belum mempunyai pengalaman yang mencukupi bekerja dengan alatan tersebut.

Pertama sekali, mari bahagikan semua alatan penggunaan kepada tiga subkategori:

  • pengurusan artifak
  • pengurusan konfigurasi
  • mengerahkan.

#1 Alat Pengurusan Artifak

Pemenang: Nexus

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Repositori artifak Nexus menyokong hampir setiap teknologi utama, dari Java ke NPM ke Docker. Kita boleh menggunakan alat ini untuk menyimpan semua artifak yang kita gunakan. Memproksi pengurus pakej jauh juga mempercepatkan proses binaan CI dengan ketara, menjadikan pakej lebih mudah untuk dibina. Kelebihan lain ialah keupayaan untuk mendapatkan paparan lengkap semua pakej yang digunakan dalam beberapa projek perisian, menyekat pakej sumber terbuka yang tidak selamat (mereka boleh bertindak sebagai vektor serangan).

Faedah Utama

  • Sokongan teknikal - Produk yang boleh dipercayai; disokong dengan baik.
  • Sumber Terbuka - Versi percuma tidak mengehadkan fungsi teras yang diperlukan oleh pasukan pembangunan.

#1 Alat Pengurusan Konfigurasi

Pemenang: Ansible

Ansible adalah seorang pemimpin kerana satu sebab mudah: tidak bernegara. Sebelum ini, alatan serupa memfokuskan pada pengurusan keadaan konfigurasi. Apabila dilancarkan, alat sedemikian, setelah menerima konfigurasi yang diingini, akan cuba membetulkan konfigurasi aplikasi semasa. Dan dengan pendekatan baharu, hanya komponen tanpa kewarganegaraan yang hadir. Versi baharu kod ialah artifak yang digunakan untuk menggantikan yang sedia ada. Ini boleh dianggap sejenis persekitaran jangka pendek yang fana.

Faedah Utama

  • Stateless - Playbook dilancarkan daripada mesin penempatan dan dilaksanakan pada pelayan sasaran. Saya tidak perlu risau tentang keadaan objek jauh dengan menggunakan alat seperti Packer untuk mencipta objek yang boleh digunakan.
  • Sumber Terbuka - Seperti CentOS, Ansible juga disokong oleh RedHat. Ia membantu mengekalkan komuniti dan menyediakan modul berkualiti tinggi dan mudah digunakan.
  • Menguji dengan Molekul (rangka kerja Ansible) - Memandangkan pengurusan konfigurasi adalah kod, seperti segala-galanya, ujian adalah penting. Rangka kerja ujian peranan Ansible Molecule berfungsi dengan sempurna, memastikan konfigurasi mempunyai kualiti yang sama dan mengikut saluran paip CI/CD yang sama seperti kod aplikasi.
  • YAML - Berbanding dengan alatan lain, YAML lebih mudah difahami. Memandangkan pengurusan konfigurasi lazimnya merupakan cabaran baharu bagi mereka yang melaksanakan amalan DevOps, kesederhanaan adalah kad trufnya.

pesaing

Mengambil bahagian dalam pertempuran, tetapi tidak menang

OpsCode Chef β€” Saya memulakan kerjaya DevOps saya sebagai pembangun buku masakan. Ruby dan Chef sudah tentu sangat saya sayangi, tetapi mereka tidak menyelesaikan masalah aplikasi asli awan tanpa negara moden. OpsCode Chef ialah alat yang hebat untuk aplikasi yang lebih tradisional, tetapi dalam artikel ini kami memfokuskan pada masa hadapan.

Boneka β€” Boneka tidak pernah mempunyai ramai peminat, terutamanya berbanding dengan Chef dan Ansible. Ia bagus untuk memperuntukkan dan bekerja dengan perkakasan, tetapi ia tidak mempunyai sokongan pengurusan konfigurasi moden untuk aplikasi web.

Alat penyebaran #1

Pemenang: Terraform

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Terraform menyelesaikan masalah menggambarkan infrastruktur anda sebagai kod, daripada komponen rangkaian kepada imej pelayan penuh. Produk ini telah berjalan jauh sejak dikeluarkan awalnya, dengan begitu banyak pemalam yang dicipta dan komuniti yang begitu kuat dibina sehingga anda pasti akan mendapat bantuan dalam sebarang senario penggunaan. Keupayaan untuk menyokong sebarang jenis persekitaran (di premis, dalam awan, atau di tempat lain) tiada tandingannya. Akhir sekali, versi terbaharu menyediakan banyak fungsi dan kelas logik yang sama dalam HCL seperti mana-mana bahasa pengaturcaraan tradisional lain, menjadikan Terraform mudah untuk difahami oleh pembangun dengan cepat dan mudah.

Faedah Utama

  • Agnostik persekitaran - Terraform menggunakan fungsi yang bertindak sebagai antara muka antara kod Terraform anda, semua API dan logik dalaman untuk berkomunikasi dengan penyedia infrastruktur. Ini bermakna saya akan menguasai hanya satu alat dan kemudian boleh bekerja di mana-mana sahaja.
  • Sumber Terbuka - Sukar untuk mengalahkan alat percuma! Sokongan komuniti di peringkat tertinggi.

pesaing

Mengambil bahagian dalam pertempuran, tetapi tidak menang

Pembentukan Awan AWS β€” Walaupun anda hanya bekerja dalam persekitaran awan AWS, kerja anda yang seterusnya mungkin menggunakan alat yang berbeza. Menumpukan semua masa dan tenaga anda kepada hanya satu platform adalah keputusan yang rabun. Selain itu, banyak perkhidmatan AWS baharu selalunya tersedia sebagai modul Terraform sebelum ia tersedia dalam CloudFormation.

Alat masa jalan

Alat DevOps Perlu Dipelajari Semua Orang pada 2020

Matlamat utama mana-mana projek pembangunan adalah untuk melancarkan aplikasi ke dalam pengeluaran. Dalam dunia DevOps, kami ingin mengetahui sepenuhnya semua kemungkinan masalah dengan persekitaran kami, dan kami juga mahu meminimumkan campur tangan manual. Memilih set alat masa jalan yang betul adalah penting untuk mencapai nirvana pembangunan aplikasi.

Subkategori alat masa jalan:

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

X-tool-as-a-service #1

Pemenang: Amazon Web Services

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Amazon sentiasa menjadi peneraju dalam teknologi awan, tetapi ia tidak berhenti di situ: pelbagai perkhidmatan baharu untuk pembangun membuka mata. Bawa sebarang teknologi dan templat ke AWS dan ia akan dibina dan dijalankan. Kos alat ini agak berpatutan: bandingkan dengan memasang, mengurus dan menyelenggara peralatan di pusat data anda sendiri. Versi percuma membolehkan anda mencuba dan membuat keputusan yang betul sebelum membelanjakan wang.

Faedah Utama

  • Kelaziman - Jika anda mempunyai pengalaman membina aplikasi dalam AWS, anda boleh bekerja di mana-mana sahaja. Perniagaan menyukai AWS, dan syarikat pemula juga menghargai kosnya yang rendah.
  • Versi percuma adalah faktor yang benar-benar penting yang membezakan AWS daripada rakan sebayanya. Izinkan saya mencuba perkhidmatan tersebut dan melihat cara ia berfungsi sebelum saya membuat keputusan pembelian, saya tidak mahu membelanjakan beribu-ribu ringgit untuk sesuatu yang tidak perlu. Versi percuma sentiasa cukup untuk saya menguji sebarang konsep.

pesaing

Mengambil bahagian dalam pertempuran, tetapi tidak menang

Azure "Azure telah berjalan jauh sejak keluaran pertama, dan itu patut dipuji. Walau bagaimanapun, keinginan untuk menjadi berbeza telah membawa kepada nama pelik untuk perkhidmatan, yang sering merumitkan kerja. Apakah maksud "storan gumpalan"? Dan sementara kod .NET berprestasi lebih baik dalam ekosistem Microsoft, tidak mungkin anda akan menggunakan .NET sahaja untuk setiap komponen aplikasi anda.

Heroku β€” Saya tidak akan menjalankan apa-apa selain projek peribadi di Heroku kerana tahap kebolehpercayaan dan ketelusan yang rendah, jadi syarikat tidak seharusnya menggunakannya sebagai platform. Heroku bagus untuk menunjukkan sesuatu pada blog, tetapi untuk kegunaan praktikal - "Tidak, terima kasih!"

Alat Orkestrasi #1

Pemenang: anjakan terbuka

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Anda mungkin menggunakan Docker atau bekas lain dalam timbunan aplikasi anda. Aplikasi tanpa pelayan adalah hebat, tetapi ia mungkin tidak sesuai dengan setiap seni bina. Menjalankan bekas tanpa platform orkestra tidak akan berfungsi. Teras Kubernetes (K8s) tiada tandingan dari segi keselamatan dan perkakasan. OpenShift ialah satu-satunya platform berasaskan Kubernetes yang boleh mengumpul Source2Image, menyokong penggunaan automatik pada pod dan menyokong penjejakan dan pemantauan. OpenShift boleh dijalankan di hadapan, di awan, atau di hadapan dan di awan pada masa yang sama.

Faedah Utama

  • Keselamatan Terbina dalam - Menguruskan keselamatan K8s mungkin memerlukan ijazah lanjutan. Setiap butiran mesti difikirkan dengan teliti dan diambil kira! Mekanisme keselamatan yang dibina secara lalai dengan OpenShift mengurangkan beban pembangun dan menyediakan platform yang lebih selamat untuk aplikasi.
  • Penyelesaian semua-dalam-satu - Tidak seperti K8 asas, yang tidak termasuk alat pengimbangan beban secara lalai, OpenShift mempunyai semuanya. Saya boleh menggunakannya untuk mencipta dan mengehoskan bekas, menjalankan alatan CI/CD, mengurus proses luaran, mengurus kunci dan banyak lagi. Walaupun antara muka pengguna grafik masih jauh dari sempurna, pendekatan berasaskan API bermakna segala-galanya boleh diterangkan dalam skrip. Tidak seperti GUI lain untuk K8, OpenShift menjadikan pembelajaran asas Kubernetes lebih mudah. Anda tidak perlu mendapatkan ijazah pun!

pesaing

Mengambil bahagian dalam pertempuran, tetapi tidak menang

Kumpulan Docker β€” Docker Swarm cuba memudahkan K8 dengan menyingkirkan banyak perkara. Ia bagus untuk aplikasi kecil, tetapi untuk aplikasi perusahaan ia tidak berfungsi. Selain itu, penyelesaian seperti AWS ECS mengambil pendekatan yang serupa tetapi menjadikannya lebih mudah untuk bekerja dengan perkhidmatan lain yang saya juga boleh berinteraksi (Lambda, IAM, dll.).

Alat pemantauan #1

Pemenang: Peninggalan Baru

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Keluaran awal New Relic melakukan satu perkara dengan baik - pemantauan APM (Pemantauan Prestasi Aplikasi). Ia kini merupakan alat pemantauan berciri penuh yang membolehkan anda memantau pelayan, bekas, prestasi pangkalan data, pemantauan pengalaman pengguna akhir, dan sudah tentu, pemantauan prestasi aplikasi.

Faedah Utama

  • Kemudahan Penggunaan - Semasa saya bekerja sebagai jurutera sistem, saya menggunakan banyak alat pemantauan, tetapi saya tidak pernah menemui alat yang semudah dan mudah digunakan seperti New Relic. Ia adalah SaaS, jadi anda tidak perlu memasangnya sendiri.
  • Keterlihatan hujung ke hujung - Alat lain cuba memantau satu elemen khusus aplikasi anda. Contohnya, metrik penggunaan pemproses atau trafik rangkaian, tetapi semua ini mesti dipantau secara menyeluruh agar aplikasi berfungsi dengan betul. Peninggalan Baharu memberi anda keupayaan untuk menyatukan semua data anda untuk mendapatkan pandangan menyeluruh tentang perkara yang berlaku.

pesaing

Mengambil bahagian dalam pertempuran, tetapi tidak menang

Zabbix β€” Sistem pemantauan pertama dan kegemaran saya, tetapi ia kekal pada masa lalu kerana kekurangan pembangunan dalam teknologi awan dan dalam bidang pemantauan prestasi aplikasi APM. Zabbix masih melakukan pemantauan infrastruktur pelayan tradisional dengan baik, tetapi itu sahaja.

DataDog β€” Terlalu tertumpu pada proses mengurus persekitaran pengeluaran aplikasi, dan bukan pada kod itu sendiri. Dengan pasukan DevOps yang melibatkan pembangun, kami tidak perlu bergantung pada alatan yang sukar digunakan untuk memberikan sokongan yang terbaik.

Alat pembalakan #1

Pemenang: Splunk

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Sukar untuk bersaing dengan Splunk! Untuk masa yang lama dia kekal sebagai peneraju dalam pembalakan, terus melakukannya dengan lebih baik daripada orang lain. Dengan tawaran on-prem dan SaaS, anda boleh menggunakan Splunk di mana-mana sahaja. Kelemahan besar ialah harganya: Splunk masih mahal!

Faedah Utama

  • Pervasiveness - Perniagaan suka Splunk, dan syarikat mempunyai wang untuk membelinya.
  • Walaupun syarikat permulaan cuba untuk mendapatkan balik kos, banyak fungsi boleh diselesaikan terima kasih kepada analog sumber terbuka.
  • Kebolehselenggaraan - Ringkasnya, Splunk berfungsi dan melakukannya dengan baik. Ia datang dengan banyak tetapan lalai dan ciri sedia untuk digunakan. Tidak perlu membuang masa membaca dokumentasi dan cuba membuat Splunk bekerja atau menguraikan apa-apa.

pesaing

Mengambil bahagian dalam pertempuran, tetapi tidak menang

ELK Stack (ElasticSearch, LogStash dan Kibana) "Alat ini nampaknya menjadi kegemaran kerana anda tidak perlu menjual hati anda untuk menggunakannya." Walau bagaimanapun, apabila set log berkembang dan bilangan aplikasi di atas kapal meningkat, kerja menjadi lebih dan lebih sukar. Berbanding dengan Splunk, dengan ELK Stack, saya menghabiskan lebih banyak masa untuk menyediakan alatan sebelum membuat sebarang papan pemuka daripada yang pernah saya miliki sebelum ini.

Alat Kerjasama

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
DevOps terutamanya mengenai mengubah budaya dalam organisasi. Membeli sebarang alat tidak akan mengubah amalan semasa dalam sekelip mata, tetapi ia pastinya boleh menggalakkan kerjasama dan cara baharu berinteraksi.

Subkategori alatan kerjasama:

  • pengesanan tugas
  • ChatOps
  • dokumentasi.

#1 Alat Penjejakan Isu

Pemenang: Jira

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Jira mengekalkan kedudukan kepimpinannya, walaupun persaingan dalam bidang ini semakin meningkat. Fleksibiliti luar biasa Jira membolehkan pasukan pembangunan dan penyelenggaraan menguruskan kerja projek dan tugasan pecut. Piawaian terbina dalam menggunakan istilah Agile memudahkan untuk beralih daripada cara kerja tradisional kepada proses yang lebih cekap.

Faedah Utama

  • Populariti - Seperti banyak alat lain, Jira digunakan hampir di mana-mana. Pasukan kecil menggunakan versi yang lebih murah, lebih mudah diakses dan mendapatkan semua yang mereka perlukan, manakala syarikat yang lebih besar mampu membeli lesen yang lebih mahal.
  • Integrasi - Jira adalah perintis dalam bidangnya. Fakta ini dan perkembangan pesat produk membawa kepada fakta bahawa syarikat lain memilih Jira untuk mencipta integrasi mereka sendiri, sekali gus meningkatkan nilai alat tersebut. Kami boleh menyepadukan Jira dengan semua alatan yang disenaraikan dalam artikel ini di luar kotak dengan sedikit konfigurasi.

pesaing

Mengambil bahagian dalam pertempuran, tetapi tidak menang

Trello β€” Trello cepat mendapat populariti berkat alat Kanban percumanya. Walau bagaimanapun, sebaik sahaja memproses skala dan anda beralih daripada berpuluh-puluh tugas kepada beribu-ribu, Trello menjadi sukar untuk dinavigasi, mencari dan melaporkannya.

Pengesan penting β€” Saya adalah peminat besar alat ini semasa saya bekerja untuk permulaan. Walau bagaimanapun, Pivotal Tracker lebih tertumpu pada pengurusan produk dan bukannya tugas teknikal. Walaupun pengurusan produk di Jira adalah lebih kompleks sedikit, ia masih boleh dilaksanakan di sana tanpa menggunakan alat tambahan.

Alat ChatOps #1

Pemenang: MatterMost

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Penjelasan: Mungkin kejutan terbesar untuk anda dalam pilihan saya, dan itu berita baik! MatterMost mendapat populariti dengan mengambil yang terbaik daripada alatan sebelumnya tetapi meletakkannya di tempat awal. Ini sangat penting untuk syarikat: MatterMost membolehkan anda mengawal data anda dan juga membantu anda menyepadukannya dengan alatan yang dijalankan secara setempat. Kita tidak perlu lagi keluar dari firewall untuk menyemak sembang kerja.

Faedah Utama

  • Sumber Terbuka – Versi sumber terbuka MatterMost berfungsi hebat untuk kedua-dua pasukan sederhana dan besar. Tidak seperti pelan percuma Slack, yang memadamkan sejarah mesej anda, menjalankan pelayan anda sendiri bermakna anda menyimpan semua data anda.
  • Integrasi - Memandangkan API hampir 100% berdasarkan API Slack, hampir semua integrasi Slack boleh digunakan secara langsung dengan MatterMost.

pesaing

Mengambil bahagian dalam pertempuran, tetapi tidak menang

Slack β€” Slack memang hebat, tetapi mereka ini telah berkembang dengan pesat sehingga mereka mula mencari keuntungan. Fasa bayaran balik perniagaan semakin hampir, yang menghilangkan nilai utamanya: Slack menyediakan perkhidmatan secara percuma; Kelemahan paling penting versi percuma ialah pemadaman sejarah sembang.

Microsoft Pasukan β€” Cuba integrasikan produk Microsoft dengan sesuatu yang bukan milik Microsoft... Semoga berjaya! Itu sahaja yang saya ingin katakan tentang alat ini!

Alat Dokumentasi #1

Pemenang: Confluence

Alat DevOps Perlu Dipelajari Semua Orang pada 2020
Mencipta dan mengekalkan dokumentasi teknikal yang berkualiti ialah proses yang kompleks, tidak kira apa alat yang anda gunakan. Walaupun banyak alat dokumentasi SaaS telah datang ke pasaran baru-baru ini, saya akan mendapati sukar untuk menyumber luar storan dokumentasi teknikal tentang aplikasi kritikal misi kepada pihak ketiga. Adalah lebih baik untuk menyimpan data dan dokumen di premis, dan ini adalah cara Confluence menyelesaikannya.

Faedah Utama

  • Mudah dikendalikan - Kebanyakan alatan yang berdiri sendiri boleh menjadi agak rumit untuk disediakan dan dikendalikan serta memerlukan sedikit pengetahuan untuk diselenggara. Confluence Server berfungsi hebat di luar kotak untuk 10 atau 10,000 pengguna.
  • Pemalam - Kudos to Confluence kerana mempunyai navigasi yang cantik dan mudah digunakan di luar kotak, dan keupayaan untuk menambah pemalam untuk hampir semua perkara membuka kunci potensi seperti Wiki.

pesaing

Mengambil bahagian dalam pertempuran, tetapi tidak menang

Baca dokumen β€” Sejuk untuk sumber terbuka, tetapi jangan fikir untuk menyimpan pengetahuan kritikal di sini.

Penurunan harga - Hebat untuk mendokumentasikan kod, tetapi sukar untuk menyiarkan seni bina, proses atau jenis dokumentasi lain kerana pemformatan khusus MarkDown.

Jekyll β€” Semasa mendokumentasikan pengetahuan teknikal, saya tidak mahu mencipta tapak statik baharu yang akan digunakan setiap kali terdapat perubahan. Sistem kawalan versi ringkas Confluence sangat memudahkan dokumentasi dalaman.

Meringkaskannya

Terdapat beratus-ratus alat DevOps di pasaran, menjadikannya sukar untuk mengetahui yang mana untuk digunakan dan bila ia harus dilaksanakan. Ikuti panduan mudah ini untuk memilih alat DevOps untuk saluran paip CI/CD yang lengkap.

Pastikan anda memilih alatan daripada kesemua lima kategori:

  • pembangunan dan membina alatan
  • alat automasi ujian
  • alat penyebaran
  • Alat masa jalan
  • alat kerjasama.

Cadangan utama: Automatikkan segala-galanya!

Terima kasih Zach Shapiro!

Sumber: www.habr.com

Tambah komen