Penempatan cepat atau cara menggunakan front-end dalam 15 menit

Untuk waktu yang sangat lama kami memiliki pertanyaan: seberapa mudah dan cepat untuk menggunakan proyek front-end?

Kami memikirkan alat seperti Jenkins. Banyak yang telah mengonfigurasinya mengetahui bahwa dibutuhkan banyak waktu untuk mengonfigurasi dan, yang lebih penting, dibutuhkan banyak sumber daya sistem. Menaikkannya di server berarti mengalokasikan satu setengah gigabytes memori. Sangat menyenangkan ketika Anda memiliki 500 megabyte untuk semuanya, misalnya.

Alternatifnya adalah Mina. Ini adalah solusi hebat, dan kami menggunakannya dalam proyek-proyek Ruby. Tetapi bagaimana jika Anda hanya memiliki front-end? Pasang Ruby dan buat bundel? Tidak, ini terlalu rumit. Mina, tentu saja, memiliki fungsionalitas yang hebat, tetapi kami ingin melakukan ini di NodeJS tanpa gerakan yang tidak perlu.

Pada akhirnya, kami menulis skrip Bash, tetapi itu mengganggu kami. Dan kami datang dengan ide untuk menulis layanan kecil kami sendiri untuk menyebarkan aplikasi front-end, yang akan menjadi:

  • paket npm
  • memiliki konfigurasi kecil dan sederhana
  • butuh 10 menit untuk mengkonfigurasinya dan 5 menit untuk digunakan
  • memiliki sistem rilis (jika, bagaimanapun, ada yang tidak beres dan seseorang mengatakan "itu
rusak, maka Anda dapat dengan aman dan cepat kembali ke rilis sebelumnya)

Dan kami membuat Runy - alat yang praktis dan nyaman untuk menggelar front-end.

Yang Anda butuhkan untuk mengonfigurasinya dan penyebaran pertama setelah menginstal paket adalah tiga perintah:
init - buat konfigurasi dan masukkan data Anda ke dalamnya
setup - buat struktur proyek
deploy - deploy proyek Anda

Dan itu saja!

Modul ini telah menyederhanakan hidup kita! Sekarang penyebaran dilakukan dalam satu tim. Cepat dan mudah. Ketika pengembang baru mendatangi kami, Anda dapat memberi mereka akses ke server dev / stage sehingga orang-orang itu dapat menyebarkan diri mereka sendiri. Pengembang junior juga akan merasakan manfaatnya, mereka tidak memerlukan ambang masuk untuk digunakan, dan di masa depan mereka dapat mengetahui modul dan memperoleh pengetahuan baru.

Sedikit tentang bagian teknis (manual lebih rinci ada di github ). Runy saat ini memiliki perintah berikut: init, setup, deploy, unlock, rollback.

Init


Membuat file config di lokasi pemanggilan perintah. Anda harus memasukkan data Anda ke dalamnya. Seperti yang Anda lihat, kami menggunakan koneksi ssh-agent, jadi tidak ada kata sandi dalam konfigurasi.

// runy.js module.exports = { host: '0.0.0.0', //   username: 'username', //       port: 22, //   remotePath: '/your/project/path', //      git: 'link-to-your-git-repository', //  ( ssh)    agent: process.env.SSH_AUTH_SOCK, //   commands: [ //      'npm install', 'npm run build', ], }; 

Pengaturan


Pada jalur yang ditentukan dalam konfigurasi, itu menciptakan folder rilis (ini menyimpan rilis di angka 1, 2, 3, dll.) Dan file .current.release (nomor rilis saat ini disimpan di dalamnya).

Sebarkan


Tim ini memiliki beberapa perlindungan, pada saat yang sama hanya satu orang yang dapat melakukan penyebaran

Tim melakukan hal berikut. Membuat folder sementara, menginstal proyek, mengeksekusi daftar perintah Anda dari file konfigurasi (perintah) untuk menarik dependensi dan membangun aplikasi, membuat folder rilis baru, mentransfer proyek yang baru dibangun di sana, memeriksa jumlah rilis dan menghapus yang lama (3 rilis sekarang disimpan), membuat tautan simbolis ke rilis saat ini (rilis saat ini akan selalu tersedia di jalur Anda-remote-path / saat ini), memperbarui file dengan digit rilis, membersihkan folder.

Buka kunci


Menghapus file proteksi yang dibuat saat perintah penyebaran dijalankan. Secara umum, file dihapus secara otomatis dan bahkan ketika memproses kesalahan, tetapi untuk semua kesempatan perintah ini ada.

Kembalikan


Mengembalikan tautan simbolik ke rilis sebelumnya dan menghapus yang sekarang.

PS Kami masih memiliki ide untuk mengembangkan alat ini, Anda juga dapat berpartisipasi dalam pengembangan proyek dengan membuat / melakukan tugas di sini .

Biarkan penyebaran setiap pengembang menjadi lebih mudah dan lebih cepat.

Source: https://habr.com/ru/post/id413495/


All Articles