Deine veröffentlichte App bleibt online, während du sie neu veröffentlichst
Wenn du eine App auf Mythex neu veröffentlichst, liefert deine Live-Seite jetzt weiterhin die vorherige Version, bis der neue Build fertig ist, und schaltet dann um. Vorher hat ein Neuveröffentlichen die Seite für den gesamten Build offline genommen. Besucher sahen „This published app is offline or the link was not found“ für etwa eine Minute und danach funktionierte dieselbe Seite nach dem Neuladen wieder. Außerdem haben wir zwei andere Wege behoben, auf denen eine Live-App fälschlich offline wirkte.
1. Neuveröffentlichen nimmt deine Seite nicht mehr vom Netz
Im Hintergrund hat jede veröffentlichte App einen Eintrag, der sagt, welcher Build ausgeliefert werden soll. Ein Neuveröffentlichen nutzte diesen Eintrag wieder und markierte ihn für die Dauer als „im Build“. Der Teil unseres Edge, der Besucher weiterleitet, lieferte aber nur Einträge aus, die als „live“ markiert waren. Jedes Neuveröffentlichen ließ die Seite also verschwinden, bis der Build fertig war. Wir haben das an einer kleinen Test-App reproduziert: etwa 50 Sekunden offline pro Neuveröffentlichung.
Jetzt merkt sich der Eintrag beim Start eines Neuveröffentlichens einer bereits live laufenden App, dass ein früherer Build existiert, und zeigt weiterhin darauf. Der Edge liefert den früheren Build aus, während der neue gebaut wird, und der Zeiger wechselt erst zum neuen Build, wenn dieser erfolgreich ist. Scheitert der neue Build, bemerken deine Besucher nichts: Die alte Version bleibt einfach online.
Eine erste Veröffentlichung oder das Neuveröffentlichen einer pausierten oder stillgelegten App geht weiterhin erst live, wenn der Build fertig ist. Dafür gibt es keine vorherige Version, die man zeigen könnte.
2. Ein kurzes Hakeln sieht nicht mehr nach „nicht gefunden“ aus
Der Dienst vor deiner veröffentlichten App fragt unsere API, wo jede Seite liegt. Er behandelte früher jede erfolglose Antwort – einen kurzen Serverfehler, eine abgebrochene Verbindung – als „diese Seite gibt es nicht“ und zeigte die Offline-Seite. Ein Neuladen eine Sekunde später funktionierte, was verwirrend war.
Jetzt zählt nur noch eine echte Antwort „nicht gefunden“ als nicht gefunden:
- Jeder andere Fehler wird einmal wiederholt.
- Schlägt auch das fehl, liefert der Edge die Seite aus der letzten bekannten guten Antwort bis zu einer Stunde lang.
- Nur wenn er nie eine Antwort hatte, zeigt er eine Seite „vorübergehend nicht verfügbar“, niemals „nicht gefunden“.
Eigene Domains fragen außerdem unsere Produktions- und Staging-Systeme parallel ab. So kann ein langsamer Staging-Server eine Produktionsdomain nie aufhalten.
3. Eine pausierte App sagt, dass sie pausiert ist
Veröffentlichte Apps laufen über dein Credit-Guthaben. Ist es leer, wird die App pausiert, bis du aufladst, und sie kommt dann von selbst zurück. Eine pausierte App sah früher aber genauso aus wie eine gelöschte.
Jetzt sieht ein Besucher einer pausierten App „This app is paused“, mit einem Weg zurück für den Besitzer. Die Antwort wird nie zwischengespeichert, sodass die App in dem Moment wieder erreichbar ist, in dem sie fortgesetzt wird. Ist eine App aus einem anderen Grund nicht verfügbar, sehen Besucher „This app isn't available“, ohne dass ihnen der Grund genannt wird.
Warum das wichtig ist
Eine veröffentlichte App ist etwas, das du geteilt hast: in einem Bio-Link, auf einer Visitenkarte, gegenüber deinen ersten Kunden. Sie sollte sich wie eine echte Website verhalten: während du sie verbesserst oben bleiben, ein kurzes Hakeln überstehen und ehrlich sein, wenn sie pausiert ist.
Mehr zum Veröffentlichen steht in der Dokumentation: So veröffentlichst du und Hosting-Limits. Die Infrastrukturseite derselben Idee: wie wir unsere eigenen Deployments auf null 502-Fehler gebracht haben.