In this talk, we’ll go into excruciating technical detail about building a greenfield, massively scalable cloud service. As many of us are assembling open source and SaaS components to power our next generation applications, it seems as easy as choosing the leaders in each space and just gluing them together using APIs. This sentiment couldn’t possibly be more wrong. Along the path to constructing a scalable cloud service, there are many options and critical decisions to take.
This talk covers our missteps and our revised successful choices of building Bintray. We will share our challenges and how it affected our approach towards issues like: segmenting the system; supporting horizontal scaling; physical vs virtual hosts; handling cross data center deployments; managing redundancy; and supporting a cloud-based development environment. Many of these approaches you can replicate in your own construction of your next cloud solution.
146. The Trend
Peter Piper picked a peck of pickled
peppers.
Did Peter Piper pick a peck of pickled
peppers?
If Peter Piper Picked a peck of pickled
peppers,
Where's the peck of pickled peppers Peter
Piper picked?
147. The Trend
Docker Docker picked a peck of Docker
Docker.
Did Docker Docker pick a peck of Docker?
If Docker Docker Docker a peck of Docker
Docker,
Docker Docker Docker Docker Docker
Docker Docker?
Bad experience with Artifactory. Artifactory recently moved to Ngnix thanks to Bintray
softLayer – more details later
Tiny model (but more than key-value)
Predefined queries
Maturity – ember is not released even toda
Maturity – ember is not released even toda
Maturity – ember is not released even toda
Maturity – ember is not released even toda
Maturity – ember is not released even toda
mongo for download - when we started using mongo, mongo replicas were not reliable + couch has a superb fail tolerant storage in case of disaster and very nice across the wan replication
couch for interaction - couch would be too rigid for modelling and querying changing domain objects. All indexes have to be created a head and pre-computed on the whole db.
It’s not that bad, but… ‘R’ in GORM stands for “relational”. It was intended to work with relational DBs and mismatch creates issues
If a good question is a question you have an answer to, a great question is a question you have a slide for…
Maturity – ember is not released even toda
Maturity – ember is not released even toda
Maturity – ember is not released even toda
Maturity – ember is not released even toda
Deb, Yum, Maven, etc.
Not only stats, also downloadable logs!That’s because…
Async calculation
1 minute delay
Jedis queues
Spring Data
We’ll we do, but it can be managed manually
Stateless application, easy clustering
CDN for download
GeoDNS for web application etc.
GeoDNS
Why we can’t use ddos protection
Provides simple data take-away
Logic monitor
Yes, you are doing it wrong
Be flexible, Avoid Lock-in
Export your data