Dev-optimized, cloud-based workstations—Microsoft Dev Box is now generally available – Microsoft

Dev-optimized, cloud-based workstations—Microsoft Dev Box is now generally available – Microsoft

Discover secure, future-ready cloud solutions—on-premises, hybrid, multicloud, or at the edge
Learn about sustainable, trusted cloud infrastructure with more regions than any other provider
Build your business case for the cloud with key financial and technical guidance from Azure
Plan a clear path forward for your cloud journey with proven tools, guidance, and resources
See examples of innovation from successful companies of all sizes and from all industries
Explore some of the most popular Azure products
Provision Windows and Linux VMs in seconds
Enable a secure, remote desktop experience from anywhere
Migrate, modernize, and innovate on the modern SQL family of cloud databases
Build or modernize scalable, high-performance apps
Deploy and scale containers on managed Kubernetes
Add cognitive capabilities to apps with APIs and AI services
Quickly create powerful cloud apps for web and mobile
Everything you need to build and operate a live game on one platform
Execute event-driven serverless code functions with an end-to-end development experience
Jump in and explore a diverse selection of today's quantum hardware, software, and solutions
Secure, develop, and operate infrastructure, apps, and Azure services anywhere
Simplify operations and management from cloud to edge with an AI companion
Create the next generation of applications using artificial intelligence capabilities for any developer and any scenario
Build, train, and deploy models from the cloud to the edge
Your platform for developing generative AI solutions and custom copilots
Enterprise scale search for app development
Apply advanced coding and language models to a variety of use cases
Unified speech services for speech-to-text, text-to-speech and speech translation
Add natural language capabilities with a single API call
Easily conduct machine translation with a simple REST API call
Unlock insights from image and video content with AI
Accelerate information extraction from documents
Use AI to monitor text and image content for safety
Gather, store, process, analyze, and visualize data of any variety, volume, or velocity
Limitless analytics with unmatched time to insight
Design AI with Apache Spark™-based analytics
Govern, protect, and manage your data estate
Hybrid data integration at enterprise scale, made easy
Provision cloud Hadoop, Spark, R Server, HBase, and Storm clusters
Real-time analytics on fast-moving streaming data
Build, train, and deploy models from the cloud to the edge
Enterprise-grade analytics engine as a service
Scalable, secure data lake for high-performance analytics
Fast and highly scalable data exploration service
Access, manage, and act on data and insights by connecting every data source and analytics service together on a single platform
Access cloud compute capacity and scale on demand—and only pay for the resources you use
Provision Windows and Linux VMs in seconds
Manage and scale up to thousands of Linux and Windows VMs
Deploy and scale containers on managed Kubernetes
Build and deploy Spring Boot applications with a fully managed service from Microsoft and VMware
Quickly create powerful cloud apps for web and mobile
Execute event-driven serverless code functions with an end-to-end development experience
A dedicated physical server to host your Azure VMs for Windows and Linux
Cloud-scale job scheduling and compute management
Migrate SQL Server workloads to the cloud at lower total cost of ownership (TCO)
Provision unused compute capacity at deep discounts to run interruptible workloads
Build and deploy modern apps and microservices using serverless containers
Develop and manage your containerized applications faster with integrated tools
Deploy and scale containers on managed Kubernetes
Deploy and scale containers on managed Red Hat OpenShift
Build and deploy modern apps and microservices using serverless containers
Execute event-driven serverless code functions with an end-to-end development experience
Run containerized web apps on Windows and Linux
Launch containers with hypervisor isolation
Deploy and operate always-on, scalable, distributed apps
Build, store, secure, and replicate container images and artifacts
Seamlessly manage Kubernetes clusters at scale
Azure Kubernetes Service Edge Essentials is an on-premises Kubernetes implementation of Azure Kubernetes Service (AKS) that automates running containerized applications at scale.
Support rapid growth and innovate faster with secure, enterprise-grade, and fully managed database services
Migrate, modernize, and innovate on the modern SQL family of cloud databases
Build or modernize scalable, high-performance apps
Build apps that scale with managed and intelligent SQL database in the cloud
Fully managed, intelligent, and scalable PostgreSQL
Modernize SQL Server applications with a managed, always-up-to-date SQL instance in the cloud
Fully managed, scalable MySQL Database
Migrate SQL Server workloads to the cloud at lower total cost of ownership (TCO)
Accelerate apps with high-throughput, low-latency data caching
Accelerate your data migration to Azure
Modernize Cassandra data clusters with a managed instance in the cloud
Deploy applications to the cloud with enterprise-ready, fully managed community MariaDB
Deliver innovation faster with simple, reliable tools for continuous delivery
Services for teams to share code, track work, and ship software
Continuously build, test, and deploy to any platform and cloud
Plan, track, and discuss work across your teams
Get unlimited, cloud-hosted private Git repos for your project
Create, host, and share packages with your team
Test and ship confidently with an exploratory test toolkit
Quickly create environments using reusable templates and artifacts
Use your favorite DevOps tools with Azure
Full observability into your applications, infrastructure, and network
Optimize app performance with high-scale load testing
Quickly spin up app infrastructure environments with project-based templates
Build, manage, and continuously deliver cloud applications—using any platform or language
Powerful and flexible environment to develop apps in the cloud
A powerful, lightweight code editor for cloud development
World’s leading developer platform, seamlessly integrated with Azure
Comprehensive set of resources to create, deploy, and manage apps
A powerful, low-code platform for building apps quickly
Get the SDKs and command-line tools you need
Build, test, release, and monitor your mobile and desktop apps
Full observability into your applications, infrastructure, and network
Optimize app performance with high-scale load testing
Quickly spin up app infrastructure environments with project-based templates
Streamline development with secure, ready-to-code workstations in the cloud
Get Azure innovation everywhere—bring the agility and innovation of cloud computing to your on-premises workloads
Secure, develop, and operate infrastructure, apps, and Azure services anywhere
Cloud-native SIEM and intelligent security analytics
Build and run innovative hybrid apps across cloud boundaries
Experience a fast, reliable, and private connection to Azure
Synchronize on-premises directories and enable single sign-on
Migrate, modernize, and innovate on the modern SQL family of cloud databases
Services for teams to share code, track work, and ship software
Fully managed, intelligent, and scalable PostgreSQL
Extend cloud intelligence and analytics to edge devices
Manage user identities and access to protect against advanced threats across devices, data, apps, and infrastructure
Consumer identity and access management in the cloud
Manage your domain controllers in the cloud
Seamlessly integrate on-premises and cloud-based applications, data, and processes across your enterprise
Automate the access and use of data across clouds
Connect across private and public cloud environments
Publish APIs to developers, partners, and employees securely and at scale
Reliable message delivery at massive scale
Reduce time, risk, and cost of energy exploration and production
Azure Data Manager for Agriculture extends the Microsoft Intelligent Data Platform with industry-specific data connectors and capabilities to bring together farm data from disparate sources, enabling organizations to leverage high quality datasets and accelerate the development of digital agriculture solutions
Connect assets or environments, discover insights, and drive informed actions to transform your business
Unlock insights for intelligent local actions and global visibility. Enabled by Azure Arc
Connect, monitor, and manage billions of IoT assets
Use IoT spatial intelligence to create models of physical environments
Extend cloud intelligence and analytics to edge devices
Go from proof of concept to proof of value
Create, connect, and maintain secured intelligent IoT devices from the edge to the cloud
Build intelligent edge solutions with world-class developer tools, long-term support, and enterprise-grade security.
Making embedded IoT development and connectivity easy
Use an enterprise-grade service for the end-to-end machine learning lifecycle
Add location data and mapping visuals to business applications and solutions
Simplify, automate, and optimize the management and compliance of your cloud resources
Build, manage, and monitor all Azure products in a single, unified console
Govern, protect, and manage your data estate
Stay connected to your Azure resources—anytime, anywhere
Streamline Azure administration with a browser-based shell
Your personalized Azure best practices recommendation engine
Simplify data protection with built-in backup management at scale
Monitor, allocate, and optimize cloud costs with transparency, accuracy, and efficiency
Implement corporate governance and standards at scale
Keep your business running with built-in disaster recovery service
Improve application resilience by introducing faults and simulating outages
Full observability into your applications, infrastructure, and network
Deliver high-quality video content anywhere, any time, and on any device
Encode, store, and stream video and audio at scale
Studio grade encoding at cloud scale
A single player for all your playback needs
Deliver content to virtually all devices with ability to scale
Securely deliver content using AES, PlayReady, Widevine, and Fairplay
Fast, reliable content delivery network with global reach
Simplify and accelerate your migration to the cloud with guidance, tools, and resources
Simplify migration and modernization with a unified platform
Keep your business running with built-in disaster recovery service
Accelerate your data migration to Azure
Appliances and solutions for data transfer to Azure and edge compute
Monitor, allocate, and optimize cloud costs with transparency, accuracy, and efficiency
Blend your physical and digital worlds to create immersive, collaborative experiences
Create multi-user, spatially aware mixed reality experiences
Render high-quality, interactive 3D content with real-time streaming
Use IoT spatial intelligence to create models of physical environments
Build for mixed reality using AI sensors
Automatically align and anchor 3D content to objects in the physical world
Build and deploy cross-platform and native apps for any mobile device
Send push notifications to any platform from any back end
Build, test, release, and monitor your mobile and desktop apps
Create cloud-powered mobile apps faster
Add location data and mapping visuals to business applications and solutions
Publish APIs to developers, partners, and employees securely and at scale
Enterprise scale search for app development
Add cognitive capabilities to apps with APIs and AI services
Create multi-user, spatially aware mixed reality experiences
Quickly create powerful cloud apps for web and mobile
Build multichannel communication experiences
Connect cloud and on-premises infrastructure and services to provide your customers and users the best possible experience
Create your own private network infrastructure in the cloud
Deliver high availability and network performance to your apps
Build secure, scalable, highly available web front ends in Azure
Establish secure, cross-premises connectivity
Host your Domain Name System (DNS) domain in Azure
Fast, reliable content delivery network with global reach
Protect your Azure resources from distributed denial-of-service (DDoS) attacks
Rapidly ingest data from space into the cloud with a satellite ground station service
Experience a fast, reliable, and private connection to Azure
Extend Azure management for deploying 5G and SD-WAN network functions on edge devices
Centrally manage virtual networks in Azure from a single pane of glass
Private access to services hosted on the Azure platform, keeping your data on the Microsoft network
Protect your enterprise from advanced threats across hybrid cloud workloads
Cloud-native SIEM and intelligent security analytics
Build secure, scalable, highly available web front ends in Azure
Safeguard and maintain control of keys and other secrets
Establish secure, cross-premises connectivity
Protect your Azure resources from distributed denial-of-service (DDoS) attacks
Fully managed service that helps secure remote access to your virtual machines
A cloud-native web application firewall (WAF) service that provides powerful protection for web apps
Protect your Azure Virtual Network resources with cloud-native network security
Central network security policy and route management for globally distributed, software-defined perimeters
Get secure, massively scalable cloud storage for your data, apps, and workloads
High-performance, highly durable block storage
Scalable, secure data lake for high-performance analytics
Simple, secure and serverless enterprise-grade cloud file shares
Enterprise-grade Azure file shares, powered by NetApp
Simplify data protection with built-in backup management at scale
Massively scalable and secure object storage
Appliances and solutions for data transfer to Azure and edge compute
Industry leading price point for storing rarely accessed data
Elastic SAN is a cloud-native storage area network (SAN) service built on Azure. Gain access to an end-to-end experience like your on-premises SAN
Manage persistent volumes for stateful container applications
Azure Managed Lustre is a fully managed, cloud based parallel file system that enables customers to run their high performance computing (HPC) workloads in the cloud
Build, deploy, and scale powerful web applications quickly and efficiently
Quickly create and deploy mission-critical web apps at scale
Publish APIs to developers, partners, and employees securely and at scale
Fast, reliable content delivery network with global reach
Enterprise scale search for app development
Add real-time web functionalities easily
Easily build real-time messaging web applications using WebSockets and the publish-subscribe pattern
Add location data and mapping visuals to business applications and solutions
Streamlined full-stack development from source code to global high availability
Build multichannel communication experiences
Optimize app performance with high-scale load testing
Easily add real-time collaborative experiences to your apps with Fluid Framework
Build and deploy modern apps and microservices using serverless containers
Empower employees to work securely from anywhere with a cloud-based virtual desktop infrastructure
Enable a secure, remote desktop experience from anywhere
Provision Windows desktops and apps with VMware and Azure Virtual Desktop
Provision Windows desktops and apps on Azure with Citrix and Azure Virtual Desktop
Set up virtual labs for classes, training, hackathons, and other related scenarios
Streamline development with secure, ready-to-code workstations in the cloud
Build, manage, and continuously deliver cloud apps—with any platform or language
Analyze images, comprehend speech, and make predictions using data
Simplify and accelerate your migration and modernization with guidance, tools, and resources
Gather, store, process, analyze, and visualize data of any variety, volume, or velocity
Bring the agility and innovation of the cloud to your on-premises workloads
Connect, monitor, and control devices with secure, scalable, and open edge-to-cloud solutions
Help protect data, apps, and infrastructure with trusted security services
Simplify and accelerate development and testing (dev/test) across any platform.
Bring together people, processes, and products to continuously deliver value to customers and coworkers.
Build secure apps on a trusted platform. Embed security in your developer workflow and foster collaboration between developers, security practitioners, and IT operators.
Give customers what they want with a personalized, scalable, and secure shopping experience.
Turn your ideas into applications faster using the right tools for the job.
Create reliable apps and functionalities at scale and bring them to market faster.
Reach your customers everywhere, on any device, with a single mobile app build.
Respond to changes faster, optimize costs, and ship confidently.
Build apps faster by not having to manage infrastructure.
Connect modern applications with a comprehensive set of messaging services on Azure.
Accelerate time to market, deliver innovative experiences, and improve security with Azure application and data modernization.
Use business insights and intelligence from Azure to build software as a service (SaaS) apps
Move to a SaaS model faster with a kit of prebuilt code, templates, and modular resources.
Explore services to help you develop and run Web3 applications.
Build mission-critical solutions to analyze images, comprehend speech, and make predictions using data.
Uncover latent insights from across all of your business data with AI.
Protect your data and code while the data is in use in the cloud.
Build machine learning models faster with Hugging Face on Azure.
Save money and improve efficiency by migrating and modernizing your workloads to Azure with proven tools and guidance.
Optimize costs, operate confidently, and ship features faster by migrating your ASP.NET web apps to Azure.
Simplify and accelerate development and testing (dev/test) across any platform.
Enhanced security and hybrid capabilities for your mission-critical Linux workloads.
Reduce infrastructure costs by moving your mainframe and midrange apps to Azure.
Extend SAP applications and innovate in the cloud trusted by SAP.
Move your SQL Server databases to Azure with few or no application code changes.
Migrate your Windows Server workloads to Azure for unparalleled innovation and security.
Protect your data and code while the data is in use in the cloud.
Accelerate time to market, deliver innovative experiences, and improve security with Azure application and data modernization.
Seamlessly integrate applications, systems, and data for your enterprise.
Run your Oracle database and enterprise applications on Azure.
Migrate MongoDB workloads to the cloud and modernize data infrastructure with MongoDB Atlas on Azure.
Maximize cloud business value for your organization by leveraging Azure products and services to implement FinOps best practices that can support cloud cost optimization.
Drive faster, more efficient decision making by drawing deeper insights from your analytics.
Accelerate time to insights with an end-to-end cloud analytics solution.
Minimize disruption to your business with cost-effective backup and disaster recovery solutions.
Get fully managed, single tenancy supercomputers with high-performance storage and no data movement.
Bring innovation anywhere to your hybrid environment across on-premises, multicloud, and the edge.
Deliver ultra-low-latency networking, applications and services at the enterprise edge.
Run your mission-critical applications on Azure for increased operational agility and security.
Experience quantum impact today with the world's first full-stack, quantum computing cloud ecosystem.
Deliver ultra-low-latency networking, applications, and services at the mobile operator edge.
Explore services to help you develop and run Web3 applications.
Bring Azure to the edge with seamless network integration and connectivity to deploy modern connected apps.
Migrate your Windows Server workloads to Azure for unparalleled innovation and security.
Connect devices, analyze data, and automate processes with secure, scalable, and open edge-to-cloud solutions.
Build open, interoperable IoT solutions that secure and modernize industrial systems.
Help safeguard physical work environments with scalable IoT solutions designed for rapid deployment.
Meet environmental sustainability goals and accelerate conservation projects with IoT technologies.
Ensure compliance using built-in cloud governance capabilities.
Minimize disruption to your business with cost-effective backup and disaster recovery solutions.
Protect your data and code while the data is in use in the cloud.
Cloud-native network security for protecting your applications, network, and workloads.
Explore services to help you develop and run Web3 applications.
Get started easily, run lean, stay agile, and grow fast with Azure for startups
Accelerate mission impact, increase innovation, and optimize efficiency—with world-class security
Find reference architectures, example scenarios, and solutions for common workloads on Azure
Do more with less—explore resources for increasing efficiency, reducing costs, and driving innovation
Search from a rich catalog of more than 17,000 certified apps and services
Plan a clear path forward for your cloud journey with proven tools, guidance, and resources
Get the best value at every stage of your cloud journey
See which services offer free monthly amounts
Only pay for what you use, plus get free services
Find the options that work best for you
Explore special offers, benefits, and incentives
Estimate the costs for Azure products and services
Estimate your total cost of ownership and cost savings
Learn how to manage and optimize your cloud spend
Understand the value and economics of moving to Azure
Find, try, and buy trusted apps and services
Get up and running in the cloud with help from an experienced partner
Find the latest content, news, and guidance to lead customers to the cloud
Build, extend, and scale your apps on a trusted cloud platform
Reach more customers—sell directly to over 4M users a month in the commercial marketplace
AI + Machine Learning, Announcements, Azure DevTest Labs, Developer Tools, Microsoft Dev Box
By Principal Group Program Manager
Posted on
5 min read
Last month at Microsoft Build, we shared several new features in Microsoft Dev Box—ready-to-code, cloud-based workstations optimized for developer use cases and productivity. From new integrations with Visual Studio, a preview of configuration-as-code customization, and our own rollout of Dev Box internally, there was a lot to share, and the response to this news was great. Today, I’m excited to share another announcement—Microsoft Dev Box is now generally available.
We first announced Microsoft Dev Box at Microsoft Build 2022, but our journey didn’t start there. For more than seven years, we’ve focused on improving developer productivity and satisfaction with the power of the cloud. In 2016, we introduced Azure DevTest Labs, a service that enables development teams to create templatized virtual machines (VMs) for a variety of development and testing use cases.
Over the years, we’ve helped many customers build custom solutions on DevTest Labs to expand on its core features. One use case that has been especially popular is using DevTest labs to create persistent, preconfigured dev environments. But building these custom solutions on top of DevTest Labs is challenging, requiring significant effort to build out additional governance and management features. Customers wanted a turnkey solution.
In response, we introduced Visual Studio Codespaces in 2019—preconfigured, container- and Linux-based dev environments that developers could spin up in seconds directly from Visual Studio Code, providing developers with a fast and easy way to work on their apps while on the go.
Developers love Codespaces for its speed and mobility, and the service still exists today as GitHub Codespaces. But software development requires all sorts of tools. Initially, we built Codespaces to support Visual Studio Code and GitHub, but customers quickly started asking for support for other Integrated Development Environments (IDEs), source code management, and tools.
As a first step, we started to expand Codespaces to include support for Visual Studio. However, doing so revealed more challenges than we expected—primarily around enterprise-ready management and governance. That, combined with the fact that devs wanted access to all their tools in their cloud environment, made us realize we needed to deliver:
Essentially, the solution needed to be a developer-optimized virtualization solution. Microsoft already offers Windows 365—delivering Cloud PCs, securely streaming your personalized Windows desktop, apps, settings, and content from the Microsoft Cloud to any device anywhere. Critically, Windows 365 is fully integrated with Microsoft Intune, which enables IT admins to manage their Cloud PCs alongside their physical devices. That was exactly what we were looking for, so we decided to use Windows 365 as the foundation for our new solution.
With enterprise management taken care of, our next consideration was the underlying hardware. While high-powered compute was an obvious need, we soon realized that storage can also significantly impact developer performance. Large builds put a lot of strain on storage drives, which become a bottleneck if read or write speeds can’t keep up with the build. To account for this, we decided to include premium Solid-State Drivers (SSDs) in our product. But we still hadn’t addressed the primary challenges of dev workstations—long deployment times and configuration errors caused by complex projects and toolsets.
Solving these problems would require a more fundamental shift in how our service managed configurations and deployment. Devs work on all sorts of projects, many of which require specific tools. For these devs, a blanket, role-based configuration would require them to spend time tailoring their workstation and installing additional tools once it was provisioned. IT admins and dev leads alike needed a way to create multiple, tailored configurations and enable developers to spin up a new workstation on-demand that would be ready-to-code for their current project.
Our first step was to integrate our solution with the Azure Compute Gallery, providing a scalable way to share base images and manage image versions. We then set up a new management layer that enabled teams to organize their images and networking configurations by project. Now, dev leads and IT admins could set up multiple workstation configurations for a single project. Admins could even define the Azure region in which each workstation would deploy, ensuring a high-fidelity experience for devs around the world.
By preconfiguring workstations like this, we eliminated the need for devs to reach out to IT every time they needed a new workstation. And because we could make multiple workstation configurations available for a single project, devs weren’t locked into a single configuration—they could select a tailored workstation, spin it up, and start coding quickly. We even gave devs a specialized Developer Portal that offers fast, easy access to their project-based workstations. Devs can also use this portal to quickly deploy environments for any stage of development using Azure Deployment Environments, also generally available.
That’s how we ended up at Microsoft Dev Box—cloud-based workstations optimized for developer use cases and productivity. Dev Box combines developer-optimized capabilities with the enterprise-ready management of Windows 365 and Microsoft Intune. And as we work to improve Dev Box, we’ve continued to partner with other teams at Microsoft. Most recently, we worked closely with the Visual Studio team to add built-in integrations that optimize the Visual Studio experience on Dev Box. We’re also actively introducing configuration-as-code customization into Dev Box, which will provide dev leads even more granular control to configure dev boxes around specific tasks and enable them to connect Dev Box provisioning to their existing Git flow.
But before we launched Dev Box, we wanted to make sure it was truly enterprise-ready. At Microsoft, it’s common to test our services internally before releasing them. In this case, that meant stress-testing Dev Box against products with repos that are hundreds of gigabytes large. This has been a challenging but useful experience, and our learnings have helped us speed up the path to general availability. Already, there are more than 10,000 engineers using Dev Box at Microsoft, and we have several customers using Dev Box in production environments today.
From our initial work with customers, we learned a lot about their usage patterns and the use cases it can support. Dev Box works great as a full-time desktop replacement, or for specialized part-time use. You can spin up a high-powered Dev Box for a particularly compute-heavy task, or a second machine to isolate an experiment or proof of concept.
Initially, we planned on charging for Dev Box based on a pure consumption model—customers would only pay for Dev Box when it was running, and no more. Unfortunately, while this worked great for part-time Dev Box use, such a model left a lot of variability for administrators that wanted to pay a standardized monthly cost for full-time usage.
To accommodate different use cases, we’ve introduced a predictable monthly price for full-time Dev Box usage while keeping consumption-based, pay-as-you-go pricing that charges up to a monthly price cap. This model strikes a balance between the extremes of full consumption or subscription-only pricing, ensuring devs can optimize their spend for both full-time and part-time use cases.
Dev Box has already transformed the developer workstations at Microsoft from rigid, long-running desktops to project-specific, ready-to-code workstations in the cloud. We’re excited to see more developers leave behind the challenges of physical workstations to focus on writing the code only they can write. To see what Dev Box can do for your team, visit our website or start a proof of concept today.
If you’ve already started using Dev Box, we’d love to hear you think. Please submit any feedback you have so we can keep making Dev Box the best option for developer productivity.
 
Let us know what you think of Azure and what you would like to see in the future.
 
Provide feedback
Build your cloud computing and Azure skills with free courses by Microsoft Learn.
 
Explore Azure learning
AI + Machine Learning, Announcements, Azure AI, Azure App Service, Azure Arc, Microsoft Dev Box
AI + Machine Learning, Announcements, Azure AI, Azure Cognitive Search, Azure Cosmos DB, Azure Databricks, Azure Kubernetes Service (AKS), Azure Migrate, Azure OpenAI Service, Azure SQL Database, Events, Microsoft Dev Box
AI + Machine Learning, Announcements, Azure AI, Azure Container Apps, Azure DevOps, Azure Kubernetes Service (AKS), Azure Machine Learning, Azure OpenAI Service, Microsoft Dev Box
Announcements, Azure Arc, Azure Kubernetes Service (AKS), Developer Tools, Hybrid + Multicloud, Microsoft Dev Box

source


Comments

Leave a Reply

Your email address will not be published. Required fields are marked *