Paul Bakker - The Orange Dots - ServoyWorld '17
| stand-alone app server | WAR | stand-alone container | managed containers | |
|---|---|---|---|---|
| HA - automatic fail-over | nope | nope | nope | yup |
| HA - zero downtime deployment | .servoy upload: possible | Tomcat Parallel Deployment? | Tomcat Parallel Deployment? | yup |
| HA - scaling | nope | nope | nope | yup |
| static & versioned | not enforced | to some extend | pretty much | pretty much |
| Secure | ~ | ~ | ~ | ~ |
| No Bloat | ~ | ~ | ~ | ~ |
| Automated | can be done | can be done | can be done | a lot already done |
⚫ ⚫ ⚫ ⚫
⚫ ⚫ ⚫ ⚫
amqpbroadcaster.hostname=localhostservoy.properties
GitHub
| Safe operations | Comments |
|---|---|
| Add column | |
| Drop column | assuming the app isn't using it anymore |
| Add an index concurrently | |
| Drop a constraint (for example, non-nullable) | |
| Add a default value to an existing column |
| Operations to avoid | Workarounds |
|---|---|
| Add index | Add index concurrently |
| Change column type | Add new column, change code to write to both, backfill new column |
| Add column with default value | Add column, add default in separate step, backfill column with default value |
| Add non-nullable column | |
| Add column with unique constraint | Add column, add unique index concurrently, add constraint |
| VACUUM FULL | use pgrepack instead |
Overall: no long-running transactions/locks and queries
| Operations to think about | |
|---|---|
| Adding foreign key constraints | Requires a AccessExclusive lock on both tables, potentially blocking read access |
No,
not this guys this time....
The other one -->>
Level I:
Level II:
selector:
matchLabels:
run: paragon
matchExpressions:
- {key: exclude, operator: NotIn, values: [true]}label selectors: Deployment / ReplicaSet / Service
labels
run: paragonlabels: Pods
....