Mind map
Cloud app design and dev
Map content
Cloud app design and dev
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
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
- Underlying Infrastructure may Reboot
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
- components are encapsulated
- 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
- Network layer
- 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)
- Y-axis - split by functionality
- 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
- design to scale horizontally
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
Information
- Description
- Mind Map on Cloud app design and dev, created by hon sam Chan on 05/15/2016.
- Created by
- hon sam Chan
- Views
- 1
- Rating