62 votes

Qu'est-ce que l'expérience avec Google "Omaha" (leur mise à jour automatique du moteur pour Chrome)?

Google open-source le mécanisme de mise à jour Google Chrome comme l'Omaha.

Il semble assez compliqué et difficile à configurer pour quelqu'un qui n'est pas Google. Qu'est-ce que l'expérience à l'aide d'Omaha dans les projets? Peut-il recommander?

31voto

Bevan Collins Points 812

Nous utilisons Omaha pour nos produits. Initialement, il y avait un peu de travail pour changer codé en dur les Url et les chaînes de caractères. Aussi le serveur n'est pas open source, mais le protocole est bien documenté de sorte qu'il n'était pas difficile de créer un serveur compatible à l'aide de Google App Engine.

Il n'y a pas de regrets à l'amerrissage forcé notre ancien client de mise à jour de la solution et va à l'Omaha.

16voto

Mohamed Mansour Points 18019

Peut-être, vous pouvez tirer parti de la courgette, de l'algorithme, qui est le mécanisme de mise à jour qui est utilisé dans Google Chrome. Il est vraiment facile à utiliser et à appliquer à votre infrastructure. Actuellement, il travaille juste pour les systèmes d'exploitation Windows. Windows les utilisateurs de Chrome recevoir des mises à jour en petits morceaux, à la différence des utilisateurs de Mac et Linux qui continue à recevoir les morceaux de la taille totale.

Vous pouvez trouver le code source ici dans le Chrome référentiel SVN. C'est un algorithme de compression à appliquer de petites mises à jour de Google Chrome au lieu de l'envoi de l'ensemble de la distribution de tous les temps. Plutôt que de pousser l'ensemble de 10 MO pour l'utilisateur, vous pouvez appuyez simplement sur la comparaison des changements.

Plus d'informations sur la façon de Courgette, les travaux peuvent être trouvés ici et le blog officiel de post à ce sujet ici.

Il 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 consultez la source, vous pouvez le compiler un exécutable (clic droit de la compilation dans Visual Studio) et vous pouvez utiliser l'application dans sa forme pour le test:

Utilisation:

  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 l'inclure dans votre demande et faire les mises à jour à partir de là. Vous pouvez imiter le Omaha, la mise à jour automatique de l'environnement par la création de votre propre service de vente que vous vérifier périodiquement et à l'exécution de la Courgette.

1voto

Jakub Konecki Points 28852

Dans l' .NET monde, vous voudrez peut-être jeter un oeil à ClickOnce de déploiement.

0voto

9090 Points 680

Un mécanisme de mise à jour est quelque chose que j'avais personnellement le code moi-même, et toujours dans le passé. Sauf si vous avez un de plusieurs giga-octets d'application et souhaitez télécharger des morceaux seulement, comptez sur votre propre code/installateur. Cela dit, je n'ai pas regardé de Google bibliothèque open source à tous.. et ne savais même pas qu'elle existait. Je ne peux pas l'imaginer d'offrir quelque chose de supérieur à ce que vous pourriez le code vous-même, et avec votre propre code, vous n'êtes pas lié par les restrictions de licence.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X