/srv/irclogs.ubuntu.com/2013/10/29/#launchpad-dev.txt

StevenKwgrant: So, microservices?04:48
wgrantStevenK: Have you adequately stress-tested the implementation, including how it behaves around failed transactions and similar scenarios?04:49
StevenKwgrant: You were attempting to break it, last I heard.04:50
StevenKSo I'm curious how that went.04:50
wgrantI recall I couldn't get it to actually start.04:50
StevenKHow were you trying to start it?04:50
wgrantI think even the tests failed.04:50
wgrantI don't recall if you fixed that04:51
StevenKBleh, auditor tests fail on saucy due to django 1.5.404:51
StevenK... python-django is 44MiB?04:52
wgrantSo remember what I said about framework choice.04:52
StevenKI don't really want to rewrite auditor at this point :-)04:53
StevenKwgrant: Keep in mind that auditor is an django app -- auditorfixture provides a handy wrapper to run it by hand04:55
StevenKwgrant: http://pastebin.ubuntu.com/6322268/05:02
wgrantStevenK: Looks like you fixed the bug.05:19
wgrantStevenK: So, last time I had you make substantial changes, you added transaction support. How do failed transactions behave? What happens if the service is down? What is the HA story to prevent the service from going down except in network outages?05:20
wgrantHas performance been tested? How will we handle upgrades?05:21
StevenKwgrant: Failed transactions should be handled by the transaction manager, we only commit if the transaction status is COMMITTED05:22
StevenKwgrant: I *think* we time out after 1 second if the service is down when trying to GET or POST.05:23
wgrant"time out"05:23
wgrantWhat does that mean?05:23
StevenKThe urlopen() calls in auditorclient have a default timeout of 1 second.05:24
wgrantSure.05:24
wgrantBut that doesn't tell us what happens when the service is down or there is a network fault.05:24
wgrantThat tells us that something will probably happen after approximately one second.05:24
StevenKI think I tested this, and you get back no data on GET or POST05:25
StevenKIn terms of the HA story, I'm not sure.05:26
wgrantIs it reasonable for it to simple return no data for failed reads, and throw away failed writes?05:27
StevenKFor the former, yes, probably not for the latter.05:28
StevenKBut I'm still trying to swap stuff in, since it's been months.05:28
wgrantFor the former it may be acceptable for the current scenario, I'm not sure. But it's certainly not acceptable for all scenarios.05:28
wgrantI raised these issues last time too, and you ignored them :P05:28
StevenKPerformance was going to be looked at closely when I actually got this onto staging, since it won't be ready for an end-to-end test until this stuff lands.05:30
StevenKUpgrades involves pushing a new dist tarball into the download-cache, and bumping versions.cfg of LP, auditorfixture and production-auditor.05:31
wgrantDB upgrades?05:31
wgrantAuditor is a well-isolated service; performance testing would want to be done outside the context of LP.05:32
StevenKThere is some support for south sprinkled in, but I've not had to change the schema yet.05:32
wgrantDoing it on LP staging would be prohibitively slow; you'd need hundreds of thousands to millions of uploads.05:32
wgrantEven if you do use south, how do we do DB upgrades?05:32
wgrantRemember that Launchpad likes to read from and write to auditor.05:32
StevenKTurn the feature flag off, and it will not any more.05:33
wgrantBut now I've lost data.05:33
wgrantNow malicious archive admins have just approved a thousand rootkitted SRUs :(05:33
wgrantAnd I can't tell who to fire :(05:33
StevenKwgrant: Sure, and I answer "I don't know", and that's the answer I get if I ask if you're happy with the branch. :-P05:34
wgrantAnswers to these questions are essential for approval of the branch, because this is the first significant separate datastore we have.05:35
StevenKYes.05:35
StevenK"Do it as a service,05:35
StevenKBlah05:35
StevenK"Do it as a microservice, it will be easy" and other lies lifeless has told.05:36
wgrantIt would be easy if we had existing microservice patterns, or even rules that they should follow.05:36
wgrantBut this is breaking new ground.05:36
wgrantIn the Launchpad world.05:36
lifelessSorry :)05:36
lifelessBut they aren't lies.05:36
StevenKIs this where I give up horribly and put up a DB patch?05:36
lifelessIf I was still working on LP, I'd happily be helping you get through this transition.05:37
StevenKSure.05:37
StevenKlifeless: Sure, and then you get to point at the ground that auditor has forged when someone writes another microservice, but there is no forging, just lots of roadblocks.05:40
lifelessStevenK: wgrant: so, looking back at the discussion06:37
lifelessStevenK: wgrant: it seems to me that the questions wgrant is asking are generic and a checklist for them around the design and client-usage-of microservices would be a good idea.06:38
wgrantCertainly :)06:38
wgrantThe goal of the review process for the auditor integration is to become such a checklist.06:38
wgrantThat is, I believe, fundamentally more valuable than auditor itself.06:39
lifelessso, my point is that listing them here is lossy.06:39
lifelessHow about wiki page in the services area06:39
lifelessand a second wiki page with the concrete answers to the questions for auditor06:39
StevenKI still don't know the answers.06:40
lifelesswhere there answers may either answer it (at a design level) or say 'pending' or whatever if some evaluation hasn't been done06:40
lifelessand then the two of you (plus LOSAs as appropriate) can collaborate on getting good answers and fillout out the questionnaire06:40
=== hloeung is now known as Guest93605
=== Guest93605 is now known as hloeung
=== hloeung is now known as Guest69967
=== Guest69967 is now known as hloeung
=== Ursinha-afk is now known as Ursinha
=== Laney is now known as KruSha666
=== KruSha666 is now known as Laney

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!