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

6.6 KiB

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