Menu

Process

1. Guide

  1. µSOA1: One developer per microservice.2 HTTP is the only interface between everything.
  2. Agile: You need to be able to hot-deploy everywhere because you'll want to work with others remotely at high iteration speeds.
  3. Architecture: The developer is completely free to choose any software (languages, tools, persistence etc.) of the service.
  4. Turnaround: Maximum build & deploy time on live is how long it takes for you to switch to the test client. (1-2 seconds)
  5. Ownership: The developer owns and is responsible for the service everywhere at all times.
  6. Errors: Should be pushed from each live client to the service developers mobile phone in realtime.
  7. TDD: Test only what makes development slip due to complexity.

2. Manage

  1. The data -producer, -consumer and developer trio have 1 minute per person remote3 daily yester/morrow meetings.
  2. No other mandatory scheduled meetings.
  3. You should be able to work from home.
  4. If you finish quicker than expected, you own that remaining time.
  5. No documentation. Automatic API.

3. Store

  1. If persistence can be a file, make it a file.
  2. If you need:
    • Index; use the file system.
    • Relations; use a graph.
    • Full text search; combine the two!
  3. Your persistence should use HTTP.

4. Develop

  1. Each module describes it's own use: f.ex. if you browse to /login you should be able to login! (model, view and controller)
  2. Use async for:
    • Server response; if you have high iowait or realtime services.
    • Client requests; if you can concurrently build the response to reduce latency.
    • For top performance and speed FUSE both.
  3. Use the same development keyboard and OS everywhere.
  4. Use JavaScript injection for modularity, over; chunked response, CO-XHR or even XSS (careful with the cookies though).

5. Host

  1. Minimum two subdomains per service (f.ex. dev.<name>.host.com and <name>.host.com):
    • On same server provider.
    • Port 80 only.
  2. Increase socket memory if you serve large files.
  3. If it makes economical sense to use Akamai your software is probably bad.
  4. DNS Roundrobin across backbones allows for 100% uptime. But this requires a new kind of real-time distributed persistence.
  5. Install, configure, monitor and notify yourself; even the hardcore stuff.

1 Micro Service Oriented Architecture an evolution of Microservices and SOA.
2 If two people choose the exact same tools they can work on the same service; the whole point is that nobody should have to compromise with their tools. The work should not be to configure others tools, but to design a specific product with clear separation of responsibilities between developers.
3 Jason Fried, We Work Remotely, Mandy Brown.


MongoDB Logo MongoDB