- Liittynyt
- 16.10.2016
- Viestejä
- 544
Tässä topicissa voitaisi jakaa omia kokemuksia, vinkkejä ja ohjeita tuotantoympäristöjen pyörittämisestä. Kaikki keskustelu tervetullutta miten pärjätä isojen ja pienten projektien kanssa joilla on oikeita käyttäjiä ja seuraamuksia. Myös kaikki ryhmänhallinta-, organisaatio-, prosessi-, hr-, yms. jutut tervetulleita, eikä keskustelua pelkästään teknologiasta. Itse toimin eräänlaisessa tech lead roolissa globaalissa yrityksessä, jossa vedän teknologiakehitystä monipilviympäristöissä. Olisi tosiaan kiva kuulla muidenkin kokemuksia ja jakaa tietoa täällä.
Omat muutamat sentit:
Omat muutamat sentit:
- Versiohallinta. Kaikki vähänkään vakavammat softaprojektit tarvitsevat jonkinlaisen versiohallinnan. Tämä on yleensä koko projektin kulmakivi minkä ympärillä kaikki pyörii. Itsellä hyviä kokemuksia ihan perinteisestä GitHubista.
- Tehtävänhallinta. Issueiden ja taskien hallinta ja työnsuunnnittelu. Yleisempiä on varmaan Jira ja GitHub. Meillä pyörii kaikki GitHubissa aina projektin boardista issueihin ja sprinttien suunnitteluun. Palveluhallinta käyttää Jiraa koska sen ei tarvitse olla niin sidoksissa koodiin.
- Julkaisumenetelmät. CI/CD nyt varmaan tulee kaikilla ensimmäisenä mieleen kun puhutaan tuotantokoodin julkaisemisesta tuotantoalustalle. CI/CD käytännössä tarkoittaa automaattista ja integroitua julkaisujärjestelmää jonka avulla voidaan tehdä luotettavasti tuotantojulkaisu.
- Testaus. Automaattinen testaus on yleensä sidoksissa CI/CD-putkeen joka siis testaa ohjelmiston toimivuuden automaattisesti. Hyvin tärkeä osa-alue tuotantoympäristöissä.
- Dokumentointi. Dokumentointia voidaan tehdä monella eri tavalla ja tasolla. Koodia pitää dokumentoida mm. JSDoc on näppärä työkalu Javascript-koodin kommentointiin ja dokumentointiin. Lisäksi tarvitaan ylemmän tason dokumentointiratkaisuja kuten GitHubissa ihan vaan readme.md ja wiki-ratkaisut. Myös tuotantoversioiden julkaisu pitää dokumentoida, mitä julkaistaan.
- Koodin tyylisäännöstö. Vaikka devaajia olisi ihan muutama on todella hyvä idea asettaa yhtenäinen tyylisäännöstä koodille joka formatoi sen samaan muottiin. Esim. ESLint ja prettier ovat hyviä työkaluja.
- Infra. Eli siis IaC, pilvet, kontit, infra-alustat. Hyvin toimiva koodi ei ole mitään ilman hyvin toimivaa infraa. Infrapuolella on tapahtunut ihan huikeita muutoksia viime vuosina. Kontit, pilvet ja palvelittomat ratkaisut ovat melkolailla standardia nykyään kun puhutaan modernista tavasta tehdä infraa. Me ollaan mm. hyödynnetty GCP Kubernetesta. Teen paljon myös hommia Terraformin kanssa VMware-alustoille.
- Automaatio. Kaikenlainen manuaalinen säätäminen on aina ihan hirveetä tuotannossa. Tästä syystä onkin hyvä idea automatisoida mahdollisimman paljon asioita tuotannossa. Ihmiset tekevät aina virheitä ja ovat hitaita ja raskaita tekemään mitään. Kun kerran panostaa jonkin asian automatisoimiseen niin se maksaa kyllä itsensä aina takaisin.
- Tietoturva. Tänä päivänä on erittäin tärkeää huolehtia tietoturvasta kaikessa tekemisessä devaajasta toimariin. Palvelun tai jopa koko yrityksen uskottavuus ja tulevaisuus on vaakalaudalla mikäli tietoturva ei ole kunnossa. Tähän ei ole mitään yksittäistä vastausta koska aihe on niin laaja. Yksi tapa on ulkoistaa joitakin teknisiä tietoturvapalveluita kuten lokienhallinta ja SOC niille erikoistuneille yrityksille kuten vaikka Nixu.