Portal lingkungan pengujian, atau Simpan devops kami



Beberapa tahun yang lalu, kami merasakan semacam mimpi yang tak nyata. Semua orang di sekitar pergi ke cloud untuk pengujian (lebih mudah untuk memperluas dan menciutkan lingkungan pengujian), dan kami mencoba mencari tahu alat apa yang harus dikirim dari kotak. Untuk melakukan ini, kami, bersama dengan pelanggan, menemukan cara kerja proses devops. Dan ternyata hanya sedikit perusahaan di Rusia yang kompeten menggunakan otomatisasi.

Saya akan segera menjelaskan bahwa sebagian besar kami berbicara dengan mereka yang terlibat dalam pengembangan hingga 150-200 orang di perusahaan, atau dengan industri di mana TI secara tradisional sulit. Perusahaan yang lebih besar biasanya memiliki proses dan cloud sendiri, dan mereka mendatangi kami untuk penyebaran cadangan.

Produksi biasanya mapan. Ada siklus, rencana rilis, ada tujuan, kode masuk ke tujuan bersama dengan pengembang.

Pengujian dan QA juga paling sering disalahgunakan.

Dan di antara mereka ada jurang. Dan DevOps berusaha mengisinya. Superman ini harus mengambil rilis (dan idealnya merakitnya di Jenkins atau yang serupa), membuat mobil, menyebarkan segala sesuatu di sana, memeriksa pekerjaan, mungkin menghabiskan beberapa pretest dan memberikannya kepada QA.

Apa masalahnya?


Ketika suatu produk adalah jenis kecil aplikasi web, maka tidak ada masalah. Secara langsung, pengembang atau penguji mengambil basis data dari cadangan, terhubung ke rilis terbaru dan berjalan terus.

Tetapi ketika produk tumbuh sedikit, keruntuhan produksi mulai terjadi.

Devops mendapat rilis, tetapi ia mengambilnya dan tidak berniat melakukannya. Lalu ia mulai mencari yang ekstrim dan memilah-milah para pengembang. Rilis dapat dikumpulkan selama beberapa jam di malam hari, dan pengembang biasanya duduk di kantor pada siang hari.

Hampir semuanya dilakukan dengan tangan. Artinya, ops sedang duduk dan melihat progress bar majelis. Karena di mana saja bisa salah. Mereka yang lebih energik mengikat semua ini dengan skrip mereka sendiri, dan kadang-kadang ternyata sangat indah dan efisien. Tetapi jauh lebih sering kita melihat bahwa rencana pengiriman persalinan dilakukan dalam langkah-langkah, orang yang terpisah bertanggung jawab untuk setiap langkah, dan lebih mudah baginya untuk mengulangi prosedur dua puluh kali dengan tangannya, karena jika tidak ternyata tidak berhasil.

Pada saat yang sama, seseorang harus bertanggung jawab atas proses secara keseluruhan, dan ini adalah faktor penghenti utama. Upaya menemukan orang seperti itu sering berakhir dengan kegagalan. Yaitu, dia bertanggung jawab untuk otomatisasi, dan dialah yang tertarik. Bertanggung jawab untuk setiap bagian dan kemudian mentransfer panah ke seseorang yang sedang dalam pengembangan, tentu saja, selalu lebih mudah.

Virtualisasi menambah lebih banyak aspek kekacauan. Lingkungan virtual selalu berantakan. Orang yang bertanggung jawab atas pengelompokan (server, rak), dia berorientasi buruk, kepada siapa yang termasuk, apakah perlu atau tidak. Adalah logis bahwa administrator sistem tidak perlu khawatir banyak tentang apa yang terjadi dengan pengembang. Tetapi para biarawan harus, tetapi perannya biasanya tidak menyiratkan pengetahuan semacam itu. Dan dia takut mematikan kelebihannya, karena dia belum mengerti apakah itu akan dibutuhkan atau belum.

Maka perlu untuk mengeluarkan akun internal untuk penyelesaian timbal balik departemen. Seseorang mempertimbangkan waktu aktif, seseorang mempertimbangkan penggunaan prosesor, kemudian mereka berbagi secara adil atau dalam proporsi tertentu biaya seperti listrik dan pekerjaan administrator.

Tanpa diduga, tetapi tidak ada produk jadi


Tampaknya seluruh konveyor ini harus ditutupi dengan beberapa jenis produk. Ada banyak solusi bagus. Ansible yang sama menyebar dengan sempurna, tetapi tidak tahu cara mengarahkan mesin virtual. Dan hypervisor bisa. Ada semua alat untuk scripting, Anda dapat menghubungkan modul ... Anda hanya perlu mengambil dan mengumpulkan dari rantai perangkat lunak ini, kan?

Tidak dengan cara ini. Bank dan perusahaan milik negara datang dengan keinginan untuk menguji di cloud. Setiap penjaga keamanan yang baik cenderung paranoia, seringkali dengan alasan yang bagus. Untuk Bank IB, setiap instalasi baru adalah faktor yang sangat menjengkelkan. Saya tahu satu kasus ketika ops menyeret Jenkins dan Terraform ke dalam infrastruktur, mengerahkan bash di belakangnya, dan kemudian DBMS yang memegang semuanya. Ternyata menjadi konveyor semi-otomatis yang bagus, yang dapat diselesaikan hingga penyebaran sepenuhnya otonom. Hanya untuk keamanan informasi itu adalah bencana.

Mereka ingin semuanya menjadi satu. Dan untuk mengelola mesin virtual (dan berbagai vendor, termasuk Openstack). Pelanggan pada satu aplikasi dapat memiliki Vmvara dan Hyper-in, dan sesuatu yang lama dan mengerikan untuk mendukung FreeBSD atau OS / 2.

Kami membutuhkan sepeda kami


Secara umum, kami menulis platform kami. Di bawah tenda - Mungkin, di luar kotak - integrasi dengan Jenkins. Anda dapat menulis skrip Anda sendiri untuk Ansible. Anda dapat melakukan segalanya mulai dari koleksi subnet hingga manajemen rilis.



Portal hidup dalam paradigma lingkungan pengujian. Inilah esensi utamanya. Satu lingkungan pengujian = satu subnet. Plus, jika benar-benar buruk - ada integrasi dengan RPA jika tidak ada API, dan Anda memerlukan robot untuk meniru tindakan pengguna dan mengklik tombol di antarmuka. Ada penagihan, uptime dan pemanfaatan dianggap baik dari aplikasi ke aplikasi: sampai permintaan penghancuran ditulis, uang akan menetes.

Ini adalah tampilannya. Menciptakan lingkungan menggunakan templat:



Menambahkan mesin virtual:



Scripting:



Ternyata sedikit kemudian, keluhan "Saya tidak ingin berjalan di 50 sistem" terdengar dari semua sisi. Kami merasakan sakit yang penting. Setiap pelanggan besar dengan pengujian menginginkan sesuatu yang serupa, tetapi untuk beberapa alasan tidak menyelesaikannya atau menyelesaikannya secara organisasi dengan skrip orang. Masalahnya sangat berbeda, mulai dari komputer virtual tanpa nama (mereka menghapusnya, dan kemudian seseorang ingat bahwa itu diperlukan) dan berakhir dengan fakta bahwa tidak ada yang mau bertanggung jawab atas skrip yang bergulir. Skrip roll-up sulit untuk ditulis, peraturan juga menderita. Di suatu tempat dalam siklus harus ada penganoniman data, dan kelihatannya seperti "Suatu saat di awal tahun kami membuat database anonim", dan perangkat lunak berubah enam kali, data diperbarui.

Secara umum, jika sesuatu yang serupa tiba-tiba menyakitimu, maka datang saja untuk menonton. Akses demo tersedia di Technoserv Cloud .

All Articles