Første indtryk: hvordan den nye corporate mailsystem Mailion fra МойОфис er opbygget

Første indtryk: hvordan den nye corporate mailsystem Mailion fra МойОфис er opbygget

For næsten fire år siden begyndte vi at designe et helt nyt distribueret mailsystem, Mailion, der er beregnet til virksomhedskommunikation. Vores løsning er bygget på en Cloud Native mikroservices-arkitektur, kan håndtere over 1.000.000 brugere samtidig og vil være klar til at imødekomme 100% af behovene hos store virksomheder.

I løbet af arbejdet med Mailion er teamet vokset flere gange, og der er nu næsten 70 udviklere involveret i produktet. Vi har gennemgået en stor rejse fra idé og de første prototyper til pilottesten af den kommercielle version. Det er tid til at fortælle Habr om det produkt, vi skaber, hvordan vores mailsystem fungerer, hvilken teknologi vi bruger, og hvorfor vores løsning repræsenterer fremtiden for virksomhedskommunikation. Lad os komme i gang!

Habr, hej! Mit navn er Anton Gerasimov, og jeg leder udviklingsafdelingen i Moskva udviklingscenter for MojOffice. I dag vil vi præsentere Mailion - et helt nyt russisk mailsystem af virksomhedsstandard, der vil være en værdig alternativ til populære udenlandske løsninger. Mailion har høj belastningsevne, enestående skalerings- og fejlfindingsmuligheder, og kræver minimal opmærksomhed fra systemadministratorer.

Vores udvikling er i øjeblikket i beta-testfase, men meget snart, ifølge vores plan inden udgangen af 2020, overgår den til status som pilotimplementering af det kommercielle produkt.

Det meste af denne artikel indeholder generelle oplysninger - det er simpelthen umuligt at beskrive et komplekst softwareprodukt i én publikation. Jeg planlægger at lave en serie artikler, der fortæller om de nøgleteknologier. Indtil da tilbyder jeg dig følgende indhold for din bekvemmelighed:

Hvad er et virksomhedsmailsystem?

Det enkle og åbenlyse svar på dette spørgsmål er et værktøj til at arbejde med e-mail og kalender. Men djævlen, som bekendt, ligger i detaljerne.

Så vi skaber e-mail af næste generation med avancerede kalenderplanlægningsfunktioner, der er rettet mod erhvervslivet og store virksomheder. Vi fokuserer på at arbejde med store kommercielle og statslige strukturer, hvor der kan være fra 30.000 til flere hundrede tusinde arbejdspladser.

I centrum for vores system ligger princippet om en platformsløsning. Vi baserer os på konceptet Unified Communications og tilbyder ét enkelt værktøj til at arbejde med e-mail, kalender og dokumenter indenfor ét system, med mulighed for at udvide funktionaliteten af løsningen ved at tilslutte yderligere moduler og komponenter. Udvidelser kan, for øvrigt, udvikles ikke kun af os, men også af vores partnere. Til dette formål vil der blive offentliggjort et ret bredt sæt af værktøjer (SDK).

Hvem har brug for endnu en mailtjeneste, og hvorfor?

Store virksomheder har skabt en interessant trend — virksomheder oplever behov for funktioner til samarbejde. Det handler ikke bare om direkte interaktion mellem medarbejdere gennem videresendelse af noget, men netop om fælles adgang til e-mail- og rollepostkasser, muligheden for at arbejde med store grupper af deltagere og tilstedeværelsen af forskellige virksomhedsfunktioner.

En typisk virksomhedsfunktion er mekanismen til at tilbagekalde e-mails, som er meget eftertragtet i store virksomheder, men som næsten ikke bruges i B2C-segmentet eller i små virksomheder. Det skyldes, at blandt små grupper af brugere er sandsynligheden for en sådan efterspørgsel ret lille, og prisen for fejlen er meget mindre. Forresten er det stort set umuligt at realisere denne funktion uden for en virksomheds e-mail-system — selv i Googles e-mail findes der ikke en tilbagekaldelse af e-mails i den form, som Exchange-brugere er vant til. Roden til problemet findes i opbygningen af e-mail-protokoller fra 80'erne.

Vi har gennemført adskillige fokusgrupper, interviewet hundredevis af brugere og brugt flere tusinde timer på at identificere typiske scenarier for brugen af e-mail. Dette har gjort os i stand til nøje at undersøge behovene hos vores potentielle brugere og karakteristika ved deres forretningsprocesser. Baseret på de indsamlede data besluttede vi at udvikle en arkitektur, der ville gøre det muligt at skalere op til det nødvendige belastningsniveau efter behov. I vores opfattelse findes der ingen grænser, men i øjeblikket forstår vi, hvordan vi kan sikre drift i virksomheder, hvor flere hundrede tusinde brugere arbejder.

Hvad gemmer sig under motorhjelmen

Første indtryk: hvordan den nye corporate mailsystem Mailion fra МойОфис er opbygget

Vores produkt omfatter en e-mail løsning, et værktøj til kalenderplanlægning, en adressebog samt interaktiv visning af dokumenter baseret på vores egen løsning MøOffice til dokumentarbejde.

Da vi taler om en løsning af virksomhedsstandard, er en fuldgyldig søgemaskine en integreret del af den virksomhedsbaserede e-mail. Vores løsning kan udføre en omfattende morfologisk søgning på tværs af alle komponenter. Desuden er hele mailsystemet baseret på vores eget lagersystem, som også er optimeret til samarbejde.

Hvad adskiller mailsystemerne i MøOffice?

Habra-læseren, der allerede har erfaring med løsningerne i MøOffice, ved, at de kommercielle produkter indeholder "MøOffice Mail". Og spørgsmålet opstår - hvad adskiller det sig fra den virksomhedsmæssige e-mail-løsning Mailion, som mit team har arbejdet på?

Vi i MøOffice har besluttet, at for at imødekomme behovene hos virksomheder af forskellige størrelser, er det nødvendigt at lave to e-mail-systemer af virksomhedsstandard. Produktet "MøOffice Mail" er beregnet til organisationer med tusindvis eller flere titusinde brugere. For større strukturer er det mere hensigtsmæssigt at anvende Mailion - et nyt produkt fra MøOffice, der er bygget på en Cloud Native mikroservicearkitektur, som tilbyder enestående muligheder for skalering og fejltolerance.

Når virksomheder vælger produkter, skal de på forhånd have klart for sig, hvilken strategi de vil følge for deres fremtidige udvikling. Implementeringen af et mailsystem er en kompleks projektsituation for enhver organisation, som ikke tillader en hurtig udskiftning af én løsning med en anden. Derfor er det vigtigt at overveje den maksimale belastning, kriterier for fejltolerance og selvgenopretning samt faktoren for geografisk distribution på forhånd.

De to mailsystemer MойОфис er fundamentalt forskellige. De er bygget med forskellige teknologiske stakke, og værktøjerne til hver af systemerne vælges i overensstemmelse med målene og opgaverne for det segment, hvori mailsystemet skal implementeres. Vi har en fælles vision for produkter, der skal være tilstede i mailsystemerne, samt synkronisering af designmetoderne. Men det er to produkter, der henvender sig til forskellige brugergrupper.

Hvilke udfordringer står udviklerne overfor

I det følgende vil jeg kun tale om det nye firmas mailsystem Mailion.

Vi har gennemført en grundig undersøgelse og analyseret fordele og ulemper ved eksisterende mailsystemer. Den erfaring, vores specialister har opbygget, som tidligere har arbejdet med oprettelse af højtydende systemer, har gjort det muligt hurtigt at identificere den største smertepunktsområde for ethvert kendt produkt — ydelsen ved disk I/O-operationer.

Man kan sige, at opgaven med at accelerere I/O-operationer er blevet den største udfordring, vi står overfor. Det var nødvendigt at fokusere på at løse vores specifikke opgaver, og vi begyndte at udvikle vores eget system til opbevaring af binære data. Denne tilgang har en åbenlys økonomisk fordel — vi skal ikke kun opbevare data, men også udføre en betydelig mængde disk I/O-operationer.

Denne løsning var ikke let at finde. Vi har undersøgt mange enterprise-produkter designet til datalagring, men vi kunne ikke finde noget klar til brug, der opfyldte vores krav. Vi har brug for ikke blot at gemme data, men også at arbejde med dem konstant, og ikke i en monopoltilstand med adgang for én bruger, men for at muliggøre samarbejde mellem flere titusinder af brugere.
Vi har derfor fastslået, at det vigtigste corporate kriterium for os er at arbejde med store datamængder.

Pålidelighed

Det handler ikke kun om lagring, men også om behandling og hurtig adgang til disse oplysninger. Det er nødvendigt at sikre høje pålidelighedsniveauer — oppetid for hele løsningen skal være på 99,9%. Desuden skal mailsystemet være autonomt i at træffe de rigtige beslutninger angående fejlhåndtering. Kun på denne måde kan man undgå nedbrud, der kan lamme forretningsprocesserne i en virksomhed.

Fejltolerance

Vi har udviklet en række foranstaltninger, der anvendes for hver komponent, og valgt tilgange til at sikre fejltolerance. Specifikt anvender det corporate mailsystem quorumarbejde med data, servicebackup og overvågning af fravær af tilstande samt egne mekanismer til routing og støtte af quorum baseret på konsensus.

Et kriterium for høj fejltolerance er, at hver komponent har mekanismer til selvkontrol. Mailion analyserer konstant, om en given funktion udføres korrekt, og om hver blok fungerer som den skal. Dette er et af de midler, der muliggør systemets selvreparation i tilfælde af fejl. Oplysninger må ikke gå tabt; løsningen skal til sidst nå en konsistent tilstand.

Det er vigtigt at forstå, at det ikke er muligt at forudse alle potentielle hændelser i livet — fysikken kan ikke narres. Men vi følger designmetoder, der gør, at vi med en høj grad af sikkerhed kan tale om korrekt håndtering af uheldige mønstre. Vi har også en stor testgruppe, der konstant forsøger at bryde noget i produktet. Og nogle gange lykkes det dem. I sådanne tilfælde oprettes der en hændelse, som vi undersøgelse grundigt og på baggrund af denne udvikler vi en ny mekanisme til at afhjælpe lignende problemer.

Hvordan systemet reagerer på uheld

Markedet stiller ofte spørgsmålet — hvad sker der med systemet, hvis det pludselig mister forbindelsen til en af sine noder? Denne forespørgsel er især relevant, hvis man planlægger at implementere en geografisk distribueret løsning.

Når man designer en sådan installation, skal man tage hensyn til kundens behov og dets sæt af pålidelighedskriterier. Det er en fejl at tro, at tilslutningen til datanettet er den samme overalt. I virksomhedssystemer er det vigtigt at tage fart på signalet over fiberoptik i betragtning.

Hvis kunden stiller høje krav til pålidelighed, vil vi anbefale installation i flere datacentre, der vil være forbundet med dedikerede kommunikationslinjer.
Alligevel kan man ikke udelukke scenariet med et totalt strømafbrydelse i en af noderne i postsystemet. I sådanne tilfælde vil arbejdet med masterdataene i denne sektion blive suspenderet, men de andre dele vil fungere, som om intet var hændt. Systemet vil informere administratorerne om tabet af noden, og medarbejderne skal tage en række passende handlinger.

Desuden kan vores postsystem konfigureres, så der foretages reservekopiering inde i datacentret. Denne tilgang sikrer drift ved tab af flere noder inden for datacentrets, samt at tabet af en af noderne ingen vil lægge mærke til — bortset fra overvågningssystemet, selvfølgelig. Ved sådanne hændelser omfordeles belastningen simpelthen. Derfor er det vigtigt at tage fornødent hensyn til reserverne ved design af postsystemet — hvor mange og hvilke komponenter man kan "tabe" ved en fejl.

Selvstændighed

Der findes ikke fuldstændig pålidelige systemer, og fejl kan på et eller andet tidspunkt opstå. Derfor er det vigtigt at sørge for, at e-mailsystemet er designet med mulighed for hurtig fejllokalisering, som muliggør deres udbedring inden for en bestemt SLA-periode. Desuden skal fejlene rettes automatisk af systemet og minimere behovet for intervention fra systemadministratorer og driftsafdelinger.

Ease of Operation

Selvfølgelig kan store systemer ikke undgå helt at kræve opmærksomhed fra højt kvalificerede medarbejdere. Men en af de aspekter, vi overvejer i designet, er, at systemet skal være let administrerbart og ikke kræve unikke kompetencer.

Økonomisk effektivitet

Uden tvivl kræver arbejdet med sådanne virksomhedssystemer medarbejderuddannelse — for vi taler om virkelig store skalaer. Derfor fokuserede vi ved udviklingen af vores produkt på at reducere den samlede ejeromkostning ved systemet. For enhver virksomhed er det vigtigt at holde øje med udgifternes effektivitet og stræbe efter at undgå uendelig tilførsel af penge til driftsomkostninger.

Decentralisering

For at sikre de principper, jeg tidligere har talt om, er det nødvendigt, at systemet er helt distribueret — en centraliseret tilgang er altid begrænset af betingelserne for hardwareanvendelse.

Selvfølgelig kan man købe en stor server og prøve at installere alle applikationer og tjenester på den. Men jo større systemet er, desto mere kompleks bliver hele konstruktionen, og pålideligheden for et sådant system falder også konstant — for en server betyder også et enkelt fejlsprog. Jo mere vi centraliserer arbejdet, desto mere er vi afhængige af dette centrale punkt.

Systemkrav

Når vi taler om komplekse virksomhedse-mailsystemer, er det vigtigt at forstå, at der ikke findes et koncept som "minimal konfiguration for drift". Alvorligt projektarbejde ligger til grund for enhver stor implementering. Det muliggør en sammenligning mellem de specifikke forretningsbehov og den optimale konfiguration af e-mailsystemet.

Et corporate mailsystem er et fleksibelt værktøj, der kan tilpasses en lang række parametre. Vi udfører belastningstest efter vores egen metode, som gør det muligt at modellere belastningen baseret på analysen af ti grundlæggende og flere hundrede mulige kriterier.

Man kan sige, at når man forbereder implementeringsprojektet, vil beregningerne vise brugerens arbejdsintensitet i de eksisterende forretningsprocesser i organisationen. Her analyseres mange inputparametre, og afhængigt af den mulige belastning tages der beslutning om det nødvendige omfang af computerkraft — fra én computer til hele serverrum.

Derfor er det ikke helt korrekt at tale om nogle minimale konfigurationer. Vi har for eksempel en demoopsætning, der kun kører på én maskine. Men vi forstår, at arbejdet i den corporate sektor kræver installation på titusinder og endda hundreder af virtuelle maskiner.

Teknologisk stack

Når vi skaber produkter, lægger vi stor vægt på den licensielle renhed af koden. I MijOffice er der høje kvalitetsstandarder, der kræver, at vi selv udvikler produkter fuldstændigt, med minimal inddragelse af ekstern kode.

En stor del af Mailion-koden er egen udvikling, kode, hvis rettigheder helt tilhører os, og som vi kan ændre og forbedre efter behov. Størstedelen af koden i vores mailsystem er selvkodet i Go (Golang). Ud over Go bruger vi C++ samt Java Script ES6 til webdelen.

De resterende 5% er såkaldte "tunge komponenter", såsom databaser. Disse inkluderer RethinkDB, ArangoDB og Redis. Af de nøgleteknologier vil jeg også nævne gRPC — et system til fjernprocedureopkald, der bruges som en fælles mekanisme til at interagere via API'et, hvilket er en vigtig del.

Hvad produktet består af

Et corporate mailsystem er ikke en "server i et vakuum". Vores produkt består af cirka 70 komponenter og 45 tjenester, der beskæftiger sig med vedligeholdelsen af mailsystemet. Alle disse elementer er skrevet "fra bunden" og er egen udvikling af MijOffice.

Den mest fremtrædende del af systemet er serverkomplekset, der understøtter driften af lager-, mail-, kalender- og søgesystemer samt webklienten. Vi udvikler også flere brugerapplikationer og planlægger at tilbyde vores brugere nye "tynde klienter" baseret på teknologierne fra vores webklient ved kommerciel lancering.

Kompatibilitet med mailsystemer

Mailion fungerer efter standardprotokoller. For at begynde at bruge vores løsning skal du blot konfigurere klientapplikationerne og derefter arbejde med dem i det velkendte miljø. For eksempel kan man bruge det medfølgende klientprogram "MinOffice Mail".

For at gøre det lettere for vores brugere har vi også skabt en speciel plugin, der sikrer en problemfri overgang fra Exchange. Med den kan brugerne fortsætte med at arbejde med MS Outlook, selv når de skifter mailserver — de vil ikke engang bemærke, at der er sket ændringer i deres velkendte kommunikationsværktøjer. Denne plugin muliggør en glidende overførsel af brugere fra det gamle mailsystem uden at stoppe hele organisationens drift. Dette er især vigtigt, hvis du skal udskifte værktøjer for hundrede tusinde brugere.

Let administrering

En unik egenskab ved vores virksomhedsmailsystem er behovet for ekstremt lidt administratorindblanding. Under designet har vi forsøgt at finde en balance mellem tilpasningsmuligheder og kompleksiteten i administrationen. For at opnå dette har vi været nødt til at gennemføre mange undersøgelser af adfærdsmønstre for administratorer af komplekse virksomhedssystemer.

Som jeg allerede har nævnt, har vi specialister af høj kvalitet i vores team — hver af dem har solid erfaring med administration. Derfor har vi i udviklingen af systemet forsøgt at overføre deres erfaringer til brugernes behov ved administrationen af komplekse produkter. Med andre ord — ved at kende de potentielle problemer, har vi forudset måder at løse dem på allerede i designet af arkitekturen.

For eksempel,

  • Der er sikring af systemkomponenter i containere, inklusiv infrastrukturelle - det hjælper os med at øge sikkerheden, fleksibelt styre adgangen mellem komponenterne og gør det muligt hurtigt at inkludere nye systemer og platforme, der er efterspurgt af virksomhederne.
  • En samlet tilgang til udvikling og implementering samt et ensartet konfigurationsformat for alle komponenter bidrager til en mere forståelig og effektiv drift og reducerer omkostningerne til support.
  • En egen installationsprogram for systemet, baseret på velkendte deploymentsværktøjer, giver mulighed for centralt, fleksibelt og tydeligt at styre installationen.
    Mikrotjenestearkitektur med klart adskilte ansvarsområder for forretningslogik mellem tjenesterne hjælper med at forstå systemets funktionsmåde og giver mulighed for mere effektiv support.
  • Systemets infrastrukturdelen er baseret på velkendte løsninger, med brug af bedste praksis og muliggør integration med eksisterende systemer i virksomheden, hvilket forenkler implementeringen af systemet inden for virksomheden.
  • Der vil være et system baseret på kunstig intelligens i lageret, der selv kan identificere potentielle fejl og styre udstyret.

Moderne design

Udviklingen af produktdesignet tog flere tusinde mandetimer. Før udviklingen blev der stillet opgaven at gøre brugergrænsefladen moderne - let og intuitiv. Det er svært, når man designer et virksomhedssystem, der per definition skal inkludere en række specifikke funktioner.

Første indtryk: hvordan den nye corporate mailsystem Mailion fra МойОфис er opbygget

Selvfølgelig kan design ikke 'mejsles i sten' eller godkendes under underskrift og segl - det er et levende værktøj, der konstant udvikler og forbedrer sig. I løbet af fire år har vi transformeret designet flere gange, men der har ikke været en radikal ændring i ideologien. Nøgleprincippet for opbygningen af hele den virksomhedsmæssige produktlinje er at skabe et universelt designsystem.

Ved design af det virksomhedsmæssige e-mailsystem har vi lagt særlig vægt på arbejdet med tre centrale retninger - tilpasning, systematik og muligheden for at tilpasse sig kundens brand.

Responsivitet

En funktion ved designet af Mailions corporate e-mail system er muligheden for at vise det på enheder med skærme i alle størrelser. Alle visuelle komponenter er omhyggeligt tegnet, de skaleres korrekt, når de bruges på mobile enheder, og de er ideelle til håndtering med fingrene på touch-skærme. Når vinduets størrelse ændres, tilpasser også kolonnedesignet sig — størrelsen på kolonnerne justeres proportionalt, i strengt overensstemmelse med postulaterne i konceptet for rige internetapplikationer.

Systematik

Designet af Mailions corporate e-mail system bygger på en systematisk tilgang. Vi har arbejdet på dette område siden begyndelsen af 2017, da det ikke var så populært at tale om design systemer som nu. Et design system er et sæt regler og værktøjer til visuel og teknisk udførelse, som afspejler produktets filosofi og konstant udvikler sig. Vi implementerede det for at forenkle kommunikationen mellem udvikling og design.

Tilpasning af firmastil

Vores design er en "kameleon", der kan tilpasse sig enhver klients brandstil. Farverne på alle interfacelementerne defineres gennem variabler. Ved at ændre den basale palette af et par farver kan man hurtigt ændre farven på alle applikationer.

Skrifttyper defineres også gennem variabler: interfacet kan bruge kundens brand-skrifttype, hvis det er angivet i kundens brand manual. Forskellige skrifttyper kan have forskellige størrelser, og vi tager højde for dette. For eksempel ser PT Sans i størrelse 16 betydeligt mindre ud end Roboto i samme størrelse på 16. Derfor tilpasser vi størrelsen på tekstbokse i forhold til de specifikke skrifts egenskaber.

Vi vil dedikere separate artikler til at beskrive vores farvebibliotek og de specifikke funktioner ved arbejdet med skrifttyper.

Mobilapplikationer

En uundgåelig del af ethvert moderne e-mail system er mobilapplikationer — brugerne skal have mulighed for at arbejde fra ethvert sted og når som helst.
Vi er nu blot ved at forme konceptet for corporate mobilapplikationer; de skal tage højde for forskellene i funktionaliteten af e-mail systemerne MójOfis og tilbyde forskellige tilgange til brugen af e-mail og kalendersystemer i virksomheder.

Intelligent mediepanel

Vores fokusgrupper har vist, at brugerne finder grænsefladerne i de almindelige e-mailsystemer klodsede. De respondenter, vi har interviewet, har bemærket, at det især er svært at arbejde med begivenheder i kalenderen og med vedhæftninger. Vi har forsøgt at opnå en responsiv grænseflade og forbedret ydeevne — så vores produkt er behageligt at bruge.

Mediapanelet, et nyt værktøj til at accelerere samarbejdet, systematiserer al information om korrespondance og sikrer øjeblikkelig adgang til deltagerlisten, links og versioner af dokumenter, der nogensinde er blevet sendt.

Dette værktøj er nyttigt i situationer, hvor brugerne skal arbejde med omfattende tråde af hundredvis af beskeder. Det er ofte nødvendigt at finde et dokument eller et billede, der kun var i én af dem. Mediapanelet opretter en liste over alle elementerne i mailkæden og viser dem ét sted, hvilket gør det meget lettere at finde det ønskede objekt.

Lokalisering

Behovet for et corporativt e-mailsystem eksisterer ikke kun blandt russiske brugere. MойОфис har en konsekvent politik for at træde ind på udenlandske markeder, så der lægges stor vægt på lokalisering af produkter.

I vores produkt var behovet for lokalisering til udenlandske sprog indbygget fra starten, på niveauet af systemets grundlæggende dele. Selve tilføjelsen af nye sprog er ikke et stort problem for os — det er en forståelig opgave, som vi ved, hvordan vi skal løse.

I øjeblikket er russisk og engelsk tilgængelige for brugerne. I kommende versioner vil vi tilføje understøttelse af de sprog, som МойОфис-produkter arbejder på — fransk, spansk, portugisisk og andre. På en måde har vi det lettere end kolleger fra nabodistrikter, da der for e-mail- og kalendersystemer kun skal tages højde for alfabetet og de specifikke måder at håndtere datoer og tid på — heldigvis er der ingen formler som i regnearksprogrammet.

Ja, vi ansætter!

At the creation of our product, several hundred man-years were invested. And even if I wanted to, I couldn't cover everything in one article. Nevertheless, I hope this publication serves as a starting point for getting acquainted with our product — as I mentioned earlier, I plan to provide more detailed information about the solution itself and its features, as well as our development approaches.

Without the slightest bit of modesty, I will also say that today the number of companies developing similar mail systems worldwide is extremely limited. This is indeed a complex engineering task, requiring both a deep understanding of corporate clients' needs and a thorough analysis of large organizations' business processes, current design and development trends, as well as a significant number of competent specialists. Our mail system evolves every day.

Right now, we have nearly fifty open positions in development. Join us if you want to create a product with us that can change the corporate world's perception of email.

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster