You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+34-8Lines changed: 34 additions & 8 deletions
Original file line number
Diff line number
Diff line change
@@ -80,17 +80,43 @@ _The `index.html` of your Angular app might look like this... it's all configura
80
80
</html>
81
81
```
82
82
83
-
## Development Lifecycle
83
+
## Workflow
84
84
85
+
The workflow is defined by its separation of build tasks and release tasks. Specifically, the publishing of permabundles as a _build_ and the publishing of index.html as a _release_.
85
86
87
+
### Publishing of permabundles as a build
86
88
87
-
### Staged Deployments
89
+
Write code. Build assets. Publish permabundles.
88
90
89
-
1. Implementation
90
-
2. Build
91
-
3. Publish
91
+
It could be that simple. Of course, the specifics of this process will vary by the project and the team. The important part is that it is a process that results in published permabundles.
92
92
93
-
### Atomic Releases
93
+
The publishing of a permabundle will typically be triggered from a manual action. Once the permabundle is published it must not be changed. Any required changes must result in publishing a different permabundle.
94
94
95
-
1. Build `index.html`
96
-
2.
95
+
### Publishing of `index.html` as a release
96
+
97
+
When a permabundle is published and ready to be deployed, a new version of the `index.html` can be created that references the permabundle. Publishing the new `index.html` will instantly and atomically release the new version of the web application.
98
+
99
+
### Promoting permabundles
100
+
101
+
The _value_ of Immutable Web Apps occurs between the publishing of the permabundle and a live release of the web application. Between those events the permabundle can be promoted to production through a process of validation.
102
+
103
+
This validation might take the form of:
104
+
105
+
- Automation, regression, or exploratory testing
106
+
- Integration in a staging environment
107
+
- Canary testing in a production replica
108
+
- Blue/green deployment of backing services
109
+
110
+
If the permabundles fails any of this validation it is abandoned. If it succeeds it is immediately available to be released by publishing a new `index.html`. If an issue is found in production, rolling back is instant and atomic by simply publishing the previous revision of `index.html`.
111
+
112
+
## Setup
113
+
114
+
- Separate the management of `index.html` from the code repository that builds the static assets
115
+
116
+
- Manage your permabundles like they are a Javascript Library CDN, for example [http://cdnjs.org](https://cdnjs.com/libraries/jquery)
117
+
118
+
- Configure your web application host(s) to serve `index.html` for any path, no exceptions
0 commit comments