<div dir="ltr"><div>Hi all,</div><div><br></div><div>I attended the meetup &quot;Architecting for the Cloud: Avoiding Database Disaster”. The speaker is Seth Proctor, he is currently CTO at NuoDB. NuoDB is a cloud-based SQL database service provider.</div><div><br></div><div>He first talked about Cloud architecture:</div><div>----On-Demand Capacity: get resources when you need them, and shut them down when you don&#39;t</div><div>----Simplicity: Use abstraction to simplify the programming and operation experience</div><div>----Flexibility: Obtain resources easily</div><div>----Resiliency: Continuous availability and disaster recovery</div><div><br></div><div>Benefits:</div><div>----Greater capacity </div><div>----Higher availability</div><div>----Lower cost</div><div>----Global deployment</div><div>Challenge:</div><div>----Great failure</div><div>----Security</div><div><br></div><div>He explained the challenges for scaling database for the cloud, why the traditional database didn’t work on cloud architecture.</div><div>----Inflexible</div><div>----Hard to scale out</div><div>----Hard to provide continuous availability</div><div>----Expensive to perform changes</div><div><br></div><div>Common options to resolve this problem:</div><div>----Apply replication: make copies of database</div><div>----Sharding: split database into smaller parts and store them in different places.</div><div><br></div><div>Side effects of these options:</div><div>----Applications are not independent from database.</div><div>----Database become independent pieces that are hard to manage.</div><div>----Harder to interpret failure</div><div>----Complexity</div><div><br></div><div>He talked about the necessities of Global deployment: some governments requires their citizens data center has to stay in their country, disaster recovery, locality - reduce latency and cost.</div><div><br></div><div>He talked about 3 Distributed Database Designs:</div><div>----Shared-Disk, Bigger disk or disk array</div><div>----Synchronous Replication (expensive)</div><div>----Shared-Nothing/Sharded (unable to communicate with each other)</div><div><br></div><div>Then, he explained the architecting used by NuoDB - Durable Distributed Cache:</div><div>----Cache: think database as a combination of service and data, use in-memory database service to improve performance.</div><div>----Distributed: Database runs independently and able to coordinate with each other to promotes resiliency and continuous availability.</div><div>----Durable: Disaster recovery and data continuous availability.</div><div><br></div><div>Cloud requirements:</div><div>----Scale on demand</div><div>----Provide continuous availability</div><div>----Simplified application and operation using abstraction</div><div>----Hybrid system, different locations, different environments</div><div>----Operate as a service</div><div>----Global operation</div><div><br></div><div>Video Link for meetup: <a href="https://www.youtube.com/watch?v=FDxBl-15iyE">https://www.youtube.com/watch?v=FDxBl-15iyE</a></div><div>Some Pictures of the meetup: <a href="http://www.cs.stevens.edu/~xli76/CS615/HWN.html">http://www.cs.stevens.edu/~xli76/CS615/HWN.html</a></div><div><br></div><div>Best,</div><div>Xin</div></div>