MindByte Issue #74: Unlocking New GitHub and Azure Features for Enhanced Development

Exploring GitHub Copilot Extensions, .NET Aspire, Docker Enhancements, and New Azure Tools for Optimized Development

Hello! Thanks for joining me. To ensure you continue to receive these updates seamlessly, please move this email to your primary inbox or mark it as important. A quick reply like "got it" also helps boost visibility.

This edition features some exciting topics, including:

  • Unlocking new capabilities with GitHub Copilot Extensions.

  • Enhancing your Docker setup with Docker Compose Profiles.

  • Simplifying Kubernetes management with AKS Automatic.

  • General availability of Azure Functions on Azure Container Apps.

  • Exploring the new Azure Event Hubs Emulator for local development.

New here? Subscribe here to stay updated. Let's dive into the details!

GitHub Digest

Unlock New Capabilities with GitHub Copilot Extensions

GitHub has introduced Copilot Extensions, a promising new feature currently in limited beta, that aims to enhance developer productivity further. This innovative addition allows developers to integrate external system capabilities directly into their workflow through extensions.

Currently available integrations include:

  • Sentry: Seamlessly ask Sentry about a specific issue directly from Copilot, streamlining your debugging process without switching contexts.

  • Octopus Deploy: Use the Octopus Deploy extension to verify if a deployment has occurred, making it easier to manage your CI/CD pipeline.

  • DataStax: Interact with databases and build applications with AstraDB.

  • LaunchDarkly: Access documentation and best practices alongside your code to minimize context switching.

  • Microsoft Azure: Get answers to your questions about Azure services, deploy applications, and more directly within Copilot Chat.

Additionally, developers can build their own custom extensions, tailoring Copilot to meet specific project needs. By adding these extensions to your conversation with Copilot, you can tap into powerful tools and services, making your development process more efficient and cohesive. This new capability opens up endless possibilities for integration and automation, positioning Copilot as an even more indispensable tool for developers.

For example, imagine you’re a developer addressing a database-related error. With Copilot Extensions, you can gather context from DataStax, monitor errors through Sentry, and deploy fixes with Azure—all within a single workflow, reducing the need for constant context-switching.

Dive into the article to explore how you can leverage these extensions to supercharge your workflow and stay in the flow longer, uplevel your skills, and innovate faster. This is an exciting next step for Copilot, promising to make your development process more seamless and efficient.

Coding Corner

Understanding Binary Trees: A Key Data Structure for Developers

Binary trees are a fundamental data structure that every developer should master.

This article by Henrique provides a comprehensive overview of binary trees, explaining their structure, types, and common operations.

Binary trees are essential for efficiently managing hierarchical data and are widely used in various algorithms and applications, such as searching, sorting, and expression parsing.

Dive into the article to solidify your knowledge and improve your coding skills with this essential data structure.

Enhance Your Docker Setup with Docker Compose Profiles

Docker Compose Profiles is a powerful yet underutilized feature that can significantly streamline your container management.

This article from Event-Driven.io introduces Docker Compose Profiles, a handy option that allows you to specify which services to run in different scenarios.

Whether you're working on development, testing, or production environments, Profiles helps you manage your Docker setup more efficiently by running only the necessary containers. If you haven't explored this feature yet, this article is a must-read to optimize your Docker workflows and improve your container orchestration.

Azure Updates & Insights

We just had the Microsoft Build conference, so a bunch of nice Azure updates.

Introducing AKS Automatic: Managed Kubernetes for Developers

Microsoft has unveiled AKS Automatic, a new feature designed to simplify Kubernetes management for developers.

This article from The New Stack explores how AKS Automatic provides automated management of Kubernetes clusters, reducing the overhead and complexity typically associated with maintaining these environments.

By handling tasks such as scaling, updates, and monitoring, AKS Automatic allows developers to focus more on coding and less on infrastructure.

What’s New in the Azure Developer CLI (azd) May 2024 Release

The Azure Developer CLI (azd) has released version 1.9.0, bringing several new features and enhancements for developers. This May 2024 update introduces a new demo mode, .NET Aspire enhancements, and various bug fixes and improvements.

  • Demo Mode: A new feature for demoing azd outputs without displaying your subscription ID. This simplifies the process of sharing public demos by eliminating the need to blur IDs.

    • Enable demo mode with: export AZD_DEMO_MODE=true

    • Persist across reboots with: setx AZD_DEMO_MODE true or $env:AZD_DEMO_MODE="true" in PowerShell.

  • .NET Aspire Enhancements: Noteworthy updates include support for multiple endpoints and Aspire dashboard support, currently available in the westcentralus region.

  • New Templates: Over 100 templates are now available in the Awesome-azd template gallery, including:

    • Chat with your data – Solution accelerator

    • Zip Deploy Azure Function by FBoucher

    • RAG using Semantic Kernel with Azure OpenAI and Azure Cosmos DB for MongoDB vCore by john0isaac

    • Serverless AI Chat with RAG using LangChain.js

Other enhancements include filtering the azd template list using tags, fixing cross-build configurations, and allowing azd environment refresh without Bicep. Despite being a smaller release due to ongoing AI-related updates, these additions significantly enhance the azd experience.

Azure Functions Now GA on Azure Container Apps: Enhance Your Cloud-Native Microservices

Microsoft has announced the general availability of Azure Functions for cloud-native microservices hosted on Azure Container Apps.

This powerful combination allows developers to use the Azure Functions programming model to build and deploy event-driven, serverless function apps alongside other microservices, APIs, and custom libraries, all within a unified container environment.

Key features include:

  • Managed Identity Support: Securely access Microsoft Entra-protected Azure resources like Azure Key Vault without managing credentials.

  • VNet Internal Support: Deploy Azure Function resources in internal environments with private IP addresses for enhanced security.

  • Dapr Extension Integration: Build resilient cloud-native applications using Dapr's capabilities for bindings and triggers with minimal code.

  • New Templates and Tools: Utilize tools like Azure CLI, Azure Functions Core Tools, ARM/Bicep templates, and CI/CD integrations with GitHub Actions for seamless deployment and management.

This release simplifies infrastructure management and scales functions dynamically, offering cost-effective and efficient solutions for modern cloud-native applications.

Whether you're processing data, running AI workloads, or managing microservices, Azure Functions on Azure Container Apps provides a flexible and robust environment to enhance your development process.

Azure Eliminates Data Transfer Fees Across Availability Zones

Microsoft has announced that Azure will no longer charge for data transfers across availability zones, whether using private or public IPs. This significant change aims to promote the design and deployment of more resilient and efficient cloud applications. Key benefits of this update include:

  • Enhanced Application Resilience: By removing data transfer fees, Azure makes it easier for customers to deploy applications across multiple availability zones, reducing downtime risks and ensuring higher service availability.

  • Simplified Architecture Planning: Customers can now architect and design applications with geographic distribution within a region without worrying about cross-AZ transfer costs, simplifying deployment decisions.

  • Encouragement of Best Practices: This change supports the adoption of best practices for cloud deployment, encouraging the use of highly available and fault-tolerant architectures without incurring additional fees.

This update reflects Azure's commitment to supporting customers in building robust and cost-effective cloud solutions. For more details, read the full announcement and learn how this change can benefit your Azure deployments.

.NET Nook

.NET Aspire: Simplifying Cloud-Native Development with .NET

.NET Aspire, a new stack designed to streamline the development of .NET cloud-native services, is now generally available. This comprehensive suite brings together tools, templates, and NuGet packages to help developers build distributed applications more efficiently. Whether starting a new project or enhancing existing applications, .NET Aspire offers a robust environment for developing observable, scalable, and resilient cloud-native apps.

What is .NET Aspire? .NET Aspire is a cloud-ready stack that integrates a variety of tools and technologies to simplify the development of distributed .NET applications. It includes:

  • App Host Project: A project type that allows you to use C# to describe and configure various application projects and services, making it easier to manage distributed applications.

  • Integrated Dashboard: The Aspire Dashboard provides real-time insights into your application’s resources, environment variables, and OpenTelemetry data.

  • Component Integration: Pre-configured components for databases, messaging, caching, and cloud services ensure resiliency and observability by default.

How to Get Started:

  • .NET CLI: Install with dotnet workload update followed by dotnet workload install aspire.

  • Visual Studio 2022: Included in the ASP.NET and web development workload of Visual Studio 2022 17.10.

  • Visual Studio Code: Install via the .NET CLI, then use the C# Dev Kit extension.

Having played with the previews, I find .NET Aspire an interesting and powerful tool that simplifies complex cloud-native development tasks. It supports essential technologies like Health Checks, YARP, and gRPC, and leverages Native AOT for optimal performance.

David Fowler created some additional samples on this GitHub account, so have a look to see how Aspire can be used together with EventGrid.

Simplify HTTP File Management with httpgenerator

Keeping HTTP files updated can be a hassle, especially as APIs evolve. The httpgenerator tool offers an elegant solution by generating HTTP files directly from a Swagger definition. The below article explains how to leverage this tool to streamline your API testing workflow.

HTTP files are used by REST Client extensions in Visual Studio Code, Visual Studio, and Rider to send HTTP requests directly from the editor.

Manually updating HTTP files as APIs change is time-consuming and prone to errors. Every time new endpoints are added or existing ones are modified, the corresponding HTTP requests in the HTTP files need to be updated to reflect these changes.

httpgenerator automates the creation and updating of HTTP files based on the API's Swagger definition. This tool generates a comprehensive HTTP file containing all endpoints, ensuring that your HTTP requests are always up-to-date with the latest API structure.

Azure Event Hubs Emulator: Streamline Local Testing and Development

The Azure Event Hubs Emulator offers a seamless local development experience for Azure Event Hubs, allowing developers to work and test their code in isolation without the need for a full Azure setup. This tool provides several significant benefits:

  • Local Development: Enables offline work and avoids network latency.

  • Cost-Efficiency: Test applications without incurring cloud usage costs.

  • Isolated Testing Environment: Ensures tests are free from cloud interference.

  • Optimized Development Loop: Facilitates rapid prototyping and testing before cloud deployment.

The emulator runs as a Docker container and supports cross-platform compatibility, making it accessible on Windows, macOS, and Linux. It allows managing entity configurations via JSON, supports AMQP streaming, and offers robust logging for observability.

I'm excited about this addition, as it joins the ranks of other Azure emulators like the upcoming ServiceBus emulator, providing developers with more tools to test and refine their applications locally. For detailed setup and usage, check out the full article.

Closing Thoughts

Thank you for reading this edition! Your feedback is invaluable, so if you have any thoughts, questions, or suggestions, please don't hesitate to reach out.

If you enjoyed this update and want to keep receiving more, subscribe here.

I appreciate your time and look forward to hearing from you!

Embarrassed Exit Strategy GIF

Giphy

Reply

or to participate.