Architecture Decision Record

Active theme: Light

← Mifano ya rekodi za maamuzi

Microsoft Azure DevOps

Yaliyomo:

Muhtasari

Suala

Tunataka kutumia devops kujenga, kuunganisha, kuweka, na kupangisha miradi yetu. Tunazingatia Microsoft Azure DevOps.

  • Tunataka uzoefu wa waundaji uwe wa haraka na wa kuaminika, kwa usanidi wa devops mf. kusanidi pamoja na matumizi endelevu mf. muda wa haraka wa ujenzi.

  • Tunataka kuzingatia kutumia Microsoft Azure kwa ujumla, kupangisha programu za mradi, hifadhidata, n.k.

Uamuzi

Tuliamua dhidi ya Microsoft Azure DevOps.

Hali

Imeamuliwa. Tuko wazi kuupitia upya ikiwa/wakati taarifa mpya muhimu zitakapofika.

Undani

Dhana

Dhana zote za kawaida za devops, kama katika kitabu Accelerate.

  • Ujenzi wa haraka ni msaada mkubwa. Huharakisha mizunguko ya mrejesho.

  • Tunaweza kubadilisha vipande ndani/nje kutoka kwa wauzaji mbadala yaani tunaweza kutaka kuleta seva zetu za ujenzi za kasi ya juu, au kutumia chaguo letu wenyewe la mfumo wa udhibiti wa matoleo, au kuratibu na seva ya ujumuishaji endelevu tunayoipangisha wenyewe.

  • Urahisi uliorahisishwa wa matumizi ni msaada mkubwa, kwa uzoefu wa waundaji, na kwa upande mwingine kwa maeneo fiche kama uthabiti, uwazi, usalama, na urahisi wa mkondo wa kujifunza.

  • Chochote kinapovunjika au kuwa na tatizo, tunataka njia yenye ufanisi ya kuripoti suala. Hili ni muhimu hasa kwa masuala yoyote yanayohusiana na usalama.

Vikwazo

Hakuna vinavyojulikana. Azure ina ahadi iliyochapishwa ya kufanya kazi vizuri na zana za nje.

Misimamo

Tulizingatia kutumia Microsoft Azure Devops dhidi ya AWS ambayo ndiyo iliyopo.

Tulifanya majaribio na Azure DevOps, Azure Pipelines, Azure Repo, na kuanzisha seva mpya ya Azure kupitia Terraform.

Tulifanya majaribio ya kupata usaidizi kutoka kwa wawakilishi wa Microsoft.

Tulikusanya taarifa kutoka kwa wenzao kwenye blogu na Hacker News.

Hoja

Azure DevOps inatangaza seti bora ya huduma, lakini hazidumu, hazifanyi kazi vizuri pamoja, na usaidizi ni duni.

Uzoefu wetu wa moja kwa moja:

  • Usanidi wa Azure ni fujo ya UI, baadhi zikipishana na akaunti za Microsoft, baadhi zikiwa hazipishani. Mf. kuna kuingia kwa Azure, kuingia kwa Microsoft.com, kuingia kwa Live.com, n.k. na zote zinatumika kwa wakati mmoja.

  • Tulikutana na suala dogo la usalama wakati wa usanidi, na hatukupata suluhisho. Tulijaribu njia nyingi kuliripoti, kwa wawakilishi wengi wa Microsoft, bila mafanikio. Tulifanikiwa kuliripoti kwa usalama wa Microsoft, ambao ulijibu kwamba hautarekebisha.

  • Nyaraka mara nyingi ni aidha si sahihi au zimepitwa na wakati. Angalau baadhi ya hili ni kwa sababu ya injini duni ya utafutaji ya Microsoft, na baadhi ni kwa sababu ya SEO duni.

  • Usanidi wa Terraform umeandikwa vizuri, na unafanya kazi. Hata hivyo, usaidizi wa Terraform ni dhaifu ikilinganishwa na AWS kwa sababu Microsoft inajenga uhusiano wa kibiashara na wauzaji kufanya mifano ya usanidi wa Terraform wa mnyororo.

Uzoefu wa wenzao:

  • Baada ya kufanya tathmini yetu ya kipofu, tulitafuta uzoefu wa wenzao. Tulichopata kilithibitisha uzoefu wetu.

  • Wenzao waliripoti matatizo ya ziada na muda wa ujenzi, na matatizo na seva ya ujenzi ya kuleta mwenyewe. Matatizo haya ni makali zaidi kwa kiasi kikubwa kuliko matatizo ya UI, kwa sababu kufanya ujenzi ndilo kusudi kuu la mfereji wa ujenzi, na tunatarajia kufanya mengi kwa siku.

  • Tulipata ushiriki bora wa wenzetu wa Azure katika maeneo ya mijadala. Hongera kwa Microsoft kwa hili. Tumevutiwa hasa na Edward Thomson, Azure PM na mwandishi wa msimbo, kwa sababu ya ushiriki wake, uwazi, na maelezo ya kiufundi.

Athari

Kuchagua Microsoft Azure DevOps kunaonekana kuwa ghali zaidi (~mara 3) kwa muda na gharama kuliko kutochagua Azure.

Yanayohusiana

Maamuzi yanayohusiana

Tukichagua Azure DevOps, kuna huduma nyingi zinazohusiana, ikiwa ni pamoja na Azure Repo, Azure Pipeline, n.k. Tunaamini kwamba tukichagua Azure Devops, hii inaweza kurahisisha kutumia uwezo zaidi wa Azure, au inaweza kufanya iwe vigumu kutumia uwezo wa wauzaji wengine.

Tunaamini kwamba Microsoft inapiga hatua kubwa katika uzoefu wa waundaji, na tunaona Microsoft ikifanya ununuzi mkubwa wa zana za waundaji (mf. GitHub) na utegemezi (mf. Citus).

Tukichagua Azure DevOps, basi tunaweza kutaka kusisitiza kuchagua huduma za ununuzi wa Microsoft, na pia tunaweza kutaka kushughulikia huduma za ununuzi kwa uangalifu/tathmini zaidi kwa sababu ya uwezekano wa kukataliwa kwa tishu mf. hatari ya kuondoka kwa wafanyakazi.

Mahitaji yanayohusiana

Tunataka muda wa ujenzi uwe wa haraka sana. Tunakubali kulipa gharama ya juu kwa hili. Hii ni kwa sababu tunataka kurudia kwa kasi sana.

Tunataka kuegemewa kuwe juu sana. Tunakubali kulipa gharama ya juu kwa hili. Hii ni kwa sababu tunajaribu visa vya matumizi vya thamani ya juu, ikiwa ni pamoja na miamala ya kifedha, miamala ya siri, n.k.

KPI zetu 4 za juu za devops zinajumuisha muda wa wastani wa kupona, ambao unahitaji ujenzi wa haraka na kuegemewa kwa juu.

Vielelezo vinavyohusiana

Tunataka mfumo wa ujenzi utoe vielelezo vinavyofaa kutumika katika mifumo mingine, kama Artifactory.

Kanuni zinazohusiana

Inayoweza kurudishwa kwa urahisi. Tunaweza kutathmini Azure DevOps sambamba na AWS iliyopo.

Maelezo ya ziada

Microsoft Devops CI: An Unsatisfying Adventure

https://toxicbakery.github.io/vsts-devops/microsoft-devops-ci/

Chapisho la blogu.

"As a software developer, I know first-hand how difficult it is to build quality products quickly and cheaply. It’s an art form that we sometimes get right, and other times devolves into something akin to the Obama era healthcare government site. Our level of control over the resulting product varies, and blame for failure often falls on the wrong people in the decision-making hierarchy. Microsoft’s Azure DevOps (formerly known as Visual Studio Team Services), despite clearly good intentions, is a perfect storm of bad decisions and poor execution."

Mambo muhimu ya mjadala wa Hacker News

https://news.ycombinator.com/item?id=18983586

"We use Azure DevOps extensively at my work and, after having used GitHub, Gitlab, self hosted solutions, Jenkins, TeamCity... Azure DevOps ranks dead last."

"The UI is terribly clunky everywhere. The worst for me are pull requests. Incredibly tough to work with people on a pull request. I can't even point you to "a" particular problem - for us it's broken everywhere."

"Azure Devops is something I want to love. The UI keeps changing, but doesn't fix underlying bugs that have been around for ages."

"The tools are not well integrated, the UI is really slow, there’s no dashboard view of active pull requests, builds, releases, etc for my favorite repos. Build/Deploy times are insanely slow."

"We tried to also use Azure Boards (Work Items, Boards, Backlogs, etc). Ouch. It is a complete UI mess of disjointed ideas. Instead of implementing one thing well, they implemented two dozen things terribly."

Windows Development MVP

Windows Development MVP here. I feel like I must shoulder some of the responsibility here for not being louder about these issues. But must say, I'm disappointed to hear you're "surprised" about the UX issues. I've been telling your folks the UX is dreadful (e.g. as far back as pre-launch) and kept hearing back "we know, we're fixing it". I'll start formalizing the feedback and push it through the pipes, stay tuned. I'm also local (Bellevue), would love to come in and try to pipeline our relatively simple oss .net/wpf/uwp app. I suspect it'll be an eye opener for the both of us.

Mifano:

  • You can't build a pipeline with a git repo. that contains submodules

  • Found it impossible to edit the PATH for some custom tooling

  • The New Pipeline experience just doesn't make a lot of sense, new users clicking around will eventually end up at the wrong Docs.

Muhtasari wa Edward Thomson (Azure PM)

I wrote the code that merges your pull requests. Program Manager for at Microsoft for Azure DevOps; formerly a software engineer on version control tools at GitHub, Microsoft, SourceGear.

https://www.edwardthomson.com/

Co-maintainer of libgit2. https://libgit2.github.io

Co-host of All Things Git, the Podcast about Git. https://www.allthingsgit.com/

Curator of Developer Tools Weekly, a newsletter about development tools. https://developertoolsweekly.com/