icon sc-linkedin logo of codepen-icon logo of github-icon youtube play button

notes by Adam Sullovey

web & mobile application developer
practicing in Toronto, ON

Building Unbreakable Software @ Toronto AWS Meetup

Building Unbreakable Software @ Toronto AWS Meetup

We met at The Score‘s office, and Nate Smith talked about ways to structure AWS-hosted applications for availability and consistency.

Here are some points that stood out:

  • Your software will probably outlive the VM it lives in. Be ready to deploy to another server on short notice, or have redundant servers ready

  • Build systems that get stronger when they break, like human muscle. Read Antifragile

  • EC2 can have network outages between nodes. Do not trust the network more than you trust an instance

  • One bad outage example – on April 2 2011, parts of the AWS EBS service were down for 80 hours (despite this, Amazon is still better at sysadminning than you)

  • When thinking about CAP theorem and a network of database servers, assume the network will go down. That means the P (partition tolerance) is chosen as 1 of your 2 options, and you are choosing between C and A. Shopping Cart software usually picks Availability as the other option. How to deal with the resulting inConsistency is a business issue

  • Check out Jepsen, tests of different databases to see they react to network partitions.

  • Oversimplified CAP summary:

    • Got 1 MySQL server? You have CP, because your data is consistent (it’s all in 1 place), but not available (1 server goes down = no availability)
    • Got 1 read/write server and replicas to read from? You have AP because your data is available (some read replicas can down and you’ll be OK), but data isn’t consistent across all servers (due to replication lag, network partitions, or other issues)

The crowd at the Toronto AWS Users United meetup

Building Unbreakable Software on Amazon Web Services

Wednesday, Sep 10, 2014, 6:00 PM

theScore
500 King Street West, 4th Floor Toronto, ON

60 Members Went

  <div class="photo">
    <img src="http://photos2.meetupstatic.com/photos/member/e/8/b/4/thumb_180059572.jpeg" />
  </div>

  <div class="photo">
    <img src="http://photos3.meetupstatic.com/photos/member/3/4/8/2/thumb_204013442.jpeg" />
  </div>

  <div class="photo">
    <img src="http://photos4.meetupstatic.com/photos/member/3/5/c/c/thumb_216553772.jpeg" />
  </div>

  <div class="photo">
    <img src="http://photos1.meetupstatic.com/photos/member/a/8/f/4/thumb_129643252.jpeg" />
  </div>

  <div class="photo">
    <img src="http://photos2.meetupstatic.com/photos/member/a/4/5/8/thumb_106422072.jpeg" />
  </div>

  <div class="photo">
    <img src="http://photos1.meetupstatic.com/photos/member/8/f/3/6/thumb_224316662.jpeg" />
  </div>

  <div class="photo">
    <img src="http://photos1.meetupstatic.com/photos/member/2/b/8/6/thumb_219611142.jpeg" />
  </div>

  <div class="photo">
    <img src="http://photos4.meetupstatic.com/photos/member/1/c/2/2/thumb_216067202.jpeg" />
  </div>

  <div class="photo">
    <img src="http://photos3.meetupstatic.com/photos/member/8/4/a/0/thumb_63933952.jpeg" />
  </div>

  <div class="photo">
    <img src="http://photos1.meetupstatic.com/photos/member/b/0/c/4/thumb_194205252.jpeg" />
  </div>

  <div class="photo">
    <img src="http://photos1.meetupstatic.com/photos/member/a/f/a/c/thumb_170084972.jpeg" />
  </div></p>
</div>

<p style="line-height:16px">
  We&#8217;re all set to get together again and chat all things AWS.This time we will have Nate Smith from Shopify share his experience and thoughts on designing unbreakable systems on AWS.You&#8217;ve turned off the last server in the rack. Your software is running blissfully on a dozen &#8211; maybe hundreds &#8211; of EC2 instances. Everything&#8217;s humming along and then&#8230;
</p></p>

Check out this Meetup →

comments powered by Disqus