The PowerShell 7 release marks a huge milestone for PowerShell, the community, and the team!
The PowerShell team is not resting on our laurels and are committed to continuous improvement of PowerShell as we plan out our 7.1 release. This blog post details the areas of investment that the PowerShell team is funding. As we’ve done in the past, we’ll also be working with contributors interested in implementing new features as part of the 7.1 release.Release Cycle Changes
PowerShell Core 6.0 through PowerShell 7 was on a (roughly) 6 month release cadence.
Starting with PowerShell 7.0, we shifted to align with .NET’s release and support life-cycle more closely. This means we intend to ship 7.1 within a week or two of .NET 5’s release date of winter 2020 and align with their annual release cadence going forward.Modules and Tooling for the 7.1 Release Time Frame
Not everything here is expected to ship with PowerShell 7.1, but the work is being done along with PowerShell 7.1 development.PowerShellGet 3.0
At the beginning of PowerShell 7 development, we announced PowerShellGet 3.0. This is a complete rewrite of PowerShellGet covering 3 big areas:
- Improving the user experience
- Removing dependency on PackageManagement (and Nuget provider) making the codebase simpler and easier to maintain
- Moving from PowerShell script to C# making it easier to maintain a large and complex codebase
Based on community feedback, we wanted to take an opportunity to address many of the user experience shortcomings with a major release that will have breaking changes. We also want to leverage learnings from popular package managers like apt (on Linux) to adopt conventions already used and proven by a large set of users.
PowerShellGet 3.0 will ship on PowerShell Gallery initially, with tentative plans to deliver it into PowerShell 7.x side-by-side with PowerShellGet 2.0.
The first preview is expected later this month!Secret Management Module
We are still working on completing Secret Management module, specifically adding Linux support, possibly macOS support, and continuing to address user feedback.
We received lots of good feedback from our preview 1 release which helped shape our preview 2 release. Thanks so much and it shows that getting previews out early really helps the project!
This module is shipped via PowerShell Gallery supporting Windows PowerShell 5.1 and PowerShell 7 and potentially included by default with PowerShell 7.1. This module enables secure storage and retrieval of secrets locally as well as using extensions to store and retrieve secrets from remote vaults (like Azure Key Vault).
We are also working with partners to have vault extensions available soon!VSCode-PowerShell, PSEditorServices, and PSScriptAnalyzer 2.0
The PowerShell extension for Visual Studio Code and PowerShell Editor Services rely on PSScriptAnalyzer to perform real-time linting as you author or edit a PowerShell script. However, this scenario was not part of the original intent nor design of PSScriptAnalyzer and thus has become a user experience where errors and corrections lag after the user input. Major portions of PSScriptAnalyzer needs to be updated or rewritten to significantly improve throughput to make the interactive user experience more instantaneous, delightful, and productive.PowerShell Jupyter Kernel
Jupyter notebooks are gaining popularity as a way to have executable code and text content in the same document. There have been existing Jupyter kernels available that support PowerShell, however, we wanted to invest in this space with one that would be supported by the PowerShell team and providing a complete experience.
We will coontinue to improve this experience making it a great choice for PowerShell and Jupyter users.platyPS vNext
PlatyPS is a PowerShell module that we currently use to convert PowerShell documentation from markdown to updatable-help and is available via PowerShell Gallery. Based on feedback from content authors and partner teams, we need to invest in this tool to improve the author experience as well as improving capabilities of our documentation. This will be a rewrite to support improved Markdown parsing, rendering, and fulfilling requirements for our internal pipelines to publish updateable help.Themes for PowerShell 7.1 Installation and Updating
A major pain point for our customers, particularly on Windows, is that installing and updating PowerShell 7 requires too many manual steps. We are exploring some options to make it easier to install as well as keep PowerShell updated. At this time, we still do not have a plan to ship PowerShell 7 in Windows due to differences in support requirements that we are still working through.Shell Improvements
Most native commands work just fine from within PowerShell, however, there are some cases where the argument parsing is not ideal (like handling quotes properly). The intent is to enable users to cut sample command lines for any popular native tool, paste it into PowerShell, and it just works without needing PowerShell specific escaping.
In addition, for advanced users that want to mix PowerShell specific concepts with native commands, things may not work as expected. For example, PSDrives are a great way to abstract a file path across operating systems, but only PowerShell cmdlets and scripts can use them. We want to explore how to expose these things to native commands.Interactive User Experience
To enable users to be more productive at the shell, we want to enable two new scenarios:
- Enable predictions: We are investigating how the community can author different prediction engines helping the user complete a pipeline with minimal typing.
- Enable dynamic help: While authoring a pipeline in the console, the user should be able to get context aware help like presenting help on parameters as they are typing or get full help content without having to abandon their current input or open a new console.
- Enable use of color: We added some additional use of color in PowerShell 7.0 to provide visual cues when scanning console output. For 7.1, we are working with the .NET System.CommandLine team to have appropriate APIs to decorate strings so that PowerShell can render them both with color as well as plain text, as needed. This includes addressing accessibility concerns where certain colors, themes, and decorations may be hard to see.
These experiences will require changes in both PSReadLine and the PowerShell engine itself.
We are also exploring some experiments such as Out-ConsoleGridView to make the console an even more productive experience.Minimal PowerShell
One of the great things about PowerShell is the plethora of APIs and cmdlets you can use. However, the cost of this is that lots of assemblies are included with PowerShell just in case a script uses them. This works fine for authoring scripts, but when deploying scripts, it would be better to have your target only install the parts of PowerShell needed for those scripts. Not only would it take less disk space, but more importantly, a minimal set of code means less patching and security attack surface.
As part of this effort, we also want to split the monolithic Utility, Management, and Security modules that ship with PowerShell into logical modules that can be innovated and published on their own cadence.
Finally, to improve performance, we also want to look at reducing dependencies on .NET assemblies that are not absolutely needed to reduce memory usage as well as improve startup time.Closing
As you can see, there is a lot of work we are current exploring and prototyping. Not everything will make it into the 7.1 release and may show up in a future release. As we make progress and have more concrete definitions and scope of the work, we will publish RFCs to get community feedback like we’ve done in the past. We will also leverage GitHub Projects to track progress and enable the community to provide feedback. I’m personally excited about the future of PowerShell and looking forward to seeing feedback on our plans!
Principal Software Engineer Manager
The post PowerShell 7.1 Team Investments and Preview.1 Release appeared first on PowerShell.
Sometimes resource demands increase beyond your expectations. Azure SQL Database service continues to meet your needs regardless of your speed of growth. The hyperscale service tier for a single database enables you to scale to 100 TB with fast backup and restore capabilities. Learn about other options for running Microsoft SQL Server in Azure in the e-book Future-Proof Your Data Infrastructure with Azure: A Business Case for Database Administrators.
Each single database in Azure SQL Database service is guaranteed its own dedicated compute, memory, and storage resources that you can scale dynamically. If you need to scale out the storage and compute resources substantially beyond the limits for the general purpose and business critical service tiers, you're in luck. The hyperscale service tier provides highly scalable storage and compute performance that leverages the Azure architecture to meet the largest needs of an Azure SQL Database.The benefits of hyperscale
With the hyperscale service tier, Microsoft removed many of the limits seen in other cloud databases. For example, most other databases are limited by the resources available in a single node. You don't have those limits in the hyperscale service tier. Hyperscale databases aren't created with a defined maximum size. A flexible storage architecture allows a hyperscale database to grow as needed. And you're only billed for the capacity you use.
The hyperscale service tier also won’t box you into your initial configuration. Hyperscale databases can be backed up almost instantaneouslyregardless of the volume of data in the database. You can also scale a database in the tens of terabytes in minutes.Do you need to go hyperscale?
The hyperscale service tier supports a broad range of SQL Server workloads, from pure online transactional processing (OLTP) to pure analytics. However, it's optimized for OLTP and hybrid transaction and analytical processing (HTAP) workloads. That said, hyperscale provides flexibility and high performance, two features that can benefit most business workloads. However, hyperscale will be particularly advantageous to you in the following scenarios:
- If you have a large on-premises database and want to modernize applications by moving them to the cloud.
- If you're running databases in Azure but are limited by the database size restrictions of the other service tiers.
- If you have smaller databases that require fast compute scaling, high performance, instant backup, and fast database restore.
The hyperscale architectural model provides nearly instantaneous database backups with no impact on compute resources, the database restores in minutes rather than hours or days, and there is higher overall performance, and rapid scale-out and scale-up. Now there's no need to worry about how much or how fast your database will grow. The hyperscale service tier in Azure SQL Database has you covered.
To learn more about moving SQL Server to the cloud, download Future-Proof Your Data Infrastructure with Azure: A Business Case for Database Administrators.
The post Use hyperscale for your most demanding cloud-born workloads appeared first on SQL Server Blog.
As organizations face increasing pressure to modernize their applications and infrastructure, the benefits of the cloud have become impossible to ignore. Fortunately, Azure SQL Database managed instance makes it easy to move your SQL Server workloads to the cloud. Nearly 100 percent compatible with the latest SQL Server on-premises database engine, this fully managed service allows you to use the knowledge you already have to run SQL Server in the cloud. You can learn more about the benefits of Azure database capabilities in the e-book Future-Proof Your Data Infrastructure with Azure: A Business Case for Database Administrators.
Let's look at some of the differences between Azure SQL Database managed instance and SQL Server, as well as how to migrate.SQL Database managed instance: Under the hood
Azure SQL Database managed instance is a fully managed SQL Server Database engine instance that's hosted in Azure and placed in your network. This deployment model makes it easy to lift and shift your on-premises applications to the cloud with very few application and database changes.
Managed instance has split compute and storage components. You can have compute nodes with 8, 16, or 24 cores. The nodes work with database files stored on Azure Premium disk storage. Every database file is placed on a separate Azure Premium disk, and a separate backup mechanism ensures that if something happens to the files, the platform can still restore files from backups. In addition, redundant passive nodes are used to fail-over compute instance if needed.Scaling managed instance
Because it's in the cloud, managed instance gives you the ability to easily scale up and down. For example, you can create a managed instance with 16 cores and 500 GB of storage, and then increase or decrease these numbers with the click of a mouse, depending on your needs. Any change you make takes effect almost instantly.Migrating to Azure SQL Database managed instance
Migrating to the cloud with managed instance is easy. The simplest way to do so is to create a backup of your on-premises database, move it to Azure Blob storage, and restore the database on managed instance using a standard RESTORE DATABASE . FROM URL T-SQL statement. If you need to minimize your downtime during the migration, we suggest using the Azure Database Migration Service.Connecting to managed instance
Azure SQL managed instance runs in your Azure Virtual Network (VNET) on a private IP address. There are several ways you can connect to managed instance.
- VPN connection: Create a VPN connection between your on-premises network and Azure Virtual Network. You'll see managed instance just as you would any other SQL Server in your network.
- Azure virtual machine(VM): Connect via an Azure virtual machine in your Azure Virtual Network using standard remote desktop (RDP) or an app in the virtual machine. If your virtual machine is placed in some other Azure Virtual Network, you'll need to establish peering between the two networks.
- Azure Apps Virtual Network integration: Connect your web application to managed instance using Azure Apps Virtual Network integration or by placing your web app into an App Service environment that's placed in Azure Virtual Network. If your web app or App Service environment is in another virtual network, you'll need to establish peering between the two networks.
Moving to the cloud doesn't require extensive training. You can get all the benefits of running SQL Server in the cloud with the skills you have today. Simply leverage Azure SQL Database managed instance to do a lift-and-shift migration of your existing on-premises SQL Server databases.
If you'd like to learn more about whether this is the right move for you, download Future-Proof Your Data Infrastructure with Azure: A Business Case for Database Administrators.
The post Azure SQL Database managed instance vs. SQL Server appeared first on SQL Server Blog.
The March release of Azure Data Studio is now available.
Please note: After downloading Azure Data Studio, say Yes to enabling preview features so that you can use extensions.
Azure Data Studio is a multi-database, cross-platform desktop environment for data professionals using the family of on-premises and cloud data platforms on Windows, MacOS, and Linux. To learn more, visit our GitHub.
The key highlights to cover this month include:
- Charting support for SQL Notebooks
- Creating Jupyter Book support
- Postgres extension update
- Accessibility bug fixes
- Visual Studio Code merge to 1.42
- Bug fixes
For a complete list of updates, refer to the release notes.Charting support for SQL Notebooks
As we continue to invest in notebooks, we’re looking forward to introducing charting to SQL notebooks. Leveraging the same charting functionality available in the query editor, we’ve taken the same experience to now give users the option to have an alternative output instead of the standard results grid.
Now you can add visualizations using a T-SQL query. In addition, as the gif illustrates, you can also customize your visualization whether it is a scatter or time series graph.
You can also copy your visualization or save the image so that you can quickly add this in an email or report to other team members.
We will continue to bring improvements to charting over the next few months.
If you have any feature requests or run into bugs, let us know on our GitHub issues page.Creating Jupyter Book support
We are exploring ways to make it even easier to create collections of notebooks, or Jupyter Books, and with this release, we have provided an experience to create your own Jupyter Book.
Through the Jupyter Book viewlet, you can hover over Saved Books to see an ellipsis that will include an action to Create Book (preview). Clicking this link will launch a notebook.
When the notebook is launched, click Run cells to start executing the notebook. The first step will download the jupyter-book Python module so that you can start creating your own book.
The next step will prompt you for an empty folder location to save your Jupyter Book.
Once you choose an empty folder location, provide the path to the folder containing the notebooks you want to create in your Jupyter Book.
Finally, the next cell will generate a hyperlink that will launch your newly created book inside the Jupyter Books view. Modify the toc.yml if you want to change the folder structure.
If you have any feedback about this find in notebook experience, let us know on our GitHub issues page.Seamless sign in to Azure Database for PostgreSQL using Azure Active Directory
With this release and the latest PostgreSQL extension release, you can now login to your Azure Database for PostgreSQL-single server using your Azure Active Directory user or group. This allows you to utilize the Azure account you are already logged in with in Azure Data Studio, for seamless authenticationno password required.
If you are new to extensions, we suggest you follow our documentation to add the Postgres extension and try it out yourself.
This month we focused on fixing many accessibility bugs to ensure our experiences can be navigated with a keyboard, compatible with screen readers, and other Microsoft accessibility guidelines. This release includes many of these fixes across the deployment wizard, notebooks, and the server dashboards.
We continue to make merges with Visual Studio Code to give you the latest updates coming from Visual Studio Code. With the March release, we’ve updated from Visual Studio Code to 1.42.
To see the full list of changes, you can check out the Visual Studio Code monthly release notes below.
If you would like to help make Azure Data Studio a great product, share any feedback or report issues through our Issues page. Our engineering team is regularly going through the untriaged issues and assigning issues into different monthly milestones so that you know we’re working on it. Your votes on issues help us prioritize.
Please review the full list of bug fixes for the February release to learn more.Contact us
The post The March 2020 release of Azure Data Studio is now available appeared first on SQL Server Blog.