<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>泰克哪裡去</title>
	<atom:link href="https://tech.uccu.website/feed" rel="self" type="application/rss+xml" />
	<link>https://tech.uccu.website/</link>
	<description>一個科技相關的隨手記錄網站</description>
	<lastBuildDate>Sun, 18 Oct 2026 15:58:45 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	
<site xmlns="com-wordpress:feed-additions:1">119574712</site>	<item>
		<title>DevOps / SRE 需不需要會寫程式？</title>
		<link>https://tech.uccu.website/devops-sre-programming-skills.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=devops-sre-programming-skills</link>
					<comments>https://tech.uccu.website/devops-sre-programming-skills.html#respond</comments>
		
		<dc:creator><![CDATA[鳴人]]></dc:creator>
		<pubDate>Sat, 24 Oct 2026 04:00:00 +0000</pubDate>
				<category><![CDATA[DevOps / SRE 技術]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[SRE]]></category>
		<category><![CDATA[程式設計]]></category>
		<guid isPermaLink="false">https://tech.uccu.website/?p=2241</guid>

					<description><![CDATA[<p>DevOps / SRE 需要程式能力，但不一定每天開發商業功能。從 Shell、Python、API、JSON 到可維護的自動化工具，理解實務上的 Coding 需求。</p>
<p>這篇文章 <a href="https://tech.uccu.website/devops-sre-programming-skills.html">DevOps / SRE 需不需要會寫程式？</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p>需要，但要寫到什麼程度，得看工作的內容。</p>
<p>有的職務以 Script 和自動化為主，有的則會開發內部工具或平台。</p>
<p><span id="more-2241"></span></p>
<h2>從日常自動化開始</h2>
<p>至少建議學 Shell Script、Python，或其他一門程式語言。</p>
<p>工作裡會遇到 API、File Processing、JSON、Log Parsing、Automation、CLI、CI/CD，需要能用程式把這些事情接起來。</p>
<p>再往下做，就會需要 Modular Code、Testing、Error Handling，以及 API、SDK、Git、Package Management 等能力。</p>
<p>程式要能維護，不能只求這次跑得動。</p>
<p>高階 SRE 也可能大量開發 Internal Tools、Automation Platform、Operators、Controllers、Deployment Systems 和 Monitoring Systems。</p>
<p>Google 的 SRE 定義本身就很強調 Software Engineering；Google 甚至把 SRE 的 operational work 設下 50% 上限，要求大量時間投入工程專案與自動化。</p>
<h2>和 RD 寫的東西差在哪？</h2>
<p>SRE 需要程式能力，但不代表「你必須像 RD 一樣每天寫商業邏輯。」</p>
<p>RD 的 Coding Focus 常放在 Feature、Business Logic、API、Domain Model；SRE 則更常用在 Automation、Tooling、Infrastructure、Reliability、Observability、Deployment 與 Platform。</p>
<p>如果剛開始學，不必先去刷 500 題演算法。可以從 Shell、Python、HTTP API、JSON / YAML、Git、Testing、Debugging 練起，先讓自己能處理工作中的自動化與除錯需求。</p>
<h2>碎碎念(經驗談)</h2>
<p>程式能力這一塊，其實有下面幾個面向：<br />
&#8211; DevOps/SRE職務需求的Script必須看得懂。<br />
&#8211; 公司RD開發使用的程式語言，必須理解它的編譯、啟動方式等。<br />
&#8211; 容器化的映像檔構建與運作方式能夠理解、規劃。</p>
<p>因為現在這個AI時代大多都請AI協助產生程式碼，但是不代表能夠「無腦」的把AI產生的東西用上，所以「看得懂」是首要重點！</p>
<p>也就是說，不以語言的限制所需要會的程式基礎能力是最少必須具備的，再來是「非程式碼」面向的一些概念也需要理解。</p>
<p>&nbsp;</p>
<p><em>本文為個人職涯觀察與經驗分享，不代表所有企業的招聘標準或未來市場一定如此。</em></p>
<p>前一篇：<a href="https://tech.uccu.website/devops-sre-essential-skills.html">DevOps / SRE 需要會什麼？</a></p>
<p>後一篇：DevOps / SRE 可以怎麼用 AI？</p>
<p>歡迎持續追蹤系列文：<a href="https://tech.uccu.website/devops-sre" target="_blank" rel="noopener">DevOps / SRE 學習指南：從職涯探索到實戰技能</a></p>
<p>這篇文章 <a href="https://tech.uccu.website/devops-sre-programming-skills.html">DevOps / SRE 需不需要會寫程式？</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tech.uccu.website/devops-sre-programming-skills.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2241</post-id>	</item>
		<item>
		<title>DevOps / SRE 需要會什麼？</title>
		<link>https://tech.uccu.website/devops-sre-essential-skills.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=devops-sre-essential-skills</link>
					<comments>https://tech.uccu.website/devops-sre-essential-skills.html#respond</comments>
		
		<dc:creator><![CDATA[鳴人]]></dc:creator>
		<pubDate>Thu, 22 Oct 2026 04:00:00 +0000</pubDate>
				<category><![CDATA[DevOps / SRE 技術]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[docker]]></category>
		<category><![CDATA[Kubernetes]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[SRE]]></category>
		<category><![CDATA[雲端工程師]]></category>
		<guid isPermaLink="false">https://tech.uccu.website/?p=2240</guid>

					<description><![CDATA[<p>面對 Docker、Kubernetes、Terraform 等工具不知從何學起？本文將 DevOps / SRE 技能分成系統、網路、程式、交付、基礎設施、可靠性與架構七大領域。</p>
<p>這篇文章 <a href="https://tech.uccu.website/devops-sre-essential-skills.html">DevOps / SRE 需要會什麼？</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p>Linux、Docker、Kubernetes、AWS、Azure、GCP、Terraform、Ansible、Prometheus、Grafana、Jenkins、GitLab、Argo CD、Python、Go⋯⋯光看工具清單，很容易覺得學不完。</p>
<p>可以先把要做的事分清楚，再看工具放在哪裡。</p>
<p><span id="more-2240"></span></p>
<h2>Computer Fundamentals：理解系統</h2>
<p>從 Linux 開始，弄懂 Process、File System、Memory、CPU、I/O 和 Permission。這些是理解系統行為的基礎。</p>
<h2>Networking：理解連線</h2>
<p>TCP/IP、DNS、HTTP/HTTPS、Load Balancer、Firewall、Routing 都會碰到。</p>
<h2>Programming：能讀、能改，也能除錯</h2>
<p>Python、Go、C#、JavaScript 等語言，至少學一種。比起把重點放在 LeetCode，更需要練習讀 Code、Debug，以及把工作自動化。</p>
<h2>Software Delivery：把程式交付出去</h2>
<p>Git、Build、Test、CI/CD、Artifact、Release，是從程式碼到發布會接觸的環節。</p>
<h2>Infrastructure：準備運行環境</h2>
<p>Cloud、VM、Container、Kubernetes、IaC，都屬於這個範圍。</p>
<h2>Reliability：知道服務出了什麼事</h2>
<p>Monitoring、Logging、Tracing、Alerting、SLO、Incident Response，處理的是觀察服務狀態與回應問題。</p>
<h2>Architecture：考慮整體設計</h2>
<p>High Availability、Scalability、Disaster Recovery、Security 和 Cost，也需要放進系統設計裡考量。</p>
<p>下次看到一個沒用過的工具，可以先看它在解決上面哪一類問題，再決定要補哪一段能力。</p>
<h2>碎碎念(經驗談)</h2>
<p>概念(或基礎)和工具不能混為一談，甚至不同公司、不同環境(測試/正式)使用不同的雲端方案都有不小的差異(熟悉度與適合度)。</p>
<p>如果是已經有DevOps/SRE團隊(多人)或部門的公司，或許會有個範圍，也可能接受加入了之後再擴大了解。</p>
<p>如果是一個人負責DevOps/SRE的公司，要看公司在哪個階段當下要解決的問題缺少什麼樣的人才。</p>
<p>但是更多的是想要了解過往在哪些部份有過什麼樣的實務經驗。</p>
<p>所以，到底需要會什麼，其實很難說得準。</p>
<p>&nbsp;</p>
<p><em>本文為個人職涯觀察與經驗分享，不代表所有企業的招聘標準或未來市場一定如此。</em></p>
<p>前一篇：<a href="https://tech.uccu.website/devops-vs-sre-differences.html"><strong>DevOps 和 SRE 有什麼不同？</strong></a></p>
<p>後一篇：<strong>DevOps / SRE 需不需要會寫程式？</strong></p>
<p>歡迎持續追蹤系列文：<a href="https://tech.uccu.website/devops-sre" target="_blank" rel="noopener">DevOps / SRE 學習指南：從職涯探索到實戰技能</a></p>
<p>這篇文章 <a href="https://tech.uccu.website/devops-sre-essential-skills.html">DevOps / SRE 需要會什麼？</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tech.uccu.website/devops-sre-essential-skills.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2240</post-id>	</item>
		<item>
		<title>DevOps 和 SRE 有什麼不同？</title>
		<link>https://tech.uccu.website/devops-vs-sre-differences.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=devops-vs-sre-differences</link>
					<comments>https://tech.uccu.website/devops-vs-sre-differences.html#respond</comments>
		
		<dc:creator><![CDATA[鳴人]]></dc:creator>
		<pubDate>Tue, 20 Oct 2026 04:00:00 +0000</pubDate>
				<category><![CDATA[DevOps / SRE 技術]]></category>
		<category><![CDATA[DevOps / SRE 職涯]]></category>
		<category><![CDATA[CI/CD]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[IT 職涯]]></category>
		<category><![CDATA[SRE]]></category>
		<category><![CDATA[可靠性]]></category>
		<category><![CDATA[軟體交付]]></category>
		<guid isPermaLink="false">https://tech.uccu.website/?p=2239</guid>

					<description><![CDATA[<p>DevOps 強調開發維運協作與交付流程，SRE 聚焦可靠性與生產環境工程。從 CI/CD、SLO、Incident Response 到 JD，帶你辨識兩者差異。</p>
<p>這篇文章 <a href="https://tech.uccu.website/devops-vs-sre-differences.html">DevOps 和 SRE 有什麼不同？</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p>「這兩個不是差不多嗎？」</p>
<p>DevOps 和 SRE 的工作常常重疊，但兩個詞的側重不同。</p>
<h2>DevOps：開發與維運怎麼合作</h2>
<p>DevOps 比較偏向方法與文化，關心 Development 和 Operations 如何一起把軟體交付做好。常見的工作包含 Automation、CI/CD、Infrastructure as Code、Monitoring，也強調 Shared Ownership 與 Continuous Improvement。</p>
<p>Google Cloud 對 DevOps 的描述，也把它定位為一種組織與文化取向，用來提升軟體交付速度、服務可靠性與共同責任。</p>
<h2>SRE：用工程方法處理可靠性</h2>
<p>SRE 更接近一種工程職能，集中處理 Reliability、Availability、Latency、Capacity、Incident Response、Observability、Error Budget 與 Automation。</p>
<p>Google 對 SRE 的核心思想，就是用 Software Engineering 的方法來解決 Operations 問題。</p>
<p>簡單分，DevOps 偏重 Software Delivery 怎麼做得更順，SRE 偏重 Production Service 怎麼運行得更可靠。</p>
<h2>找工作時，兩邊可能是同一份 JD</h2>
<p>有些公司的 DevOps 主要做 Cloud 和 CI/CD，有些還涵蓋 Infra、Platform。SRE 也可能偏 Production Operations，或同時負責 Platform Engineering 與 Reliability。</p>
<p>因此，職稱只能先幫你找方向。判斷工作適不適合自己，還是得看 Job Description 寫了哪些責任。</p>
<h2>碎碎念(經驗談)</h2>
<p>當然，有許多公司也會把這兩者混在一起，甚至把JD當作許願卡，在裡面塞了各式各樣的需求…</p>
<p>這類型的工作一體兩面有好有壞，好的地方是你什麼都有機會做(學習)，不好的地方是通常只有一個人，什麼事情都由一個人處理，經驗不足的話壓力會比較大。</p>
<p>如果要挑戰這種類型公司的工作，建議思路要很清楚，必須要了解問題並且知道可以怎麼做，同時要和公司對焦方向和順序，因為通常很多都還處於「初始化」階段。</p>
<p>這篇文章 <a href="https://tech.uccu.website/devops-vs-sre-differences.html">DevOps 和 SRE 有什麼不同？</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tech.uccu.website/devops-vs-sre-differences.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2239</post-id>	</item>
		<item>
		<title>非資訊背景，也能擔任 DevOps / SRE 工程師嗎？</title>
		<link>https://tech.uccu.website/career-change-to-devops-sre.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=career-change-to-devops-sre</link>
					<comments>https://tech.uccu.website/career-change-to-devops-sre.html#respond</comments>
		
		<dc:creator><![CDATA[鳴人]]></dc:creator>
		<pubDate>Sun, 18 Oct 2026 06:16:41 +0000</pubDate>
				<category><![CDATA[DevOps / SRE 職涯]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[IT 職涯]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[SRE]]></category>
		<category><![CDATA[學習路線]]></category>
		<category><![CDATA[轉職 IT]]></category>
		<guid isPermaLink="false">https://tech.uccu.website/?p=2238</guid>

					<description><![CDATA[<p>非資訊背景也能轉職 DevOps / SRE。本文整理工程、網路、製造等背景可沿用的能力，以及 Linux、Networking、Git、程式設計到雲端的入門順序。</p>
<p>這篇文章 <a href="https://tech.uccu.website/career-change-to-devops-sre.html">非資訊背景，也能擔任 DevOps / SRE 工程師嗎？</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p>「我不是資工/資管系。」<br />
「我沒有寫過大型程式。」<br />
「我只會一點 Excel。」<br />
「我以前是在做機械、電子、製造、行政、網路維護。」</p>
<p>這些背景不會讓你失去進入 DevOps / SRE 的機會，但轉職需要補的技術也不少。</p>
<p><span id="more-2238"></span></p>
<p>DevOps / SRE 的工作橫跨 Software、Infrastructure、Networking、Automation 和 Operations。Programming 與 IT Operations 都會碰到，原本工作累積的能力也可能派得上用場。</p>
<h2>原本的工作經驗，有哪些用得上？</h2>
<p>工程背景常接觸問題拆解、Root Cause、流程、規格、測試與設備，這些經驗能用在 Infrastructure / SRE 的問題分析。</p>
<p>網路相關背景若已經碰過 TCP/IP、DNS、DHCP、Routing、Firewall，轉向 Cloud / DevOps 時，對網路的理解就是優勢。</p>
<p>機電、製造背景可能已經習慣監控告警、追蹤設備狀態、處理異常，以及把 SOP 自動化。這些工作和 SRE 要處理的問題，有不少相通之處。</p>
<h2>技術要從哪裡補？</h2>
<p>Programming、Git、Linux、Cloud、Container、CI/CD 都需要學。不過，一開始就同時碰 Kubernetes、Terraform、AWS、Docker，很容易學了操作，卻不知道工具在解決什麼問題。</p>
<p>可以先從 Linux 和 Network 開始，再學 Git 與一門程式語言，接著把 Build → Test → Deploy 串起來。有了這段經驗，再往 Cloud、Container、Kubernetes、IaC 走。</p>
<p>非資訊背景的人也能走這條路，但學工具時，要一起弄懂它背後的系統怎麼運作。</p>
<p><em>本文為個人職涯觀察與經驗分享，不代表所有企業的招聘標準或未來市場一定如此。</em></p>
<p>前一篇：<a href="https://tech.uccu.website/career-change-devops-sre-guide.html">想轉職資訊領域？除了軟體工程師，你還可以考慮 DevOps / SRE！</a></p>
<p>後一篇：<strong>DevOps 和 SRE 有什麼不同？</strong></p>
<p>歡迎持續追蹤系列文：<a href="https://tech.uccu.website/devops-sre" target="_blank" rel="noopener">DevOps / SRE 學習指南：從職涯探索到實戰技能</a></p>
<p>這篇文章 <a href="https://tech.uccu.website/career-change-to-devops-sre.html">非資訊背景，也能擔任 DevOps / SRE 工程師嗎？</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tech.uccu.website/career-change-to-devops-sre.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2238</post-id>	</item>
		<item>
		<title>想轉職資訊領域？除了軟體工程師，你還可以考慮 DevOps / SRE！</title>
		<link>https://tech.uccu.website/career-change-devops-sre-guide.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=career-change-devops-sre-guide</link>
					<comments>https://tech.uccu.website/career-change-devops-sre-guide.html#respond</comments>
		
		<dc:creator><![CDATA[鳴人]]></dc:creator>
		<pubDate>Sat, 10 Oct 2026 19:31:09 +0000</pubDate>
				<category><![CDATA[DevOps / SRE 職涯]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[IT 職涯]]></category>
		<category><![CDATA[SRE]]></category>
		<category><![CDATA[轉職 IT]]></category>
		<category><![CDATA[雲端工程師]]></category>
		<guid isPermaLink="false">https://tech.uccu.website/?p=2224</guid>

					<description><![CDATA[<p>想轉職 IT，DevOps / SRE 值得考慮嗎？從職務差異、必備技能、程式能力與 AI 時代的職涯選擇，分享實務觀點。</p>
<p>這篇文章 <a href="https://tech.uccu.website/career-change-devops-sre-guide.html">想轉職資訊領域？除了軟體工程師，你還可以考慮 DevOps / SRE！</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p>如果你正在考慮轉職資訊領域，搜尋職缺時大概很容易看到各式各樣的工程師名稱。</p>
<h2>開發工程師類</h2>
<ul>
<li>軟體工程師（Software Engineer）</li>
<li>前端工程師（Frontend Engineer）</li>
<li>後端工程師（Backend Engineer）</li>
<li>全端工程師（Full-stack Engineer）</li>
<li>Android／iOS 工程師（Mobile App Engineer）</li>
</ul>
<h2>系統與平台工程師類</h2>
<ul>
<li>雲端工程師（Cloud Engineer）</li>
<li>DevOps 工程師（DevOps Engineer）</li>
<li>SRE（Site Reliability Engineer）</li>
<li>平台工程師（Platform Engineer）</li>
<li>還有許多其他職稱……</li>
</ul>
<p>問題是：這麼多職稱，到底哪一個適合自己？而 DevOps／SRE 又是一個很容易讓人誤會的領域。</p>
<p><span id="more-2224"></span></p>
<p>有人認為它就是維運，有人認為它就是雲端；有人認為只要會 Docker、Kubernetes 就可以，也有人覺得：「DevOps 是不是就是幫 RD 部署程式？」其實都只講到一部分。</p>
<p>DevOps 的核心比較接近<strong>讓軟體交付與運行變得更可靠、更快速、更可重複</strong>；SRE 則更強調以工程方法處理正式環境（Production）的可靠性與營運問題。Google 對 SRE 的經典描述，就是讓 Software Engineer 用工程方法來設計 Operations。</p>
<h2>第一個問題：我適不適合 DevOps／SRE？</h2>
<p>可以先從幾個問題思考：</p>
<ul>
<li>你是不是喜歡研究「系統為什麼這樣運作」？</li>
<li>遇到問題時，你是先重開服務，還是會想知道根本原因（Root Cause）？</li>
<li>你會不會對作業系統（Linux／Windows）、網路（Network）、資料庫（Database）、雲端（Cloud）、容器（Container）、自動化（Automation）產生興趣？</li>
<li>你是不是喜歡把原本需要人工做的事情自動化？</li>
</ul>
<p>如果答案大多是「會」，DevOps／SRE 就值得放進你的職涯考量。</p>
<h2>第二個問題：轉 DevOps 一定要先當 RD／會寫程式嗎？</h2>
<p>不一定。但完全沒有開發概念，通常會讓學習曲線比較陡。</p>
<p>因為 DevOps／SRE 工作經常需要理解：</p>
<ul>
<li>程式碼（Code）怎麼編譯（Build）。</li>
<li>應用程式（Application）怎麼啟動。</li>
<li>服務（Service）怎麼互相呼叫。</li>
<li>資料庫（Database）怎麼連線。</li>
<li>容器（Container）怎麼運作。</li>
<li>系統部署（Deployment）怎麼發生。</li>
</ul>
<p>所以 DevOps／SRE 不見得要求你成為專業 Application Developer（應用程式／軟體開發者），但理解<strong>軟體生命週期</strong>非常重要。</p>
<h2>第三個問題：DevOps 是不是比 RD 好？</h2>
<p>不應該用「哪一個比較好」來看，它們解決的是不同問題。</p>
<p>RD 偏向：「怎麼把產品功能做出來？」</p>
<p>DevOps／SRE 偏向：「怎麼讓這個產品可靠地被 Build、Deploy、Operate、Observe？」</p>
<p>真正值得思考的是：你的興趣比較偏向「做功能」，還是「讓整個系統運作得更好」？</p>
<p>因此，DevOps／SRE 不應該被當成「寫程式寫不下去之後的備案」；它本身就是一條完整的工程職涯。</p>
<p>如果你正在轉職 IT，DevOps／SRE 值得研究，但更重要的是先了解：<strong>你究竟喜不喜歡這種工作。</strong></p>
<h2>碎碎念（經驗談）</h2>
<p>在這個 AI 寫程式愈來愈快、愈來愈好的時代，初階工程師面對 AI 的競爭壓力不小，資深工程師也都在使用 AI 寫 Code。如果想轉職開發類工程師，我個人感覺現在並不是一條很好走的路。</p>
<p>但是在全民 AI 寫 Code 的時代，許多人會利用 AI 產生系統，卻不見得熟悉後續的流程：編譯、測試、部署、上線等。</p>
<p>尤其企業關鍵的系統，在正式環境中通常不可能不經把關就把所有流程完全交給 AI。因此我個人認為，DevOps／SRE 在未來可能會是更受重視的角色。不過，實際職缺需求仍然會隨企業、地區和市場而不同。</p>
<p>當然，如果你本身就不是開發工程師，但是會使用 AI 來開發系統，也希望 AI 開發完成的系統可以上線給許多人使用，那麼就更應該了解 DevOps／SRE 這個領域了。</p>
<p><em>本文為個人職涯觀察與經驗分享，不代表所有企業的招聘標準或未來市場一定如此。</em></p>
<p>歡迎持續追蹤系列文：<a href="https://tech.uccu.website/devops-sre" target="_blank" rel="noopener">DevOps / SRE 學習指南：從職涯探索到實戰技能</a></p>
<div id="gtx-trans" style="position: absolute; left: 597px; top: 2213px;">
<div class="gtx-trans-icon"></div>
</div>
<p>這篇文章 <a href="https://tech.uccu.website/career-change-devops-sre-guide.html">想轉職資訊領域？除了軟體工程師，你還可以考慮 DevOps / SRE！</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tech.uccu.website/career-change-devops-sre-guide.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2224</post-id>	</item>
		<item>
		<title>【2022鐵人賽】2022 iThome鐵人賽結尾</title>
		<link>https://tech.uccu.website/2022ironman-day30-ending.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2022ironman-day30-ending</link>
					<comments>https://tech.uccu.website/2022ironman-day30-ending.html#respond</comments>
		
		<dc:creator><![CDATA[鳴人]]></dc:creator>
		<pubDate>Sat, 15 Oct 2022 14:36:40 +0000</pubDate>
				<category><![CDATA[2022鐵人賽]]></category>
		<category><![CDATA[iThome鐵人賽]]></category>
		<category><![CDATA[2022ironman]]></category>
		<guid isPermaLink="false">https://tech.uccu.website/?p=2105</guid>

					<description><![CDATA[<p>時光飛逝，轉眼間已經來到30天連續發文的最後一天，這篇文章成功發送出去之後，就代表今年的鐵人賽30天不中斷發表 ... <a title="【2022鐵人賽】2022 iThome鐵人賽結尾" class="read-more" href="https://tech.uccu.website/2022ironman-day30-ending.html" aria-label="Read more about 【2022鐵人賽】2022 iThome鐵人賽結尾">閱讀全文</a></p>
<p>這篇文章 <a href="https://tech.uccu.website/2022ironman-day30-ending.html">【2022鐵人賽】2022 iThome鐵人賽結尾</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">時光飛逝，轉眼間已經來到30天連續發文的最後一天，這篇文章成功發送出去之後，就代表今年的鐵人賽30天不中斷發表文章的挑戰也成功了，連續兩年參加iThome的鐵人賽都能夠完賽也是一件滿令人感動的事情。</p>



<p class="wp-block-paragraph">回想今年一直拖到最後一刻才決定報名參加，隔天就是必須發表第一篇文章的最後期限，當時都還沒有想好這30天的文章內容要如何安排，只能且戰且走的方式先報名出去，接著花了幾天的時間邊寫文章邊思考一下以今年報名的題目有哪些內容可以寫，先列出了大概的文章標題，每天再按照已經列出來的文章標題目錄去著手。就這樣，一天接著一天過去了，最終來到了最後一天…</p>



<p class="wp-block-paragraph">今年和去年都是以Azure DevOps為主題來寫文章，而這兩年所寫的內容也都是我實際在工作上使用到的東西，只是文章中將工作相關的內容去除掉了，每篇文章的內容和截圖幾乎都是完全重新再做一遍，有些地方太複雜還要想辦法簡化一下，不然每天要寫一篇文章實在是有點困難…(這是稱之為「挑戰」的原因吧！)</p>



<p class="wp-block-paragraph">其實走向DevOps的領域最困難也最具挑戰性的應該就是需要面對與熟悉很多不同的系統與工具，各家的DevOps系統搭配上每間公司的產品、政策與流程，就像是玩積木一般，每個人都有他的創意，組合出來的東西和樣子都長得不一樣。同樣類似的需求，在設計上也有許多的不同之處，如同烹飪一般，大家都是做同一道菜，但是選用的材料也有差異，這就像今年其中一篇文章「<a href="https://tech.uccu.website/2022ironman-day22-task-or-cli.html" target="_blank" rel="noreferrer noopener">使用Task與CLI的抉擇</a>」所提到的概念一樣，同樣的需求可以透過很多不同的方式達成，可以用內建的Task也可以用Script來完成，各自的色、香、味又是如何，真正品嚐的人才會知道了。</p>



<p class="wp-block-paragraph">回頭想想，參加鐵人賽的時期總是我個人的部落格產出文章最多的時期，平常下班回家沒事大概只想耍廢，上班又不可能拿來寫文章，所以總是很佩服固定有內容產出的大大們。</p>



<p class="wp-block-paragraph">這兩年以Azure DevOps為主題所寫的文章內容，同樣有發佈在我的部落格，2013年的鐵人賽雖然也有發佈在部落格，不過搬家沒有回復資料，所以就看不到了。也因為那時候是從部落格貼上內容到鐵人賽，圖片的連結也是取自部落格放圖片的位置，現在從當年的鐵人賽文章內容也會發現破圖的現象，所以這兩年寫在鐵人賽文章中的圖片都是獨立另外上傳在iThome的系統中，這樣就不會再發生部落格掛掉卻在鐵人賽文章中破圖的情況了。</p>



<p class="wp-block-paragraph">如果各位對於部落格的文章有興趣，或是想在鐵人賽結束之後看看有沒有「第31天」之後的內容，也歡迎過段時間來到部落格逛逛。</p>



<p class="wp-block-paragraph">對了，因為DevOps牽涉到的面向很廣，公司在轉型的過程中也要列出明確的Roadmap，近期也開了一個新的職缺，想要找人來和我一起在公司推動相關的工作，如果您有興趣，也可以私訊給我聊聊進一步的資訊。</p>



<p class="wp-block-paragraph">最後，祝大家工作都順利、愉快！</p>



<p class="wp-block-paragraph">終於完結啦~</p>
<p>這篇文章 <a href="https://tech.uccu.website/2022ironman-day30-ending.html">【2022鐵人賽】2022 iThome鐵人賽結尾</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tech.uccu.website/2022ironman-day30-ending.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2105</post-id>	</item>
		<item>
		<title>【2022鐵人賽】Power Automate整合Microsoft Forms：Teams通知</title>
		<link>https://tech.uccu.website/2022ironman-day29-power-automate-with-forms.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2022ironman-day29-power-automate-with-forms</link>
					<comments>https://tech.uccu.website/2022ironman-day29-power-automate-with-forms.html#respond</comments>
		
		<dc:creator><![CDATA[鳴人]]></dc:creator>
		<pubDate>Fri, 14 Oct 2022 10:27:13 +0000</pubDate>
				<category><![CDATA[2022鐵人賽]]></category>
		<category><![CDATA[Azure DevOps]]></category>
		<category><![CDATA[iThome鐵人賽]]></category>
		<category><![CDATA[2022ironman]]></category>
		<category><![CDATA[azure devops]]></category>
		<category><![CDATA[microsoft forms]]></category>
		<category><![CDATA[microsoft teams]]></category>
		<guid isPermaLink="false">https://tech.uccu.website/?p=2129</guid>

					<description><![CDATA[<p>昨天我們利用Microsoft Forms建立了新專案的申請表單，在文章中提到選擇微軟的Forms而不是Goo ... <a title="【2022鐵人賽】Power Automate整合Microsoft Forms：Teams通知" class="read-more" href="https://tech.uccu.website/2022ironman-day29-power-automate-with-forms.html" aria-label="Read more about 【2022鐵人賽】Power Automate整合Microsoft Forms：Teams通知">閱讀全文</a></p>
<p>這篇文章 <a href="https://tech.uccu.website/2022ironman-day29-power-automate-with-forms.html">【2022鐵人賽】Power Automate整合Microsoft Forms：Teams通知</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">昨天我們利用Microsoft Forms建立了新專案的申請表單，在<a href="https://tech.uccu.website/2022ironman-day28-microsoft-forms.html" target="_blank" rel="noreferrer noopener">文章中</a>提到選擇微軟的Forms而不是Google表單的原因，主要就是為了透過Power Automate建立自動化的流程，把表單的資料自動發送到Microsoft Teams的頻道中，這樣就不用時時刻刻留意有沒有人填寫了表單，或是通知的Email被歸到垃圾信件匣當中而沒有看到。</p>



<p class="wp-block-paragraph">先來看看成果的範例吧！</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="445" height="642" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/PowerAutomateNotifyTeams.png?resize=445%2C642&#038;ssl=1" alt="" class="wp-image-2133" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/PowerAutomateNotifyTeams.png?w=445&amp;ssl=1 445w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/PowerAutomateNotifyTeams.png?resize=208%2C300&amp;ssl=1 208w" sizes="(max-width: 445px) 100vw, 445px" /><figcaption>表單填寫資料自動發送到Teams</figcaption></figure>
</div>


<p class="wp-block-paragraph">訊息的格式或排版是可以自己定義調整的，至於欄位的部份就是看當初表單是怎麼設計的囉！</p>



<p class="wp-block-paragraph">首先，我們進入<a href="https://powerautomate.microsoft.com/zh-tw/" target="_blank" rel="noreferrer noopener">Power Automate的頁面</a>，登入帳號進入到管理介面之後，在左邊的選單選擇「範本」，然後在搜尋框裡面輸入「teams」，就可以找到和Microsoft Teams相關的範本可以拿來修改使用。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" decoding="async" width="1024" height="768" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/PowreAutomateSamples-1024x768.png?resize=1024%2C768&#038;ssl=1" alt="" class="wp-image-2134" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/PowreAutomateSamples.png?resize=1024%2C768&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/PowreAutomateSamples.png?resize=300%2C225&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/PowreAutomateSamples.png?resize=768%2C576&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/PowreAutomateSamples.png?w=1058&amp;ssl=1 1058w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">從篩選出來的Teams範本中，選擇「在提交新回應時通知小組」，也就是在上圖中右下角的那個項目，可以稍微看一下它的小icon是不是Microsoft Forms和Microsoft Teams的圖樣。點擊進入之後會如下圖，系統會在兩個系統中使用你的帳號進行作業，點擊「繼續」按鈕授權之後就可以進入到設計畫面了。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img data-recalc-dims="1" decoding="async" width="660" height="719" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/SendMsgToTeamsWhenFormReceiveData.png?resize=660%2C719&#038;ssl=1" alt="" class="wp-image-2135" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/SendMsgToTeamsWhenFormReceiveData.png?w=660&amp;ssl=1 660w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/SendMsgToTeamsWhenFormReceiveData.png?resize=275%2C300&amp;ssl=1 275w" sizes="(max-width: 660px) 100vw, 660px" /></figure>
</div>


<p class="wp-block-paragraph">下面這張圖就是設計的頁面，都是簡單的挑選幾個選項就可以完成的事情，主要重點就是選擇要將內容發送到Teams的哪一個頻道，然後在最下面要傳送到Teams中的訊息呈現樣式，可以把它弄得很整齊漂亮，不過我個人是覺得資料有呈現出來就可以了。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="500" height="1024" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/PowerAutomateFlowDesignSample-500x1024.png?resize=500%2C1024&#038;ssl=1" alt="" class="wp-image-2137" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/PowerAutomateFlowDesignSample.png?resize=500%2C1024&amp;ssl=1 500w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/PowerAutomateFlowDesignSample.png?resize=146%2C300&amp;ssl=1 146w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/PowerAutomateFlowDesignSample.png?resize=768%2C1574&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/PowerAutomateFlowDesignSample.png?resize=749%2C1536&amp;ssl=1 749w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/PowerAutomateFlowDesignSample.png?w=909&amp;ssl=1 909w" sizes="auto, (max-width: 500px) 100vw, 500px" /></figure>
</div>


<p class="wp-block-paragraph">訊息呈現的樣式和內容搞定之後，選擇下面或右上角的儲存就搞定了，這時候就可以回到表單去填寫一筆資料看看，如果有在設定的頻道中收到訊息的話，那就是成功了。</p>



<p class="wp-block-paragraph">透過這樣的方式就可以讓申請者直接進入表單填寫的頁面，當他們填寫完畢之後直接就會在Teams上面通知，若是有流程上需要配合的人員，例如某些步驟需要別的同事協助作業，完成之後再繼續其它的動作，這時候也可以直接在機器人發送的訊息下面使用回覆訊息的功能，然後@ 那位同事，整個搞定之後也可以回覆該訊息串記錄一下那張申請表已經完成了。</p>
<p>這篇文章 <a href="https://tech.uccu.website/2022ironman-day29-power-automate-with-forms.html">【2022鐵人賽】Power Automate整合Microsoft Forms：Teams通知</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tech.uccu.website/2022ironman-day29-power-automate-with-forms.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2129</post-id>	</item>
		<item>
		<title>【2022鐵人賽】Microsoft Forms：建立Azure DevOps專案申請表</title>
		<link>https://tech.uccu.website/2022ironman-day28-microsoft-forms.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2022ironman-day28-microsoft-forms</link>
					<comments>https://tech.uccu.website/2022ironman-day28-microsoft-forms.html#respond</comments>
		
		<dc:creator><![CDATA[鳴人]]></dc:creator>
		<pubDate>Thu, 13 Oct 2022 18:18:19 +0000</pubDate>
				<category><![CDATA[2022鐵人賽]]></category>
		<category><![CDATA[Azure DevOps]]></category>
		<category><![CDATA[iThome鐵人賽]]></category>
		<category><![CDATA[2022ironman]]></category>
		<category><![CDATA[azure devops]]></category>
		<guid isPermaLink="false">https://tech.uccu.website/?p=2120</guid>

					<description><![CDATA[<p>雖然預期範本和架構設計好之後會陸續有新的專案申請開設，但是如果都是人員透過電話、Email或是親自來找你建立專 ... <a title="【2022鐵人賽】Microsoft Forms：建立Azure DevOps專案申請表" class="read-more" href="https://tech.uccu.website/2022ironman-day28-microsoft-forms.html" aria-label="Read more about 【2022鐵人賽】Microsoft Forms：建立Azure DevOps專案申請表">閱讀全文</a></p>
<p>這篇文章 <a href="https://tech.uccu.website/2022ironman-day28-microsoft-forms.html">【2022鐵人賽】Microsoft Forms：建立Azure DevOps專案申請表</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">雖然預期範本和架構設計好之後會陸續有新的專案申請開設，但是如果都是人員透過電話、Email或是親自來找你建立專案似乎太麻煩了一點，而且可能每次都會被詢問需要提供哪些資料，所以如果有個簡易的表單能夠讓人填寫的話就是再好不過的事了。</p>



<p class="wp-block-paragraph">從這個簡單的想法為出發點，其實也很容易找到一些現成的服務，Google的表單也是一個不錯的選項，不過如果公司的員工帳號是儲存在AD(Active Directory)，那麼選用微軟的Forms應該會是一個更好的選擇，所以這邊就以Microsoft Forms為例子(雖然還有另一個主要原因，不過下一篇再說)。</p>



<p class="wp-block-paragraph">首先，搜尋Microsoft Forms進入Microsoft Forms官網頁面之後，登入公司的帳號(如果有在使用Office365)，選擇新增表單。</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="897" height="285" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/CreateNewForm.png?resize=897%2C285&#038;ssl=1" alt="" class="wp-image-2121" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/CreateNewForm.png?w=897&amp;ssl=1 897w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/CreateNewForm.png?resize=300%2C95&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/CreateNewForm.png?resize=768%2C244&amp;ssl=1 768w" sizes="auto, (max-width: 897px) 100vw, 897px" /></figure>



<p class="wp-block-paragraph">接著會是下面的設計畫面，透過幾個基本的元件組合就可以設計出一個簡易的表單(設計組合的部份就不一個個截圖了)。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="536" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDesigner-1024x536.png?resize=1024%2C536&#038;ssl=1" alt="" class="wp-image-2122" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDesigner.png?resize=1024%2C536&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDesigner.png?resize=300%2C157&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDesigner.png?resize=768%2C402&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDesigner.png?resize=1536%2C804&amp;ssl=1 1536w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDesigner.png?w=1675&amp;ssl=1 1675w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">大概設計出下面這樣的表單內容：</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="479" height="1024" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormPage1-479x1024.png?resize=479%2C1024&#038;ssl=1" alt="" class="wp-image-2123" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormPage1.png?resize=479%2C1024&amp;ssl=1 479w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormPage1.png?resize=140%2C300&amp;ssl=1 140w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormPage1.png?resize=768%2C1643&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormPage1.png?resize=718%2C1536&amp;ssl=1 718w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormPage1.png?w=936&amp;ssl=1 936w" sizes="auto, (max-width: 479px) 100vw, 479px" /></figure>
</div>

<div class="wp-block-image">
<figure class="aligncenter size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="532" height="1024" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormPage2-532x1024.png?resize=532%2C1024&#038;ssl=1" alt="" class="wp-image-2124" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormPage2.png?resize=532%2C1024&amp;ssl=1 532w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormPage2.png?resize=156%2C300&amp;ssl=1 156w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormPage2.png?resize=768%2C1479&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormPage2.png?resize=798%2C1536&amp;ssl=1 798w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormPage2.png?w=936&amp;ssl=1 936w" sizes="auto, (max-width: 532px) 100vw, 532px" /></figure>
</div>


<p class="wp-block-paragraph">如果有人填寫了資料，就可以在「回應」的頁籤中看到填寫的內容，不過因為並不是要做問卷統計，所以下面的圖表結果不是我們關心的重點，直接選擇「在Excel中開啟」就可以把結果的資料下載到本機中透過Excel打開，這樣就可以看到有哪些人填寫了哪些資料了。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="751" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDataResponses-1024x751.png?resize=1024%2C751&#038;ssl=1" alt="" class="wp-image-2125" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDataResponses.png?resize=1024%2C751&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDataResponses.png?resize=300%2C220&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDataResponses.png?resize=768%2C563&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDataResponses.png?resize=1536%2C1126&amp;ssl=1 1536w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDataResponses.png?w=1815&amp;ssl=1 1815w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="183" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDataInExcel-1024x183.png?resize=1024%2C183&#038;ssl=1" alt="" class="wp-image-2126" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDataInExcel.png?resize=1024%2C183&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDataInExcel.png?resize=300%2C54&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDataInExcel.png?resize=768%2C138&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDataInExcel.png?resize=1536%2C275&amp;ssl=1 1536w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/FormDataInExcel.png?resize=2048%2C367&amp;ssl=1 2048w, https://i0.wp.com/tech.uccu.website/wp-content/uploads/2022/10/FormDataInExcel.png?w=2250&amp;ssl=1 2250w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">透過這樣簡單的設計就可以有一個申請表單的機制，可以省下一些流程與麻煩事，也方便保存這些歷程資料。</p>
<p>這篇文章 <a href="https://tech.uccu.website/2022ironman-day28-microsoft-forms.html">【2022鐵人賽】Microsoft Forms：建立Azure DevOps專案申請表</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tech.uccu.website/2022ironman-day28-microsoft-forms.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2120</post-id>	</item>
		<item>
		<title>【2022鐵人賽】Project Wiki：隱藏的Git Repository</title>
		<link>https://tech.uccu.website/2022ironman-day27-hidden-project-wiki-repository.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2022ironman-day27-hidden-project-wiki-repository</link>
					<comments>https://tech.uccu.website/2022ironman-day27-hidden-project-wiki-repository.html#respond</comments>
		
		<dc:creator><![CDATA[鳴人]]></dc:creator>
		<pubDate>Wed, 12 Oct 2022 14:54:44 +0000</pubDate>
				<category><![CDATA[2022鐵人賽]]></category>
		<category><![CDATA[Azure DevOps]]></category>
		<category><![CDATA[iThome鐵人賽]]></category>
		<category><![CDATA[2022ironman]]></category>
		<category><![CDATA[azure devops]]></category>
		<guid isPermaLink="false">https://tech.uccu.website/?p=2107</guid>

					<description><![CDATA[<p>距離鐵人賽結束的時間剩沒幾天，後面幾個篇幅來些比較清淡的項目。 前面提到過將Pipeline範本化設計就是為了 ... <a title="【2022鐵人賽】Project Wiki：隱藏的Git Repository" class="read-more" href="https://tech.uccu.website/2022ironman-day27-hidden-project-wiki-repository.html" aria-label="Read more about 【2022鐵人賽】Project Wiki：隱藏的Git Repository">閱讀全文</a></p>
<p>這篇文章 <a href="https://tech.uccu.website/2022ironman-day27-hidden-project-wiki-repository.html">【2022鐵人賽】Project Wiki：隱藏的Git Repository</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">距離鐵人賽結束的時間剩沒幾天，後面幾個篇幅來些比較清淡的項目。</p>



<p class="wp-block-paragraph">前面提到過將Pipeline範本化設計就是為了建立多個Azure DevOps專案的時候可以快速方便的把基本的架構弄起來，而每一個新建立的專案都有可能是給不同的開發團隊使用的，這些夥伴可能甚至沒有使用過Azure DevOps、對<a href="https://tech.uccu.website/2022ironman-day3-flow-plan.html" target="_blank" rel="noreferrer noopener">我們規劃的流程</a>沒那麼熟悉等等。</p>



<p class="wp-block-paragraph">這時候當我們將新的DevOps專案建立好之後，要把相關資訊移轉給他們時，若是有個地方可以將一些資訊集中放在那裡提供團隊成員參考，我想應該是一個滿不錯的方式。而這個地方，我覺得最適合的就是每個Azure DevOps專案內的Summary頁面與Wiki，就像下面這張範例圖。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="628" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/01-ProjectSummary-1024x628.png?resize=1024%2C628&#038;ssl=1" alt="" class="wp-image-2108" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/01-ProjectSummary.png?resize=1024%2C628&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/01-ProjectSummary.png?resize=300%2C184&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/01-ProjectSummary.png?resize=768%2C471&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/01-ProjectSummary.png?w=1359&amp;ssl=1 1359w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">一個新專案剛建立的時候應該是長得像下面這個樣子，Summary的頁面並沒有什麼內容，如果我們可以利用這個版面，就可以讓團隊成員一開始進入專案首頁的時候就可以看到我們希望傳遞給他們的資訊。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="496" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/02-EmptyProjectSummary-1024x496.png?resize=1024%2C496&#038;ssl=1" alt="" class="wp-image-2109" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/02-EmptyProjectSummary.png?resize=1024%2C496&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/02-EmptyProjectSummary.png?resize=300%2C145&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/02-EmptyProjectSummary.png?resize=768%2C372&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/02-EmptyProjectSummary.png?w=1388&amp;ssl=1 1388w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">要達到這個目的，我們只需要透過Markdown格式來寫一些內容就可以達成，而存放Markdown檔案的空間就是Project的Wiki。</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="910" height="495" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/03-CreateProjectWiki.png?resize=910%2C495&#038;ssl=1" alt="" class="wp-image-2110" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/03-CreateProjectWiki.png?w=910&amp;ssl=1 910w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/03-CreateProjectWiki.png?resize=300%2C163&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/03-CreateProjectWiki.png?resize=768%2C418&amp;ssl=1 768w" sizes="auto, (max-width: 910px) 100vw, 910px" /></figure>



<p class="wp-block-paragraph">從Wiki的選項進入之後，你可以看到有兩個按鈕選項，分別是Create project wiki、Publish code as wiki，兩個差別在於前者會建立一個隱藏的wiki Git Repository，也就是這篇文章的主題，後者則是使用你已經建立好的Git Repository。在這邊我們選擇Create project wiki。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="457" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/04-CreateSummaryMarkdown-1024x457.png?resize=1024%2C457&#038;ssl=1" alt="" class="wp-image-2111" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/04-CreateSummaryMarkdown.png?resize=1024%2C457&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/04-CreateSummaryMarkdown.png?resize=300%2C134&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/04-CreateSummaryMarkdown.png?resize=768%2C343&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/04-CreateSummaryMarkdown.png?w=1076&amp;ssl=1 1076w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">系統建麼了wiki Git Repository之後就會帶到上面的這個編輯文件的畫面，而這個文件保存的格式就是不折不扣的Markdown文件(.md)，利用Markdown格式寫完之後按下Save按鈕之後，在它的左邊就會自動出現Close按鈕，按下之後你就會看到下面的這個總覽畫面：</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="606" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/05-ProjectWiki-1024x606.png?resize=1024%2C606&#038;ssl=1" alt="" class="wp-image-2112" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/05-ProjectWiki.png?resize=1024%2C606&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/05-ProjectWiki.png?resize=300%2C177&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/05-ProjectWiki.png?resize=768%2C454&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/05-ProjectWiki.png?w=1192&amp;ssl=1 1192w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">建立完Summary.md的內容之後，再點回去專案的Summary頁面，接著按下Add Project Description按鈕，右邊彈出來的畫面上就可以選擇Wiki，它會自動認到剛剛上面新增的Summary.md內容。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="617" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/06-SetProjectSummary-1024x617.png?resize=1024%2C617&#038;ssl=1" alt="" class="wp-image-2113" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/06-SetProjectSummary.png?resize=1024%2C617&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/06-SetProjectSummary.png?resize=300%2C181&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/06-SetProjectSummary.png?resize=768%2C463&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/06-SetProjectSummary.png?w=1174&amp;ssl=1 1174w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">儲存之後重新看到的畫面就會像下面這樣：</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="503" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/07-SummaryOverview-1024x503.png?resize=1024%2C503&#038;ssl=1" alt="" class="wp-image-2114" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/07-SummaryOverview.png?resize=1024%2C503&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/07-SummaryOverview.png?resize=300%2C147&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/07-SummaryOverview.png?resize=768%2C378&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/07-SummaryOverview.png?w=1359&amp;ssl=1 1359w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">前面已經說過，這個Project wiki實際上就是一個Git Repository，但是…，如果你直接點進去Repos功能中想要去找它，會發現…它根本不存在？</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1009" height="626" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/08-NotFoundWikiRepository.png?resize=1009%2C626&#038;ssl=1" alt="" class="wp-image-2115" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/08-NotFoundWikiRepository.png?w=1009&amp;ssl=1 1009w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/08-NotFoundWikiRepository.png?resize=300%2C186&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/08-NotFoundWikiRepository.png?resize=768%2C476&amp;ssl=1 768w" sizes="auto, (max-width: 1009px) 100vw, 1009px" /></figure>



<p class="wp-block-paragraph">甚至你跑到專案的設定裡面想要去找找看有沒有它的蹤跡卻也無功而返？</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="637" height="775" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/09-NotFoundWikiRepository.png?resize=637%2C775&#038;ssl=1" alt="" class="wp-image-2116" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/09-NotFoundWikiRepository.png?w=637&amp;ssl=1 637w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/09-NotFoundWikiRepository.png?resize=247%2C300&amp;ssl=1 247w" sizes="auto, (max-width: 637px) 100vw, 637px" /></figure>



<p class="wp-block-paragraph">其實呢！直接從網址輸入它的名字就可以進去了喔！</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="679" height="432" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/10-InvisibleWikiRepository.png?resize=679%2C432&#038;ssl=1" alt="" class="wp-image-2117" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/10-InvisibleWikiRepository.png?w=679&amp;ssl=1 679w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/10-InvisibleWikiRepository.png?resize=300%2C191&amp;ssl=1 300w" sizes="auto, (max-width: 679px) 100vw, 679px" /></figure>



<p class="wp-block-paragraph">很神奇對吧！也因為它就是和一般的Git Repository一樣，所以你可以把它Clone下來，透過你習慣的IDE來編輯Markdown檔案，完成之後再重新把它commit上來。畫面中的.order檔案則是用來設定Markdown在上面的Wiki總覽畫面顯示的順序。</p>



<p class="wp-block-paragraph">透過這個方式，也可以將專案的Summary Markdown檔案弄一個範本，放在templates Git Repo或是另外建立一個Docs Git Repo，之後建立新的專案的時候就直接從這個地方複製過去就可以了，節省每一個專案要重新在介面上輸入同樣內容的時間。</p>
<p>這篇文章 <a href="https://tech.uccu.website/2022ironman-day27-hidden-project-wiki-repository.html">【2022鐵人賽】Project Wiki：隱藏的Git Repository</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tech.uccu.website/2022ironman-day27-hidden-project-wiki-repository.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2107</post-id>	</item>
		<item>
		<title>【2022鐵人賽】調整CD Release Pipeline與匯出Json檔案當作範本</title>
		<link>https://tech.uccu.website/2022ironman-day26-adjust-cd-release-pipeline-and-export-as-template.html?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=2022ironman-day26-adjust-cd-release-pipeline-and-export-as-template</link>
					<comments>https://tech.uccu.website/2022ironman-day26-adjust-cd-release-pipeline-and-export-as-template.html#respond</comments>
		
		<dc:creator><![CDATA[鳴人]]></dc:creator>
		<pubDate>Tue, 11 Oct 2022 16:20:51 +0000</pubDate>
				<category><![CDATA[2022鐵人賽]]></category>
		<category><![CDATA[Azure DevOps]]></category>
		<category><![CDATA[iThome鐵人賽]]></category>
		<category><![CDATA[2022ironman]]></category>
		<category><![CDATA[azure devops]]></category>
		<guid isPermaLink="false">https://tech.uccu.website/?p=2093</guid>

					<description><![CDATA[<p>CI Pipeline的YAML搞定之後，別忘了接續它動作的是CD Release Pipeline，之前在基 ... <a title="【2022鐵人賽】調整CD Release Pipeline與匯出Json檔案當作範本" class="read-more" href="https://tech.uccu.website/2022ironman-day26-adjust-cd-release-pipeline-and-export-as-template.html" aria-label="Read more about 【2022鐵人賽】調整CD Release Pipeline與匯出Json檔案當作範本">閱讀全文</a></p>
<p>這篇文章 <a href="https://tech.uccu.website/2022ironman-day26-adjust-cd-release-pipeline-and-export-as-template.html">【2022鐵人賽】調整CD Release Pipeline與匯出Json檔案當作範本</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">CI Pipeline的YAML搞定之後，別忘了接續它動作的是CD Release Pipeline，之前在<a href="https://tech.uccu.website/2022ironman-day12-create-cd-pipeline.html" target="_blank" rel="noreferrer noopener">基本版-建立CD Release Pipeline</a>這篇文章建立了CD Pipeline，但是那時候還沒有設計YAML範本，並且GCP的Json檔案和Dockerfile檔案都還沒有搬移到新的templates Git Repo，這兩個檔案在之後已經搬家了，所以自然就需要調整更新一下CD Pipeline囉！</p>



<p class="wp-block-paragraph">為了之後建立多個Azure DevOps方便，所以調整完後也需要將它匯出成Json檔案當作後續建立的範本來匯入，這樣大部份的項目就會先建立好，我們只需要針對一些地方進行調整修改就可以了。</p>



<p class="wp-block-paragraph">首先，先來調整原本的CD Pipeline，先增加templates的Repo來源，這部份在後續新的Azure DevOps專案應該不會更動，別名就使用PipelineTemplates吧！</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="686" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/01-AddPipelineTemplateRepo-1024x686.png?resize=1024%2C686&#038;ssl=1" alt="" class="wp-image-2094" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/01-AddPipelineTemplateRepo.png?resize=1024%2C686&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/01-AddPipelineTemplateRepo.png?resize=300%2C201&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/01-AddPipelineTemplateRepo.png?resize=768%2C514&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/01-AddPipelineTemplateRepo.png?w=1211&amp;ssl=1 1211w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">接著我們需要修改Stage和Production的Agent job，要新增一個Bash task，就是針對環境變數檔案內容合併的部份，Script裡面的內容參照先前CI Pipeline寫的內容，只是路徑和變數需要調整一下，可以對照下圖的Script和YAML內的差異。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="597" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/02-AddMergeScripts-1024x597.png?resize=1024%2C597&#038;ssl=1" alt="" class="wp-image-2095" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/02-AddMergeScripts.png?resize=1024%2C597&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/02-AddMergeScripts.png?resize=300%2C175&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/02-AddMergeScripts.png?resize=768%2C448&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/02-AddMergeScripts.png?w=1034&amp;ssl=1 1034w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">改完之後還需要調整一下Deploy CloudRun的Script，圖中的PipelineRepo和PipelineTemplates都是對應上面第一張圖所設的別名，應該沒忘吧？</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="406" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/03-UpdateDeployScripts-1024x406.png?resize=1024%2C406&#038;ssl=1" alt="" class="wp-image-2096" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/03-UpdateDeployScripts.png?resize=1024%2C406&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/03-UpdateDeployScripts.png?resize=300%2C119&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/03-UpdateDeployScripts.png?resize=768%2C304&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/03-UpdateDeployScripts.png?w=1188&amp;ssl=1 1188w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Production的部份也是一樣新增Bash把合併環境變數檔案的Script加進去，可以直接複製Stage內的Script。同時也別忘了要修改Deploy CloudRun的Script。</p>



<p class="wp-block-paragraph">Stage跟Production的Script都調整好了之後，就來到Variables頁籤來新增使用到的變數。這邊跟之前比較不一樣的地方在於綠框的內容，因為我們已經學習到了更多的東西，所以可以調整一下一些變數的設計，這樣之後在新的Azure DevOps專案匯入CD Pipeline的時候才不會有漏改的地方。(參考<a href="https://tech.uccu.website/2022ironman-day24-projectname-and-variables-template.html" target="_blank" rel="noreferrer noopener">多專案命名規則與變數範本</a>這篇文章)</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="567" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/04-AddNewVariables-1024x567.png?resize=1024%2C567&#038;ssl=1" alt="" class="wp-image-2097" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/04-AddNewVariables.png?resize=1024%2C567&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/04-AddNewVariables.png?resize=300%2C166&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/04-AddNewVariables.png?resize=768%2C425&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/04-AddNewVariables.png?w=1354&amp;ssl=1 1354w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">都改完存檔之後，就可以回到外面一層，在CD Pipeline的部份叫出選單，把它匯出(Export)為Json檔案保存下來，之後在新建立Azure DevOps專案的時候方便匯入。</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1021" height="367" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/05-ExportCDPipeline.png?resize=1021%2C367&#038;ssl=1" alt="" class="wp-image-2102" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/05-ExportCDPipeline.png?w=1021&amp;ssl=1 1021w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/05-ExportCDPipeline.png?resize=300%2C108&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/05-ExportCDPipeline.png?resize=768%2C276&amp;ssl=1 768w" sizes="auto, (max-width: 1021px) 100vw, 1021px" /></figure>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="313" height="177" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/06-ImportCDPipeline.png?resize=313%2C177&#038;ssl=1" alt="" class="wp-image-2098" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/06-ImportCDPipeline.png?w=313&amp;ssl=1 313w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/06-ImportCDPipeline.png?resize=300%2C170&amp;ssl=1 300w" sizes="auto, (max-width: 313px) 100vw, 313px" /></figure>



<p class="wp-block-paragraph">上圖就是匯入的選項位置，新專案可能因為沒有任何一個Release Pipeline而找不到這個選項，只要隨便建立一個空的Release Pipeline再來找這個匯入的功能就可以了。(建立的空Release Pipeline再刪掉就好)</p>



<figure class="wp-block-image size-full"><img data-recalc-dims="1" loading="lazy" decoding="async" width="513" height="255" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/07-SelectImportJsonFile.png?resize=513%2C255&#038;ssl=1" alt="" class="wp-image-2099" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/07-SelectImportJsonFile.png?w=513&amp;ssl=1 513w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/07-SelectImportJsonFile.png?resize=300%2C149&amp;ssl=1 300w" sizes="auto, (max-width: 513px) 100vw, 513px" /></figure>



<p class="wp-block-paragraph">選擇前面匯出的Json檔案按下Ok就會匯入成為一個新的CD Release Pipeline了。</p>



<p class="wp-block-paragraph">匯入成為新的CD Release Pipeline之後，根據先前在<a href="https://tech.uccu.website/2022ironman-day12-create-cd-pipeline.html" target="_blank" rel="noreferrer noopener">基本版-建立CD Release Pipeline</a>這篇文章建立的步驟檢查一下各項設定與變數內容(記得更改專案名稱)，然後有兩個地方特別要留意一下，第一個就是除了PipelineTemplates那個Artifacts來源之外，其它的都要刪掉重新加，因為專案不同。第二個就是在Production的Create Pull Request的部份要針對新的專案重新選擇，不然Git commit SHA會對不起來，無法建立PR也無法合併。</p>



<figure class="wp-block-image size-large"><img data-recalc-dims="1" loading="lazy" decoding="async" width="1024" height="517" src="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/08-CheckCreatePRTaskProjectAndRepo-1024x517.png?resize=1024%2C517&#038;ssl=1" alt="" class="wp-image-2100" srcset="https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/08-CheckCreatePRTaskProjectAndRepo.png?resize=1024%2C517&amp;ssl=1 1024w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/08-CheckCreatePRTaskProjectAndRepo.png?resize=300%2C152&amp;ssl=1 300w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/08-CheckCreatePRTaskProjectAndRepo.png?resize=768%2C388&amp;ssl=1 768w, https://i0.wp.com/storage.googleapis.com/stateless-tech-uccu-website/2022/10/08-CheckCreatePRTaskProjectAndRepo.png?w=1225&amp;ssl=1 1225w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>
<p>這篇文章 <a href="https://tech.uccu.website/2022ironman-day26-adjust-cd-release-pipeline-and-export-as-template.html">【2022鐵人賽】調整CD Release Pipeline與匯出Json檔案當作範本</a> 最早出現於 <a href="https://tech.uccu.website">泰克哪裡去</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tech.uccu.website/2022ironman-day26-adjust-cd-release-pipeline-and-export-as-template.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2093</post-id>	</item>
	</channel>
</rss>
