Incremental deployment of new features
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Incremental deployment of new features

on

  • 1,709 views

 

Statistics

Views

Total Views
1,709
Views on SlideShare
1,705
Embed Views
4

Actions

Likes
1
Downloads
6
Comments
0

1 Embed 4

http://a0.twimg.com 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Incremental deployment of new features Presentation Transcript

  • 1. Incremental deployment of new features Sean Sullivan Portland Java User Group January 17, 2012
  • 2. • Gilt Groupe• International Shipping project• Incremental deployment
  • 3. Gilt Groupe
  • 4. online retailer
  • 5. venture backed company
  • 6. May 2011
  • 7. What does Gilt sell?
  • 8. Apparel
  • 9. Home furnishings
  • 10. Food
  • 11. Local deals
  • 12. Travel
  • 13. Gilt HQ
  • 14. Gilt Portland
  • 15. International Shipping
  • 16. November 2011
  • 17. Project goals• allow Gilt’s customers to ship merchandise worldwide• display price information in customer’s preferred currency• accept payment in customer’s preferred currency
  • 18. Project goals• legal compliance• fraud prevention• streamlined user experience
  • 19. Technical scope• Checkout UI • Warehouse• Data model • Finance• Order processing • Reporting• Payment processing • Web analytics• Email • Third party integration
  • 20. Checkout UICheckout 1.0 Checkout 2.0• Ruby on Rails • Java + JSP• Domestic checkout • Domestic checkout only • International checkout • Clear separation between UI logic and business logic
  • 21. International Checkout
  • 22. Project roadmap
  • 23. 1. Write code2. Deploy to production3. Profit!
  • 24. Deploy to production?
  • 25. We need adeployment strategy!
  • 26. Deploy early, deploy often?
  • 27. Velocity conference June 2009
  • 28. Dark launch?
  • 29. Facebook Engineering July 2009
  • 30. Feature flags?
  • 31. Flickr engineering December 2009
  • 32. Ramp up gradually?
  • 33. Facebook Engineering May 2008
  • 34. Dog food?
  • 35. wikipedia.org
  • 36. joelonsoftware.com
  • 37. Gilt deployment strategy
  • 38. 1. dev team builds feature using “feature flags”2. QA testing3. deploy new feature to production
  • 39. 4. make feature available to a subset of Gilt employees5. make feature available to all Gilt employees
  • 40. 6. make feature available to a subset of customers7. gradually ramp up to all customers 100%
  • 41. User partitions
  • 42. Partition 1 Partition 2 Partition 3 ... Partition 1000
  • 43. Intelligent routing
  • 44. Checkout 1.0Zeus Checkout 2.0
  • 45. Detecting featureavailability at runtime
  • 46. Java APIimport com.mycorp.FeatureService;if (featureService.isFeatureEnabled(appRequest, INTERNATIONAL_SHIPPING)) { // do something}else { // do something else}
  • 47. Custom JSP tag<%@ taglib uri="/WEB-INF/mycorp.tld" prefix="mycorp" %><%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %><c:choose><c:when test=”${mycorp.isFeatureEnabled(‘internationalShipping’, pageContext)}”> International Shipping!</c:when><c:otherwise> <img src=”nyan-cat.jpg”/></c:otherwise></c:choose>
  • 48. Questions?
  • 49. THE END