We are pleased to announce that our Java and Python Resource Management libraries have reached General Availability and are ready for production use.
Since we previewed the new resource management libraries back in June, we have been actively collecting feedback and making improvements. The community and customer input has been extremely valuable for us, so thank you for providing the feedback!
The services we support for GA libraries are:
Java
- App Services
- Authorization
- Compute
- Container Services
- Cosmos DB
- DNS
- Insight (Monitor)
- Key Vault
- Managed Identity
- Network
- Resources
- Storage
Python
- App Configuration
- Compute
- Event Hubs
- Key Vault
- Insight (Monitor)
- Network
- Resources
- Storage
The .NET resource management libraries have not reached GA yet because we are currently in the process of designing a new set of APIs that we hope can make the developer experience even better. We plan to preview those new APIs at the end of this year.
In addition to the GA announcements, we are also previewing more resource management libraries.
Java
- CDN
- Container Instance
- Container Registry
- Event Hubs
- Private DNS
- Redis
- Service Bus
- Spring Cloud
- SQL
- Traffic Manager
.NET
- Cosmos DB
- DNS
- Insight (Monitor)
Python (Coming in late October)
- App Service
- Authorization
- Cosmos DB
- Container Instance
- Container Registry
- Container Service
- Redis Cache
- Service Bus
- SQL
We recommend that you use the generally available libraries for all new projects and consider upgrading existing projects to use the new libraries as time permits.
We also encourage you to try out the new libraries and give us your feedback by opening an issue on the appropriate GitHub repository.
The latest package releases can be found on this page. Release notes are also provided here
Why are we doing this?
The goal of our management libraries is to enhance the productivity of developers managing Azure resources and provide idiomatic, consistent, approachable, diagnosable, and dependable code to easily integrate with Azure resources. We’ve been listening to your feedback and we’ve made sure that our new effort has incorporated your suggestions and requests. Finally, we understand that ease of use, service coverage, documentation, and consistency are equally important when it comes to resource management with Azure SDKs.
What’s Different?
The team will go into detail in follow-up blog posts but to get started, the big changes came from a set of objectives we defined based on your feedback. Those were:
- Create easy to use APIs with productivity that is on par with the best libraries of the language ecosystems.
- Provide APIs that are idiomatic to the language and ecosystem they are used in.
- Evolve over time in a very compatible fashion.
- Focus as much on documentation and samples, as on APIs.
- Change how we create the libraries at their core.
Idiomatic libraries
A key piece of feedback we heard while talking with developers was that our APIs didn’t always feel idiomatic to the language. To fix that, we explicitly established as one of our core principles that the libraries we author should follow the patterns of that language. For these preview libraries, we’ve made sure that they follow the guidelines for each language so that developers feel natural when they use the libraries.
Service Coverage
Coverage of Azure services is an important aspect in management libraries. We understand that developers usually use management SDKs to provision a variety of Azure services as the services sometimes have connections with each other. For this preview release, we’ve selected the most common and core services in Azure based on the feedback we heard. We will also fasten the pace of covering more services while we continue to improve the quality of our preview libraries
Compatibility
Compatibility has always been a value at Microsoft. Developers put significant time and money into solutions and should be able to count on them continuing to work. There is a tension here. For some cases we have had to make breaking changes to get to a better foundation. We believe aligning on that foundation will help meet the productivity goals outlined above, and once it’s set, we intend to provide a high degree of compatibility. As a final note on compatibility, we’ve looked at the dependencies that we took and tried to minimize them as much as possible to reduce future incompatibilities and versioning complexities which should make upgrading libraries and using other pieces of software alongside these libraries easier.
Documentation
Having good documentation and samples could be considered an aspect of productivity but we wanted to call it out as its own goal because many developers rate it as the top factor in choosing what technologies to use. Much like the usability studies we’re doing on the APIs themselves, we have been doing the same on Azure Quickstarts to ensure that new developers can begin to experiment with Azure Services quickly. We have also heard feedback that both API Reference code snippets and samples get out-of-date and we have been building the tooling to build API Reference code snippets and samples regularly from GitHub and publish those into documentation.
We have provided these quick-start guides for the new Resource Management libraries. Those guides also provides links to code samples as well as API references.
Next Steps
We would like to encourage you to download and try the new SDKs today. To help you along the way, we are providing release notes describing what’s new in each library, and how to get the packages.
Azure SDK Blog Contributions
Thank you for reading this Azure SDK blog post! We hope that you learned something new and welcome you to share this post. We are open to Azure SDK blog contributions. Please contact us at azsdkblog@microsoft.com with your topic and we’ll get you setup as a guest blogger.
Azure SDK Links
- Azure SDK Website: aka.ms/azsdk
- Azure SDK Intro (3 minute video): aka.ms/azsdk/intro
- Azure SDK Intro Deck (PowerPoint deck): aka.ms/azsdk/intro/deck
- Azure SDK Releases: aka.ms/azsdk/releases
- Azure SDK Blog: aka.ms/azsdk/blog
- Azure SDK Twitter: twitter.com/AzureSDK
- Azure SDK Design Guidelines: aka.ms/azsdk/guide
- Azure SDKs & Tools: azure.microsoft.com/downloads
- Azure SDK Central Repository: github.com/azure/azure-sdk
- Azure SDK for .NET: github.com/azure/azure-sdk-for-net
- Azure SDK for Java: github.com/azure/azure-sdk-for-java
- Azure SDK for Python: github.com/azure/azure-sdk-for-python
- Azure SDK for JavaScript/TypeScript: github.com/azure/azure-sdk-for-js
- Azure SDK for Android: github.com/Azure/azure-sdk-for-android
- Azure SDK for iOS: github.com/Azure/azure-sdk-for-ios
- Azure SDK for Go: github.com/Azure/azure-sdk-for-go
- Azure SDK for C: github.com/Azure/azure-sdk-for-c
- Azure SDK for C++: github.com/Azure/azure-sdk-for-cpp
0 comments