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=localhost
servoy.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: paragon
labels: Pods
....