Skip to content

Instantly share code, notes, and snippets.

@danielvrog
Created July 19, 2020 16:28
Show Gist options
  • Save danielvrog/f3ff593df39c4a3df340e047aa9763d5 to your computer and use it in GitHub Desktop.
Save danielvrog/f3ff593df39c4a3df340e047aa9763d5 to your computer and use it in GitHub Desktop.

Questionnaire

Tuesday, October 2, 2018 11:01

1. Build

  1. Split source repo
  2. Build image for multistage.
  3. Source image
  4. Dependencies (pip, deb, binary)
  5. Procedure (Makefile)
  6. Versioning

2. Test

  1. Configurations
  2. Unit. Coverage.
  3. Consumer-driven contract
  4. Business logic test

3. Service start

  1. Command
  2. Time required to start

4. Service signals

  1. Stop\kill
  2. Restart (graceful shutdown and resume from saved state)

5. Stateful \ stateless

6. Synchronous \ asynchronous (message broker)

7. Storage

  1. Persistency
  2. Performance

8. Network

  1. Bridge
  2. Overlay

9. Compute resources (min, max)

  1. CPU
  2. RAM
  3. Storage

10. Service user

11. Scale up / down / hor / ver

12. Configurations

  1. Preset
  2. Run time (API)
  3. Reload
  4. File
  5. ENV

13. Secrets

14. Health check [ok, wrn, err] + Readiness check

15. Logs

  1. Formatting
  2. Filesystem, journal, TCP, external config (logging: driver: fluentd in d-c.yml)

16. Monitoring

  1. Instrumentation
  2. Remedy

16. Depends on services (start after)

17. Rely on services (limited functionality)

18. Communicates with services (mesh rules)

19. Contract

20. Deployment

  1. DEV, TEST, PRE-PROD, PRODx
  2. Zero-downtime upgrade
  3. Upgrade
    1. Check if there enough required\reserved resources
    2. Parallelism (X and X+1 at the same time; feature flags)
    3. Automatic upgrade verification
    4. Detect new version
  4. Automatic roll back
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment