Guest User

Untitled

a guest
Dec 10th, 2018
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.12 KB | None | 0 0
  1. # Title for the RFC
  2.  
  3. | Author | Responsible Squad |
  4. |----------------------------|-------------------|
  5. | Your Name | The Squad |
  6.  
  7. ## Description of your service
  8.  
  9. Describe in a few words what will your service do.
  10.  
  11. ## How will it be tested?
  12.  
  13. Will the new microservice be tested both in isolation (with unit tests or mock dependencies)
  14. and in a more realistic “integration” or “staging” environment where it is connected to the same
  15. kinds of services it will touch in production? Will the tests incorporate performance verification
  16. and failure modes?
  17.  
  18. ## How will it be consumed by other parts of the system?
  19.  
  20. Will those other components interact with the new microservice synchronously or asynchronously?
  21. Should they be encouraged to cache responses from it for some time? What about retries and idempotency?
  22. Will the uptime SLA of the new microservice match that of the other components in the system?
  23.  
  24. ## How will it be secured?
  25.  
  26. Does your service needs to be secured? Will it use the API Gateway to be secured?
  27.  
  28. ## How will it scale with increasing load?
  29.  
  30. Will the microservice auto-scale? Is there state held in memory that will make that auto-scaling and
  31. request routing difficult (for example, user session state)? What is the sharding strategy, if any?
  32.  
  33. ## How will it handle failures of its dependencies?
  34.  
  35. Even microservices built with a very small bounded context might be dependent on other existing
  36. microservices or monoliths present in the system. If your new microservice depends on any other services,
  37. it is crucial to know what should happen when those dependencies fail. Using consistent request timeouts
  38. would be a good start, but adding circuit breaking would be even better.
  39.  
  40. ## How will the rest of the system handle the failure of the new microservice?
  41.  
  42. Depending on how much investment has been made in the new microservice’s ability to be highly available,
  43. and also depending on what kind of transactions it supports, this might be of minimal concern.
  44.  
  45. ## If your service includes its own data store and a data migration is necessary, how will that be handled?
  46.  
  47. Depending on the nature of the microservice, it usually includes its own private data store. Often this means data needs to be migrated from an existing legacy database. If that is the case with your service, what is the migration plan and how will you mitigate platform downtime?
  48.  
  49. ## Technical details
  50.  
  51. | Description | |
  52. |----------------------------------|---------------------------------|
  53. | Language | `php`, `go`, `python`, `node` |
  54. | Concourse group | `your-service` |
  55. | Kubernetes service name | `your-service` |
  56. | Grafana group | `your-service` |
  57. | Graylog search string | `your-service` |
  58.  
  59. ## Checklist
  60.  
  61. I have implemented the following prerequsites to my new service:
  62.  
  63. - [ ] Data Store Replicas
  64. - [ ] CI
  65. - [ ] CD
  66. - [ ] Logging
  67. - [ ] Monitoring
  68. - [ ] Distributed tracing
  69. - [ ] API design (RAML / Swagger / Protobuf, as appropriate)
Add Comment
Please, Sign In to add comment