google chrome - porque - ¿Cuál es la experiencia con Google ''Omaha''(su motor de actualización automática para Chrome)?
no puedo actualizar google chrome android (6)
Google ha abierto el mecanismo de actualización automática utilizado en Google Chrome como Omaha .
Parece bastante complicado y difícil de configurar para cualquiera que no sea Google. ¿Cuál es la experiencia de usar Omaha en proyectos? Puede ser recomendado?
Acabo de pasar unos días configurando Omaha. Es tedioso, pero no imposible. Resumí los pasos necesarios en un tutorial detallado. Yo uso omaha-server para el back omaha-server end. Todavía no puedo comentar sobre el uso de la producción, pero actualizaré esta respuesta a medida que sepa más.
En el mundo .NET es posible que desee echar un vistazo a la implementación de ClickOnce .
Quizás, puede aprovechar el algoritmo de calabacín , que es el mecanismo de actualización que se utiliza en Google Chrome . Es realmente fácil de usar y aplicar a su infraestructura. Actualmente, solo funciona para sistemas operativos Windows. Los usuarios de Chrome de Windows reciben actualizaciones en fragmentos pequeños, a diferencia de los usuarios de Mac y Linux que todavía reciben los fragmentos en tamaño total.
Puede encontrar el código fuente here en el repositorio Chromium SVN. Es un algoritmo de compresión para aplicar pequeñas actualizaciones a Google Chrome en lugar de enviar toda la distribución todo el tiempo. En lugar de enviar los 10 MB completos al usuario, puede presionar solo la diferencia de los cambios.
Puede encontrar más información sobre cómo funciona Courgette here y la publicación oficial del blog here .
Funciona así:
server: hint = make_hint(original, update) guess = make_guess(original, hint) diff = bsdiff(concat(original, guess), update) transmit hint, diff client receive hint, diff guess = make_guess(original, hint) update = bspatch(concat(original, guess), diff)
Cuando revisa la fuente, puede compilarla como un ejecutable (haga clic derecho en compilar en Visual Studio) y puede usar la aplicación en ese formulario para probar:
Uso:
courgette -dis <executable_file> <binary_assembly_file>
courgette -asm <binary_assembly_file> <executable_file>
courgette -disadj <executable_file> <reference> <binary_assembly_file>
courgette -gen <v1> <v2> <patch>
courgette -apply <v1> <patch> <v2>
O bien, puede incluir eso dentro de su aplicación y hacer las actualizaciones desde allí. Puede imitar el entorno de actualización automática de Omaha creando su propio servicio que comprueba y ejecuta periódicamente Courgette.
Un mecanismo de actualización automática es algo que personalmente me codifico a mí mismo, y siempre he tenido en el pasado. A menos que tenga una aplicación de varios gigabytes y quiera subir solo partes, simplemente confíe en su propio código / instalador. Dicho esto, no he visto en absoluto la biblioteca de código abierto de Google ... y ni siquiera sabía que existía. No puedo imaginar que ofrezca algo superior a lo que podría codificar usted mismo, y con su propio código no está sujeto a ninguna restricción de licencia.
Usamos Omaha para nuestros productos. Inicialmente, hubo bastante trabajo para cambiar las URL y cadenas codificadas. Además, el servidor no es de código abierto, pero el protocolo está bien documentado, por lo que no fue difícil crear un servidor compatible con Google App Engine.
No hay que arrepentirse de abandonar nuestra solución de actualización de clientes anterior e ir con Omaha.
ACTUALIZAR
- Personalizar google omaha no es tan fácil si no tienes conocimiento sobre c ++, python o com.
- Las actualizaciones no se publican con frecuencia
- crystalnix / omaha es administrado por la comunidad e intentan fusionar el repositorio principal en el suyo; Se implementan características adicionales y se arreglan las cosas básicas
- google / omaha es más activo y se agregan cambios de google pero no frecuentemente
- Para implementar actualizaciones manuales en cualquier idioma, puede usar las clases com
Currículum
- google omaha sigue vivo, pero de una manera perezosa
- los errores son corregidos, pero no espere revisiones
- google omaha se adapta a las aplicaciones cliente de Windows compatibles con Windows Vista y hacia arriba
- el lado del servidor que estoy usando admite también brillar para soporte de plataforma cruzada
- retroalimentaciones y bloqueos también son compatibles en el servidor
- las evaluaciones se envían con los búferes de protocolo de Google
- el manejo de fallas se realiza con un panel de control
Personalmente iría por google omaha en lugar de implementar mi propia solución. Sin embargo, discutiremos esto internamente.