AZ-900 Microsoft Azure Fundamentals Exam
Start here! Get your feet wet with the Microsoft cloud and begin your journey to earning your Microsoft Certified: Azure Fundamentals certification!
Practice Test

Practice Test

Compare compute types, including containers, virtual machines, and functions
Understand the Core Concepts of Containers
Containerization
Containers are a way to package applications and their dependencies together, ensuring they run consistently across different environments. This means that an application will behave the same way whether it’s on a developer’s laptop or a production server. Unlike virtual machines, which virtualize the entire operating system, containers virtualize the application layer, making them lightweight and efficient. Containerization involves encapsulating an application with all its necessary libraries, configurations, and runtime environment into a single package. This package, the container, can then be easily moved and deployed across various platforms. This portability is a key advantage of containers, allowing for faster and more reliable deployments.
Azure Container Storage
Azure Container Storage is a cloud-based service designed specifically for managing storage for containerized applications. It provides a way to create and manage volumes, which are storage locations used by containers. This service is optimized for production-scale stateful applications, meaning applications that need to store data persistently.
Container Orchestration
Container orchestration is the process of automating the deployment, scaling, and management of containers. Azure Kubernetes Service (AKS) is a managed container orchestration service that simplifies the process of running containerized applications at scale. AKS handles tasks like load balancing, scaling, and health monitoring, allowing developers to focus on their applications.
Benefits of Containers
Containers offer several benefits, including:
- Scalability: Containers can be easily scaled up or down to meet changing demands.
- Portability: Containers can run on any platform that supports containerization.
- Resource Efficiency: Containers are lightweight and use fewer resources than virtual machines.
- Consistency: Containers ensure that applications run consistently across different environments.
In summary, containers are a powerful tool for modern application development and deployment. They provide a way to package applications and their dependencies, ensuring consistency and portability. Services like Azure Container Storage and Azure Kubernetes Service (AKS) further enhance the benefits of containers by providing optimized storage and orchestration capabilities.
Explore the Functionality of Azure Functions
Azure Functions
Azure Functions is a serverless compute service that allows you to run code without managing servers. This means you can focus on writing code and not worry about the underlying infrastructure. Functions are triggered by events, such as HTTP requests, changes in data, or messages, making them ideal for event-driven architectures. This serverless approach offers benefits like automatic scaling, reduced operational overhead, and cost-efficiency, especially for intermittent workloads.
Key Features and Benefits
Azure Functions are designed to be highly scalable, automatically adjusting resources to meet demand. This ensures your applications remain responsive even during peak times. Since you only pay for the compute time used, it can be more cost-effective than traditional server-based solutions, especially for tasks that don’t run constantly. Functions support various programming languages, including C#, Java, JavaScript, PowerShell, Python, and TypeScript, providing flexibility for developers.
Common Use Cases
Azure Functions are versatile and can be used in many scenarios. They are often used to create microservices, where small, independent services perform specific tasks. They are also useful for data processing, such as validating, transforming, and processing files uploaded to blob storage. Additionally, Functions can be used for automation tasks, like responding to database changes or creating event-driven messaging systems.
Integration with Other Azure Services
Azure Functions seamlessly integrate with other Azure services, enhancing their functionality. For example, they can be used with Azure Logic Apps to create complex workflows, or with Azure Cosmos DB for event sourcing and data processing. They can also be triggered by Azure Storage queues or Service Bus queues, enabling advanced messaging solutions. This integration makes Functions a powerful tool for building feature-rich applications.
Development and Deployment
You can develop Azure Functions using tools like Visual Studio Code, which provides extensions for creating, testing, and deploying functions. When deploying, the entire project folder is included, but not the folder itself. This means that configuration files like host.json
should be in the package root. Functions can be deployed to Azure using various methods, including zip deployment and container deployment.
Conclusion
In summary, Azure Functions provide a flexible, scalable, and cost-effective way to run code in the cloud. Their serverless nature, event-driven architecture, and integration with other Azure services make them a valuable tool for various applications, from microservices to data processing and automation. Understanding Azure Functions is crucial for building modern, cloud-native applications.
Evaluate the Advantages and Limitations of Each Compute Type
Azure Compute Options
Azure offers several compute options, each with unique strengths and weaknesses. Understanding these differences is crucial for choosing the right service for your needs. The primary compute types include virtual machines (VMs), containers, and functions. Each of these has different characteristics that make them suitable for different use cases.
Virtual Machines
Virtual machines provide the most control and flexibility. They are essentially emulations of physical computers, allowing you to run any operating system and software. This control comes at the cost of management overhead, as you are responsible for patching, scaling, and maintaining the underlying OS. VMs are ideal for applications that require specific configurations or have complex dependencies. However, they can be less efficient in terms of resource utilization compared to other options.
Containers
Containers offer a lightweight alternative to VMs. They package applications and their dependencies into isolated units, allowing for consistent deployment across different environments. Containers are more resource-efficient than VMs because they share the host OS kernel. They are well-suited for microservices architectures and applications that need to scale quickly. However, they may not be suitable for applications that require full OS control or have specific OS-level dependencies.
Functions
Functions, also known as serverless compute, are the most abstract compute option. They allow you to run code without managing any underlying infrastructure. Functions are highly scalable and cost-effective, as you only pay for the compute time used. They are ideal for event-driven applications and tasks that can be broken down into small, independent units. However, they are less suitable for long-running processes or applications that require persistent state.
Summary
In summary, the choice of compute type depends on your specific requirements. VMs offer the most control but require more management, containers provide a balance of efficiency and flexibility, and functions offer the most abstraction and scalability. Carefully consider your application’s needs, resource requirements, and management capabilities when selecting a compute type in Azure.
Examine the Features and Use Cases of Virtual Machines
Virtual Machines in Azure
Virtual Machines (VMs) in Azure provide Infrastructure-as-a-Service (IaaS), allowing users to have control over their computing environment. Unlike other cloud services, VMs give you the flexibility to manage the operating system, applications, and configurations. This means you are responsible for tasks like patching, installing software, and configuring the VM to your specific needs.
Flexibility and Control
One of the main advantages of using VMs is the ability to run a wide variety of operating systems, including Windows and Linux, and to install any software you need. This makes VMs suitable for many different scenarios, such as development and testing, running applications in the cloud, or extending your existing data center. You have full administrative control over the VM, which is similar to having a physical server, but without the need to manage the physical hardware.
Use Cases
VMs are particularly useful for:
- Legacy Applications: If you have older applications that are not easily moved to other cloud services, VMs provide a way to run them in the cloud without significant changes.
- Isolated Workloads: VMs can be used to isolate workloads that require specific configurations or security settings.
- Development and Testing: VMs offer a quick and easy way to create environments for coding and testing applications.
- Applications with Fluctuating Demand: You can scale the number of VMs up or down based on the demand for your application, paying only for what you use.
Management and Cost
When you create a VM, you also create supporting resources like virtual networks, network interface cards (NICs), IP addresses, and storage disks. These resources have their own costs, so it’s important to consider them when planning your VM deployment. You can choose from different types of storage, such as standard disks (HDD) for cost-effective storage or premium disks (SSD) for high-performance needs. You are responsible for managing the VM, including backups, updates, and security.
Conclusion
In summary, Azure Virtual Machines offer a flexible and powerful way to run applications in the cloud. They provide a high level of control and customization, making them suitable for a wide range of use cases. However, they also require more management effort compared to other cloud services. Understanding these trade-offs is key to choosing the right compute option for your needs.
Analyze Cost, Performance, and Management Considerations
Compute Options in Azure
When choosing between containers, virtual machines (VMs), and functions in Azure, it's crucial to consider the cost, performance, and management overhead of each option. Virtual machines offer the most control but can be more expensive and require more management. Containers provide a balance between control and efficiency, while functions are the most cost-effective for event-driven tasks but offer less control. Understanding these trade-offs is key to optimizing your cloud environment.
Virtual Machines
Virtual machines in Azure provide a high degree of control, allowing you to customize the operating system, software, and hardware resources. However, this flexibility comes with increased management overhead. You are responsible for patching, updating, and maintaining the VM, which can be time-consuming and costly. VMs are billed per minute of usage, so it's important to shut them down when not in use to avoid unnecessary costs. Additionally, the cost of a VM is influenced by its size, operating system, and the region it's deployed in.
Containers
Containers, such as those managed by Azure Kubernetes Service (AKS), offer a more efficient way to run applications. They are lightweight and portable, allowing for faster deployment and scaling. Containers share the host OS kernel, which reduces resource consumption and can lead to cost savings compared to VMs. However, managing a container environment requires some expertise, and you need to consider the cost of the underlying infrastructure, such as the AKS cluster.
Functions
Functions, also known as serverless compute, are ideal for event-driven tasks and microservices. They are highly scalable and cost-effective, as you only pay for the compute time used. Azure Functions automatically scale based on demand, eliminating the need to manage infrastructure. However, functions have limitations in terms of execution time and resource access, making them unsuitable for all types of workloads. They are best for short-lived, stateless operations.
Cost Optimization
To optimize costs, it's essential to choose the right compute type for your workload. For long-running applications that require full control, VMs might be necessary, but for stateless applications, containers or functions can be more cost-effective. Azure provides tools like Cost Management to analyze spending and identify areas for optimization. You can also use features like auto-shutdown for VMs and scaling policies for containers to reduce costs. Understanding the billing models for each compute type is crucial for effective cost management.
Conclusion
In summary, this section has explored the different compute options available in Azure: containers, virtual machines, and functions. Containers offer a lightweight and portable way to package applications, while virtual machines provide full control over the operating system and environment. Functions, on the other hand, offer a serverless approach, allowing code to run without managing infrastructure. Each option has its own advantages and limitations in terms of cost, performance, and management overhead. Choosing the right compute type depends on the specific needs of the application, including scalability, resource requirements, and management capabilities. Understanding these trade-offs is crucial for optimizing cloud deployments in Azure.