Get started with VS Code for the Web - Azure to seamlessly run, debug and deploy your applications with no setup! This browser based VS Code environment allows you to work as you would locally, but wherever you are. Watch this video to see us create an enterprise-grade application, run it and deploy it to Azure within minutes!
š® Chapter Markers: 0:30 ā Introduction 2:26 ā VS Code for the Web - Azure Overview 5:21 - AI Template Entry Point Scenario 6:00 ā Microsoft Foundry Entry Point Scenario 8:42 - RAG Chat Application - Enterprise-level Application Scenario 13:52 - GitHub Copilot in /azure 16:25 - RAG Chat Application Deployed - Testing Scenario 18:10 - Go to vscode.dev/azure to try it out today!
What if you could run dozens of GitHub Copilot coding agents in parallel, and control them all from one app? That's PolyPilot.
In this video we walk through what PolyPilot is, how it works, and why we built it. PolyPilot is a cross-platform app built with .NET MAUI and Blazor that lets you spin up, orchestrate, and monitor multiple Copilot agents ā each with its own model, repo, and conversation ā from a single dashboard. Or from your phone.
We cover: ā” Running parallel agents across repos with different models (Claude, GPT, Gemini) š± Remote access ā monitor your agent fleet from your phone via DevTunnel šæ Worktree management for zero-conflict parallel work š¤ Squad presets ālaunch pre-configured agent teams with one click š Reflection cycles for goal-based iterative refinement š¾ Session persistence ā agents never lose context across restarts
The best part? Most of PolyPilot was built by Copilot agents, orchestrated from within PolyPilot itself.
ā± Timestamps 00:00 - PolyPilot - Run an army of GitHub Copilot agents from a single app 00:27 - What is PolyPilot? 03:05 - PolyPilot in Action 04:02 - Enhance PolyPilot from within PolyPilot 05:36 - Create a new Copilot orchestration/fleet 08:55 - Manage GitHub Copilot sessions 11:11 - Demo: Implement new PolyPilot feature using PolyPilot 16:08 - PolyPilot Mobile app: command Copilot from remote 19:42 - MauiDevFlow 25:17 - Chat, Plan, Autopilot Modes 28:36 - Use PolyPilot for everything!
Bryan Cantrill, the co-founder and CTO of Oxide Computer company, speaks with host Jeremy Jung about challenges in deploying hardware on-premises at scale. They discuss the difficulty of building up Samsung data centers with off-the-shelf hardware, how vendors silently replace components that cause performance problems, and why AWS and Google build their own hardware. Bryan describes the security vulnerabilities and poor practices built into many baseboard management controllers, the purpose of a control plane, and his experiences building one in NodeJS while struggling with the runtime's future during his time at Joyent. He explains why Oxide chose to use Rust for its control plane and the OpenSolaris-based Illumos as the operating system for their vertically integrated rack-scale hardware, which is designed to help address a number of these key challenges.
Posted by Matthew McCullough, VP Product Management, Android Developer
Today we're releasing the second beta of Android 17, continuing our work to build a platform that prioritizes privacy, security, and refined performance. This update delivers a range of new capabilities, including the EyeDropper API and a privacy-preserving Contacts Picker. We're also adding advanced ranging, cross-device handoff APIs, and more.
This release continues the shift in our release cadence, following this annual major SDK release in Q2 with a minor SDK update.
User Experience & System UI
Bubbles
Bubbles is a windowing mode feature that offers a new floating UI experience separate from the messaging bubbles API. Users can create an app bubble on their phone, foldable, or tablet by long-pressing an app icon on the launcher. On large screens, there is a bubble bar as part of the taskbar where users can organize, move between, and move bubbles to and from anchored points on the screen.
A new system-level EyeDropper API allows your app to request a color from any pixel on the display without requiring sensitive screen capture permissions.
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
result -> if (result.resultCode == Activity.RESULT_OK) {
val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
// Use the picked color in your app
}
}
fun launchColorPicker() {
val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
eyeDropperLauncher.launch(intent)
}
Contacts Picker
A new system-level contacts picker via ACTION_PICK_CONTACTS grants temporary, session-based read access to only the specific data fields requested by the user, reducing the need for the broad READ_CONTACTS permissions. It also allows for selections from the deviceās personal or work profiles.
val contactPicker = rememberLauncherForActivityResult(StartActivityForResult()) {
if (it.resultCode == RESULT_OK) {
val uri = it.data?.data ?: return@rememberLauncherForActivityResult
// Handle result logic
processContactPickerResults(uri)
}
}
val dataFields = arrayListOf(Email.CONTENT_ITEM_TYPE, Phone.CONTENT_ITEM_TYPE)
val intent = Intent(ACTION_PICK_CONTACTS).apply {
putStringArrayListExtra(EXTRA_PICK_CONTACTS_REQUESTED_DATA_FIELDS, dataFields)
putExtra(EXTRA_ALLOW_MULTIPLE, true)
putExtra(EXTRA_PICK_CONTACTS_SELECTION_LIMIT, 5)
}
contactPicker.launch(intent)
Easier pointer capture compatibility with touchpads
Previously, touchpads reported events in a very different way from mice when an app had captured the pointer, reporting the locations of fingers on the pad rather than the relative movements that would be reported by a mouse. This made it quite difficult to support touchpads properly in first-person games. Now, by default the system will recognize pointer movement and scrolling gestures when the touchpad is captured, and report them just like mouse events. You can still request the old, detailed finger location data by explicitly requesting capture in the new āabsoluteā mode.
// To request the new default relative mode (mouse-like events)// This is the same as requesting with View.POINTER_CAPTURE_MODE_RELATIVE
view.requestPointerCapture()
// To request the legacy absolute mode (raw touch coordinates)
view.requestPointerCapture(View.POINTER_CAPTURE_MODE_ABSOLUTE)
Interactive Chooser resting bounds
By callinggetInitialRestingBoundson Android's ChooserSession, your app can identify the target position the Chooser occupies after animations and data loading are complete, enabling better UI adjustments.
Connectivity & Cross-Device
Cross-device app handoff
A new Handoff API allows you to specify application state to be resumed on another device, such as an Android tablet. When opted in, the system synchronizes state via CompanionDeviceManagerand displays a handoff suggestion in the launcher of the user's nearby devices. This feature is designed to offer seamless task continuity, enabling users to pick up exactly where they left off in their workflow across their Android ecosystem. Critically, Handoff supports both native app-to-app transitions and app-to-web fallback, providing maximum flexibility and ensuring a complete experience even if the native app is not installed on the receiving device.
Advanced ranging APIs
We are adding support for 2 new ranging technologies -
UWB DL-TDOA which enables apps to use UWB for indoor navigation. This API surface is FIRA (Fine Ranging Consortium) 4.0 DL-TDOA spec compliant and enables privacy preserving indoor navigation (avoiding tracking of the device by the anchor).
Proximity Detection which enables apps to use the new ranging specification being adopted by WFA (WiFi Alliance). This technology provides improved reliability and accuracy compared to existing Wifi Aware based ranging specification.
Android 17 introduces the ACCESS_LOCAL_NETWORK runtime permission to protect users from unauthorized local network access. Because this falls under the existing NEARBY_DEVICES permission group, users who have already granted other NEARBY_DEVICES permissions will not be prompted again. By declaring and requesting this permission, your app can discover and connect to devices on the local area network (LAN), such as smart home devices or casting receivers. This prevents malicious apps from exploiting unrestricted local network access for covert user tracking and fingerprinting. Apps targeting Android 17 or higher will now have two paths to maintain communication with LAN devices: adopt system-mediated, privacy-preserving device pickers to skip the permission prompt, or explicitly request this new permission at runtime to maintain local network communication.
Time zone offset change broadcast
Android now provides a reliable broadcast intent, ACTION_TIMEZONE_OFFSET_CHANGED, triggered when the system's time zone offset changes, such as during Daylight Saving Time transitions. This complements the existing broadcast intents ACTION_TIME_CHANGED and ACTION_TIMEZONE_CHANGED, which are triggered when the Unix timestamp changes and when the time zone ID changes, respectively.
NPU Management and Prioritization
Apps targeting Android 17 that need to directly access the NPU must declare FEATURE_NEURAL_PROCESSING_UNIT in their manifest to avoid being blocked from accessing the NPU. This includes apps that use the LiteRT NPU delegate, vendor-specific SDKs, as well as the deprecated NNAPI.
ICU 78 and Unicode 17 support
Core internationalization libraries have been updated to ICU 78, expanding support for new scripts, characters, and emoji blocks, and enabling direct formatting of time objects.
SMS OTP protection
Android is expanding its SMS OTP protection by automatically delaying access to SMS messages with OTP. Previously, the protection was primarily focused on the SMS Retriever format wherein the delivery of messages containing an SMS retriever hash is delayed for most apps for three hours. However, for certain apps like the default SMS app, etc and the app that corresponds to the hash are exempt from this delay. This update extends the protection to all SMS messages with OTP. For most apps, SMS messages containing an OTP will only be accessible after a delay of three hours to help prevent OTP hijacking. The SMS_RECEIVED_ACTION broadcast will be withheld and sms provider database queries will be filtered. The SMS message will be available to these apps after the delay.
Delayed access to WebOTP format SMS messages
If the app has the permission to read SMS messages but is not the intended recipient of the OTP (as determined by domain verification), the WebOTP format SMS message will only be accessible after three hours have elapsed. This change is designed to improve user security by ensuring that only apps associated with the domain mentioned in the message can programmatically read the verification code. This change applies to all apps regardless of their target API level. Delayed access to standard SMS messages with OTP
For SMS messages containing an OTP that do not use the WebOTP or SMS Retriever formats, the OTP SMS will only be accessible after three hours for most apps. This change only applies to apps that target Android 17 (API level 37) or higher. Certain apps such as the default SMS, assistant app, along with connected device companion apps, etc will be exempt from this delay. All apps that rely on reading SMS messages for OTP extraction should transition to using SMS Retriever or SMS User Consent APIs to ensure continued functionality.
The Android 17 schedule
We're going to be moving quickly from this Beta to our Platform Stability milestone, targeted for March. At this milestone, we'll deliver final SDK/NDK APIs. From that time forward, your app can target SDK 37 and publish to Google Play to help you complete your testing and collect user feedback in the several months before the general availability of Android 17.
A year of releases
We plan for Android 17 to continue to get updates in a series of quarterly releases. The upcoming release in Q2 is the only one where we introduce planned app breaking behavior changes. We plan to have a minor SDK release in Q4 with additional APIs and features.
If you are currently in the Android Beta program, you will be offered an over-the-air update to Beta 2.
If you have Android 26Q1 Beta and would like to take the final stable release of 26Q1 and exit Beta, you need to ignore the over-the-air update to 26Q2 Beta 2 and wait for the release of 26Q1.
For the best development experience with Android 17, we recommend that you use the latest preview of Android Studio (Panda). Once youāre set up, here are some of the things you should do:
Compile against the new SDK, test in CI environments, and report any issues in our tracker on the feedback page.
Test your current app for compatibility, learn whether your app is affected by changes in Android 17, and install your app onto a device or emulator running Android 17 and extensively test it.
Weāll update the preview/beta system images and SDK regularly throughout the Android 17 release cycle. Once youāve installed a beta build, youāll automatically get future updates
As we move toward Platform Stability and the general availability of Android 17 later this year, your feedback remains our most valuable asset. Whether youāre an early adopter on the Canary channel or an app developer testing on Beta 2, consider joining our communities and filing feedback. Weāre listening.
If you're using any of the Microsoft Signing technologies like Trusted Signing, one thing you might run into is frequent failures of the default, suggested timestamp server that Microsoft uses in their examples:
This works about 80% of the time for me. I end up signing 8 files per distribution (several app binaries and the final setup Exe) and quite frequently one of those sign operations (mostly the last one of the larger set up exe) fails with:
Running MongoDB at scale eventually forces a trade-off: invest heavily in managing your ownĀ infrastructure orĀ move to a managed service and risk losing the compatibility and portability your team depends on.Ā
AzureĀ DocumentDBĀ is a fully managed, MongoDB-compatible database on Azure, built on an MIT-licensed open-source engine that runs consistently across on-premises,Ā hybrid, andĀ cloudĀ environments. Developers keep the skills and tooling they already have. Infrastructure teams get a pricing model built on compute and storage, with no licensing fees and no throughput unit calculations.Ā
Key CapabilitiesĀ
MongoDB CompatibilityĀ
Azure DocumentDB is fully MongoDB-compatible database, so existing drivers, tools, and frameworks connect without modification. MongoDB Shell, LangChain, pymongo, and all major MongoDB drivers are supported out of the box, along with your existing indexes, query patterns, and aggregation pipelines.Ā
DocumentDBĀ delivers 99.03% MongoDB compatibilityĀ while keeping the implementation transparent and community-drivenĀ
For developers, that means no code changes, no retraining, and no new mental model to adopt. Your team continues working with the tools and patterns they already know. For engineering leads evaluating a migration, it means the scope of the project stays focused on infrastructure, not application code, which significantly reduces both the timeline and the risk of moving a production workload to a managed service.Ā
Predictable Pricing for MongoDB Workloads
AzureĀ DocumentDBĀ uses a straightforward compute and storage pricing model where both dimensions scale independently, with no throughput unit calculations or licensing fees on top. Backups are included at no extra charge forĀ 35 days.Ā Ā
The Price you See is the Price you PayĀ
Service
Included
Compute
Fixed monthly price
Storage
Fixed monthly price
Backups (35 days)
Free
Metrics and charts
Free
Product support
Free
Networking
Free
Licensing costs
None
Additional fees
None
In practice, that means fewer surprise bills when a query pattern changes, simpler capacity planning conversations with finance, and less time spent modeling cost scenarios before you can commit to a deployment. For teams that have managed throughput-based pricing models before, the operational simplification is significant.Ā
Customers can achieve meaningful cost savings compared to managed MongoDBĀ offeringsĀ on AWS, driven by predictableĀ vCoreĀ pricing and independent compute andĀ storageĀ scalingĀ
Scaling High-Traffic MongoDB Applications
AzureĀ DocumentDB’sĀ schema-agnostic design means your data model can evolve without migrations or downtime, and its architecture is built to scale with you as traffic grows.Ā
Consider a retail application during a flash sale. Traffic that normally hums along at a steady pace suddenly multiplies within minutes. The database needs to absorb that spike without throttling requests or letting response times creep up. With Azure DocumentDB, you scale up the compute tier to meet the moment, then scale back down once it passes. No over-provisioned cluster sitting idle the rest of the year, and no sharding complexity until your data demands it. The high-throughput, low-latency architecture keeps response times really low through those peaks, which is the difference between a sale that converts and one that doesn’t.Ā Ā
How Tata Neu delivers personalized shopping experiences for millions of users
Tata Digital built exactly this kind of experience on Azure DocumentDB. Their Tata Neu platform serves millions of customers across dozens of brands, with a single sign-on system processing hundreds of authentication requests per second while maintaining millisecond transaction times. NeuPass, their unified loyalty program, consolidates what used to be fragmented programs across brands into one experience for several hundred million members.
“Azure DocumentDB provides the dependable performance, elasticity, andĀ consistency needed to power Tata Digital’s authentication platform at scale.”ā Vinay Vaidya, Chief Technology and Product Officer, Tata DigitalĀ
Additionally, the service is backed by a 99.995%Ā availabilityĀ SLA across the full-service stack, covering compute, storage, and networking. For teamsĀ operatingĀ at enterprise scale, that end-to-end SLA removes a common gap in availability guarantees that only cover part of the infrastructure.Ā
Hybrid and Multi-Cloud Deployments with DocumentDB
TheĀ DocumentDBĀ Kubernetes Operator runs the same open-source engine on-premises, on other clouds, and on Azure. The MongoDB-compatible interface stays consistent across all three environments. For enterprises with data sovereignty requirements or architectural needs that span multiple environments, the same interface can be used across on-premises, cloud, and Azure-managed deployments, enabling hybrid and multi-cloud patterns where required.
A good example is a retailer running point-of-sale systems at the store level alongside a centralized e-commerce and inventory platform. Store databases need to handle transactions locally, even when connectivity is unreliable, while headquarters needs to aggregate that data globally for reporting and fulfillment. Because the same engine runs on both ends, data syncs between on-premises and cloud in real time, often within seconds, and teams avoid the overhead ofĀ maintainingĀ separate operational models or wiring together two different database configurations just to keep everything in sync.
Enterprise Integration for MongoDB Workloads
Azure DocumentDB runs as a first-party Azure service, which means it integrates directly with Microsoft Entra ID for authentication and role-based access control, Azure Monitor for metrics and diagnostics, Azure Policy for governance enforcement across your organization,Ā and supports secure networking via Azure Virtual Network (VNet) using Azure Private Link and Private Endpoints.Ā
Vector Search for MongoDB Workloads
Teams building AI applications often end up managing a document store and a separate vector database side by side.Ā AzureĀ DocumentDBĀ includes native vector indexing alongside document data, enabling RAG pipelines and similarity search without introducing a separate vector store. Your documents and your embeddings live in the same collection,Ā queryableĀ together withĀ hybridĀ search that combines vector similarity, BM25 full-text, and field filters, all over a single connection string.Ā
Start Running MongoDB Workloads on Azure DocumentDB
Create a clusterĀ in the Azure portal, check out theĀ new product page,Ā review pricing,Ā and follow the migration guidance to migrate your MongoDB workloads. Teams can evaluateĀ DocumentDBĀ locally using theĀ open-source project,Ā then move to managed clusters on Azure when ready.Ā WeāreĀ excited to see what you build. For teams that need hands-on assistance, several options are available. Teams can nominate for the Cloud Migration Factory program, which provides 100% free migration support with direct Microsoft assistance. The product team is also reachable directly, and the migration support team can be contacted at cdbmigrationsupport@microsoft.com.
AzureĀ DocumentDBĀ is a fully managed enterprise-grade MongoDB-compatible database and vector database for modern app development, including AI applications. With its predictable low costs, Open-source project, as well as 99.03% MongoDB compatibility, it is ideal for any MongoDB application running on Azure.Ā