EBU6502_cloud_computing_notes/1-1-intro.md
2024-12-29 21:17:17 +08:00

245 lines
6.6 KiB
Markdown

# Introduction to cloud programming
## Client server architecture
- Definition: Clients make request to server for a resource, and the server
running server software make the resource available, though a response.
- It is based on **Request/Response** mechanism.
- Client: Request resources
- Server: Provide resource
## Distributed System
- Definition: Consists of hardware, software, and data components located at
networked computers, which communicate and coordinate their actions using
**protocols** and **passing messages**.
- Distributed Computing: specialized field in cs, dedicated to the study of
distributed systems.
- **Advantages**:
- **Modularity**
- **Speed** up computation and data processing
- Ease of tracking **failure**
### Characteristics
- Concurrency: multiple components working on different parts of the same task
at the same time
- No global clock for time system, use ntp to solve the problem.
- Autonomous computational entities: failure is **independent**, and is loosely
coupled
- Communicate by passing messages
### Parallel computing vs. Distributed computing
- Parallel computing: many executions are carried out at the same time.
- Done by dividing large problem into smaller parts that are carried out by
different components at the same time
- Use **shared** memory, and exchanges information between processors.
- To speed up computation or execution
- Differences:
- Parallel computing:
- Sharing: system whose processors use **shared memory** to run
processes
- Strongly coupled and has resource contention
- Distributed computing:
- Sharing:have their own individual memory but communicate by passing
**messages** among the nodes and processors.
- Loosely coupled, and distributed
### Examples
- Internet
- Intranets
- Domain name service
- Grid computing
- Peer to peer (p2p) computing
- Cloud computing
### Architectures
#### Client-server
- 2-tier architecture
- Server and clients: one server and many clients
- Server has storage, database and run the application
- 3-tier architecture
- The three tiers:
- Presentation layer: User interface, runs **web server**
- Business logic or application layer: functions are implemented, runs
**dynamic content processing and generation** software
- Data layer: data management, runs **database management system**(DBMS)
- Thin and flat client
- Thin: client is only the **presentation**, all processing and data storage
are provided by server
- Heavy lifting is done on server and network
- Fat: processing is delegated to the client, foe example **application
processing**
- Process may be done **both** at client and server
- **Balanced** distribution of processing
### Peer to peer systems
- Definition: consists of nodes of computers that perform **both** client and
server functionalities and capabilities
- **Client** oriented: Peer machines are client computers that is connected
to internet
- Peer machines **autonomously** join or leave network, no master-slave
relationship: **no** **central** coordination, and **no** **global** view
### Flynn's taxonomy
- Definition: 4 classifications for computer architectures
- SISD: Single Instruction Single Data Stream
- Serial computer, no parallelism
- SIMD: Single Instruction Multiple Data Streams
- Some parallelism
- MISD: Multiple Instruction Single Data Stream
- Not popular in practice
- MIMD: Multiple Instruction Multiple Data Streams
- True palallel computation, most widely used
- Multiple independent processors executing different instructions on
different data streams
- Majority of distributed system use MIMD
- Basis of supercomputer architectures
## Cloud Computing
### History of Cloud computing
- Started as a concept of "Utility Computing", which you can use as public
utility.
- Grid Computing:
- Started the concept, in 1995 to mimic the electricity grid that provides
electric as a utility on demand basis
- Large scale distributed systems:
- Collection of resources from distributed locations
- General purpose middleware
- Interacts with heterogeneous systems
- The above gave birth to cloud computing
### Definition
- A computing infrastructure, that consists of shared pool of **virtualized**
hardware, software and data that are **provided** as a **services**, which
scales on the demand
- A form of **distributed** computing, that enables computational resources to
be provided as a service
- Infrastructure as software
### Features:
- Enabled by **internet**
- Use middle-ware to connect systems
- Utility based:
- Don't own or maintain the resources, but subscribe
- Usage on **demand**
- Elastic, can scale up and down
- **Service Oriented Architecture**
- Cheaper and save time
### Architecture
- Front end
- Cloud based delivery
- Back end
## Cloud Deployment Models
### Public Cloud
- Advantages:
- Flexible
- Reliable
- Highly **scalable**
- Low cost
- Place independence
- Disadvantages:
- Less secures
- Not **customizable**
### Private cloud
- Advantages:
- Highly **private** and **secured**
- More **control**
- Disadvantages:
- Poor scalability
- Scaled within hosted resources
- Costly:
- secured
- More features
- Inflexible pricing
- Restriction, hard to expose globally
## Cloud Service Models
- Common:
- SaaS: Software as a service: least control
- PaaS: Platform as a service
- IaaS: Infrastructure as a service: most control
- Incommon:
- DBaaS: database
- Naas: network
- SECaaS: Security
- DaaS: Desktop
## Technologies for cloud computing
- Internet
- web service
- Virtualization technologies
- Data center
- Networking
- Security
- Physical hardware
## Services:
- Amazon web services: AWS
- Microsoft Azure
- Google Cloud
- Alibaba Cloud
- Tencent Cloud
- Baidu Cloud
- IBM Cloud
- Oracle Cloud
- https://salesforce.com
## Applications and Job opportunities
### Jobs
- Big Data and Data analytics
- E-Commerce
- Computationally and data intensive applications
- AI
- IoT
- Software Development
### AWS Certification Exam
- Professional: 2 years
- Associate: 1 year
- Foundational 6 month
- Speciality: Technical experience
### MS Exam
- Expert
- Associate
- Fundamental
- Speciality
### Google Cloud Certification Exams
- Data Engineer
- CLoud Architect
- Cloud Developer
- CLoud devops Engineer
- Cloud Security Engineer
- Collaboration engineer
- Cloud network engineer
- Cloud engineer
- G suite
- Hybrid multi-cloud