Download - Continuous Innovation @ Gilt Groupe
![Page 1: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/1.jpg)
Continuous Innovation
Eric Bowman VP Architecture
Gilt Groupe
@[email protected] http://tech.gilt.com
![Page 2: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/2.jpg)
http://www.flickr.com/photos/nationaalarchief/4193508328/sizes/o/in/photolist-7oyPVJ-7oyPWW-7oyPYf-7oyQ1s-7oyQ4u-7oyQh7-7oyQju-7oyQmm-7oyQqS-7oDszB-a7vaUw-fJHB9E-fJHBbj-fJHBaw-fJHB8N-fJrhsz-9uzYLJ-f5hWTe-f5i3Fv-f5ibHt-f5i6T2-f5ibEH-f5ibFz-f5ibGF-f5i3G8-fa97G7-f5i6Sk-f5ibDa-f5i3EH-f5i3E2-f5ifwt-f5i6Tk-f5i6PX-f5i3CV-fadccE-fadcgw-fadcf5-7JxdSE-8F3Akp-8F3AjM-8F6Lah-7GBRia-8PWU2Q-8PWU8j-dbzybh-9Nk8fN-8wBt83-cweZi9-8PWYgo-8PWYTN-8PTRqn/
![Page 3: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/3.jpg)
http://megmurph.com/wp-content/uploads/2013/03/success-1.jpg
![Page 4: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/4.jpg)
http://upload.wikimedia.org/wikipedia/commons/7/7f/Structure_Paris_les_Halles.jpg
![Page 5: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/5.jpg)
http://upload.wikimedia.org/wikipedia/commons/thumb/1/19/Train_wreck_at_Montparnasse_1895.jpg/853px-Train_wreck_at_Montparnasse_1895.jpg
![Page 6: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/6.jpg)
http://www.andpop.com/wp-content/uploads/2013/01/Screen-Shot-2013-01-03-at-11.18.47-AM.png
![Page 7: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/7.jpg)
http://ontherealny.com/wp-content/uploads/2013/01/OfficeSpace.jpg
![Page 8: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/8.jpg)
http://500motivators.com/motivate/me/motivation-its-not-that-im-lazy-i-just-dont-care/
![Page 9: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/9.jpg)
![Page 10: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/10.jpg)
![Page 11: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/11.jpg)
![Page 12: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/12.jpg)
A Social Experiment.
![Page 14: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/14.jpg)
http://1.bp.blogspot.com/_gS-Swh3xoXc/TGBKtRIB2PI/AAAAAAAAA8o/j-2oz2Nhdm8/s1600/Dave+driving+Antique+Car.JPG
![Page 15: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/15.jpg)
http://bothsides.wpengine.netdna-cdn.com/wp-content/uploads/2013/09/Transparency.jpg
![Page 18: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/18.jpg)
http://www.flickr.com/photos/dno1967b/8600410187/sizes/h/in/photolist-e6Zmjg-a9Ton2-9GUHja-ehXg1P-aaryES-fbpos6-fKqHKk-exbKfX-aarwxu-aawuWM-aaoH6B-8T5YTg-858k1A-ajFRPZ-7N7783/
![Page 19: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/19.jpg)
object Build extends ClientServerCoreProject with ClientServerCoreDeps { val name = "svc-persistent-session" val servicePort = 8260 override val ioncannonTrack = IonCannon.FastTrack override def coreDeps = Seq( "com.giltgroupe" %% "commons-util" % "5.2.3" ) ++ defaultTestLibs override def clientDeps = Seq( "com.giltgroupe" %% "commons-core" % "5.2.3", "com.giltgroupe" %% "commons-test" % "5.2.3" % "test" ) ++ defaultTestLibs override def serverDeps = Seq( "com.giltgroupe" %% "commons-core" % "5.2.3", "com.giltgroupe" %% "commons-voldemort" % "1.1.1" % "compile->compile;endorsed->endorsed", "com.giltgroupe" %% "commons-squeryl" % "0.5.2", "com.gilt.service" %% "zookeeper" % "0.6.7" ) ++ gilt.ServiceFramework.dependencies("2.3.1") ++ defaultTestLibs }
![Page 20: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/20.jpg)
$ sbt gilt-upgrade
![Page 21: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/21.jpg)
object Build extends ClientServerCoreProject with ClientServerCoreDeps { val name = "svc-persistent-session" val servicePort = 8260 override val ioncannonTrack = IonCannon.FastTrack override def coreDeps = Seq( "com.giltgroupe" %% "commons-util" % "5.2.4" ) ++ defaultTestLibs override def clientDeps = Seq( "com.giltgroupe" %% "commons-core" % "5.2.4", "com.giltgroupe" %% "commons-test" % "5.2.4" % "test" ) ++ defaultTestLibs override def serverDeps = Seq( "com.giltgroupe" %% "commons-core" % "5.2.4", "com.giltgroupe" %% "commons-voldemort" % "1.1.1" % "compile->compile;endorsed->endorsed", "com.giltgroupe" %% "commons-squeryl" % "0.5.3", "com.gilt.service" %% "zookeeper" % "0.6.7" ) ++ gilt.ServiceFramework.dependencies("2.4.0") ++ defaultTestLibs }
![Page 22: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/22.jpg)
@Path("/persistent-session") class PersistentSessionResource(storage: StorageApi) { ! @GET @Path("/{namespace}/{id}/{key}") def get(@PathParam("namespace") namespace: String, @PathParam("id") id: String, @PathParam("key") key: String): Option[core.Value] = { storage.get(makeKey(namespace, id, key)) }
![Page 23: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/23.jpg)
trait Session { def get(key: String): Future[Option[Value]] } !private class SessionImpl(namespace: String, id: String) extends Session with CommonsClient[ServiceException] with CommonsClientConfig {
def get(key: String): Future[Option[Value]] = { getResponse(svcUri,
"persistent-session/%s/%s/%s".format(namespace, id, key)) { bytes => CommonsJson.parse[Option[core.Value]](bytes).map(
ValueImpl.apply) } }
![Page 24: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/24.jpg)
abstract class SessionClientTest extends TestClients with Predictable { @Test def putValueCanBeGotBack() { val session = sessionClient.getSession(rndString()) val key = rndString() val value = rndString() session.get(key).get() should equal(None) session.put(key, Value(value)).get() session.get(key).get().get.value should equal(value) } } !@Functional class FunctionalSessionClientTest extends SessionClientTest with FunctionalTest @Capture class CaptureSessionClientTest extends SessionClientTest with CaptureTest @Mock class MockSessionClientTest extends SessionClientTest with MockTest
![Page 25: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/25.jpg)
$ sbt release
![Page 26: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/26.jpg)
![Page 27: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/27.jpg)
val cluster = allocateCluster("svc-foo", "1.2.2") for (server <- cluster.allocateServers()) { deploySoftware(server, "svc-foo", "1.2.2") addToPool(server) } for (server <- findServers("svc-foo", "1.2.1")) { removeFromPool(server) } garbageCollect("svc-foo", "1.2.1")
![Page 28: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/28.jpg)
![Page 30: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/30.jpg)
http://www.recruitmenttakeout.com/wp-content/uploads/2013/04/brian.png
![Page 31: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/31.jpg)
Openness. Autonomy.
Transparency. Trust.
![Page 32: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/32.jpg)
Strategy
![Page 33: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/33.jpg)
Strategy
Initiative 1Initiative
![Page 34: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/34.jpg)
Initiative
![Page 35: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/35.jpg)
Initiative
Initiative 1KPI
![Page 36: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/36.jpg)
Initiative
Initiative 1KPI
Team
![Page 37: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/37.jpg)
![Page 38: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/38.jpg)
Tools for Emergent Centralization
![Page 39: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/39.jpg)
Publish on the blog?
![Page 40: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/40.jpg)
Have a party?
![Page 41: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/41.jpg)
Release to production?
![Page 42: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/42.jpg)
Anybody. Anytime.
![Page 43: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/43.jpg)
Zero Waiting.
![Page 44: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/44.jpg)
http://3.bp.blogspot.com/_q3ojg-NVpyU/TLMLUNGhgjI/AAAAAAAABS8/IJQSBSqII5s/s1600/compass.jpg
![Page 45: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/45.jpg)
gilt.com
![Page 46: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/46.jpg)
giltcity.com
gilttaste.com
parkandbond.com
Gilt Hom
e
gilt.com
![Page 47: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/47.jpg)
giltcity.comgilttaste.comparkandbond.comGilt Homegilt.com
![Page 48: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/48.jpg)
gilt.com
platform
![Page 49: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/49.jpg)
http://shirt.woot.com/derby/entry/18736/positive-feedback-loop
![Page 50: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/50.jpg)
Voluntary Adoption
![Page 51: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/51.jpg)
• Move Fast • Fail Fast • Focus on Function • Enabled by Platform • Pick & Choose • Drives Platform Innovation • Teams Measured by KPIs
Shared UI
Features
Core
DB
ProductPlatform
![Page 52: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/52.jpg)
• Move Slower • Proven Technologies • Focus on Scaling • Drives Product • Teams Measured by
Adoption
Shared UI
Features
Core
DB
ProductPlatform
![Page 53: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/53.jpg)
Shared UI
Features
Core
DB
ProductPlatform Stronger than
the sum of its parts
![Page 54: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/54.jpg)
http://4.bp.blogspot.com/-oemCGhrR6yw/UHnXg5LiiTI/AAAAAAAAHOI/JyZctjen3_4/s1600/simple+vs+complex.png
![Page 56: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/56.jpg)
![Page 57: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/57.jpg)
https://www.facebook.com/photo.php?fbid=403764539746425&set=a.289682334487980.65204.289626304493583&type=1&theater
![Page 58: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/58.jpg)
http://pocketpause.com/woofwoof/wp-content/uploads/2012/12/IMG_6225.jpg
http://i.ytimg.com/vi/g8yN5fivBt8/0.jpg
![Page 59: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/59.jpg)
http://marcelnunis.com/blog/wp-content/uploads/2011/12/coins.jpg
![Page 60: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/60.jpg)
http://brettlegree.files.wordpress.com/sunset-joy-2-1.jpg
![Page 61: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/61.jpg)
http://thumbs.dreamstime.com/z/boy-sleeping-hammock-5090586.jpg
![Page 62: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/62.jpg)
http://online.portenf.sa.gov.au/sites/default/files/16_0.jpg
![Page 63: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/63.jpg)
https://www.apertus.org/sites/default/files/bart_os.gif
![Page 64: Continuous Innovation @ Gilt Groupe](https://reader034.vdocuments.net/reader034/viewer/2022042513/54b6b78f4a79593e4f8b4610/html5/thumbnails/64.jpg)
http://creditmanagementassociation.org/wp-content/uploads/2013/03/mousetrap.jpg