Testing Blog

Hermetic Servers

Wednesday, October 03, 2012
Share on Google+ Share on Twitter Share on Facebook
Google
Labels: Chaitali Narla , Diego Salas

9 comments :

  1. DaveHOctober 3, 2012 at 3:17:00 PM PDT

    Very interesting post. I will be looking into implementing something similar in our system. I have one question. If the servers are receiving requests I assume they are running inside a service container. Starting up the likes of Tomcat WebSphere jboss etc US very slow. How do you manage to include these tests in a continuous build environment , they must be slow.?

    ReplyDelete
    Replies
    1. Chaitali NarlaOctober 6, 2012 at 7:57:00 AM PDT

      Hi Dave,

      Yes, the tests are large tests and certainly some of our slower tests. We run them in a "continuous build" in the sense of running them automatically at a regular frequency such as every 15 mins or half hour. Running them at every changelist is definitely expensive. But running at every few changelists means a binary search between the last passed run and the failed run will help us track down the problem changelist fairly fast.

      Delete
    2. Reply
  2. Bharath HemachandranOctober 4, 2012 at 12:31:00 AM PDT

    Have you used this to isolate and find non-network related performance bottlenecks in sub-systems as well(I don't see it listed as a potential use case as you were writing about end - end testing)?

    I think this would a really useful thing to do - especially to find performance issues related to the various subsystems in the SUT.

    For example - badly written stored procedures, deadlocks, paging, issues within the middleware etc can be found quite easily could be detected quite early in the development cycle.

    I suppose the biggest problem would be to package the hermetic server itself for testing. Could you list out some issues you have faced in doing so?

    ReplyDelete
    Replies
    1. Chaitali NarlaOctober 6, 2012 at 8:08:00 AM PDT

      Hi Bharath,

      You are right that hermetic servers can be used in performance tests! We use them for micro-benchmarking tests and have been able to catch performance regressions in servers very early with such tests.

      In addition to the points we mentioned in the article for packaging the hermetic server, performance tests do need additional hooks in the package. One of them is the ability to inject simulated latencies to the request/response times between servers. We have found that useful for modeling real servers better.

      Delete
    2. Bharath HemachandranOctober 10, 2012 at 9:19:00 PM PDT

      I was talking about a simpler system wherein the code that gets checked in automatically gets bench-marked and compared versus its previous runs as well. Or at a component/system level perhaps the log times for the various tasks get compared with one another.

      I don't believe any hooks into the code is required at all - although logging may require some debugging capability within the system.

      Just by comparing the times as the product is being built out we can see how the feature/component/system performs as the code base becomes larger.

      Delete
    3. Reply
  3. Łukasz JasińskiOctober 8, 2012 at 11:55:00 PM PDT

    Nice post and good solution :)

    ReplyDelete
  4. NKN's ShotsAugust 30, 2013 at 8:36:00 PM PDT

    Very insight article

    ReplyDelete
  5. amanOctober 9, 2013 at 11:33:00 PM PDT

    This is nice one. we can easily to check performance of the testing in within server scale which we have no idea about when we used Sql query and sub query task ..!

    ReplyDelete
  6. Tamas KohegyiJune 12, 2015 at 2:05:00 AM PDT

    If you serach for Mock Server solution, pl s have a look at this open sourced tool: https://github.com/epam/Wilma

    ReplyDelete
Add comment
Load more...

The comments you read and contribute here belong only to the person who posted them. We reserve the right to remove off-topic comments.

  

Labels


  • GTAC 58
  • TotT 55
  • James Whittaker 42
  • Misko Hevery 32
  • Anthony Vallone 27
  • Patrick Copeland 23
  • Jobs 17
  • C++ 11
  • Andrew Trenk 8
  • Patrik Höglund 8
  • JavaScript 7
  • Allen Hutchison 6
  • Zhanyong Wan 6
  • Harry Robinson 5
  • Java 5
  • Julian Harty 5
  • Alberto Savoia 4
  • Philip Zembrod 4
  • Shyam Seshadri 4
  • Chrome 3
  • Erik Kuefler 3
  • John Thomas 3
  • Marc Kaplan 3
  • Markus Clermont 3
  • Sonal Shah 3
  • APIs 2
  • Alek Icev 2
  • April Fools 2
  • Chaitali Narla 2
  • Chrome OS 2
  • Diego Salas 2
  • George Pirocanac 2
  • Jason Arbon 2
  • Jochen Wuttke 2
  • Lesley Katzen 2
  • Mobile 2
  • Simon Stewart 2
  • Tony Voellm 2
  • WebRTC 2
  • Yvette Nameth 2
  • Zuri Kemp 2
  • Aaron Jacobs 1
  • Abhishek Arya 1
  • Adam Bender 1
  • Adam Porter 1
  • Alan Faulkner 1
  • Alan Myrvold 1
  • Alex Eagle 1
  • Android 1
  • Antoine Picard 1
  • App Engine 1
  • Ari Shamash 1
  • Arif Sukoco 1
  • Benjamin Pick 1
  • Bruce Leban 1
  • Christopher Semturs 1
  • Dave Chen 1
  • Dmitry Vyukov 1
  • Dori Reuveni 1
  • Eduardo Bravo Ortiz 1
  • Ekaterina Kamenskaya 1
  • Espresso 1
  • Google+ 1
  • Goranka Bjedov 1
  • Hank Duan 1
  • Havard Rast Blok 1
  • Hongfei Ding 1
  • Jason Elbaum 1
  • Jason Huggins 1
  • Jay Han 1
  • Jessica Tomechak 1
  • Jim Reardon 1
  • Joe Allan Muharsky 1
  • Joel Hynoski 1
  • John Micco 1
  • John Penix 1
  • Jonathan Rockway 1
  • Jonathan Velasquez 1
  • Julie Ralph 1
  • Karin Lundberg 1
  • Kaue Silveira 1
  • Kevin Graney 1
  • Kirkland 1
  • Kostya Serebryany 1
  • Kurt Alfred Kluever 1
  • Manjusha Parvathaneni 1
  • Mark Ivey 1
  • Mark Striebeck 1
  • Marko Ivanković 1
  • Matt Lowrie 1
  • Meredith Whittaker 1
  • Michael Bachman 1
  • Michael Klepikov 1
  • Mike Aizatsky 1
  • Mike Wacker 1
  • Mona El Mahdy 1
  • Noel Yap 1
  • Oliver Chang 1
  • Patricia Legaspi 1
  • Peter Arrenbrecht 1
  • Phil Rollet 1
  • Pooja Gupta 1
  • Radoslav Vasilev 1
  • Rajat Dewan 1
  • Rajat Jain 1
  • Rich Martin 1
  • Richard Bustamante 1
  • Roshan Sembacuttiaratchy 1
  • Ruslan Khamitov 1
  • Sean Jordan 1
  • Sharon Zhou 1
  • Siddartha Janga 1
  • Stephen Ng 1
  • Tejas Shah 1
  • Test Analytics 1
  • Vojta Jína 1
  • iOS 1


Archive


  •     2017
    • Jan
  •     2016
    • Dec
    • Nov
    • Oct
    • Sep
    • Aug
    • Jun
    • May
    • Apr
    • Mar
    • Feb
  •     2015
    • Dec
    • Nov
    • Oct
    • Aug
    • Jun
    • May
    • Apr
    • Mar
    • Feb
    • Jan
  •     2014
    • Dec
    • Nov
    • Oct
    • Sep
    • Aug
    • Jul
    • Jun
    • May
    • Apr
    • Mar
    • Feb
    • Jan
  •     2013
    • Dec
    • Nov
    • Oct
    • Aug
    • Jul
    • Jun
    • May
    • Apr
    • Mar
    • Jan
  •     2012
    • Dec
    • Nov
    • Oct
    • Sep
    • Aug
  •     2011
    • Nov
    • Oct
    • Sep
    • Aug
    • Jul
    • Jun
    • May
    • Apr
    • Mar
    • Feb
    • Jan
  •     2010
    • Dec
    • Nov
    • Oct
    • Sep
    • Aug
    • Jul
    • Jun
    • May
    • Apr
    • Mar
    • Feb
    • Jan
  •     2009
    • Dec
    • Nov
    • Oct
    • Sep
    • Aug
    • Jul
    • Jun
    • May
    • Apr
    • Feb
    • Jan
  •     2008
    • Dec
    • Nov
    • Oct
    • Sep
    • Aug
    • Jul
    • Jun
    • May
    • Apr
    • Mar
    • Feb
    • Jan
  •     2007
    • Oct
    • Sep
    • Aug
    • Jul
    • Jun
    • May
    • Apr
    • Mar
    • Feb
    • Jan

Feed

Subscribe by Email

follow us in feedly

Company-wide

  • Official Google Blog
  • Public Policy Blog
  • Student Blog

Products

  • Google for Work Blog
  • Chrome Blog
  • Official Android Blog

Developers

  • Ads Developer Blog
  • Android Developers Blog
  • Developers Blog
  • Google
  • Privacy
  • Terms