4. INFRASTRUCTURE ARCHITECTURE
ABOUT
▸ Walk the walk in software development, architecture and infrastructure
▸ Also into ethics and moral philosophy
▸ Self-taught dude
▸ Been there, done that
▸ Fully committed to automation and self-service IT
5. INFRASTRUCTURE ARCHITECTURE
HAVE YOU DRIVEN ON I-10?
▸ Cross-country US interstate highway
▸ From SR-1 in Santa Monica, CA to I-95 in Jacksonville, FL
▸ 3,959.53 KM across CA, AZ, NM, TX, LA, MS, AL, FL
▸ Part of US infrastructure plans of 1959
12. INFRASTRUCTURE ARCHITECTURE
WHAT ARE WE TALKING ABOUT?
▸ Role of infrastructure in development
▸ Extremely expensive in the physical world
▸ Readily available in information technology
▸ Start-ups can compete
▸ Engineers can easily train themselves
21. INFRASTRUCTURE ARCHITECTURE
DECOMPOSE
▸ Consider your dependencies
▸ What does an end-to-end transaction look like?
▸ What are good candidates for decoupling?
▸ Identify problematic components
▸ Where can we implement redundancy?
▸ Be conscious of your limitations
▸ Understand your resources
▸ Know your SLAs
23. INFRASTRUCTURE ARCHITECTURE
CONSIDER RISK
▸ Document your points of failure
▸ Consider both severity and likelihood
▸ Assess the risks
▸ Cost of removing a risk
▸ Cost of recovering from a materialized risk
▸ Plan mitigation
24. INFRASTRUCTURE ARCHITECTURE
QUANTIFY
▸ Measure everything
▸ Calculate target uptime
▸ Consider planned downtime and historical unscheduled downtime
▸ Gauge your work
▸ How much computing power do you need?
▸ What is the cost of your infrastructure?
▸ Establish your baseline
▸ How do business projections impact your baseline?
25. INFRASTRUCTURE ARCHITECTURE
ARCHITECT
▸ Require logical partitioning to enable physical partitioning
▸ Each problematic or high risk component must be redundant
▸ Calculate redundancy carefully *
▸ Support transactional isolation
▸ Implement a caching tier, including a CDN
▸ All multi-user content must be cached
26. INFRASTRUCTURE ARCHITECTURE
ARCHITECT
▸ Leverage reduced or null state in the middle tiers
▸ Equalize computing type to application orientation
▸ Always let clients talk to workers
▸ Shoot for limited scale, beyond 10x re-architect
▸ Divide and conquer your traffic load
▸ Provision at least one environment that is equivalent to production
28. INFRASTRUCTURE ARCHITECTURE
MOVE FORWARD
▸ You have your architecture, now …
▸ Leverage the cloud
▸ Automate everything
▸ Implement end-to-end monitoring
▸ Roll your own
29. INFRASTRUCTURE ARCHITECTURE
LEVERAGE THE CLOUD
▸ Your cloud
▸ Easily implementable resilience
▸ Extreme scalability
▸ Virtualisation versus containerization
▸ Your SLA, not your cloud’s
▸ The physical world still applies
30. INFRASTRUCTURE ARCHITECTURE
AUTOMATE EVERYTHING
▸ All changes, all the time
▸ Provisioning and deployments
▸ Include recovery from failure!
▸ Reduce human factor
▸ Build certainty and repeatability
▸ Reject manual work on production systems
▸ Big effect on availability
32. INFRASTRUCTURE ARCHITECTURE
GREAT PROJECTS
▸ Risk mitigation
▸ Thunderstorm (Facebook)
▸ Chaos Monkey (Netflix)
▸ Roll your own
▸ HHVM (Facebook)
▸ MapReduce (Google)
▸ Network gear (Amazon)
33. INFRASTRUCTURE ARCHITECTURE
CONCLUSIONS
▸ Infrastructure can be a competitive advantage
▸ In IT, hope should not be a strategy
▸ Embrace the reality of failure
▸ Automate yourself out of the job
▸ Build or tweak your platform to your unique needs
▸ Be open to evolve (and throw-away) your infrastructure