Speaker – Jinesh Varia, Technology Evangelist, Amazon Web Services
Jinesh is doing a nice job describing the evolution of a fictional (dating) website that is live only 3 hours a week. In telling the story, he is walking through the site’s evolution, the developer’s knowledge of patterns (really good design practices) and the related AWS cloud offerings (patterns of use).
Pattern #1: Design for failure and nothing will fail
Pattern #2: Always edge cache your static data (Amazon CloudFront)
Pattern #3: Implement elasticity
Next challenge for the developer is dealing with scale. Principles of elastic cloud architectures:
- Resilient to reboot & re-launch: automatically re-launch and restart
- stateless: extract stateful components and make them stateless
- Packable into an AMI
- Decouple: Isolate the components using Amazon SQS (queues). Decouple code with deployment and configuration.
Jinesh calls out the Netflix Chaos Monkey pattern.
Elasticity also means scale-out. So, the developer adds Elastic Load Balancer and create an Auto Scaling Group.
Pattern #4: Leverage Multiple Availability Zones (Feature on RDS, creates a standby slave)
Pattern #5: Isolate read and write traffic; Isolate static and dynamic traffic (Use RDS read replica)
Pattern #6: Automate your in-cloud Software Development & Deployment Lifecycle (Automate using cloud APIs – scripts)
Scripts provide: repeatability, savings (suspend/resume), productivity, and freedom to experiment.
Interesting point, used to “move” from staging to production. With cloud, you can make Stage into Production, and then drop the current Production instances. Saves time, reduces errors.
Pattern #7: Cache as much as possible (Memcache in new cache tier)
Pattern #8: Hardening security at every stage (infrastructure security, application security and services security)
Pattern #9: Go Global Quickly with a Single API
Pattern #10 Keep optimizing and see the savings in the next month’s bill (example, use reserve instances)
Started with single node architecture, now global, scaleable, fault tolerant application, while minimizing run-time cost.
Good session.
Related posts:


{ 1 trackback }
{ 0 comments… add one now }