Perusahaan tempat saya bekerja saat ini belum menerapkan pengiriman berkelanjutan. Kami masih menyebarkan proyek secara manual ke server, file per file. Yang merupakan praktik terbaik: untuk secara manual menggunakan satu artefak proyek untuk setiap penyebaran atau terus melakukan penyebaran file demi file?
deployment
server
devops
Jake Muller
sumber
sumber
Jawaban:
Tidak juga.
Praktik Terbaik adalah untuk mengotomatiskan penyebaran Anda, sepenuhnya dan eksklusif. Itu berarti tidak ada yang bisa memasukkan apa pun ke server secara manual.
"Untuk meringkas ringkasan ringkasan: Orang adalah Masalah." (Douglas Adams)
Orang-orang membuat kesalahan. Jika salah satu file yang Anda lupa salin adalah "pustaka" bersama yang telah diubah secara luas, Anda dapat menghancurkan seluruh situs Produksi.
sumber
Langkah-langkah manual membutuhkan banyak upaya dan berisiko: Anda mungkin lupa file yang diperlukan. Mungkin tidak semua orang di tim Anda tahu file mana yang perlu disalin. Semua masalah ini membuat penyebaran menjadi besar, menakutkan, dan langka - sama sekali tidak perlu. Alamat otomatisasi ini.
Bahkan langkah otomatisasi yang paling sederhana pun dapat memiliki manfaat besar, karena penyebaran menjadi sepele. Sebuah skrip yang menyalin file atau artefak melalui (S) FTP atau Rsync atau teknologi lain adalah langkah pertama yang bagus. Anda nanti dapat memperluas skrip itu untuk melakukan langkah pra-penempatan dan pasca penempatan di server secara otomatis, seperti memulai ulang layanan.
sumber
Praktik terbaik adalah dengan menerapkan semacam proses otomatis.
Berhati-hatilah untuk memeriksa bahwa tidak ada alasan khusus untuk pendekatan 'file per file' yang harus Anda perhitungkan.
sumber
Dengan Pengiriman Berkelanjutan (atau Penempatan, sebenarnya) dan memindahkan setiap file dengan tangan, Anda melihat dua ekstrem. Dapat dimengerti bahwa Anda tidak dapat / tidak ingin membuat pipa yang sepenuhnya otomatis (belum). Namun, Anda harus mempertimbangkan mengotomatisasi bagian dari proses.
Memindahkan setiap file dengan tangan cukup berisiko, dan Anda dapat mengurangi risiko itu dengan, misalnya, menandai penyimpanan kode Anda, memeriksa tag itu di komputer Anda, membuat artefak Anda dan mengunggahnya ke server Anda. Setiap langkah ini dapat diotomatisasi sehingga dijalankan dengan beberapa klik mouse, dan ini akan sangat mengurangi risiko melupakan file atau secara tidak sengaja mendorong untuk menghasilkan beberapa file tambahan.
Otomatiskan apa yang Anda bisa, satu langkah sekaligus. Fakta bahwa Anda tidak mampu membeli pipa CD otomatis sepenuhnya seharusnya tidak membuat Anda tidak bisa mengotomatisasi beberapa bagian.
sumber
Praktik terbaik adalah melakukan analisis biaya / manfaat untuk penyebaran khusus Anda untuk perusahaan Anda.
Jawaban umum adalah "jangan lakukan hal-hal secara manual, otomatiskan." Ini umumnya jawaban yang tepat untuk jenis umum perusahaan. Keseragaman jawaban yang Anda terima harus menjadi indikasi betapa kuatnya komunitas menemukan ini sebagai praktik terbaik. Jika perusahaan Anda merasa bahwa otomasi bukan alat yang tepat, mereka harus memahami apa yang membuatnya unik. Keunikan itu harus diperhitungkan dalam proses pengambilan keputusan Anda. Tidak ada "praktik terbaik" ketika set sampel adalah 1.
Pertanyaan seperti "berapa banyak file" dan "seberapa sering hal-hal diperbarui" dan "apa konsekuensi dari memecahkan sesuatu" dan "seberapa cepat Anda dapat mengembalikan perubahan yang buruk" adalah pertanyaan penting untuk dijawab. Jika Anda mengotomatisasi, banyak dari pertanyaan ini menjadi tidak penting, tetapi sangat penting untuk menetapkan biaya dan manfaat dengan benar untuk proses pembaruan manual.
sumber
Ada banyak nuansa abu-abu di antara salinan file-demi-file manual dan pengiriman berkelanjutan.
Mulailah dengan mengurangi kerumitan proses penyebaran, misalnya dengan menggunakan file zip, kemasan gaya rpm, infrastruktur sebagai alat manajemen kode (seperti boneka atau koki) atau bahkan hanya skrip sederhana yang menyalin file untuk Anda dari area pementasan pada server ftp.
Proses penyebaran dengan langkah-langkah manual lebih cenderung memiliki kesalahan (dan dengan demikian gagal) - seperti yang orang lain katakan, ambil elemen manusia darinya.
Anda tidak perlu menerapkan pengiriman kontinu penuh (yang mahal, dan membutuhkan upaya / investasi / inovasi dari waktu ke waktu) - mulai sederhana, membuatnya bekerja, menunjukkan manfaatnya - dan pergi dari sana.
sumber
Itu tergantung pada teknologi perangkat lunak (atau tumpukan) yang Anda gunakan (bahasa yang ditafsirkan, bahasa yang dikompilasi, aplikasi desktop, seluler, dll.), Lunak. dev. kebijakan departemen, jika Anda memiliki alat untuk mengotomasinya, seberapa penting aplikasi Anda, dan satu hal penting untuk dipertimbangkan adalah arsitektur perangkat lunak Anda (bagaimana aplikasi Anda dirancang). Inilah sebabnya mengapa Anda memiliki jawaban berbeda di sini. Sebagai pedoman praktis, pendekatan terbaik adalah mengurangi intervensi manusia dalam tugas penyebaran, untuk menghindari kesalahan. Praktik yang baik akan menguji segala sesuatu dalam QA Server (pertimbangkan untuk menggunakan server virtual jika anggaran merupakan masalah) sebelum penyebaran, dan memiliki prosedur terbalik untuk mengembalikan ke versi sebelumnya jika terjadi bencana ( SELALU punya cadangan).
sumber