Käyttöympäristön toteutuksen keskeiset osa-alueet
Käyttöympäristöjen suunnittelu on monitieteinen lähestymistapa, jossa yhdistyvät ohjelmistotekniikka, järjestelmäsuunnittelu ja toiminnallinen erinomaisuus luotettavan ja skaalattavan infrastruktuurin luomiseksi ja sovellusten käyttöönottamiseksi. Sen ytimessä siihen kuuluu vankkojen käyttöympäristöjen luomisen lisäksi myös omatoiminen ympäristö, joka antaa kehitystiimeille mahdollisuuden varmistaa samalla liiketoimintatavoitteiden linjaaminen. Onnistunut alustan suunnittelualoite alkaa oikeasta tiimistä ja antaa selkeän käsityksen ongelmatilasta. Tämä perusta mahdollistaa sellaisten järjestelmien kehittämisen, jotka virtaviivaistavat toimintoja, vähentävät kitkaa ja antavat kehittäjille mahdollisuuden keskittyä sovellusten rakentamiseen infrastruktuurin hallinnan sijaan.
Kun tiimi on paikalla, kohdistus siirtyy suuren työtason alueiden automatisointiin, manuaalisten ja toistuvien tehtävien tunnistamiseen, jotka voidaan automatisoida ajan säästämiseksi ja virheiden vähentämiseksi. Tämän jälkeen on tärkeää luoda luettelo olemassa olevista resursseista, jotta tiimit voivat keskittää työkaluja ja palveluja, jolloin niitä on helpompi hallita ja skaalata. Seuraavaan vaiheeseen viitataan nimellä paasattuja sivutettuja polkuja, joihin sisältyy vakiotyönkulkujen ja -ympäristöjen luominen projektien johdonmukaisuuden takaamiseksi. Jälkeenpäin ympäristöjen käyttöönotto palveluna auttaa virtaviivaistamaan prosesseja entisestään, jotta tiimit voivat nopeasti yhdistää ympäristöt pyydettäessä. Tässä vaiheessa päätavoitteena on itsepalvelukehittäjien käyttökokemusten optimointi, jotta kehittäjät voivat hallita työnkulkujaan itsenäisesti ja samalla varmistaa, että heillä on työkalut ja onnistumisen edellyttämä tuki. Tämä lähestymistapa muuttaa sitä, miten kehitystiimit toimivat infrastruktuurin kanssa, ja luo ketterän ja suorituskykyisen ympäristön sovellusten luomista ja toimittamista varten.
Sen lisäksi, että käyttöönottosuunnitelma on määritelty selkeästi sen sijaan, että se lähentäisi ympäristösuunnittelua yhtenä, laajanä käsitteenä, siitä voi olla hyötyä jakaa se neljään pääalueeseen toteutusprosessin helpottamiseksi:
- Engineering Systems, joka sisältää kehitystyökalut ja palvelut, kuten CI/CD: n, pakettien hallinnan, pilvipohjaiset koodausympäristöt, koodiskannerit ja lintersit, sekä tekoälyn (AI) avustajat, kuten GitHub Copilot.
- Application Platform, joka koostuu usein käytettyjen sovelluspinojen (esimerkiksi Azure Policyn, Azure Key Vaultin, Azure-säilösovellusten tai Cosmos DB:n) rakennelohkoina käytettävien palveluiden kuratoidusta valinnasta.
- Application Templates, joka tarjoaa selkeästi määriteltyjä, organisaatiokohtaisia malleja kuormituksen valmistelun helpottamiseksi ja parhaiden käytäntöjen mukaisesti.
- Developer Self-Service Capabilities, joiden avulla kehittäjät voivat hallita työnkulkujaan itsenäisesti ja samalla varmistaa hallinnon ja vaatimustenmukaisuuden organisaation standardien kanssa.
Näiden alojen sisällyttäminen toteutusstrategiaan vähentää kehittäjien raatamista, edistää innovointia ja luo saumattoman kehityskokemuksen.
Luo tiimi
Ympäristön suunnitteluorganisaatiossa oikean kulttuurin edistäminen on välttämätöntä pitkän aikavälin menestyksen kannalta. On tärkeää siirtyä ennakoivasta kulttuurista ennakoivaan kulttuuriin, jossa ympäristötiimit ottavat vastuun työkalujen luomisesta ja ylläpidosta organisaation tukemiseksi. Tämä muutos on tärkeä tietosiilojen ja toiminnallisten häiriöiden vähentämisen kannalta. Alustan suunnittelutoimien onnistuminen on yhdenmukainen platform engineering Capability Model -mallin sijoitusominaisuuden kanssa, jossa korostetaan siirtymistä organisaation erääntymisvaiheiden läpi väliaikaisesta optimoinniin. Väliaikaisessa vaiheessa yritykset tunnustavat alustan suunnittelun tarpeen, mutta johto- ja kehitystiimit eivät välttämättä ole täysin linjassa. Kun organisaatiot kypsyvät, johdon osto- ja kulttuurisiirtymät lisäävät yhteistyötä ja innovatiivista ympäristöä, jossa alustatiimit voivat edistää merkityksellisiä muutoksia, jotta organisaatiot voivat skaalata tehokkaasti.
Ympäristön suunnittelutiimi vaatii monipuolista teknistä osaamista ja tuotekeskeisen ajattelutavan luotettavien, tehokkaiden ja suojattujen sisäisten kehittäjäympäristöjen rakentamiseen ja skaalaamiseen. Alustan teknikoiden odotetaan osaavan useita avainalueita, kuten säilön orkestroinnin (esimerkiksi Kubernetes), CI/CD-putkien (esimerkiksi GitHub Actions, Azure Pipelines) ja valvontatyökalujen (esimerkiksi Azure Monitor, Prometheus, Grafana) osalta. Infrastruktuuri koodina (IaC) -työkalujen, kuten Terraformin ja Bicepin, asiantuntemus on erittäin tärkeää infrastruktuurin valmistelun automatisoinnissa. Lisäksi käyttöympäristön teknikoiden kannattaa kirjoittaa koodia komentosarjakieliin, kuten Python, PowerShell tai Bash, jotta automaatio ja integrointi voidaan ottaa käyttöön kaikissa järjestelmissä. Vaikka alustainsinöörien osaamisvarantoa voi olla vaikea hyödyntää, onnistuneen tiimin tulisi yhdistää asiantuntemusta eri taustoista, kuten ohjelmistokehitys, sivuston luotettavuustekniikka (SRE) ja IT-toiminnot.
Suuren raadan alueiden automatisoiminen
Suuren raa'a-alueiden automatisointi edustaa yleensä ensimmäistä sivutettua polkua, jonka avulla kehittäjän omatoimiominaisuudet voidaan ottaa käyttöön. Aloita tunnistamalla usein toistuvat, virhealtis- tai työintensiiviset prosessit, erityisesti manuaalisiin tai palvelupistetoimintoihin sidotut prosessit. Arvioi sitten prosessitiheyttä, monimutkaisuutta ja auditointia automaatiokohteiden priorisoimiseksi. Infrastruktuurin käyttöönotto koodina (IaC) jatkuvissa toimitusputkissa (CD) ei ainoastaan tehosta sovellusten käyttöönottoa, vaan mahdollistaa myös jaetun infrastruktuurin ja työkalujen dynaamisen valmistelun. Voit käyttää joustavia CI/CD-ympäristöjä, kuten GitHub Actionsia ja Azure DevOpsia, tai GitOps-ratkaisuja, kuten Flux ja Argo CD, pullonkaulojen vähentämiseen ja tiimien voimaannuttamiseen.
Kaiken koodina (EaC) -mallin käyttöönotto luo ajan myötä turvallisen ja toistettavan automaatiokehyksen käyttämällä IaC-mallien ja -kokoonpanojen keskitettyjä Git-säilöjä (esimerkiksi Bicep- ja Azure Resource Manager -malleja, Terraform-luettelotiedostoja ja Helm-kaavioita). Näiden toimintatiimin hallitsemien säilöjen avulla kehittäjät voivat lähettää pull-pyyntöjä, jotka tarkistetaan ja tarkastetaan turvallisesti ennen yhdistämistä. Samat CI/CD-työkalut voivat sitten valmistella ja määrittää mitä tahansa infrastruktuuria, työkaluja tai palveluja, olivatpa ne sovelluskohtaisia tai jaettuja. Tämä lähestymistapa tukee skaalautuvuutta, kehittäjän omatoimisuutta ja saumatonta integrointia hallintoprosesseihin, joilla varmistetaan, että käyttöympäristöjen suunnittelu on linjassa organisaation tavoitteiden kanssa ja edistät samalla toiminnallista ketteryyttä.
Kaikki koodina -lähestymistapa liittyy lähes mihin tahansa resurssiin tai prosessiin turvallisen Git-säilön tiedostona. Gatin tehokkailla suojausominaisuuksilla – kuten vahvistushistorialla, käyttöoikeuksien valvonnalla, pull-pyynnöillä ja haaran suojauksella – on varmistettava läpinäkyvyys, otettava käyttöön yhteistyötarkistuksia ja valvottava automaattisia tarkastuksia, ennen kuin muutokset integroidaan. Yhdessä CI/CD-järjestelmien kanssa tämä luo monipuolisen, tarkasteltavan ja turvallisen kehyksen infrastruktuurin, työkalujen ja prosessien hallintaan.
Varasto ja keskitä
Kun organisaatiot kasvavat, niiden teknisten resurssien määrä ja monimutkaisuus kasvavat, mikä usein johtaa päällekkäisten ponnistelujen, orpoprojektien ja tuhlattujen resurssien päällekkäisyyteen. Varaston ja resurssien seurannan keskitäminen on tärkeä vaihe ympäristön suunnittelussa näiden haasteiden käsittelemiseksi. Varastojärjestelmän avulla tiimit voivat seurata ja hallita resursseja, kuten koodia, ohjelmointirajapintoja, säilöjä, näennäiskoneita ja käyttöoikeuksia. Tämä prosessi paitsi parantaa hallintoa, mutta myös edistää uudelleenkäyttöä ja parantaa löydettävyyttä, jotta tiimit voivat toimia tehokkaammin ja tehokkaammin.
Keskitetyt varastot ovat tärkeässä roolissa hallinnon parantamisessa merkitsemällä ja järjestämällä resursseja. Asianmukainen merkitseminen varmistaa, että resurssit liittyvät niihin omistajiin tai tiimeihin, mikä helpottaa elinkaaren hallintaa ja muutosten mahdollisen vaikutuksen ymmärtämistä. Parannettu löydettävyys on toinen tärkeä etu, sillä se vähentää teknistä rönsyilyä auttamalla tiimejä löytämään ja uudelleenkäyttämällä olemassa olevia resursseja, mikä estää tarpeettoman päällekkäisen työn. Lisäksi varastojen keskittämisen avulla organisaatiot voivat optimoida resursseja tunnistamalla ja puhdistamalla vanhentuneita tai tarpeettomia resursseja, mikä vähentää jätettä ja lisää kustannussäästöjä.
Eri työkalut tukevat varaston- ja resurssien seurantaa, joista jokainen palvelee teknisen ekosysteemin eri osa-alueita. Esimerkiksi Azuren käyttöönottoympäristöt (ADE) tarjoaa tavan seurata monimutkaista infrastruktuuria, joka on luotu Infrastruktuuri koodina (IaC) -toiminnolla. Vastaavasti Azure-ohjelmointirajapintakeskuksen avulla kehittäjät voivat löytää ja hallita ohjelmointirajapintoja tehokkaasti. Pakettirekisteröinnit, kuten GitHub-paketit tai Azure Artifacts, tarjoavat lisäarvoa parantamalla toimitusketjun suojausta ja hallitsemalla hyväksyttyjä paketteja ja SDK:ita.
Varastojärjestelmien etujen parantamiseksi organisaatiot voivat muodostaa relaatioyhteyksiä resurssien välille kattavamman näkymän ekosysteemiin luomiseksi. Esimerkiksi ohjelmointirajapinnan määrityksen, sen koodisäilön, siihen liittyvien ympäristöjen ja hallintokäytäntöjen välisten suhteiden yhdistäminen antaa tiimeille mahdollisuuden hallita resursseja entistä tarkemmin.
Liekki päällystetyt polut
Alustasuunnittelussa "sivutettu polku" analogia välittää tasapainon innovaatioiden edistämisen ja standardoidun ohjeistuksen välillä. Aluksi tiimit voivat valita erilaisia ja epämuodollisia polkuja tavoitteidensa saavuttamiseksi ja kokeilla erilaisia työkaluja ja työnkulkuja. Alustatiimit noudattavat ajan mittaan tehokkaimpia ja laajasti hyväksyttyjä lähestymistapoja ja muuntavat ne "sivutettaviksi poluiksi"– optimoiduiksi työnkuluiksi, jotka ovat tehokkaita, käyttäjäystävällisiä ja kiinnostavia tiimien käyttöön.
Tämä prosessi, jota kuvataan usein "salamannopeiksi sivutetuiksi poluiksi", tarkoittaa yleisten mallien tunnistamista tiimin työnkuluissa ja niiden muuntamista standardoiduiksi, skaalattaviksi ratkaisuiksi. Nämä polut integroivat saumattomasti suojauksen, arkkitehtoniset parhaat käytännöt ja yhteensopivuusvaatimukset, mikä takaa tasaisen ja luotettavan käyttökokemuksen. Kehittäjät hyötyvät pienemmästä kognitiivisesta kuormituksesta, yhdenmukaisista ohjelmointirajapinnoista integrointia varten, modulaarisista ominaisuuksista, jotka voidaan yhdistää tarvittaessa, ja ennustettavasta suorituskyvystä, joka on linjassa toiminnallisten tavoitteiden kanssa.
Platform Engineering Capability Model on tässä prosessissa keskeinen rooli, joka auttaa organisaatioita määrittämään, milloin epämuodollisista poluista voi siirtyä sivutettuihin. Siinä määritellään standardointia edellyttävät alueet ja annetaan tietoja siitä, miten näitä käytäntöjä skaalataan tehokkaasti. Tämä jäsennetty lähestymistapa varmistaa, ettei innovaatioita tukahduteta ja samalla keskitytään laatuun, vaatimustenmukaisuuteen ja suorituskykyyn.
polkevat päällystettyjä polkuja, lähestymistapa kannustaa hyviin käytäntöihin olematta liian ohjaileva. Se tukee yhteisön panosta, sillä tiimit voivat tehdä yhteistyötä ja muotoilla ympäristöä siten, että ne voivat säilyttää joustavuuden ainutlaatuisia käyttötapauksia varten. Tasapainottamalla innovaatioita ja standardointia tämä menetelmä edistää ympäristöä, jossa tiimit voivat menestyä ja samalla varmistaa, että organisaation vaatimukset täyttyvät johdonmukaisesti.
Ympäristöjen käyttöönotto palveluna
Ympäristöjen käyttöönotto palveluna on suunniteltu mahdollistamaan infrastruktuurin suojattu, standardoitu ja automaattinen valmistelu. Tämän lähestymistavan pääperiaate on käyttäjätietojen ja salaisten koodien pysyvä valmistelu tavalla, joka estää kehittäjiä käyttämästä niitä suoraan. Tämä valvoo hallintoa ja varmistaa samalla, että infrastruktuuripäivitykset pysyvät suojattuina. Esimerkiksi Azuren käyttöönottoympäristöt (ADE) esimerkki tästä mallista tukevat roolien erottamista ja IaC-mallien hallinnan keskittämistä.
ADE:n avulla ympäristön teknikot ja toimintotiimit luovat ja ylläpitävät yhteistyössä tiettyjen ympäristötyyppien malliluetteloa. Nämä esimääritetyt mallit integroivat hallittuja käyttäjätietoja ja käyttöoikeuksia roolien perusteella. Kehittäjät voivat sitten valmistella infrastruktuurin CI/CD-putkilla Azure-komentorivikäyttöliittymän tai Azure-kehittäjän komentorivikäyttöliittymän kaltaisten työkalujen avulla tarvitsematta suoraa pääsyä luottamuksellisiin tunnistetietoihin tai pohjana olevaan tilaukseen. Tämä erottelu varmistaa vaatimustenmukaisuuden ja turvallisuuden ja samalla säilyttää kehittäjien tuottavuuden.
Vaikka ADE ei olisikaan käytössä, samoja periaatteita voidaan soveltaa laajemmalle niin, että infrastruktuuri koodina (IaC) -sisältö on peräisin turvallisesta, muuttumattomista sijainneista ja salaisen koodin hallinnasta automatisoitu ja eristetty. Ottamalla nämä käytännöt käyttöön ympäristön suunnittelu antaa tiimeille mahdollisuuden ottaa käyttöön yhdenmukaisia ympäristöjä ja samalla ylläpitää organisaation hallintoa ja toiminnallista tehokkuutta.
Optimoi omatoiminen kehittäjäkokemus
Saumaton omatoiminen kehittäjäkokemus on tärkeä käyttöympäristön suunnittelun onnistumisen kannalta, mutta tämän saavuttaminen edellyttää usein tapaamista käyttäjillä, jotka ovat siellä, missä he ovat. Jokainen rooli – kehittäjät, toiminnot ja muut – hakeutuu tiettyihin työkaluihin ja ympäristöihin, jotka määrittävät heidän työnkulkunsa. Jotta uudet kokemukset hyväksytään, on tärkeää yhteneä näihin nykyisiin "painovoiman keskuksiin". Pragmaattinen lähestymistapa edellyttää useiden käyttöliittymien suunnittelua, jotka on räätälöity jo käytössä olevia työkaluja käyttäen, jotta tiimit voivat aloittaa yksinkertaisilla parannuksilla, todistaa arvonsa ja kehittää kohti kehittyneitä ratkaisuja tarpeidensa mukaan.
Harkitse olemassa olevien työkalujen parantamista ja integrointia sen sijaan, että luot täysin uusia kokemuksia. Ympäristöissä, kuten muokkaajissa, integroiduissa kehitysympäristöissä (IDE), DevOps-paketteja, komentorivikäyttöliittymätyökaluissa ja vähäkoodisissa ympäristöissä, on usein laajennettavuusmalleja, jotka mahdollistavat mukauttamisen ja laajentamisen mahdollisimman vähäisellä kuormituksella. Tämä lähestymistapa vähentää ylläpitoa, käyttää tuttuja käyttökokemuksia ja nopeuttaa käyttöönottoa. Esimerkiksi verkkopohjaiset integrointiympäristön laajennukset, kuten VS Code tai vscode.dev, tarjoavat joustavan, verkkoyhteensopivan aloituskohdan, joka voidaan skaalata paikalliseen kehitysympäristöön. Vastaavasti ChatOps-käyttöliittymät, Microsoft Teamsin tai Slackin kaltaisissa työkaluissa tarjoavat intuitiivisia tapoja käynnistää automaation työnkulkuja ja integroida CI-/CD-ympäristöihin.
Organisaatioille, jotka tarvitsevat keskitetyn käyttöliittymän, investoiminen mukautettuun kehittäjäportaaliin voi tarjota pitkän aikavälin etuja, mutta vaatii huolellista suunnittelua ja resursseja. Spotifyn alun perin kehittämän työkalupaketin Backstage.iokaltaiset ratkaisut tarjoavat erittäin mukautettavia portaaleja, jotka voivat integroida laajennuksia ja kolmannen osapuolen työkaluja ja luoda dynaamisen kehittäjäkeskeisen keskittimen. Olitpa sitten aloittamassa kevyistä ratkaisuista, kuten Power Pages -, tai luomalla kattavan portaalin, tavoitteena on tarjota skaalautuvia ja käyttäjäystävällisiä kokemuksia, jotka mahdollistavat kehittäjille organisaation tarpeiden täyttämisen.