Vytvoření flexibilní a iterovatelné aplikace v krátké době může být náročné. Známé cloudy jako AWS, Azure a GCP pomáhají dodávat škálovatelné webové aplikace s nízkými náklady během několika týdnů. Vyberte spravovanou databázi, přesuňte kód aplikace do kontejnerů Docker nebo back-endových funkcí a nasaďte vše na jakékoli změny kódu. Tak vypadá moderní vývoj aplikací, že?
V tomto příspěvku popíšu nejdůležitější věci potřebné k vývoji a dodávce softwaru úžasným tempem, s aplikací Next.js napsanou v TypeScriptu, nasazenou přes Vercel a podporovanou databází bez serveru nazvanou FaunaDB. Každou z těchto věcí podrobně vysvětlím a sem a tam přidám několik příkladů. Velmi doporučuji vyzkoušet všechny. Všechny mají velkorysé bezplatné úrovně a může je použít malý vývojový tým složený až ze tří členů.
Využití platforem nasazení zaměřených na vývojáře v kombinaci s nabídkami bez serveru je shrnuto jako Jamstack. „J-A-M“ znamená JavaScript, API a označení. Více o Jamstack najdete na //jamstack.org/.
Nasazení je detail implementace
Počet služeb, které mohu v cloudu použít, je ohromující. V tuto chvíli má AWS 250 různých služeb. Potřebuji definovat, jak se připojit a nastavit nasazení pro mé nové funkce, pro mé neproduktivní prostředí a pro moje produkční prostředí
Pokud pracuji na projektu s více vývojáři paralelně, rád bych jen předal URL svému spolupracovníkovi, abych mohl sdílet svou aktuální větev funkcí.
Dále musím nastavit domény a subdomény, škálovat služby, propojit veřejné koncové body, spravovat připojení k databázi, nastavit správu tajemství atd.
Platforma Vercel se bezproblémově propojuje se systémy pro správu verzí, jako je GitHub nebo GitLab. Jednoduše připojím svůj repozitář, přizpůsobím nastavení hostitele svého nameserveru a je hotovo.
V mém aktuálním projektu jsem definoval několik užitečných úkolů npm, které se používají v každém sestavení, aby bylo zajištěno, že náš software funguje a splňuje softwarové standardy a osvědčené postupy:
{"skripty": {
"tsc": "tsc", // zkontrolovat bezpečnost typu
"lint": "eslint", // provede statickou analýzu kódu
"lint: ci": "eslint --max-warnings = 0",
"lint: fix": "eslint --fix",
"test": "jest --watch", // provést testy
"test: ci": "jest --ci",
"test: coverage": "jest --coverage",
"checks": "npm-run-all lint: ci tsc test: ci",
"dev": "env-cmd next dev", // spustí místní prostředí dev
"start": "další",
"start-port": "další start -p $ PORT",
"build": "next build",
"now-build": "npm-run-all checks build", // CI build
"serve": "další start",
}
}
Ve výchozím nastavení Vercel spouští nyní stavět
úkol na každém sestavení. To spouští některé další úkoly, které staticky kontrolují náš kód, spouštějí všechny testy a vytvářejí náš software.
Vzhledem k tomu, že vše prostě funguje, mám z krabice spoustu funkcí implementační platformy. Těží mě z nadcházejících vylepšení, aniž by mi v budoucnu způsobily nějaké problémy.