Question Quelle est l'expérience avec Google 'Omaha' (leur moteur de mise à jour automatique pour Chrome)?


Google a ouvert le mécanisme de mise à jour automatique utilisé dans Google Chrome en tant que Omaha.

Cela semble compliqué et difficile à configurer pour quiconque n'est pas Google. Quelle est l'expérience d'utilisation d'Omaha dans les projets? Peut-il être recommandé?


59
2017-09-14 17:37


origine


Réponses:


Nous utilisons Omaha pour nos produits. Au début, il y avait pas mal de travail pour changer les URL et les chaînes codées en dur. De plus, le serveur n'est pas open source, mais le protocole est bien documenté. Il n'était donc pas difficile de créer un serveur compatible à l'aide de Google App Engine.

Nous ne regrettons pas d’abandonner notre ancienne solution de mise à jour de client et d’accéder à Omaha.


30
2017-08-31 22:11



Peut-être, vous pouvez tirer parti de la algorithme de courgette, qui est le mécanisme de mise à jour utilisé dans Google Chrome. Il est vraiment facile à utiliser et à appliquer à votre infrastructure. Actuellement, cela ne fonctionne que pour les systèmes d'exploitation Windows. Les utilisateurs Windows de Chrome reçoivent des mises à jour par petits blocs, contrairement aux utilisateurs Mac et Linux qui reçoivent toujours les blocs en taille totale.

Vous pouvez trouver le code source ici dans le Chrome Dépôt SVN. Il s’agit d’un algorithme de compression permettant d’appliquer de petites mises à jour à Google Chrome au lieu d’envoyer la distribution entière en permanence. Plutôt que de pousser l’ensemble des 10 Mo vers l’utilisateur, vous ne pouvez que modifier les différences.

Plus d'informations sur le fonctionnement de Courgette ici et le blog officiel à ce sujet ici.

Cela fonctionne comme ceci:

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)

Lorsque vous extrayez la source, vous pouvez la compiler en tant qu'exécutable (clic droit, compiler dans Visual Studio) et vous pouvez utiliser l'application sous cette forme pour tester:

Usage:

  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>

Ou, vous pouvez inclure cela dans votre application et faire les mises à jour à partir de là. Vous pouvez imiter l'environnement de mise à jour automatique Omaha en créant votre propre service que vous vérifiez et exécutez régulièrement Courgette.


16
2017-10-10 02:55



Dans le monde .NET, vous voudrez peut-être regarder ClickOnce déploiement.


1
2017-10-07 20:21



METTRE À JOUR

  • Personnaliser google omaha n'est pas si simple si vous n'avez aucune connaissance sur c ++, python ou com.
  • Les mises à jour ne sont pas publiées fréquemment
  • Pour mettre en œuvre des mises à jour manuelles dans n'importe quelle langue, vous pouvez utiliser le cours de com

CV 

  • google omaha est toujours en vie mais de manière paresseuse
  • les bogues sont corrigés mais n'attendez pas de correctifs
  • google omaha s'adapte aux applications client Windows prises en charge à partir de Windows Vista et plus
  • le côté serveur que j'utilise prend également en charge les supports croisés
  • les retours et les plantage sont également supportés sur le serveur
    • les retours sont envoyés avec les tampons du protocole google
    • la gestion des crashs se fait avec le breakpad

Personnellement, j'irais pour google omaha au lieu d'implémenter ma propre solution. Cependant, nous allons discuter de cette interne.


1
2017-07-14 12:53



Je viens de passer quelques jours à configurer Omaha. C'est fastidieux, mais pas impossible. J'ai résumé les étapes requises dans un détail Didacticiel. j'utilise Omaha-serveur pour le backend. Je ne peux pas encore commenter l'utilisation de la production, mais mettrai à jour cette réponse en apprenant plus.


1
2017-08-01 09:32



Un mécanisme de mise à jour automatique est quelque chose que je code personnellement et que j'ai toujours utilisé par le passé. À moins d’avoir une application multi-gigaoctets et de ne télécharger que des éléments, il vous suffit de vous fier à votre propre code / installateur. Cela dit, je n'ai pas du tout regardé la bibliothèque open source de Google et je ne savais même pas qu'elle existait. Je ne peux pas imaginer qu'il offre quelque chose de supérieur à ce que vous pourriez coder vous-même, et avec votre propre code, vous n'êtes lié par aucune restriction de licence.


0
2017-09-26 16:49