Download - Commerce - Orchard Harvest Amsterdam 2013
CommerceBertrand Le Roy
Benevolent Dictor, Co-Founder [nwazet
Brett MorrisonCo-Founder, Chief Innovation Officer
Onestop Internet
Orchard Harvest Conference – Amsterdam 2013
CartCheckout & Payment
How hard can this be?Get going! Off you go!
A harder problem than your manager thinks
Orchard Harvest Conference – Amsterdam 2013
Products: content itemsDescription, TitleReviews: comments & votesPhotos: galleriesStatic pagesSearchRelated Items
a CMS should help
Orchard Harvest Conference – Amsterdam 2013
CartCheckout, Payment, RefundsTaxesShippingOrder ProcessingInventoryRule-based Discounts and PromotionsBundlesReviewsRelated ProductsFaceted Searchetc.
no such thing as simple commerce
Orchard Harvest Conference – Amsterdam 2013
payment gateways are all crap
Orchard Harvest Conference – Amsterdam 2013
except for Stripe
Orchard Harvest Conference – Amsterdam 2013
integrated solutions are worse
The vital info according to Amazon
Orchard Harvest Conference – Amsterdam 2013
shipping gateways are all crap
Orchard Harvest Conference – Amsterdam 2013
except for postmaster.ioFree under 30 shipments / month$9.95 for 30-100 shipments a month$29.95 for 100-500 shipments a month$49.95 for 500-1000 shipments a month
Orchard Harvest Conference – Amsterdam 2013
and easypost
5¢ per shipment
https://www.geteasypost.com/
Orchard Harvest Conference – Amsterdam 2013
e-commerce sample
available modules
Orchard Harvest Conference – Amsterdam 2013
Buy from Amazon
available modules
Orchard Harvest Conference – Amsterdam 2013
Amazon Checkout
available modules
Orchard Harvest Conference – Amsterdam 2013
available modules
DocumentationPayPal-enabled theme
Orchard Harvest Conference – Amsterdam 2013
[nwazet commerceFork it on BitBucket
available modules
Orchard Harvest Conference – Amsterdam 2013
DEMO
[nwazet
Onestop - Outsourced E-Commerce
Orchard Harvest Conference – Amsterdam 2013
• Started in 2003 – 2 guys literally in a garage
• First year, $2M revenue• 10 years later, 200 employees, 4
offices worldwide, 100,000 sq ft Headquarters in Southern California
• 35+ Clients• Full Service e-commerce: Shipping,
Warehousing, Photography, Customer Service, On-Line Marketing, Software Platform
Onestop History
Orchard Harvest Conference – Amsterdam 2013
Onestop Clients
Onestop e-commerce goals
• On-Board Customers Faster
• Provide a self-service portal (dashboard) for commonly updated elements
• Build an extensible and maintainable codebase
• Provide a consistent user experience cross-browser and cross-device (tablet/mobile)
• Fault-tolerant multi-node, multi-data center deployment
Orchard Harvest Conference – Amsterdam 2013
Replace .NET Forms Platform with modern architectureLooking for a CMS Framework based on MVCNeeded an extensible application platform, not just a CMSLove C#
Decided on Orchard
Onestop DEMO – johnvarvatos.com
Orchard Harvest Conference – Amsterdam 2013
• Fork of 1.6 from Codeplex, we patch our repo only for critical bug & security updates
• We fork all modules we use• Custom recipe for provisioning• Move to 1.7 shortly in our internal 1.x branch• Usually prop at night, draining load
balancers• Combination of BitBucket, Bamboo,
MSDeploy transforms, Virtual directories for ~/Media, Robocopy
• * Opportunity for Orchard Community to make some improvements in this area.
Deployment - Live, production, always on clients
Onestop 2 Techniques for Phased Approach
Not possible to rewrite entire codebase on new technologies quick enough
Off-Line Metaphor: Tearing down a house vs. remodeling – BOTH are a lot of work
2-LEVEL HYBRID APPROACH1. API Connection to legacy (JSON, highly cached)2. Virtual Directories
Onestop CMS Hybrid Architecture
Onestop - Connecting to legacy platform
Onestop - Virtual Directories
Onestop - Why Hybrid?
BECAUSE THIS SCREEN IS COMPLICATED!
Onestop - Rewrite Rules
Rewrite rules let us cleverly and seamlessly load the Onestop Classic platform
/checkout
Rewrites to:/spyo/store/os/checkout.aspx
Orchard Harvest Conference – Amsterdam 2013
• Sub 100ms page load times when loaded from the “edge”
• Challenging to build pages that are dynamic and fully output-cacheable
Performance Levels
Orchard Harvest Conference – Amsterdam 2013
• Caching – many, many layers of cache“Cache” is the 3rd most used word used in our offices after “Coffee” and “Frenchman”.– Output Cache – Contrib.Cache,
Contrib.Cache.Memcached– Data Cache – Orchard.Caching,
Orchard.Caching.Memcached– NHibernate over Memcached– CDN (Akamai)– Cache Headers
• Log4net cross nodes• Instance variables within App Pool• UGC – Media Folder, DFS• * Opportunity for Orchard Community to make
some improvements in this area.
Multi-Node Challenges
Orchard Harvest Conference – Amsterdam 2013
Caching & Classic Topology
CMS Application
CMS Database Store Database
Internet Firewall 12 Web Server NodesCDN
Classic
4 API Server Nodes 4 Cache Server Nodes
.NET Runtime Cache
Is Item in Cache? Yes
Load Balancer
CMS Routing And Rendering Engine
Modules
No
Get it
50ms – 500msNHibernate
.NET Runtime Cache
API Request / Response
Insert into Cache
Orchard Harvest Conference – Amsterdam 2013
• Database 2-way Replication across physical data centers– Needs a re-work
• Memcached nodes per data center
Multi-Data Center Challenges
Orchard Harvest Conference – Amsterdam 2013
• 24+ Custom Modules• 55+ Custom Features• Team of 6 Dedicated Engineers &
Growing• Betting our company future for the
next generation of clients on Orchard as an application platform
• 4 Sites live now, 8 by end of 2013• 25+ Sites live by end of 2014
Embracing Orchard
Orchard Harvest Conference – Amsterdam 2013
• Ylan posted a job description. Go find him!• Work by the beach (picture taken in
February :)!
We’re hiring
Orchard Harvest Conference – Amsterdam 2013
• Very interested in discussing some of Onestop’s challenges with others in the community with similar requirements
• Questions???
Q & A