What is DevOps, CI/CD, Agile & Azure DevOps? | Free Azure DevOps Full Course for Beginners Day-1/16
Introduction to Azure DevOps: Day One
Overview of the Series
- The speaker introduces the Azure DevOps Zero to Hero series, emphasizing a direct approach to learning without wasting time.
- The first day's focus is on introducing Azure DevOps and covering basic concepts like CI/CD, Agile, and the challenges of traditional software development.
Understanding Cloud Computing
- The necessity for cloud computing is explained through a scenario where an IT firm needs resources for expansion, highlighting upfront costs (CapEx) versus recurring costs (OpEx).
- Cloud computing is defined as accessing computer resources over the internet instead of managing physical hardware, which minimizes CapEx and OpEx.
Types of Cloud Services: IaaS, PaaS, SaaS
- IaaS (Infrastructure as a Service) provides full control over infrastructure resources; users manage their own operating systems and applications.
- PaaS (Platform as a Service) offers a runtime environment for application deployment without access to the underlying OS; it simplifies development tasks.
- SaaS (Software as a Service) delivers applications hosted by cloud providers that users can consume directly without customization or deployment responsibilities.
Cost Models in Cloud Services
- IaaS typically follows a pay-per-use model while PaaS services are service-based. SaaS models often operate on subscription bases.
- Lift-and-shift migration refers to moving existing applications from on-premises to cloud infrastructure with minimal changes.
Shared Responsibility Model
- The shared responsibility model outlines the division of responsibilities between customers and Microsoft regarding security and management in cloud environments.
Understanding Cloud Service Models
Differences Between IaaS, PaaS, and SaaS
- In Infrastructure as a Service (IaaS), customers manage everything from physical data centers to applications. The responsibility lies entirely with the customer or a third-party organization.
- In Platform as a Service (PaaS), Microsoft manages the physical infrastructure and operating system, allowing customers to focus on their applications and networking controls.
- Software as a Service (SaaS) involves shared responsibilities where Microsoft handles both the physical aspects of infrastructure and the operating system, while customers manage their applications and network controls.
- Customers are responsible for managing their information data, devices, accounts, and identities in SaaS environments.
Traditional Software Development Life Cycle Issues
- The traditional software development life cycle often involved multiple teams such as developers, operations, quality assurance, and production support working sequentially.
- Code is committed to a version control system; then an Ops team creates builds that are deployed to various environments for testing before going live.
- This process follows a waterfall model starting with requirement gathering followed by design, coding, testing, deployment, and maintenance phases.
Limitations of the Waterfall Model
- The waterfall model restricts movement between stages; once one step is completed you cannot return to previous steps.
- It is time-consuming since it delivers entire applications at once leading to long delivery times for fixes.
- Dependencies among teams create bottlenecks; for instance, testing cannot begin until all code is developed.
Challenges Faced in Traditional Workflows
- Changes become costly due to rigid adherence to the lifecycle process which limits flexibility in making adjustments.
- Lack of transparency leads to limited customer involvement resulting in management bottlenecks that hinder prioritization of tasks.
Transitioning Towards Agile Methodologies
- To address issues with the waterfall model, advanced models like Rapid Application Development emerged; however, Agile has become one of the most successful methodologies today.
- Agile focuses on continuous feedback through small iterations rather than delivering everything at once. This allows for quick adaptations based on changing requirements or new bugs.
DevOps Overview and Azure DevOps Introduction
Understanding DevOps and Its Lifecycle
- DevOps addresses limitations of traditional software development life cycles by integrating operations with development, enhancing collaboration across teams.
- The process begins with planning, followed by coding, building, packaging, testing (Continuous Integration - CI), and culminates in release and deployment (Continuous Deployment - CD).
- Continuous monitoring is emphasized throughout the lifecycle to ensure ongoing feedback and improvement; this cyclical nature is represented as an infinity loop.
- Collaboration extends beyond developers and operations to include security, QA/testing teams, ensuring comprehensive support for continuous testing and vulnerability scanning.
- The integration of various teams fosters a non-siloed approach to achieving organizational goals effectively.
Introduction to Azure DevOps
- Users can start using Azure DevOps by signing up through a provided URL; upon registration, they are directed to dev.azure.com where their default organization is created.
- Organizations in Azure DevOps are logically separated; resources from one organization cannot access another's unless explicitly permitted.
- Different organizations can be created for distinct business lines within a parent company (e.g., retail banking vs. commercial banking).
- Within each organization, multiple projects can be established based on team structures or application needs; this flexibility supports tailored resource management.
- Organizational settings can be managed at both the organization level and project level; users can navigate these settings via the interface.
Creating Projects in Azure DevOps
- New projects can be created easily within an organization; users have options for public or private visibility during project setup.
- Project creation involves selecting version control types (Git or TFVC), which will be explained further in subsequent sessions.
- Users must choose a work item process (Agile, Basic, CMMI, Scrum), which dictates the project management framework utilized throughout the project's lifecycle.
- After verifying details during project setup, users can create their project similar to existing test projects while managing specific settings unique to that project.
Overview of Azure DevOps Features
Project Dashboard and Overview
- The project dashboard serves as an overview page displaying project statistics and widgets, with the current user being the only member.
- The Wiki feature allows collaboration similar to Confluence, enabling team members to create and share documents across the project.
Project Management Tools
- Boards in Azure DevOps function like Jira, allowing users to create work items, track progress, and discuss updates during standups.
- Repositories (repos) are Git-based storage for code where multiple repositories can be created for different projects.
CI/CD Pipelines
- Two types of pipelines are available: Build Pipeline (Continuous Integration - CI) and Release Pipeline (Continuous Deployment - CD), which will be explored further in the course.
Testing and Artifacts
- Test Plans provide a service for testing within Azure DevOps. Artifacts serve as a repository for compiled packages that can be stored and used in release pipelines.
Understanding Azure DevOps Hosting Solutions
Hosting Options
- There are two hosting solutions: Azure DevOps Services (cloud offering currently being used) and Azure DevOps Server (on-premises implementation).
Pricing Structure
- The basic plan allows five free users per organization; additional users cost $6 each per month. This is sufficient for course completion without incurring costs.
- An upgraded license for test plans costs $52 per user per month but includes a 30-day free trial.
Service Limitations
- Users have access to one free Microsoft-hosted CI/CD agent, one self-hosted agent, and 2 GB of artifact storage; additional storage incurs a fee of $2 per GB.
Visual Studio Subscription Benefits
Free Access through Visual Studio Subscription
- Azure DevOps is included with Visual Studio subscriptions, allowing unlimited organization creation without counting against the five-user limit.
Conclusion on Basic Concepts
Summary of Key Concepts
- The video concludes by summarizing essential concepts related to DevOps methodologies such as Agile practices, CI/CD processes, and an introduction to using Azure DevOps effectively. Further exploration into specific features like Azure Boards will occur in subsequent sessions.