Exam Paper Flashcards
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.
What is a Container Orchestrator?
A tool that supports development, QA, and production environments for continuous testing. It schedules workloads dynamically and provides standardized application definition files.
What is the difference in OS usage between containers and unikernels?
Containers share the kernel of the host OS while unikernels include a small kernel in each deployment unit.
What is the difference in resource allocation between containers and unikernels?
With containers, the OS handles resource allocation but with unikernels, the hypervisor handles resource allocation.
What is SOAP?
Simple Object Access Protocol is a messaging protocol that allows programs that run on different operating systems to communicate using XML
What is a Distributed System?
A collection of independent computing entities that are interconnected via a network to share resources and are capable of collaborating on a service/task
What are some reasons to virtualise?
Cost reduction
isolation
testing and evaluation
easy duplication
What is server virtualisation? 2 pros and cons
a VMM is deployed on the server and the server is divided into multiple virtual servers
+ Efficient and reliable backup and recovery
+ Supports IT operations
- significant upfront costs
- lower security and data protection
Containers vs Unikernels. Choose containers if
- you want a well documented, supported solution
- running an app that features complex workloads
- prefer simple deployments
Containers vs Unikernels. Choose Unikernels if
- you want to maximize security
- minimize resource consumption
- achieve complete platform independency
what is serverless computing and List the advantages of it
Serverless computing is a method of providing backend services on an as-used basis, allowing users to deploy code without the hassle of worrying about the underlying infrastructure
- lower costs
- simplified scalability
- simplified backend code
- quicker turnaround
What is REST architecture?
Representational State Transfer, is an architectural style for designing networked applications. It relies on a stateless communication model, where clients and servers exchange information