My Journey Through the AI Skills Challenge: Build Intelligent Apps
Table of contents
- Phase 1: Understanding Cloud-Native Applications and Azure Container Apps
- Phase 2: Container Management, Continuous Deployment, and Revision Management with Azure
- Phase 3: Diving Into Artificial Intelligence with Azure OpenAI
- Advanced Database Management with vCore-Based Azure Cosmos DB for MongoDB
- Integrating Azure OpenAI with Cosmos DB: Building an Intelligent Data Retrieval System
- Azure Container Registry: Managing and Deploying Container Images
- Final Thoughts
Completing the Microsoft AI Skills Challenge: Build Intelligent Apps was a significant milestone in my professional learning journey. Over the course of this challenge, I had the opportunity to delve deep into cloud-native applications, advanced database management, artificial intelligence, and Azure's extensive suite of cloud and AI tools. Each phase provided me with new insights into building, deploying, and managing intelligent applications in the cloud. Here’s a comprehensive overview of everything I learned and achieved:
Phase 1: Understanding Cloud-Native Applications and Azure Container Apps
The journey began with a foundational understanding of cloud-native applications, designed to be scalable, resilient, and optimized for cloud environments. In this phase, I learned the core aspects of building cloud-native systems and why they are crucial in today’s digital-first landscape.
Key Takeaways:
Microservices Architecture: Cloud-native applications are based on microservices, where each service is built independently, making them easy to scale and manage. This modular approach provides immense flexibility, allowing applications to evolve rapidly in response to business needs.
Managed Services: Azure offers a rich ecosystem of managed services to help offload operational burdens. This reduces infrastructure management complexities, enabling teams to focus more on core business features rather than maintaining servers.
Deployment Options in Azure: I explored various Azure deployment services to find the best fit for different types of applications:
Azure Container Apps: Ideal for serverless containers, optimized for microservices and jobs that run on a scalable, fully managed environment.
Azure App Service: Provides managed hosting, especially beneficial for web applications.
Azure Container Instances: A building block for running isolated containers on demand.
Azure Kubernetes Service (AKS): Fully managed Kubernetes for containerized applications needing direct Kubernetes API access.
Azure Functions: Serverless functions that respond to events, making them perfect for event-driven scenarios.
Azure Spring Apps & Azure Red Hat OpenShift: Specialized platforms for Java-based Spring applications and Kubernetes-powered OpenShift, respectively.
This phase emphasized how cloud-native designs and Azure services together streamline complex architectures while offering agility, observability, and resilience.
Phase 2: Container Management, Continuous Deployment, and Revision Management with Azure
Building on my initial learnings, the second phase focused on managing and deploying containerized applications, a crucial skill for any cloud-native developer.
Key Topics Explored
Revisions Management in Azure Container Apps: I learned how Azure Container Apps use revisions to manage application updates. Each time an update occurs, a new revision is created, allowing easy rollback if needed. Revisions allow for:
Single or Multi-Revisions Mode: You can have either one active revision at a time or multiple, depending on the deployment strategy.
Traffic Control: You can control which revision receives traffic, allowing gradual rollouts or A/B testing.
Labels: Directing traffic based on specific labels associated with each revision.
Continuous Deployment with Azure Pipelines and GitHub Actions: Understanding continuous deployment was essential for automating the rollout of updates. I worked with:
Azure Pipelines: Integrating Azure Pipelines to automate deployments and updates, ensuring rapid, reliable releases.
GitHub Actions: Streamlining CI/CD workflows using GitHub Actions allowed me to link directly with container registries, pushing changes automatically.
This phase not only provided technical insights but demonstrated how Azure Container Apps reduce DevOps complexity, enabling scalable applications with minimal overhead.
Phase 3: Diving Into Artificial Intelligence with Azure OpenAI
In the third phase, I moved from container management to exploring AI concepts and Azure’s AI services. This phase was designed to broaden my understanding of artificial intelligence and its application in the Azure ecosystem.
Major Insights and Learnings
AI Basics: This part of the challenge covered the essential concepts of artificial intelligence, ethical considerations, and the role of responsible AI, providing a strong ethical and practical grounding.
Azure AI Services: I learned about Azure’s AI capabilities, including:
Azure Machine Learning: Comprehensive tools for building, training, and deploying machine learning models.
Azure AI Services: Pre-built services like language understanding, vision, and decision-making, making AI accessible to all skill levels.
Azure OpenAI Service: This service enables the deployment of language models to generate text, translate languages, and more. I had hands-on experience with:
Azure AI Studio: A practical platform where I created OpenAI resources, deployed models, and tested them in a user-friendly playground environment.
Azure CLI and REST API: Command-line tools and API options provided flexibility in model management and deployment.
This phase highlighted how AI can be seamlessly integrated into cloud applications, enhancing their intelligence and user engagement capabilities.
Advanced Database Management with vCore-Based Azure Cosmos DB for MongoDB
The challenge progressed to more advanced topics, where I learned to configure a vCore-based Azure Cosmos DB for MongoDB, ideal for applications requiring high scalability and availability. This configuration is particularly beneficial for applications that need robust query processing and are heavily data-driven.
Key Advantages and Practical Experience
Ease of Migration: The vCore-based Cosmos DB for MongoDB ensures easy migration for existing MongoDB workloads, making it compatible with familiar tools and SDKs.
Robust Scalability and High Availability: With support for various vCore tiers and 99.995% uptime, Cosmos DB is designed to meet the needs of complex, high-demand applications.
Vector Embeddings for AI Applications: The native support for vector embeddings was especially interesting, as it enables enhanced AI capabilities, such as precise recommendations and search functionalities.
Cluster Management: I learned to adjust clusters to meet varying performance needs, set up reliable backup and restoration processes, and monitor performance through Azure Monitor, keeping the system resilient and responsive.
This phase prepared me to implement high-performance, reliable data storage solutions for applications requiring substantial data processing.
Integrating Azure OpenAI with Cosmos DB: Building an Intelligent Data Retrieval System
Following database setup, I explored how to integrate Azure OpenAI with Cosmos DB for advanced data retrieval. This combination is powerful for applications that require intelligent, context-aware search functionalities.
Key Takeaways
Vector Databases and RAG Systems: By leveraging vector embeddings and Retrieval Augmentation Generation (RAG), I could enhance the precision and relevance of search results in applications.
Setting Up Vector Indexes: I created vector indexes to use as data embeddings, making data more accessible and aligned with user intent.
This integration enables applications to deliver highly accurate responses based on user data, driving better user engagement and value.
Azure Container Registry: Managing and Deploying Container Images
Lastly, I explored Azure Container Registry (ACR), a managed Docker-compatible registry for container images.
Highlights and Practical Applications
Image Management: ACR offers a secure, centralized storage for container images, compatible with Docker and other container ecosystems.
Integration with Development Pipelines: I learned to integrate ACR with Azure DevOps, enabling automated builds and seamless deployment processes.
ACR allows developers to store, secure, and manage images efficiently, which is crucial in large-scale microservices applications.
Final Thoughts
The Microsoft AI Skills Challenge: Build Intelligent Apps has been both an intensive and fulfilling experience. I am now equipped with a robust understanding of Azure's services for building cloud-native applications, managing containers, and integrating artificial intelligence. These skills have enhanced my technical foundation and opened up new avenues for designing intelligent, scalable, and resilient applications in the cloud.
I look forward to applying these learnings in real-world projects and am excited to continue exploring the transformative potential of cloud and AI technologies. Thank you for joining me on this journey—let’s build the future of intelligent applications together!
Hopefully you guys enjoyed reading through this and you now have something more to learn about and implement to make your life much easier. For more awesome content, follow this blog page, also consider following me on LinkedIn. Want to know more about me!! follow me on Instagram!!
Subscribe to my newsletter
Read articles from Shreyas Ladhe directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Shreyas Ladhe
Shreyas Ladhe
I am Shreyas Ladhe a pre final year student, an avid cloud devops enthusiast pursuing my B Tech in Computer Science at Indian Institute of Information Technology Vadodara ICD. I love to learn how DevOps tools help automate complex and recurring tasks. I also love to share my knowledge and my project insights openly to promote the open source aspect of the DevOps community.