1952 字
10 分钟
微软在 2026 年彻底拥抱开源:Azure Linux 4.0、MarkItDown 与 Linux 战略

微软:2026 年最大的开源贡献者?#

兄弟们,如果十年前有人告诉你「微软会成为 Linux 社区最大的贡献者之一」,你可能觉得这人疯了。但 2026 年的今天,这已经是不争的事实。

就在上个月的 Open Source Summit North America 2026 上,微软一口气发布了三个重量级消息:

  1. Azure Linux 4.0 正式发布——微软自家 Linux 发行版的重大版本更新
  2. Azure Container Linux GA——专为容器优化的极简 Linux 发行版
  3. 微软透露其 Azure 上超过 60% 的工作负载运行在 Linux 上

为了证明 Linux 在微软的战略地位有多重要,我还得补一个数据:微软内部报告称,超过 70% 的 AI 基础设施跑在 Linux 上。毕竟 CUDA、TensorRT、PyTorch 这些 AI 生态的核心组件,在 Windows 上的体验实在一言难尽。

Azure Linux 4.0 的新特性#

Azure Linux(以前叫 CBL-Mariner)是微软内部开发的 Linux 发行版,主要用于 Azure 基础设施和边缘设备。4.0 版本带来了几个关键更新:

Terminal window
# 在 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
# 安装 Docker
sudo tdnf install -y moby-engine moby-cli
sudo systemctl enable --now docker
# 拉取并运行 NVIDIA Triton Inference Server
sudo 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-70b

Azure 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()
# 转换 PDF
result = 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 push

Azure 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 MarkItDown
from azure.search.documents import SearchClient
from azure.search.documents.indexes import SearchIndexClient
from azure.core.credentials import AzureKeyCredential
from langchain.text_splitter import MarkdownHeaderTextSplitter
import 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 领域的一件大事。新版本引入了几个值得关注的功能:

  1. Agentic Merge Request Workflows:AI Agent 可以自动处理 MR 的创建、审查、合并流程
  2. CI Pipeline Visibility:Pipeline 的可观测性大幅提升,支持跨项目的依赖分析
  3. Secrets Management:原生的密钥管理,不再依赖 HashiCorp Vault
  4. Supply Chain Visibility:软件供应链的可视化,符合 SBOM 标准
# .gitlab-ci.yml — 2026 年的 Agentic CI/CD
stages:
- 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——你就知道,时代真的变了。

Terminal window
# 最后用一行命令感受一下 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 才是微软的魂。

微软在 2026 年彻底拥抱开源:Azure Linux 4.0、MarkItDown 与 Linux 战略
https://www.oferry.com/posts/a127/
作者
晨平安
发布于
2026-06-03
许可协议
CC BY-NC-SA 4.0
封面
示例歌曲
示例艺术家
封面
示例歌曲
示例艺术家
0:00 / 0:00