it-swarm-eu.dev

Potřebuji přenést web na správu verzí a nastavit prostředí nepřetržité integrace

Jsem podnikatel s projektem Drupal 6x), který začal dostatečně malý na to, aby nepotřeboval kontrolu verzí (na vývojáře), ale nyní jsem přesvědčen, že bez něj neexistuje žádný způsob. Existuje rozsáhlá dokumentace o JIRA, kompletní s dobře napsanými příběhy uživatelů, které pokrývají všechno. Přečetl jsem si trochu o tom, jak by se to dalo udělat, a přišel s následujícím plánem -

  1. Oddělte kód webu od databáze pomocí modulů
    1. Kontext
    2. Funkce
    3. Strongarm
    4. Profiler
  2. Vložte kód do úložiště SVN a vytvořte pracovní místo
  3. Vytvořte zrcadlo pracovního serveru na produkčním serveru EC2
  4. Vytvořte testy selenu a spusťte je v cloudu pomocí Saucelabs
  5. Vytvořte pracovní postup sestavení v JIRA Studio pomocí nástroje Elastic Bamboo a spusťte automatické aktualizace
  6. Aktualizujte a nainstalujte profily pomocí Drush Make
  7. Spouštět aktualizace na produkčním serveru (nejsem si jistý jak)

Nejprve jsem vytvořil seznam asi 50 "funkcí", každý s jeho komponenty (zobrazení, typy obsahu, moduly atd.). To bude bezpochyby náročné, protože web obsahuje asi tucet vlastních modulů a webových služeb, nemluvě o dalších tuctech případů typu obsahu „aplikace“ obsahujících vlastní kód (z nichž většina bych chtěl převést na upgradovatelná zobrazení nebo moduly) . Dobrá věc je, že web ještě není ve výrobě, takže riziko je stále omezené.

Má někdo nějaké zkušenosti s děláním něčeho podobného? S jakými úskalími a omezeními bych se měl setkat? Velmi si cením jakýchkoli návrhů na zlepšení/opravu výše uvedeného plánu, nebo jakýchkoli poznatků nebo rad, které pro vás mohou mít vaši experti.

41
druflex

Dobře, zkusím to :) Nebudu schopen plně odpovědět na vaši otázku, ale možná vám dám několik zajímavých rad. Všimněte si, že moje číslování není na vaši přímou reakci :)

  1. Jak jsem již zmínil v komentáři, žádný projekt není příliš malý na správu verzí. Osobně doporučuji Git. Důvody jsou prostá úžasná rychlost (čekací doba v gitu se měří v milisekundách, nikoli vteřinách) a obrovské množství funkcí. To může být trochu těžké vyzvednout, protože podivná jména a argumenty, ale následující dokumentace vysvětluje mnoho z nich opravdu dobré: http : //www.eecs.harvard.edu/~cduan/technical/git/ . Dalším důvodem je to, že ji nyní používá drupal.org, takže znalost git vám pomůže, když chcete přispět zpět (poskytování oprav, opravných patchů, uvolňovacích modulů, ...)

  2. Pokud chcete použít SVN z nějakého důvodu (jako je integrace se službami, které chcete používat), pak jděte na to. SVN funguje přiměřeně dobře a je mnohem lepší než žádná kontrola zdroje. (Pokud se neptáte Linuse Torvaldse ..). Často také existují způsoby, jak migrovat z jednoho VCS na jiný, pokud změníte názor. SVN -> Git funguje například dobře.

  3. Za třetí, přistupujte k tomuto kroku krok za krokem. Nesnažte se dělat všechno najednou. Poskytněte vám (a vašim vývojářům) čas naučit se nové nástroje.

  4. Přechod z Drupal 6 na Drupal 7 není triviální věc). Zejména s velkým množstvím vlastního kódu. Poznámka: existují pouze tuny změn API a nové koncepty ( jako je systém entita/pole) je zde také to, že mnoho přispěných modulů ještě není zcela připraveno.

  5. Správa rozmístění je jednou ze slabých stránek Drupalu, která se moc nezměnila ani v Drupal 7). Jsme si vědomi problému a lidé se intenzivně snaží tento problém vyřešit Drupal 8: http://groups.drupal.org/build-systems-change-management/cmi) . Funkce atd. Pomáhají, ale nejedná se o stříbrnou kulku. Ne všechno lze exportovat jako funkci.

  6. Existuje také několik možností specifických pro Drupal pro nasazení inscenačních/produkčních webů. Pantheon (stále v beta verzi) a Acquia Dev Cloud se vyplatí vyzkoušet.

  7. Neustálá integrace, automatizované testování je důležité a opravdu užitečné , ale také vyžaduje čas na nastavení, psaní testů atd. V tuto chvíli můžete nebo nemusíte mít. Ale zejména automatizované testy jsou oblastí, kde je snadné provádět dílčí vylepšení. Jakmile je nastaveno prostředí pro jejich spouštění, můžete psát stále více testů, jak to umožňuje čas.

Tady je moje doporučení pro aktualizovanou otázku v komentáři:

Dokončete a uvolněte tak, jak je , ale začněte používat VCS (systém pro správu verzí) pro Drupal 6). pracovní prostředí pro váš web. Podívejte se, jaké moduly (přispěly), které používáte, a zkontrolujte, zda je v tomto okamžiku proveditelný port k Drupal 7). Nepodceňujte čas, který bude trvat. začít zlepšovat proces testování/nasazení, počínaje tím, co si myslíte, že vám přinese nejvíce výhod/nákladů.

Můžete také vytvořit konkrétnější následné otázky nebo se podívat na ty, které již existují. Jak vidíte, i když vám na otázku, jako je tato, dá jen pár rad, může to být obrovské a zabere to trochu času.

23
Berdir