title: Using OpenShift with many components
body: <p>I am in the process of evaluating using OpenShift Origin (or maybe enterprise) for a project with many components, but I am having some problems figuring out what the best solution to split up the components and keep scalability.</p>
  
  <p>The components are</p>
  
  <ul>
  <li>db (PostgreSQL): Used a lot, but not that much for writing, so I can scale it using 1 write and several reads.</li>
  <li>www (static files): Served by nginx or similar</li>
  <li>api (django): That the www app can talk to. Need to talk to the db, and cache.</li>
  <li>auth (NodeJS): Authentication frontend for social authentication, need contact with the cache.</li>
  <li>sse (django): DataPush using html5, this webserver haveto be running nginx/gevent or similar. This need to talk to MQ.</li>
  <li>MQ (RabbitMQ): For running tasks.</li>
  <li>cache (redis): That the api, sse and auth talks to..</li>
  </ul>
  
  <p>Overall complicated, but it all works great right now without OpenShift.</p>
  
  <p>Looking at how people are running Django and Postgres in Openshift, its normally done using (from another example) something like <code>rhc app create --scaling $APP_NAME python-2.7 mongodb-2.4 postgresql-8.4</code>, but what does this really do? As I understand, you will end up with python, mongodb, and postgres running on the same machine in this case.</p>
  
  <p>What is the the best solution in this case?</p>
  
  <ul>
  <li>Running the whole stack on 1 app. So that technically it will be running the everything per physical server.</li>
  <li>Creating 1 scalable application for the major components, and example point the api db setting to db-mydom.example.com?</li>
  <li>Only using OpenShift for www and api, and setting up old style servers on the rest?</li>
  <li>Something completly different?</li>
  </ul>