צוותים שעוברים מ-Jira + GitHub + Jenkins ל-Azure DevOps מצפים לעיתים קרובות שהכל יעבוד ישר מהקופסה. אבל "הכל במקום אחד" לא אומר שזה מגדיר את עצמו—הקמת Boards, Repos, Pipelines ו-Artifacts כך שיתאימו לתהליכי הצוות שלך דורשת מומחיות והבנה ארכיטקטונית. למהנדסים שלנו יש ניסיון של 10+ שנים ב-DevOps והם השלימו בהצלחה למעלה מ-50 פרויקטי הגירה ל-Azure DevOps. אנו מבטיחים מעבר חלק ותצורה אופטימלית לצרכים הספציפיים שלך.
מבנה: Organization, Project, Team
Organization — הרמה העליונה, מקבילה ל"חברה" ב-Jira. כתובת URL אחת כמו dev.azure.com/mycompany. חיוב, מדיניות אבטחה, משתמשים—הכל ברמת ה-Organization.
Project — יחידת העבודה המרכזית. מכיל Boards, Repos, Pipelines, Artifacts ו-Test Plans. מוצרים שונים צריכים פרויקטים נפרדים, לא הכל דחוס לתוך אחד. ערבוב של צוותים לא קשורים בפרויקט אחד הוא טעות נפוצה שקשה לתקן מאוחר יותר—work items, משימות ו-pipelines מתחילים להפריע זה לזה.
Team — תת-קבוצה של פרויקט עם Boards, Sprint Backlog והגדרות משלו. פרויקט אחד יכול להכיל מספר Teams (frontend-team, backend-team, devops-team).
Boards: Agile, Scrum או CMMI
בעת יצירת פרויקט, אתה בוחר תבנית תהליך. עבור רוב הצוותים—Scrum (עם Sprint Backlogs, Velocity ו-Burndown) או Agile (גמיש יותר, עם User Stories ו-Tasks). CMMI מיועד לתהליכים פורמליים עם בקשות שינוי ותהליכי אישור.
תצורה ספציפית לצוות:
Process → Work Item Types → добавить кастомные поля
Board → Column settings → настроить WIP limits
Sprints → создать спринты с датами
Area Paths → структура по компонентам (backend, frontend, infra)
Iteration Paths → иерархия спринтов (Q1 → Sprint 1, Sprint 2)Area Paths — חשובים במיוחד לסינון: כל Team עובד עם Area משלו, ושומר על ה-Boards שלהם נפרדים.
איך להגדיר Branch Policies ב-Azure Repos?
Azure Repos תומך ב-Git (וב-TFVC legacy, שאנו ממליצים לא להשתמש בו). התצורה המרכזית היא Branch Policies על Process → Work Item Types → добавить кастомные поля Board → Column settings → настроить WIP limits Sprints → создать спринты с датами Area Paths → структура по компонентам (backend, frontend, infra) Iteration Paths → иерархия спринтов (Q1 → Sprint 1, Sprint 2) :
- מספר מינימלי של reviewers: 2 (לקוד production)
- בדיקה ל-linked work items: שיוך חובה של PR למשימה ב-Boards
- בדיקה לפתרון תגובות: אין merge ללא תגובות פתורות
- Build validation: הפעלה אוטומטית של pipeline על כל PR
---
# Политика через Azure CLI az repos policy approver-count create \
--allow-downvotes false \
--blocking true \
--branch main \
--creator-vote-counts false \
--enabled true \
--minimum-approver-count 2 \
--project myproject \
--repository-id <repo-id> מה לבחור: YAML או Classic Pipelines?
Classic pipelines (דרך ה-UI) מוגדרים כ-deprecated. עבור פרויקטים חדשים אנו תמיד משתמשים ב-YAML pipelines, המאוחסנים ב-repository כ-main. זה מאפשר code review ל-pipelines, היסטוריית שינויים ושימוש חוזר בתבניות. מידע נוסף על סכמת YAML ניתן למצוא בתיעוד הרשמי.
| פרמטר | Classic Pipelines | YAML Pipelines |
|---|---|---|
| אחסון | ב-Azure DevOps UI | ב-repository (azure-pipelines.yml) |
| Code review | לא | כן, דרך PR |
| היסטוריית שינויים | לא | בהיסטוריית Git |
| תמיכה בתבניות | לא | כן |
מבנה YAML בסיסי:
---
trigger:
branches:
include:
- main
- develop
pool:
vmImage: ubuntu-latest
stages:
- stage: Build
jobs:
- job: BuildJob
steps:
- task: Docker@2
inputs:
command: buildAndPush
repository: myapp
containerRegistry: myacr-connection
tags: |
$(Build.BuildId)
latest
- stage: Deploy
dependsOn: Build
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/main'))
jobs:
- deployment: DeployProd
environment: production
strategy:
runOnce:
deploy:
steps:
- task: HelmDeploy@0
inputs:
command: upgrade
chartName: myapp
releaseName: myapp-prod
Environments ואישורים ב-Pipelines
תחת Pipelines → Environments, צור environment בשם # Политика через Azure CLI az repos policy approver-count create \ --allow-downvotes false \ --blocking true \ --branch main \ --creator-vote-counts false \ --enabled true \ --minimum-approver-count 2 \ --project myproject \ --repository-id <repo-id> . הגדר Approvals ובדיקות:
- Approvals: רשימת אנשים, שכל אחד מהם חייב לאשר את ה-deployment
- בדיקת שעות עבודה: deployment מותר רק בשעות עבודה (לדוגמה, א'-ה' 09:00-18:00)
- נעילה בלעדית: רק deployment אחד ל-environment זה בכל פעם
מקרה: עבור לקוח fintech, החלפנו pipeline legacy של Jenkins ב-YAML pipeline רב-שלבי, וקיצרנו את זמן ה-deployment מ-30 דקות ל-5 דקות, ואפשרנו rollback אוטומטי במקרה של כשל. זה הושג על ידי parallelization של שלבי build ושימוש ב-deployment slots עם החלפה מיידית.
Artifacts: רישום חבילות פנימי
Azure Artifacts יוצר feeds פרטיים עבור npm, NuGet, Maven, Python ו-Universal Packages. הצוות שלך מפרסם ספריות פנימיות ל-Artifacts במקום ל-npm/PyPI ציבורי.
---
# Публикация npm-пакета в Artifacts feed
- task: Npm@1
inputs:
command: publish
publishRegistry: useFeed
publishFeed: myorg/myfeed
---Upstream sources מאפשרים proxying של רישומים ציבוריים דרך ה-Artifacts feed—כך ש-azure-pipelines.yml עובר דרך ה-proxy הפנימי, עם caching של חבילות ובקרת גישה לתלויות חיצוניות.
Service Connections: אינטגרציות ענן
כדי לבצע deployment ל-Azure, AWS, GCP או Kubernetes, יש צורך ב-Service Connections—אחסון מאובטח של credentials הנגיש ל-pipelines ללא secrets מוקשים. מוגדר ב-Project Settings → Service Connections.
עבור Azure Kubernetes Service — Service Connection מסוג Kubernetes עם kubeconfig או service account. עבור Azure Container Registry — חיבור ACR עם OAuth אוטומטי. עבור AWS — חיבור AWS Credentials עם תפקיד IAM.
מה כלול בהקמת Azure DevOps?
| רכיב | מה אנחנו עושים | תוצאה |
|---|---|---|
| Organization & Project | יצירת מבנה, הגדרת אבטחה, מדיניות | פרויקט מוכן לשימוש עם areas ו-iterations |
| Boards | בחירת תבנית, הגדרת WIP limits, sprints | לוח פונקציונלי עם backlog ו-board |
| Repos | ייבוא קוד, הגדרת branch policies, טריגרים ל-CI | Repository עם main מוגן ובדיקות אוטומטיות |
| Pipelines | כתיבת YAML pipelines, הגדרת stages ו-environments | CI/CD מ-commit ל-production עם אישורים |
| Artifacts | יצירת feeds, הגדרת upstream sources | רישום פרטי לחבילות פנימיות |
| Service Connections | חיבור עננים, רישומי containers | גישה מאובטחת ללא secrets בקוד |
לוחות זמנים
הקמה בסיסית של פרויקט חדש (Boards, Repos עם branch policies, Pipeline אחד) — יום אחד. תצורה מלאה של organization עם מספר פרויקטים, Artifacts feed, Environments עם אישורים ואינטגרציית AKS — 2-3 ימים. הגירה מ-Jira + GitHub + Jenkins דורשת הערכה נפרדת. העלות מחושבת באופן אישי. צור קשר לייעוץ ולוחות זמנים מדויקים לפרויקט שלך. הזמן מאיתנו הקמת Azure DevOps—אנו מבטיחים איכות ותמיכה לאחר היישום.







