Hello Cloud
GIREESH KUMAR
Topics
 The DHARMA Principles
Common Cloud Problems
 Not respecting underlying environment
 Lack of application/platform monitoring
 Difficulty in understanding the new architecture
 Confusion over environment provisioning and config
 Not testing in the cloud
 Difficulty in designing for cloud infrastructure failure modes
DHARMA Principles
 Documented (just enough)
 Highly cohesive/loosely coupled (all the way down)
 Automated from commit to cloud
 Resource aware
 Monitored thoroughly
 Antifragile
Documented (just enough)
 Component description responsibilities
 Component initialization instructions
 Profiles available (i.e., modes of operation)
 Component external interactions (i.e., collaborations)
 State characteristics (i.e., stateless, mandatory sticky- sessions)
 Data store and cache interactions (in/out of process, eviction policy, etc.)
 API documentation (e.g. Swagger, Thrift IDL, etc.)
 Failure modes of component
 Developer highlights (i.e. classes of interest)
 Decision log (core architectural changes)
Highly cohesive/loosely coupled (all the way down)
 Using cloud design patterns / principles (12factor app)
 Clean code
 Cloud Architecture guidelines
 Analyze and identify potential cloud mismatch area
Automated from commit to cloud
 Continues Integration
 Continues Deployment
 Continues Delivery
 Tools
 Jenkin, Chef, Puppet, Zookeeper
 Docker, Packer , Vagrant
 Test Automation – Selenium
 Many more…..
Resource aware
“everything fails all the time in the cloud.” - Werner Vogels, CTO of Amazon
 Every infrastructure resource must be treated as transient and volatile
 Noisy neighbors
 Skills required
 Deep understanding of virtualization
 Good understanding of computer networks
 Good knowledge of caching—Reverse proxies, distributed caches, and CDNs
 Linux skills / Diagnostics skills
Monitored thoroughly
 Infrastructure Monitoring
 Distributed Tracing
 Centralized Logging
If It Moves, “Graph It” If its Doesn’t Move “Graph It”
Antifragile
“Some things benefit from shocks; they thrive and grow when exposed to volatility, randomness, disorder, and
stressors and love adventure, risk, and uncertainty.”
- Antifragile: Things That Gain From Disorder is a book by Nassim Nicholas Taleb
Software must clearly be designed to handle the “fragile” nature of the underlying infrastructure.
Applications must go further than being robust, they must be “antifragile.
Cloud- native software must be created using fault-tolerant design patterns such as timeouts, retries,
bulkheads, and circuit breakers etc
Antifragile Software Design / Patterns .. http://antifragile.design/
Assignments
 List 5 basic Linux networking commands
 Design Patterns
 List Antifragile Patterns
 Reverse Proxy
 Distributed Caching frameworks
 Monitoring tools
Next

Hello cloud 5

  • 1.
  • 2.
  • 3.
    Common Cloud Problems Not respecting underlying environment  Lack of application/platform monitoring  Difficulty in understanding the new architecture  Confusion over environment provisioning and config  Not testing in the cloud  Difficulty in designing for cloud infrastructure failure modes
  • 4.
    DHARMA Principles  Documented(just enough)  Highly cohesive/loosely coupled (all the way down)  Automated from commit to cloud  Resource aware  Monitored thoroughly  Antifragile
  • 5.
    Documented (just enough) Component description responsibilities  Component initialization instructions  Profiles available (i.e., modes of operation)  Component external interactions (i.e., collaborations)  State characteristics (i.e., stateless, mandatory sticky- sessions)  Data store and cache interactions (in/out of process, eviction policy, etc.)  API documentation (e.g. Swagger, Thrift IDL, etc.)  Failure modes of component  Developer highlights (i.e. classes of interest)  Decision log (core architectural changes)
  • 6.
    Highly cohesive/loosely coupled(all the way down)  Using cloud design patterns / principles (12factor app)  Clean code  Cloud Architecture guidelines  Analyze and identify potential cloud mismatch area
  • 7.
    Automated from committo cloud  Continues Integration  Continues Deployment  Continues Delivery  Tools  Jenkin, Chef, Puppet, Zookeeper  Docker, Packer , Vagrant  Test Automation – Selenium  Many more…..
  • 8.
    Resource aware “everything failsall the time in the cloud.” - Werner Vogels, CTO of Amazon  Every infrastructure resource must be treated as transient and volatile  Noisy neighbors  Skills required  Deep understanding of virtualization  Good understanding of computer networks  Good knowledge of caching—Reverse proxies, distributed caches, and CDNs  Linux skills / Diagnostics skills
  • 9.
    Monitored thoroughly  InfrastructureMonitoring  Distributed Tracing  Centralized Logging If It Moves, “Graph It” If its Doesn’t Move “Graph It”
  • 10.
    Antifragile “Some things benefitfrom shocks; they thrive and grow when exposed to volatility, randomness, disorder, and stressors and love adventure, risk, and uncertainty.” - Antifragile: Things That Gain From Disorder is a book by Nassim Nicholas Taleb Software must clearly be designed to handle the “fragile” nature of the underlying infrastructure. Applications must go further than being robust, they must be “antifragile. Cloud- native software must be created using fault-tolerant design patterns such as timeouts, retries, bulkheads, and circuit breakers etc Antifragile Software Design / Patterns .. http://antifragile.design/
  • 11.
    Assignments  List 5basic Linux networking commands  Design Patterns  List Antifragile Patterns  Reverse Proxy  Distributed Caching frameworks  Monitoring tools
  • 12.