Saya seorang wirausahawan dengan proyek Drupal 6x yang mulai cukup kecil sehingga tidak memerlukan kontrol versi (per pengembang), tetapi sekarang saya yakin tidak ada jalan tanpa itu. Ada dokumentasi luas tentang JIRA, lengkap dengan Cerita Pengguna yang ditulis dengan baik yang mencakup semuanya. Saya membaca sedikit tentang bagaimana ini bisa dilakukan dan muncul dengan rencana berikut -
- Pisahkan kode situs dari database menggunakan modul
- Masukkan kode dalam repositori SVN dan buat situs pementasan
- Buat cermin dari server pementasan pada server produksi EC2
- Buat tes Selenium, dan jalankan di cloud menggunakan Saucelab
- Buat alur kerja build di JIRA Studio menggunakan Elastic Bamboo untuk menjalankan pembaruan otomatis
- Perbarui dan instal profil menggunakan Drush Make
- Jalankan pembaruan di server produksi (saya tidak yakin bagaimana)
Untuk mulai dengan, saya telah membuat daftar sekitar 50 "Fitur", masing-masing dengan komponennya (tampilan, jenis konten, modul dll). Ini tidak diragukan lagi akan menantang karena situs tersebut berisi sekitar selusin modul khusus dan layanan web, belum lagi selusin contoh jenis "aplikasi" konten yang berisi kode khusus (sebagian besar yang ingin saya konversi menjadi tampilan atau modul yang dapat diupgrade) . Hal yang baik adalah bahwa situs tersebut belum di produksi sehingga risikonya masih terbatas.
Adakah yang punya pengalaman dalam melakukan hal serupa? Perangkap dan batasan apa yang harus saya hadapi? Saya akan sangat menghargai saran untuk meningkatkan / memperbaiki rencana di atas, atau wawasan atau saran yang mungkin Anda miliki untuk para ahli di luar sana.
sumber
Jawaban:
Ok, saya akan coba ini :) Saya tidak akan bisa menjawab pertanyaan Anda sepenuhnya, tapi mungkin memberi Anda beberapa petunjuk menarik. Perhatikan bahwa penomoran saya tidak dalam tanggapan langsung ke Anda :)
Seperti yang sudah saya sebutkan di komentar, tidak ada proyek yang terlalu kecil untuk kontrol versi. Saya pribadi merekomendasikan Git. Alasannya adalah kecepatannya yang luar biasa (waktu tunggu dalam git diukur dalam milidetik, bukan detik) dan sejumlah besar fitur. Mungkin agak sulit untuk mengambilnya, karena nama dan argumen yang aneh tetapi dokumentasi berikut menjelaskan banyak di antaranya benar - benar bagus: http://www.eecs.harvard.edu/~cduan/technical/git/ . Alasan lain adalah sekarang digunakan oleh drupal.org, jadi mengetahui git akan membantu Anda ketika Anda ingin berkontribusi kembali (menyediakan tambalan, menguji tambalan, modul rilis, ...)
Yang mengatakan, jika Anda ingin menggunakan SVN karena alasan tertentu (seperti integrasi dengan layanan yang Anda rencanakan untuk digunakan), maka lakukanlah. SVN juga berfungsi dengan baik dan jauh lebih baik daripada tidak ada kontrol sumber. (Kecuali jika Anda bertanya Linus Torvalds ..). Juga, sering ada cara untuk bermigrasi dari satu VCS ke yang lain jika Anda berubah pikiran. SVN -> Git berfungsi dengan baik, misalnya.
Ketiga, dekati langkah demi langkah ini. Jangan mencoba melakukan semuanya sekaligus. Memberi Anda (dan pengembang Anda) waktu untuk mempelajari alat baru.
Beralih dari Drupal 6 ke Drupal 7 bukanlah hal yang sepele. Apalagi dengan banyak kode custom. Catat saja apakah ada banyak perubahan API dan konsep baru (seperti sistem entitas / bidang), ada juga poin bahwa banyak modul yang berkontribusi belum sepenuhnya siap.
Manajemen penyebaran adalah salah satu titik lemah Drupal, yang juga tidak banyak berubah di Drupal 7. Kami menyadari masalahnya dan orang-orang bekerja keras untuk menyelesaikan masalah ini untuk Drupal 8: http://groups.drupal.org / build-system-change-management / cmi . Fitur dll membantu, tetapi itu bukan peluru perak. Tidak semuanya dapat diekspor sebagai fitur.
Ada juga beberapa opsi Drupal-specifc untuk menyebarkan lokasi pementasan / produksi. Pantheon (masih dalam versi beta) dan Acquia Dev Cloud mungkin layak untuk dicoba.
Integrasi berkelanjutan, pengujian otomatis penting dan sangat berguna tetapi juga memerlukan waktu untuk mengatur, menulis tes, dan sebagainya. Waktu yang mungkin atau mungkin tidak Anda miliki saat ini. Tetapi terutama tes otomatis adalah area di mana mudah untuk melakukan peningkatan tambahan. Setelah Anda memiliki lingkungan yang diatur untuk menjalankannya, Anda dapat menulis lebih banyak dan lebih banyak tes sesuai waktu.
Jadi, inilah rekomendasi saya untuk pertanyaan yang diperbarui di komentar:
Selesai dan lepaskan apa adanya, tetapi mulai gunakan VCS (sistem kontrol versi) untuk Drupal 6 sekarang. Buat lingkungan pementasan untuk situs Anda. Lihatlah modul apa (kontribusi) yang Anda gunakan dan periksa apakah port ke Drupal 7 layak pada saat itu. Jangan meremehkan waktu yang dibutuhkan. Juga mulailah untuk meningkatkan proses pengujian / penyebaran, dimulai dengan apa yang menurut Anda akan memberi Anda manfaat / biaya paling besar.
Anda juga dapat membuat pertanyaan tindak lanjut yang lebih spesifik atau mencari yang sudah ada. Seperti yang Anda lihat, bahkan hanya memberikan beberapa petunjuk untuk pertanyaan seperti ini bisa menjadi sangat besar dan membutuhkan sedikit waktu.
sumber