GoConqr hat ein neues Design! Sag uns, wie es dir gefällt.

Mindmap

Cloud app design and dev

hon sam Chan Englisch

Inhalt der Mindmap

Cloud app design and dev

  1. Design

    • Creating a product, service, or other plan to satisfy a specific end goal
    • Bad design
      • Slow response
      • Application outages
      • Vulnerable application
      • Inefficient usage of resources
      • Higher cost
      • Lacks scalability
  2. Cloud and traditional different

    • Underlying Infrastructure may Reboot
      • computing resources may be go down and restart at anytime
      • get replaced by a different machine altogether
      • includes the entire stack of infrastructure, middleware and service
      • cannot store data on the local drive on the cloud server
      • Cloud charicaristic
        • shared computing resources
        • management software pulls together
    • infinitely scalable
      • ability to pull resources to scale
      • horizontal scaling, not vertical
      • adding extra instance or same thing, and load balance
      • application has to be designed to cater for this behaviour
    • Everything is online
      • always connected
      • maybe used 24x7
      • need to find suitable maintenance window
      • Security consideration
      • API - risk for hackers
      • two level of security
        • Application level
        • Network level
  3. key architecture

    • design to scale horizontally
      • scale by adding more app/DB instances
      • use load balance
      • auto-scaling
    • Don't persist data on local server
      • cloud server and service may reboot any time
      • local server storage is not reliable
      • store session data on cloud-based caching facilities
      • store persisting data on cloud database or BLOBs
    • Explicitly declare and Isolate dependencies
      • never assume external data exists, declare dependencies and automatical download of library
      • make sure put in procedure to handle error from web services
    • Componentise an application
      • break app down into small building blocks
      • blocks work with each other to fulfil app function
      • faster deployment as deploy a small part each time
      • Microservice architecture
    • Loosely Couple the components
      • components are encapsulated
        • communication relies on sending and receiving messages via standard interface exposed to other components
      • changing internal logic for one do not require change of another
      • Microservice architectur
      • message queue or message broker technologies
        • ensure reliable delivery of message
    • Design stateless App
      • stateful app store state info in app server
      • Cloud app run on many server
      • Desing app that state info defined by DB and shared storage.
    • Consider security
      • Network layer
        • Firewall
        • Intrusion Detection System
        • Intrusion Prevention Sys
        • System Incident Event Management
      • Application layer
        • Authentication and authorisation
        • security built into forms to prevent SQL injection
        • encryption and masking DB, consider needed data
        • encryption of data in transit
        • manual or automated penetration
    • Cost and performance
      • minimise calls to APIs
    • Use Micro-services
      • modular applications that can communicate with each other and work in tandem.
      • Characteristics
        • Componentisation via services
        • Organised around Business Capabilities
        • Products not Projects
        • Smart endpoint and dumb pipes
        • Decentralised Governance
        • Decentralised Data Management
        • Infrastructure Automation
        • Design for failure
        • Evolutionary Design
      • Benefits
        • Failing of 1 service will not affect other
        • can be upgraded individually
        • increase modularity - easier to understand
        • fast to deploy and start
        • allowing team to try multiple technologies
      • 3-dimension scalability model
        • Y-axis - split by functionality
          • by none or by verb
        • x-axis -- clone and load balance
        • z-axis - partition into subsets (more on DB)
      • Challenges
        • balance the granularity of service
        • Tracking service dependency
        • Fault tolerance architecture
        • Resulting in lots of traffic
        • Decentralised data management
        • Coordinating deployment across multiple micro-services
  4. Design patterns

    • proven solutions for repeated problems
    • saves time and cost, decreases training time
    • encourage better documentation and community support
    • incorporates a number of design principles

Informationen

Beschreibung
Mindmap am Cloud app design and dev, erstellt von hon sam Chan am 15/05/2016.
Erstellt von
hon sam Chan
Aufrufe
2
Bewertung

Feedback

Worum geht es?

Wie gefällt dir das neue Design?

Dein Eindruck