17 commentaires
Honnêtement, le scale-to-zero de Knative est une fausse bonne idée pour la plupart des apps de production. La latence au démarrage (cold start) est un tueur de performance pour nos API gRPC.
On a testé le minScale: 1 pour justement éviter le cold start, mais ça rend Knative moins intéressant financièrement.
C'est exactement ce que je craignais. Argo semble plus pérenne pour du long terme.
Le problème d'Argo Rollouts, c'est que ça demande une stack de monitoring parfaite. Si ton Prometheus est mal configuré, tes rollbacks automatiques ne déclencheront jamais ou pire, feront des faux positifs.
Pourquoi ne pas utiliser ServiceMesh avec un simple TrafficSplit ? Knative devient vite une usine à gaz avec ses propres CRD.
Ajouter Istio juste pour le splitting, ça me semble ajouter une couche de complexité encore plus grande que Knative.
Exactement. Istio, c'est le cauchemar de maintenance. Restez sur du pur Kubernetes avec Argo.
La lisibilité est un point clé ici, on a une équipe dev qui n'est pas forcément experte en infra.
Si tes devs ne sont pas experts, évite Knative. Le debugging des logs de versioning Knative est une horreur sans nom.
Je confirme. On a migré de Knative vers Argo l'an dernier et on a réduit nos temps de build/deploy de 40%.
40% de gain, c'est massif. C'est le genre d'argument qui finit le débat en réunion.
Attention à la gestion des secrets avec Argo. Ce n'est pas intégré nativement comme dans certains patterns serverless.
Le débat se résume à : voulez-vous de l'automatisation simple (Knative) ou de la fiabilité contrôlée (Argo) ?
Merci à tous pour ces retours. On part sur Argo Rollouts. La fiabilité et la maintenabilité l'emportent sur le scale-to-zero pour nous.
Laisser une réponse
Vous devez être connecté pour poster un message !
Je suis en plein dilemme pour notre stratégie de release sur Kubernetes. On hésite énormément entre utiliser Knative Serving pour son approche serverless native et Argo Rollouts pour un contrôle granulaire des déploiements type canary.
D'un côté, Knative gère l'autoscaling vers zéro, ce qui est top pour nos microservices peu sollicités. De l'autre, Argo Rollouts semble beaucoup plus robuste pour les déploiements complexes avec analyse Prometheus. Est-ce qu'il y a vraiment un intérêt à mixer les deux ou est-ce juste une complexité inutile pour une équipe SRE ?