Skip to content

Commit d5bd5ee

Browse files
committed
draft of workflow
1 parent f33bcf3 commit d5bd5ee

File tree

1 file changed

+34
-8
lines changed

1 file changed

+34
-8
lines changed

README.md

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -80,17 +80,43 @@ _The `index.html` of your Angular app might look like this... it's all configura
8080
</html>
8181
```
8282

83-
## Development Lifecycle
83+
## Workflow
8484

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_.
8586

87+
### Publishing of permabundles as a build
8688

87-
### Staged Deployments
89+
Write code. Build assets. Publish permabundles.
8890

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.
9292

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.
9494

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
119+
120+
- Use a CDN
121+
122+
- Favor a serverless cloud platform

0 commit comments

Comments
 (0)