Exam Paper Flashcards
(88 cards)
What is the difference between middleware and hypervisor
Middleware is a software intermediary for communication between applications, which simplifies development and integration in distributed systems
Hypervisors manage virtual machines for multiple OS on a single physical machine, enabling virtualization, improving resource utilisation
What are microservices
Pieces of an application that run independently and perform one service only, operating in its own environment and storing its own data
Advantages of Microservices
Resilience
Selective scalability
Extensibility
Flexibility (prog languages)
Explain why cloud computing is not network computing
CC extends beyond network computing, offering a broad range of services and resources.
CC provides on-demand access to a shared pool of configurable computing resources over the internet
What is Virtualization?
Creating multiple virtual instances of an entity on a single physical machine
Enhances hardware utilisation, scalability, and isolation, crucial for CC
What is Paravirtualisation
Definition: Virtualization technique requiring cooperation between the guest OS and hypervisor for efficient resource utilization.
Key Point: Guest OS is modified to be aware of the virtualized environment, enhancing performance compared to full virtualization.
What is an Elastic IP Address
Definition: Static and publicly routable IP address in cloud computing (e.g. AWS) that can be easily reassigned between virtual machines.
Key Point: Enhances flexibility and high availability by enabling quick remapping of IP addresses within the cloud infrastructure.
Define Cloud native applications
Definition: Software applications purpose-built for cloud environments, utilizing cloud services, microservices, containerization, and DevOps practices for enhanced scalability, flexibility, and automation.
Key Points: Designed for optimal performance in the cloud, promoting agility, resilience, and rapid development cycles.
What is a service mesh and what is its purpose
A service mesh is an infrastructure layer built into an app. This visible layer can document how well different parts of an app interact, so it becomes easier to optimise communication and avoid downtime as an app grows.
list 3 characteristics of cloud native applications
Microservices Architecture: Decomposed into small, independently deployable services for flexibility and scalability.
Containerization: Utilizes container technologies like Docker for consistent deployment and management across environments.
DevOps Practices: Embraces DevOps for collaboration, automation, and CI/CD pipelines, enhancing agility and efficiency in the cloud.
Challenges of Cloud-Native Applications
Complexity of Microservices Management:
Challenge: Coordinating and managing numerous microservices in a way that ensures seamless communication and integration.
Security Concerns:
Challenge: Addressing the complexities of security in a distributed environment, including securing individual microservices and managing access controls.
Dependency on Cloud Service Providers:
Challenge: Balancing reliance on cloud services while avoiding vendor lock-in, considering potential challenges in migrating between different cloud providers.
Continuous Monitoring and Observability:
Challenge: Ensuring effective logging, monitoring, and observability in the dynamic and distributed nature of cloud-native applications for timely issue identification and resolution.
Discuss one Limitation of Cloud Computing
Data Security and Privacy Concerns:
Data Breaches:
Concern: Potential for unauthorized access leading to compromise of data confidentiality and integrity.
Regulatory Compliance:
Concern: Challenges in ensuring compliance with industry-specific and regional regulations governing data storage and processing.
Loss of Control:
Concern: Relinquishing some control over data infrastructure when entrusting it to a third-party cloud provider.
Data Residency:
Concern: Issues related to storing data in specific geographic locations to comply with regulatory requirements.
Discuss the differences between virtual machines and containers
Hypervisor vs. Container Engine:
VMs: Run on a hypervisor, creating and managing virtualized environments.
Containers: Run on a container engine (e.g., Docker), sharing the host OS kernel.
Resource Overhead:
VMs: Greater resource overhead with full OS, consuming more memory and storage.
Containers: Lightweight, sharing the host OS kernel for faster startup, lower resource usage.
Isolation:
VMs: Strong isolation with individual OS, file system, and resources.
Containers: User space isolation; share the kernel, offering efficiency but different security implications.
Portability:
VMs: Less portable due to encapsulating the entire OS.
Containers: Highly portable, encapsulating only the application and dependencies.
Benefits of Computation offloading techniques
improves performance and responsiveness in computation intensive mobile applications.
Reduces the computational load on the mobile device by distributing processing tasks to external resources
Placement of computing resources
Location: Cloud servers are suitable for hosting computing resources.
Advantages: Offers scalability and flexibility for handling variable computational demands.
Benefits and applications of Microservices architecture
Benefits: Enables independent scaling, flexibility, and efficient management of diverse features.
Application: Suitable for dynamic and feature-rich applications, supporting faster updates and fault isolation.
Define elasticity
The ability of a system to automatically adapt to changing workloads by provisioning and de-provisioning resources dynamically.
Define scalability
The capability of a system to handle a growing amount of work or to be enlarged to accommodate growth.
What is hardware virtualisation? 2 pros and cons
a VMM is directly installed on the hardware system, VM hypervisor manages the memory, processor and resources
+ reduced maintenance overhead
+ minimal required changes in guest OS
(-) requires explicit support in the host CPU
(-) limits efficiency and scalability
What is the difference in the purpose of containers and unikernels?
Containers are designed to run multiple processes but unikernels are designed to run a single process.
How do containers differ from VMs?
Containers don’t use a hypervisor and provide faster resource provisioning.
How do containers leverage the host operating system?
They isolate processes and control their access to resources.
What is OS virtualisation? 2 pros and cons
VMM installed on the OS, useful for simulating multiple environments in parallel
+ multiple VMs operate independently
+ limited impact of malfunctions
- admin overhead
- heavy file system consumption
What is a Container Engine/Runtime?
A container engine processes container images based on user requests. It has an embedded runtime component that provides functionality such as security policies and communication channels with the kernel.