Below is a guest post by Mike Hanrahan, CTO of Jet, a startup that's aiming to bring the warehouse club model online and apply it across tens of millions of products.
Here at Jet we are building a cross between an ecommerce marketplace and an online warehouse club. Our plan is to sell tens of millions of products to our members at prices that are typically 10% to 15% cheaper than anywhere else online. With our focus on low price and our broad and deep product catalog, we expect to grow at a blistering pace.
Given the amount of technology we need to build and the rate at which we expect to grow, we chose a cloud partner that we knew could support us every step of the way. Below we outline the key reasons why we choose Microsoft Azure as the right partner for Jet.
Ability to Scale
Within 6 months of launch we expect to be dealing with millions of users on the site, doing about 90,000 price calculations per second at peak times. By 2020 our goal is to do $20 billion in gross merchandise volume, an order of magnitude above our 2015 numbers. This translates into tens of thousands of servers and petabytes of data to process and store. Azure gave us a solution that we do not have to worry about scaling as we grow.
At Jet we embrace a philosophy of constant innovation for the consumer and an ambition to be best in class. Microsoft has demonstrated a similar commitment to Azure, and its pace of innovation is second to none.
Given the rate at which Jet expects to grow, we can't afford to be distracted by our cloud provider either being acquired, going out of business or falling behind in their field. Microsoft is very clearly in the cloud business for the long haul, and we feel comfortable that the cloud will be a core part of the company for many years to come.
Support for Technology Diversity
Jet uses a wide range of technology across its platform. Our core infrastructure is built with F#, and our event-driven/CQRS model allows us to use a range of middleware for event processing and storage as well as our primary data stores. About 60% of our boxes are Linux (running everything from Redis to Elastic Search to Docker containers), and the rest of our machines are Windows (running, for example, IIS, Windows Services, Storm, SQL Server, EventStore).
Azure has great support for all these platforms, especially for Windows machines.
Platform as a Service
Jet is building a technology stack to compete with the big ecommerce marketplaces in the United States. As a result, we have a very broad set of technology to build in a very short period of time. We need a cloud provider that has a good range of basic services we can leverage as we prepare for launch.
With the Azure platform, we are able to utilize features like SaaS cloud services for auto scaling, Service Bus Queues for our queueing technology, and Azure Redis for caching.
Given the scale at which we will operate, we will push the limits of any of the technology we use, and our cloud platform is no exception.
This is the biggest thing that set Azure apart from the competition when deciding which cloud provider we chose. From the first contact we have had nothing but exceptional service and commitment from Microsoft. This relationship has manifested itself in many ways, including:
- Direct access to engineers and program managers within Azure.
- A sense that any concerns we express about the platform are being listened to (I don't want to overstate this, but we do get asked for a lot of feedback on various facets of the platform and we are not shy about expressing our thoughts, both good and bad).
- Detailed advice on how best to design our systems to work within the Azure fabric. This engineering advice goes well above and beyond the obvious patterns and practices of building for the cloud and really gets into the detail of the underlying fabric.
In addition to the above items, there were other smaller concerns that made Azure a good fit for us. One is the tight integration with Visual Studio, which is invaluable for prototyping and for getting services into our dev environments quickly.
What About the Competition?
Before commenting on how things are going with Azure, it would be disingenuous of me not to address the question I am often asked of why we didn't choose Amazon to run our platform. While Amazon Web Services does meet most of our criteria, there was one clear differentiator that distinguishes Azure. This is Azure's committed and sustained support for the Windows platform and related tooling.
Azure has very well-crafted machine images for things like SQL Server and it clearly put a lot of effort into ensuring its Windows images run very well on the underlying fabric. Additionally, the PaaS cloud service tools we use run on Windows and the deployment story from Visual Studio is unbeatable for our ecosystem
Results so Far?
We have been running on Azure for over a year now and we launched Jet last month on the platform. Our experiences to date have been overwhelmingly positive. The underlying hardware and fabric are very solid. The machines, SSDs, network, etc., all perform as you would expect and our engineers and developers have been pleasantly surprised Azure is not just for corporate apps!
The platform is evolving rapidly and we have seen huge changes in the last year. We can see innovation in areas that are important to us. The "dev-ops" (declarative provisioning, deployment, etc.) story in particular is an area where there were some initial gaps that have been closed with the new Resource Manager tooling.
All in all, Jet has been extremely happy with Azure and although Jet faces a lot of interesting challenges as we move toward launch, dealing with our cloud platform is not one of them (hiring amazing engineers is one, so please head over to https://jet.com/about-us/working-at-jet if you are interested in joining a pre-launch startup on the cusp of success).