微软:2026 年最大的开源贡献者?
兄弟们,如果十年前有人告诉你「微软会成为 Linux 社区最大的贡献者之一」,你可能觉得这人疯了。但 2026 年的今天,这已经是不争的事实。
就在上个月的 Open Source Summit North America 2026 上,微软一口气发布了三个重量级消息:
- Azure Linux 4.0 正式发布——微软自家 Linux 发行版的重大版本更新
- Azure Container Linux GA——专为容器优化的极简 Linux 发行版
- 微软透露其 Azure 上超过 60% 的工作负载运行在 Linux 上
为了证明 Linux 在微软的战略地位有多重要,我还得补一个数据:微软内部报告称,超过 70% 的 AI 基础设施跑在 Linux 上。毕竟 CUDA、TensorRT、PyTorch 这些 AI 生态的核心组件,在 Windows 上的体验实在一言难尽。
Azure Linux 4.0 的新特性
Azure Linux(以前叫 CBL-Mariner)是微软内部开发的 Linux 发行版,主要用于 Azure 基础设施和边缘设备。4.0 版本带来了几个关键更新:
# 在 Azure Linux 4.0 上部署一个 AI 推理服务# 首先,配置 Azure Linux 包管理器sudo tdnf install -y \ kernel-devel \ nvidia-driver-cuda-12.8 \ container-runtime \ azure-identity-agent \ azure-monitor-agent
# 安装 Dockersudo tdnf install -y moby-engine moby-clisudo systemctl enable --now docker
# 拉取并运行 NVIDIA Triton Inference Serversudo docker run --rm \ --gpus all \ --shm-size=8g \ -p 8000:8000 -p 8001:8001 \ -v /models:/models \ nvcr.io/nvidia/tritonserver:24.12-py3 \ tritonserver --model-repository=/models \ --model-control-mode=explicit \ --load-model=llama-4-70bAzure Linux 4.0 最大的卖点就是极致的安全性和性能优化。它默认启用 SELinux、强制全盘加密、内核实时补丁(Live Patching),而且镜像大小只有 600MB——相比 Ubuntu Server 的 2GB,小了 70%。
Azure Container Linux 则更进一步,镜像只有 180MB,没有包管理器、没有 SSH 服务端、没有多余的 shell——只有让容器跑起来的最小必要组件。这对于大规模的 K8s 集群来说,意味着更快的节点启动速度和更小的攻击面。
MarkItDown:微软的「文件转 Markdown」神器
再说说微软另一个让我惊喜的开源项目——MarkItDown。
这个项目目前在 GitHub Trending 上热度很高。它能做的事情听起来很简单,但做起来很难:把各种格式的文件转换成 Markdown。
支持的输入格式:├── PDF → Markdown├── DOCX → Markdown├── PPTX → Markdown├── XLSX → Markdown(表格转 Markdown 表格)├── HTML → Markdown├── 图片 (OCR) → Markdown(含文字提取)├── 音频 → Markdown(语音转文字)└── Zip → Markdown(解压后逐文件处理)看起来像是 pandoc 的替代品?但 MarkItDown 有两个杀招:
第一,它的输出质量极高。特别是 PDF 解析,能保留多级标题、表格结构、列表层级、代码块语法标注。这是因为它用了微软自家的 DocIntel 模型做布局分析,而不是简单的规则匹配。
第二,它是 AI Pipeline 的原生公民。 大量的 RAG 系统需要先把各种格式的文档转换成纯文本(Markdown),然后才能分块和向量化。MarkItDown 就是为这个场景设计的。
# 使用 MarkItDown 处理文档(Python API)from markitdown import MarkItDown
md_converter = MarkItDown()
# 转换 PDFresult = md_converter.convert("document.pdf")print(result.text_content) # 标准化的 Markdown 输出
# 批量处理目录import pathlib
docs_dir = pathlib.Path("./documents/")for ext in ["*.pdf", "*.docx", "*.pptx"]: for file_path in docs_dir.glob(ext): result = md_converter.convert(str(file_path)) output_path = docs_dir / f"{file_path.stem}.md" output_path.write_text(result.text_content) print(f"✅ {file_path.name} → {output_path.name}")在 CI/CD 中集成 MarkItDown
如果你的团队需要自动化文档处理(比如:每次更新了产品文档,自动转换成 Markdown 后喂给 RAG 系统),可以这样集成:
# GitHub Actions 工作流:自动转换文档并提交name: Document Conversion Pipeline
on: push: paths: - "docs/source/**"
jobs: convert: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4
- uses: actions/setup-python@v5 with: python-version: "3.12"
- name: Install MarkItDown run: pip install markitdown
- name: Convert all documents run: | mkdir -p docs/markdown markitdown batch ./docs/source --out-dir ./docs/markdown
- name: Check diff run: git diff --stat
- name: Commit and push run: | git config user.name "Doc Bot" git config user.email "docbot@contoso.com" git add docs/markdown/ git commit -m "docs: auto-convert source docs to Markdown [skip ci]" git pushAzure Linux 4.0 + MarkItDown + AI = 微软的闭环
这两件事放在一起看,你就能看出微软的 AI 战略了:
- 底层:Azure Linux 4.0 提供安全、高效的 AI 基础设施 OS
- 中间层:Azure Kubernetes Service + GPU 池做资源调度
- 数据层:MarkItDown + Azure AI Search 做文档处理和 RAG
- 应用层:Azure OpenAI / Copilot 做 AI 应用
用 MarkItDown 构建 RAG Pipeline
我最近用 MarkItDown + Azure AI Search 搭了一个完整的文档 RAG 系统,效果出乎意料的好。下面是核心流程:
# 完整的 RAG Pipeline:MarkItDown → 分块 → 向量化 → 搜索from markitdown import MarkItDownfrom azure.search.documents import SearchClientfrom azure.search.documents.indexes import SearchIndexClientfrom azure.core.credentials import AzureKeyCredentialfrom langchain.text_splitter import MarkdownHeaderTextSplitterimport os
# Step 1: 用 MarkItDown 批量转换文档md_converter = MarkItDown()
def process_document(file_path: str) -> list[dict]: """处理单个文档,返回分块后的内容""" result = md_converter.convert(file_path) markdown_content = result.text_content
# 按 Markdown 标题层级分块(保留结构信息) headers_to_split_on = [ ("#", "H1"), ("##", "H2"), ("###", "H3"), ] splitter = MarkdownHeaderTextSplitter( headers_to_split_on=headers_to_split_on, strip_headers=False )
chunks = splitter.split_text(markdown_content)
documents = [] for i, chunk in enumerate(chunks): documents.append({ "id": f"{os.path.basename(file_path)}-{i}", "title": chunk.metadata.get("H1", "") or chunk.metadata.get("H2", ""), "content": chunk.page_content, "section": " > ".join(chunk.metadata.values()), "source": file_path, # 这里会让 embedding 模型生成向量 "content_vector": None, # 稍后由 AI Search 自动填充 })
return documents
# Step 2: 处理整个文档目录all_docs = []docs_dir = "./product-docs/"for ext in ["*.pdf", "*.docx", "*.md"]: for file_path in sorted(glob.glob(os.path.join(docs_dir, ext))): docs = process_document(file_path) all_docs.extend(docs) print(f"✅ {file_path}: {len(docs)} chunks")
# Step 3: 上传到 Azure AI Search(自动向量化)search_client = SearchClient( endpoint=os.environ["AZURE_SEARCH_ENDPOINT"], index_name="product-knowledge-base", credential=AzureKeyCredential(os.environ["AZURE_SEARCH_API_KEY"]),)
# 批量上传(自动触发内置的向量化 pipeline)result = search_client.upload_documents(documents=all_docs)print(f"上传完成: {len(result)} 个文档")
# Step 4: 搜索查询def search_docs(query: str, top: int = 5): results = search_client.search( search_text=query, query_type="semantic", semantic_configuration_name="default", top=top, select=["title", "content", "section", "source"], highlight_fields="content", )
for r in results: print(f"\n📄 {r['title']}") print(f" 来源: {r['section']}") print(f" 匹配片段: {r['content'][:200]}...") print(f" 相关度: {r['@search.score']:.3f}")这套 pipeline 跑完之后,产品经理上传一个 200 页的 PDF 产品文档,5 分钟内就变成了一个可搜索的知识库。然后接入 ChatGPT 或者 Copilot,就能实现基于完整产品文档的智能问答。
GitLab 19.0:2026 年的 DevOps 平台进化
微软在开源方面的投入不仅体现在 Azure Linux 上。今年 GitLab 19.0 的发布也是 DevOps 领域的一件大事。新版本引入了几个值得关注的功能:
- Agentic Merge Request Workflows:AI Agent 可以自动处理 MR 的创建、审查、合并流程
- CI Pipeline Visibility:Pipeline 的可观测性大幅提升,支持跨项目的依赖分析
- Secrets Management:原生的密钥管理,不再依赖 HashiCorp Vault
- Supply Chain Visibility:软件供应链的可视化,符合 SBOM 标准
# .gitlab-ci.yml — 2026 年的 Agentic CI/CDstages: - agentic-plan - build - agentic-review - deploy
# Agent 自动规划任务agentic-plan: stage: agentic-plan script: - gitlab-agent plan --from-diff --output plan.md - cat plan.md | llm "审查这个部署计划,给出风险分析" artifacts: paths: [plan.md]
build: stage: build script: - npm ci - npm run build - npm run test:coverage
# AI Agent 自动代码审查agentic-review: stage: agentic-review script: - gitlab-agent review --diff origin/main...HEAD \ --focus security,performance \ --auto-approve-minor only: - merge_requests
deploy: stage: deploy script: - gitlab-agent deploy --environment production \ --rollback-on-failure \ --canary-percent 10 environment: name: production needs: [build, agentic-review]这套组合拳打下来,微软在 2026 年的 AI 基础设施市场的竞争力确实很强。Google 有 TPU 和 Gemini,AWS 有 Bedrock 和 Trainium,微软有 Azure + OpenAI + Copilot 的全栈方案——三家各有千秋。
但有一点是确定的:微软对 Linux 的支持力度只会越来越大。当一个曾经「Linux 是癌症」的公司,现在推出自己的 Linux 发行版、贡献 Linux 内核代码量排进前五、Azure 上 Linux 实例占比超过 Windows——你就知道,时代真的变了。
# 最后用一行命令感受一下 2026 年的微软# 在 Azure Linux 上运行 MarkItDown 转换文档,然后用 GPT-4o 做摘要cat report.pdf | markitdown | \ curl -s https://api.openai.com/v1/chat/completions \ -H "Authorization: Bearer $OPENAI_API_KEY" \ -d '{"model":"gpt-4o","messages":[{"role":"user","content":"请总结以下内容的核心要点:'"$(cat)"'"}]}'Windows 曾经是微软的命,但现在 Linux 才是微软的魂。