2010-05-14 6 views
5

Necesito poder actualizar mi instancia de ec2 de una etiqueta en mercurial cuando se restablece, por lo que mi aplicación siempre se configura con la revisión correcta.¿Hay realmente algún alojamiento mercurial * en * Amazon EC2?

que sería genial ser capaz de empujar mis cambios a una gran cantidad de mercurio y tienen mis casos se actualizan automáticamente a través de la red EC2 cuando se restablecen!

Realmente no desea alojar mercurial en la misma instancia (o incluso una instancia dedicada)

Respuesta

2

Lo que queremos es que Mercurial para soportar de forma nativa utilizando S3 como backend para el almacenamiento de datos, y no existe tal código . Puede quizás encontrar un puente S3 para ejecutar en FUSE (o un puente S3-> DAV que podría montar como sistema de archivos), y luego decirle a Hg que empuje y extraiga datos de ese sistema de archivos virtual, pero de lo contrario necesitaría una instancia de ec2 dedicada para servir realmente los datos (podría lanzarla bajo demanda, pero la latencia es bastante mala, como probablemente sabrá).

Hay un sistema de archivos basado en FUSE para S3 llamado s3fs, pero parece que es principalmente un controlador para una oferta comercial.

(Por separado, dependiendo de su arquitectura ec2, y asumiendo que tiene sobretiempos superpuestos en varias instancias, en teoría podría aprovechar la naturaleza distribuida de Hg para usar sus instancias existentes para pasar los cambios entre ellos, sin una repositorio "raíz". Si solo tiene una instancia, por supuesto, este no es un iniciador.)

+0

Nick está en el camino correcto. Sospecho que se podría hacer hosting de solo lectura fuera de S3 usando el método static-http: // fallback que proporciona mercurial. Luego presionaría un repositorio no ec2 y usaría algo como s3sync para colocar el directorio .hg en s3, desde donde sus nodos ec2 podrían ser procesados ​​de manera eficiente. –

+0

Creo que su única opción realista es s3fs, pero debe preocuparse por la superposición de escrituras: S3 no proporciona bloqueo. Miré algunas otras bibliotecas de sistemas de archivos s3, pero casi todas están implementadas como iSCSI: emulan un dispositivo de bloque en s3 que se puede montar como un disco en una máquina local, pero no se puede montar en más de una máquina a la vez. –