CloudServices/CloudPlatform/Standards

From MozillaWiki
Jump to: navigation, search

Overview

Cloud Services recommended structure, style guide, and technologies to skip common things.

DevOps

  • Logging: Heka
  • IPC Messaging: SQS
  • Databases: RDS, MySql, DynamoDb

For Logging: You want to use Heka for log aggregation. Have your app write logs to standard out (ideally with a Protobuf encoded, Heka formatted string). These will be scraped and pulled into Heka for storage and display via Kibana. You'll need to work with ops to get some of that set up.


For IPC Messaging: Really depends on what you're going to do. SQS is effectively free for the first 1MM transactions per month (it's a bit fuzzy what "a transaction" is).


There are a few other mechanisms available, including simplepush, queuey, or rolling your own, but those really depend on what your costs points and needs are.


Databases: Probably want to use something like DynamoDB or RDS if you can. Both are reasonably friendly toward transactions, but again, find the solution that fits your needs, which may not be the one your most comfortable with.


We've been playing around with using Docker for rapid system deployments as well. It's fairly trivial to set up a CoreOS instance and load a set of docker images. In fact, Loads2 uses that approach to spin up a testing swarm. The other benefit is that if you're not using AWS, you could do the same using whatever platform you prefer.

Node

Folder structure

  • lib
  • app
  • routes

Base Libraries

background: chronicle stack discussion

  • grunt
  • intern
  • mocha?
  • hapi

Execution targets

  • npm start, test

Python

  • make? disutils?
  • pep 8?
  • plan on it being run in a virtualenv

Go

Test Engineering

  • intern/selenium
  • code coverage?
  • Loads 2.0
  • Marionette.js on FxOS