Avoimen lähdekoodin tiimiviestintä suuressa mittakaavassa: Mattermost omassa ylläpidossa

Muutaman vuoden välein jokin yritys katsoo Slack-laskuaan, laskee yhteen käyttäjäkohtaisen hinnan, huomaa että vuosikymmenen sisäinen keskustelu makaa jonkun toisen tietokannassa ja toisen lainkäyttöalueen alla, ja kysyy onko toista tietä. On. Mattermost on uskottavin itse ylläpidettävä vastaus, ja on ollut sitä jo pitkään.
Se on myös työkalu, joka ymmärretään väärin useimmin ennen käyttöönottoa, koska ilmainen laitos, jonka luulee saavansa, ei yleensä ole se, jota lopulta ajaa. Tämä opas kertoo, mikä Mattermost oikeasti on, mitä ilmainen versio todella sisältää ja mitkä kolme käyttöongelmaa yllättävät melkein jokaisen, joka ylläpitää sitä ensimmäistä kertaa itse.
Mikä Mattermost on
Go-kielinen palvelin, PostgreSQL-tietokanta, Reactilla tehty verkkoasiakas sekä natiivit työpöytä- ja mobiilisovellukset. Kanavat, viestiketjut, tiedostojen jako, haku, kauttaviivakomennot, saapuvat ja lähtevät webhookit, botit ja liitännäiskehys. Slackia käyttänyt on tuottava yhdessä iltapäivässä, ja niin ovat kaikki muutkin, mikä painaa enemmän kuin mikään ominaisuuslista silloin, kun koko yritystä pyydetään muuttamaan.
Tuon ytimen ympärillä ovat Playbooks tarkistuslistavetoiseen häiriö- ja prosessityöhön sekä Calls äänelle, videolle ja näytön jakamiselle. Integraatioluettelo kattaa tavanomaiset epäillyt: GitLab, GitHub, Jira, Jenkins, PagerDuty. ChatOpsissa tuote on aidosti vahva, ja juuri siksi sillä on niin paljon kannattajia kehitys- ja käyttötiimeissä sekä puolustus- ja julkishallinnon organisaatioissa, jotka eivät voi laittaa liikennettään kaupalliseen SaaS-palveluun lainkaan.
Arkkitehtuurin kannalta olennaista on, että kaikki tämä pyörii sinun valitsemallasi infrastruktuurilla. Sama periaate kuin analytiikan ylläpidossa Matomolla tai markkinoinnin automaatiossa Mauticilla. Viestit ovat sinun tietokannassasi, tiedostot sinun objektitallennuksessasi, eikä kukaan voi muuttaa säilytyskäytäntöä tai hintaa kysymättä sinulta.
Lisenssitilanne suoraan sanottuna
Tässä kohtaa ihmiset menevät sekaisin, joten sanotaan se suoraan.
Team Edition on se avoimen lähdekoodin versio. MIT-lisenssi, ilmainen, ei käyttäjärajaa, ja juuri sitä useimmat itse ylläpitävät oikeasti ajavat. Saat viestinnän, kanavat, ketjut, haun, integraatiot, webhookit ja liitännäiskehyksen. Et saa SAML- tai AD/LDAP-kertakirjautumista, vaatimustenmukaisuusvientiä, yrityshakua, korkean saatavuuden klusteria etkä vierastilejä.
Entry on ilmainen kaupallinen laitos. Se avaa edistyneen ominaisuusjoukon mutta asettaa katon: viestihistoria on rajattu, playbook-ajojen määrä on rajattu, tuki on vain yhteisöltä, ja se on suunnattu alle noin viidenkymmenen hengen tiimeille. Maksullisen tuotteen arviointiin se on hyvä. Yrityksen keskusteluhistorian pysyväksi kodiksi se on huono, koska historiaraja osuu täsmälleen siihen, mikä lopulta alkaa merkitä.
Professional, Enterprise ja Enterprise Advanced ovat maksulliset tasot. Professional lisää kertakirjautumisen, monivaiheisen tunnistautumisen ja tarkemmat käyttöoikeudet. Enterprise lisää AD/LDAP-synkronoinnin, vaatimustenmukaisuuden automatisoinnin, yrityshaun, korkean saatavuuden ja Playbooksin mittakaavassa. Enterprise Advanced lisää turvaluokitellun tiedon käsittelyn, zero trust -kontrollit ja käyttöönoton eristetyissä verkoissa, ja tällä tasolla ovat puolustuksen ja hallinnon käyttäjät. Mattermost ei enää julkaise käyttäjäkohtaista hintaa, joten varaudu myyntikeskusteluun.
Päätös, jonka useimmat tiimit kohtaavat, on yksinkertaisempi kuin tasolista antaa ymmärtää. Jos tarvitset SAMLia identiteetintarjoajaasi vasten, maksat. Jos pärjäät paikallisilla tileillä tai GitLabin OAuthilla, Team Edition kantaa yllättävän suuren organisaation.
Käyttöönotto
Pieni asennus
Muutaman kymmenen tai muutaman sadan hengen tiimille yksi kunnolla mitoitettu VPS todella riittää. Mattermostin omat ohjeet asettavat yhdestä tuhanteen käyttäjää yhdelle vCPU:lle ja 2 gigatavulle muistia, mikä on optimistista samalla tavalla kuin valmistajien minimit aina ovat. Anna koneelle neljä ydintä ja 8 gigatavua, etkä ajattele sitä enää koskaan.
Pino koostuu Mattermostista, PostgreSQL:stä ja käänteisestä välityspalvelimesta, joka päättää TLS-yhteyden. Traefik ja Let's Encrypt tekevät siitä vähiten työlästä:
services:
mattermost:
image: mattermost/mattermost-team-edition:latest
restart: unless-stopped
environment:
- MM_SQLSETTINGS_DRIVERNAME=postgres
- MM_SQLSETTINGS_DATASOURCE=postgres://mmuser:your_secure_password@db:5432/mattermost?sslmode=disable
- MM_SERVICESETTINGS_SITEURL=https://chat.example.com
volumes:
- mm_data:/mattermost/data
- mm_config:/mattermost/config
depends_on:
- db
db:
image: postgres:16-alpine
restart: unless-stopped
environment:
- POSTGRES_USER=mmuser
- POSTGRES_PASSWORD=your_secure_password
- POSTGRES_DB=mattermost
volumes:
- db_data:/var/lib/postgresql/data
volumes:
mm_data:
mm_config:
db_data:
Aseta SiteURL oikein ennen kuin kutsut ketään. Väärä tai puuttuva SiteURL rikkoo push-ilmoitukset, OAuth-paluukutsut ja linkkien esikatselut tavalla, jota on myöhemmin ärsyttävä selvittää ja joka nyt vältetään yhdellä rivillä.
Yksi varaus kannattaa toistaa, koska valmistaja sanoo sen itsekin: kontit sopivat arviointiin ja pieniin tuotantoasennuksiin, mutta se polku ei anna klusterointia eikä korkeaa saatavuutta valmiina. Jos tarvitset niitä, asenna suoraan Linuxille tai käytä Kubernetes-operaattoria.
Tuotantoasennus
PostgreSQL 14 tai uudempi. MySQL-tuki poistuu käytöstä versiosta 11 alkaen, joten jos pystytät jotain nyt, älä aloita MySQL:llä. Amazon Aurora PostgreSQL on tuettu ja on järkevä hallittu vaihtoehto AWS:ssä.
Laita tiedostot S3-yhteensopivaan objektitallennukseen ensimmäisestä päivästä alkaen. Paikallinen tiedostojärjestelmä toimii ja on oletus, ja se on myös se, mikä hiljaa sitoo tilan palvelimeesi, paisuttaa varmuuskopiot ja tekee muutosta tuskallisen. Myöhemmin vaihtaminen tarkoittaa tiedostojen siirtämistä ja polkujen uudelleenkirjoittamista. Asennusvaiheessa vaihtaminen tarkoittaa muutaman asetusarvon syöttämistä.
Korkeaan saatavuuteen tarvitset Enterprise-tason: useita sovellussolmuja kuormantasaajan takana, jaetun objektitallennuksen ja tietokannan lukureplikoineen. Mittakaavan hakuun haluat Elasticsearchin tai OpenSearchin, myös Enterprise. PostgreSQL:n kokotekstihaku riittää parille sadalle hengelle ja parille miljoonalle viestille, ja CJK-haku toimii nyt oletuksena PostgreSQL:llä, mikä ennen oli aito syy ostaa hakulisäosa.
Kolme asiaa, jotka menevät pieleen
Kaikki edellä oleva on dokumentaatiossa. Nämä ovat ne osat, jotka ihmiset löytävät tuotannosta.
Push-ilmoitukset eivät ole ilmaisia siten kuin odotat
Mobiilipushin on kuljettava Applen ja Googlen verkkojen läpi, mikä tarkoittaa, että jonkin on säilytettävä allekirjoitusvarmenteet. Mattermost ylläpitää Test Push Notification Service -palvelua, joka toimii heti ja jota ei nimenomaisesti ole tarkoitettu tuotantoon. Hosted Push Notification Service on tuotantopalvelu, ja se tulee maksullisen lisenssin kanssa.
Kolmas vaihtoehto on oma push proxy. Se on hyvin dokumentoitu ja täysin toteutettavissa, mutta se tarkoittaa oman mobiilisovelluksen rakentamista ja jakelua omilla Firebase- ja APNs-tunnuksilla, eli suhdetta sovelluskauppoihin ja julkaisuprosessia, ei yhtä iltapäivää.
Päätä mikä kolmesta ennen kuin viet sen puhelimiin, älä sen jälkeen kun ensimmäinen ihminen kysyy, miksi viestit tulevat vain sovelluksen ollessa auki. Tämä yksi kohta kaataa enemmän Mattermost-siirtymiä kuin mikään muu.
Calls tarvitsee muutakin kuin portin
Callsissa on kaksi tilaa. Integroitu tila ajaa mediapalvelua Mattermost-palvelimen sisällä ja on suositeltu alle noin viidellekymmenelle aktiiviselle käyttäjälle. Sen yli haluat rtcd:n, erillisen palvelun, joka pitää puheluliikenteen poissa pääpalvelimelta ja skaalautuu vaakasuunnassa. rtcd vaatii Enterprisen.
Kummassakin tapauksessa asiakasohjelmien on tavoitettava mediapalvelu UDP:llä portissa 8443, ja tuon portin on oltava auki koneella, jolla kyseinen palvelu ajetaan. Nginx-käänteisvälityspalvelimesi ei välitä sitä eteenpäin, koska nginx ei ole lainkaan UDP-polulla. Puolet keskusteluista tyyliin ”puhelut eivät yhdisty” palautuvat palomuurisääntöön, jota ei koskaan lisätty.
Ilmaisella tasolla odota kahdenkeskisiä puheluita aikarajalla ryhmäpuheluiden sijaan. Jos koko yrityksen video on vaatimus, hinnoittele se mukaan.
Jonkun on ylläpidettävä sitä
Rehellinen kustannusvertailu ei ole lisenssi vastaan nolla. Se on lisenssi vastaan infrastruktuuri plus se ihminen, joka paikkaa sen. Mattermost julkaisee usein, tietoturvasyistä haluat pysyä ajan tasalla, ja päivitykset tuovat mukanaan tietokantamuunnoksia, jotka kannattaa testata jossain muualla kuin tuotannossa.
Tiimille, joka joka tapauksessa ylläpitää omaa infrastruktuuria, tämä on marginaalityötä ja laskelma menee selvästi läpi. Kymmenen hengen yritykselle ilman käyttökapasiteettia SaaS-lasku voi aidosti olla halvempi kuin menetetyt tiistai-iltapäivät. Ole rehellinen sen suhteen, kumpi olet.
Pois Slackista
Mattermostissa on tuontipolku Slackin vientitiedostoista, ja se toimii, varauksin, jotka kannattaa tietää etukäteen. Julkisten kanavien viestit ja käyttäjät siirtyvät hyvin. Yksityiset kanavat ja yksityisviestit riippuvat siitä, mitä Slack-tilauksesi ylipäätään antaa viedä ulos. Ketjut, liitteet, omat emojit ja integraatiot vaativat huomiota, ja osa niistä on rakennettava uudelleen.
Toimiva lähestymistapa: tuo historia haettavana arkistona ja käsittele vaihtopäivää puhtaana alkuna. Jokaisen Slackin käyttäytymispiirteen tarkka toisintaminen on juuri se tapa, jolla kahden viikon siirtymästä tulee kahden vuosineljänneksen siirtymä.
Aja molempia rinnakkain pari viikkoa, siirrä ensin yksi tiimi, ja ilmoita sammutuspäivä julkisesti heti alussa. Chat-siirtymät epäonnistuvat sosiaalisesti, eivät teknisesti.
Eurooppalainen näkökulma
EU-yrityksille tässä ei ole kyse vain kustannuksesta. Oma ylläpito siirtää sisäisen viestinnän rajan sisään, jota sinä hallitset, ja se muuttaa useaa keskustelua kerralla: GDPR:n mukaisen siirtoanalyysin, NIS2:n mukaisen toimitusketjun tarkastelun ja ne suvereniteettikysymykset, jotka nousevat yhä useammin esiin julkisissa hankinnoissa ja jotka ovat Cloud and AI Development Actin koko aihe.
Sisäinen chat on yksi tiheimmistä luottamuksellisen aineiston keskittymistä, mitä yrityksellä on. Siellä ovat häiriöiden yksityiskohdat, asiakkaiden nimet, tunnukset joita kenenkään ei olisi pitänyt liittää mutta joku liitti, ja jokainen käynnissä oleva kaupallinen neuvottelu. Kun joku kysyy, missä se data asuu, on jotain arvoa siinä, että voi vastata alueella ja räkillä eikä alihankkijalistalla.
Milloin ei kannata
Jos teitä on viisitoista, vaatimustenmukaisuusvaatimukset ovat keveitä eikä kukaan halua palvelinta niskaansa, ottakaa SaaS. Säästö ei kata siihen menevää huomiota.
Jos tarvitset syvää integraatiota ekosysteemiin, jossa jo asut, katso tarkkaan mitä menettäisit. Microsoft 365 -ympäristössä olevat tiimit saavat ilmaiseksi paljon sellaista, mikä pitäisi rakentaa uudestaan.
Ja jos ajurina on yhden äänekkään ihmisen vastenmielisyys toimittajaa kohtaan eikä todellinen kustannus-, hallinta- tai lainkäyttövaatimus, siirtymä jumittuu noin kuudenkymmenen prosentin käyttöasteeseen, mikä on viestintävälineelle pahin mahdollinen lopputulos.
Näin voimme auttaa
Pystytämme ja ylläpidämme itse hostattua avoimen lähdekoodin infrastruktuuria Euroopassa toimiville yrityksille, mukaan lukien ne kiillottomat osat: push proxyt, siirrot objektitallennukseen, päivityspolut ja se identiteetti-integraatio, jonka ansiosta chat-käyttöönotto ylipäätään jää elämään.
Jos haluat kunnolla mitoitetun Mattermost-asennuksen, Slack-siirtymän, jonka on suunnitellut joku, joka on tehnyt sen ennenkin, tai rehellisen vastauksen siihen, kannattaako oma ylläpito tiimillesi, kirjoita osoitteeseen office@c9group.dev. Lisää infrastruktuurityöstämme AWS-kustannusoptimoinnin sivulla.
Jos kokoat täyttä itse ylläpidettyä pinoa, sama päättely pätee analytiikkaan ja markkinoinnin automaatioon.
Julkaistu: 8. elokuuta 2026 Kategoriat: Yhteistyö, Avoin lähdekoodi, Yksityisyys