Primeira ollada: como funciona o novo sistema de correo corporativo Mailion de MyOffice

Primeira ollada: como funciona o novo sistema de correo corporativo Mailion de MyOffice

Hai case catro anos, comezamos a deseñar un novo sistema de correo distribuído chamado Mailion, que está deseñado para comunicacións corporativas. A nosa solución está construída sobre a arquitectura de microservizos Cloud Native, capaz de traballar con máis de 1 de usuarios ao mesmo tempo e estará preparada para cubrir o 000% das necesidades das grandes corporacións.

Durante o traballo en Mailion, o equipo creceu varias veces, e agora case 70 desenvolvedores están implicados no produto. Percorremos un longo camiño dende a idea e os primeiros prototipos ata a etapa de pilotaxe da versión comercial. É hora de dicirlle a Habr que tipo de produto estamos a crear, como está organizado e funciona o noso sistema de correo, que pila tecnolóxica usamos e por que a nosa solución é o futuro das comunicacións corporativas. Imos!

Habr, ola! Chámome Anton Gerasimov, son o xefe do departamento de desenvolvemento do centro de desenvolvemento da empresa en Moscova A miña oficina. Hoxe queremos presentar Mailion, un sistema de correo de clase corporativo ruso fundamentalmente novo que se converterá nunha alternativa digna ás solucións estranxeiras populares. Mailion ofrece alta capacidade de carga, escalabilidade e resistencia incomparables e require unha atención mínima dos administradores do sistema.

Agora o noso desenvolvemento está en fase beta, pero moi pronto, segundo o noso plan, a finais de 2020, pasará ao estado de implementación piloto dun produto comercial.

Na súa maior parte, este artigo contén información xeral: é simplemente imposible cubrir un produto de software complexo nunha publicación. Penso facer unha serie de artigos cunha historia sobre tecnoloxías clave. Mentres tanto, para a súa comodidade, ofrézoo o seguinte contido:

Que é un sistema de correo corporativo?

A resposta sinxela e obvia a esta pregunta é a ferramenta de correo electrónico e calendario. Pero o demo, como sabes, está nos detalles.

Así, estamos a crear unha nova xeración de correo con funcións de programación avanzadas, que está enfocada ao segmento corporativo e ás grandes empresas. Pretendemos traballar con grandes estruturas comerciais e gobernamentais, que poden ter de 30 mil a varios centos de miles de postos de traballo.

O noso sistema baséase no principio dunha solución de plataforma. Baseámonos no concepto de Comunicacións unificadas e ofrecemos unha única ferramenta para traballar co correo, o calendario e os documentos nun mesmo sistema, coa posibilidade de aumentar a funcionalidade da solución conectando módulos e compoñentes adicionais. As extensións, por certo, podemos desenvolver non só nós, senón tamén os nosos socios. Tamén se publicará un conxunto de ferramentas SDK bastante amplo para este fin.

Quen necesita outro correo e por que?

As grandes empresas formaron unha tendencia interesante: as empresas están experimentando a necesidade de funcións de colaboración. Non se trata só da interacción directa dos empregados mediante a transferencia de algo, senón de compartir o acceso a caixas de correo e roles, a capacidade de traballar con grandes grupos de participantes e a presenza de varias funcións corporativas.

Unha función corporativa típica é o mecanismo de recuperación de correo electrónico, que é moi demandado nas grandes empresas, pero practicamente non se utiliza nin no segmento B2C nin en pequenas empresas. O caso é que entre pequenos grupos de usuarios, a probabilidade de tal necesidade é bastante pequena e o custo dun erro é moito menor. Ademais, é simplemente imposible implementar esta función fóra do sistema de correo corporativo; mesmo no correo de Google non hai respostas de cartas na forma á que están afeitos os usuarios de Exchange. A raíz do problema está no deseño de protocolos de correo dos anos 80 do século pasado.

Realizamos decenas de grupos de discusión, entrevistamos a centos de usuarios e dedicamos varios miles de horas-hombre a identificar escenarios típicos de uso do correo. Isto permitiunos estudar detidamente as necesidades dos nosos potenciais usuarios e as peculiaridades dos seus procesos de negocio. A partir dos datos recibidos, decidimos desenvolver unha arquitectura que permitise, se fose necesario, escalar ata o volume de carga necesario. Na nosa opinión, non hai límite para nada, pero de momento entendemos como garantir o traballo das empresas que empregan a varios centos de miles de usuarios.

O que se esconde baixo o capó

Primeira ollada: como funciona o novo sistema de correo corporativo Mailion de MyOffice

O noso produto inclúe unha solución de correo electrónico, unha ferramenta de programación, unha axenda de enderezos e visualización interactiva de documentos baseada na nosa propia solución de xestión de documentos MyOffice.

Xa que estamos a falar dunha solución a nivel corporativo, un motor de busca completo tamén é parte integrante do correo corporativo. A nosa solución é capaz de realizar buscas morfolóxicas de extremo a extremo en todos os compoñentes. Ademais, todo o sistema de correo está baseado no seu propio almacenamento, que tamén está optimizado para a colaboración.

Cales son as diferenzas entre os sistemas de correo MyOffice

O lector de Habr, que xa tiña experiencia coas solucións MyOffice, sabe que MyOffice Mail está presente como parte dos produtos comerciais. E xorde a pregunta: cal é a súa diferenza co sistema de correo corporativo Mailion, no que traballou o meu equipo?

En MyOffice decidimos que para satisfacer as necesidades de empresas de varios tamaños, é necesario facer dous sistemas de correo de clase empresarial. O produto MyOffice Mail está pensado para organizacións con miles ou varias decenas de miles de usuarios. Para estruturas máis grandes, é máis conveniente usar Mailion, un novo produto de MyOffice, que se basea na arquitectura de microservizos nativos da nube, ten unha escalabilidade e tolerancia a fallos sen precedentes.

Ao elixir produtos, os clientes deben decidir con antelación a estratexia para o desenvolvemento da súa empresa. Para calquera organización, a implantación dun sistema de correo é un proxecto complexo que non implica substituír rapidamente unha solución por outra. Polo tanto, debe terse en conta previamente a máxima carga posible, os criterios de tolerancia a fallos e de autocuración, así como o factor de distribución xeográfica.

Os dous sistemas de correo MyOffice son fundamentalmente diferentes. Constrúense utilizando diferentes pilas tecnolóxicas, e as ferramentas para cada un dos sistemas son seleccionadas de acordo coas metas e obxectivos do segmento no que se implantará o sistema de correo. Temos unha visión común do produto sobre o que debería estar presente nos sistemas de correo, así como a sincronización nos enfoques de deseño. Pero estes son dous produtos que están deseñados para diferentes públicos de usuarios.

Cales son os retos aos que se enfrontan os desenvolvedores

Máis adiante no texto, só falarei do novo sistema de correo corporativo Mailion.

Realizamos unha investigación exhaustiva e analizamos as vantaxes e os inconvenientes das solucións de correo electrónico existentes. A experiencia acumulada dos nosos especialistas, que no pasado estaban directamente implicados na creación de sistemas de alta carga, permitiunos identificar rapidamente o principal punto de dor de calquera produto coñecido: o rendemento da entrada e saída do disco (IO).

Podemos dicir que a tarefa de acelerar as operacións de E/S converteuse no principal desafío ao que nos enfrontamos. Era necesario centrarnos en resolver as nosas tarefas específicas, e comezamos a crear e desenvolver o noso propio sistema de almacenamento de datos binarios. Este enfoque ten un compoñente económico moi obvio: non só necesitamos almacenar datos, senón tamén realizar moitas operacións de entrada e saída do disco.

Tal decisión non foi doada. Analizamos moitos produtos de clase empresarial que teñen como obxectivo almacenar información e non atopamos nada preparado e axeitado para os nosos requisitos. Despois de todo, necesitamos non só almacenar datos, senón tamén traballar constantemente con eles, e non en modo exclusivo con acceso a un usuario, senón garantir a posibilidade de colaboración de varias decenas de miles de usuarios.
Entón, determinamos que o criterio corporativo máis prioritario para nós é traballar con grandes cantidades de datos.

Confianza

Ademais, non se trata tanto de almacenamento como de tarefa de procesamento e acceso rápido a esta información. É necesario garantir indicadores de alta fiabilidade: o tempo de funcionamento continuo de toda a solución debe estar no nivel do 99,9%. Non obstante, o sistema de correo debe ser autónomo á hora de tomar as decisións correctas sobre o manexo do rebote. Só así é posible conseguir a ausencia de fallos que poidan paralizar os procesos de negocio dunha determinada empresa.

tolerancia a fallos

Elaboramos un conxunto de medidas que se aplican a cada compoñente e seleccionamos enfoques para garantir a tolerancia a fallos. En particular, o sistema de correo corporativo utiliza quórum de datos, reserva de servizos e control de apatridia, así como o seu propio enrutamento e mecanismos de quórum baseados no consenso.

O criterio de alta tolerancia a fallos é a presenza en cada compoñente de mecanismos de autoproba. Mailion analiza constantemente se esta ou aquela función se executa correctamente ou incorrectamente, se este ou aquel bloque funciona correctamente. Este é un dos medios de autocuración do sistema en caso de falla. A información non debe perderse, a solución debería entrar nun estado coherente eventualmente.

Debe entenderse que non é posible prever todos os acontecementos probables da vida en xeral - non se pode enganar á física. Pero adherímonos a tales enfoques de deseño que nos permiten falar cun grao de confianza bastante alto sobre o tratamento correcto de accidentes de certos patróns. Tamén temos un gran equipo de probas que está constantemente tentando romper algo no produto. E ás veces conseguen. En base a este feito, iníciase unha incidencia, que estudamos con detalle e, a partir desta, creamos un novo mecanismo para eliminar este tipo de problemas.

Como reacciona o sistema ante fallos

O mercado adoita facer a pregunta: que pasa co sistema se de súpeto perde a conexión cun dos seus nodos? Tal solicitude é especialmente relevante se planea implementar unha solución distribuída xeograficamente.

Ao deseñar unha instalación deste tipo, é necesario ter en conta as necesidades do cliente e o seu conxunto de criterios de fiabilidade. É un erro asumir que a conexión á rede de datos é a mesma en todas partes. Nos sistemas corporativos, incluso a velocidade do sinal a través da fibra é importante ter en conta.

Se o cliente fai altas demandas de fiabilidade, recomendamos a instalación en varios centros de datos, que estarán conectados por liñas de comunicación dedicadas.
Non obstante, non se pode descartar o escenario dun corte completo de enerxía nun dos nodos do sistema de correo. Neste caso, suspenderase o traballo cos datos mestres deste segmento, pero o resto das pezas funcionarán coma se nada pasase. O sistema notificará aos administradores a perda dun nodo e os empregados terán que tomar unha serie de accións adecuadas.

Ademais, o noso sistema de correo pódese configurar de forma que as reservas se realicen dentro do centro de datos. Este enfoque garantirá a operatividade en caso de perda de varios nodos dentro do centro de datos e ninguén notará a perda dun dos nodos, excepto, por suposto, o sistema de vixilancia. Cando se produce tal evento, a carga simplemente redistribuíuse. Polo tanto, ao deseñar un sistema de correo, é importante ter en conta a marxe: cantos e que compoñentes se poden "perder" nun accidente.

Independencia

Os sistemas absolutamente fiables non existen, e fallas dun xeito ou doutro, pero poden ocorrer. Polo tanto, ao deseñar un sistema de correo, é importante proporcionar a capacidade de localizar rapidamente os fallos, o que permitirá que se eliminen nun período de SLA determinado. Ademais, os fallos deben ser eliminados polo sistema por si só, minimizando a intervención dos administradores do sistema e dos servizos de mantemento.

Facilidade de funcionamento

Por suposto, os grandes sistemas non poden senón requirir a atención de empregados altamente cualificados. Pero un dos aspectos que temos en conta á hora de deseñar é que o sistema debe ser fácil de administrar e non esixir competencias únicas.

Eficiencia económica

Por suposto, para traballar con tales sistemas empresariais, é necesaria a formación dos empregados; despois de todo, estamos a falar de escalas realmente enormes. Polo tanto, ao crear o noso produto, centrámonos en reducir o custo total de propiedade do sistema. Para calquera empresa, é importante controlar a eficiencia do gasto e esforzarse por evitar a inxección interminable de diñeiro nos gastos operativos.

Descentralización

Para acadar os principios dos que falei anteriormente, é necesario que o sistema estea completamente distribuído; un enfoque centralizado sempre está limitado polas condicións de uso do hardware.

Por suposto, podes mercar un servidor grande e tentar poñer nel todas as aplicacións e servizos. Pero canto maior sexa o sistema, máis complexo é o deseño e a fiabilidade deste sistema está a diminuír constantemente; despois de todo, un servidor significa un único punto de falla. E canto máis centralizamos o traballo, máis dependemos dese punto central.

Requisitos do sistema

Cando falamos de sistemas de correo corporativo complexos, debemos entender que non existe unha "configuración mínima para o traballo". No corazón de calquera implementación grande sempre hai un traballo serio de deseño. Permite correlacionar as necesidades dunha empresa en particular e a configuración óptima do sistema de correo.

O sistema de correo corporativo é unha ferramenta flexible que se pode personalizar segundo un gran número de parámetros. Realizamos probas de carga segundo a nosa propia metodoloxía, que nos permite simular a carga en base á análise dunha ducia de criterios básicos e de varios centos de posibles.

Podemos dicir que á hora de preparar un proxecto de implantación, son os cálculos os que mostrarán a intensidade do traballo dos usuarios nos procesos de negocio existentes da organización. Ao mesmo tempo, analízanse moitos parámetros de entrada e, dependendo da carga posible, tómase unha decisión sobre a cantidade necesaria de potencia informática: desde un ordenador ata toda unha sala de ordenadores.

Polo tanto, falar sobre algunhas configuracións mínimas non é do todo correcto. En particular, tamén temos un soporte de demostración que funciona só nunha máquina. Pero entendemos que o traballo no segmento corporativo require a instalación en decenas e mesmo centos de máquinas virtuais.

Pila de tecnoloxía

Ao crear produtos, prestamos especial atención á pureza da licenza do código. En MyOffice establécense e aplícanse altos estándares de calidade, que esixen que desenvolvamos produtos por nós mesmos, cunha mínima implicación de código externo.

Gran parte do código de Mailion é desenvolvemento interno, código que posúe totalmente nós e que podemos cambiar e modificar segundo sexa necesario. A maior parte do código para o noso sistema de correo está escrito en Go (Golang). Ademais de Go, usamos C++ e Java Script ES6 para a parte web.

O 5% restante son os denominados "compoñentes pesados" como as bases de datos. Estes inclúen RethinkDB, ArangoDB e Redis. Das tecnoloxías clave, tamén observo gRPC, un sistema de chamadas de procedementos remotos que se usa como un único mecanismo para interactuar a través da API, esta é unha parte importante.

De que está feito o produto

Un sistema de correo corporativo non é un "servidor no baleiro". O noso produto inclúe uns 70 compoñentes e 45 servizos que admiten o sistema de correo. Todos estes elementos están escritos desde cero e son desenvolvemento propio de MyOffice.

A parte máis visible do sistema é o complexo de servidores, que proporciona almacenamento, correo electrónico, calendario e sistemas de busca e un cliente web. Tamén estamos a desenvolver varias aplicacións de usuario e pensamos ofrecer aos nosos usuarios novos "clientes lixeiros" baseados nas tecnoloxías dos nosos clientes web no momento do lanzamento comercial.

Compatibilidade do sistema de correo

Mailion funciona segundo os protocolos estándar. Para comezar a usar a nosa solución, só precisa configurar aplicacións cliente e seguir traballando con elas nun ambiente familiar. Por exemplo, pode usar a aplicación cliente incluída con MyOffice Mail.

Ademais, para a comodidade dos nosos usuarios, creamos un complemento especial que proporciona unha transición sen problemas desde Exchange. Coa súa axuda, os usuarios poderán seguir traballando con MS Outlook cando substitúan o servidor de correo; nin sequera notarán que algo cambiou na súa interacción habitual coas ferramentas de comunicación. Este complemento permítelle transferir sen problemas usuarios do sistema de correo antigo, sen deter o traballo de toda a organización. Isto é especialmente importante se necesitas substituír ferramentas para centos de miles de usuarios.

Facilidade de administración

Unha característica do noso sistema de correo corporativo é a necesidade dunha participación moi escasa dos administradores. Á hora de deseñar, intentamos buscar un equilibrio entre a posibilidade de personalización e a complexidade da xestión. Para conseguilo, necesitabamos realizar moitas investigacións sobre os patróns de comportamento dos administradores de sistemas corporativos complexos.

Como dixen anteriormente, o noso equipo está formado por especialistas altamente cualificados; cada un deles ten unha sólida experiencia administrativa. Por iso, ao desenvolver o sistema, intentamos trasladar a súa experiencia ás necesidades dos usuarios á hora de xestionar un produto complexo. Noutras palabras, coñecendo os posibles problemas, previmos con antelación formas de resolvelos a nivel de deseño arquitectónico.

Por exemplo, a

  • ofrécese o illamento dos compoñentes do sistema en contedores, incluídos os contedores de infraestrutura; isto axúdanos a aumentar o nivel de seguridade, a configurar o acceso entre compoñentes de forma flexible e tamén permítenos incluír novos elementos na lista de sistemas e plataformas compatibles que se demandan. por negocios;
  • un enfoque único para o desenvolvemento e despregamento, un único formato de configuración para todos os compoñentes contribúen a un traballo máis comprensible e eficiente e reducen os custos de soporte;
  • o propio instalador do sistema, baseado nas ferramentas habituais de implantación, permite xestionar a instalación de forma centralizada, flexible e comprensible;
    A arquitectura de microservizos cunha clara división da responsabilidade da lóxica empresarial entre servizos axuda a comprender o esquema do sistema e apoiar de forma máis eficiente;
  • a parte de infraestrutura do sistema baséase en solucións coñecidas, utilizando as mellores prácticas, e tamén permite a integración cos sistemas existentes na empresa, o que simplifica a posta en servizo do sistema dentro da empresa;
  • para tal fin, dotarase na instalación de almacenamento dun sistema baseado en intelixencia artificial, que poderá identificar de forma independente posibles fallos e xestionar os equipos.

Deseño moderno

Levou varios miles de horas-hombre para crear o deseño do produto. Antes do desenvolvemento, a tarefa consistía en facer a interface moderna, sinxela e intuitiva. É complicado cando estás deseñando un sistema empresarial que debe incluír unha serie de funcións específicas por defecto.

Primeira ollada: como funciona o novo sistema de correo corporativo Mailion de MyOffice

Por suposto, o deseño non pode ser "tallado na pedra" nin aprobado para a sinatura e o selo: é unha ferramenta viva, está en constante evolución e mellora. Ao longo de catro anos, transformamos o deseño varias veces, pero non houbo un cambio radical de ideoloxía. O principio clave para construír toda a liña de produtos corporativos é crear un sistema de deseño universal.

Ao deseñar o deseño dun sistema de correo corporativo, prestamos especial atención ao desenvolvemento de tres áreas clave: adaptabilidade, coherencia e capacidade de adaptación á identidade corporativa do cliente.

Adaptabilidade

Unha característica de deseño das interfaces do sistema de correo corporativo de Mailion é a posibilidade de mostrarse en dispositivos con pantallas de calquera tamaño. Todos os compoñentes visuais están coidadosamente debuxados, escalan correctamente cando se traballa en dispositivos móbiles e son perfectamente axeitados incluso para o control dos dedos nas pantallas táctiles. Ademais, cando se cambia o tamaño da xanela da aplicación, o deseño das columnas tamén se transforma: o tamaño das columnas desprázase proporcionalmente, en estrita conformidade cos postulados do concepto de aplicacións de Internet ricas.

Coherencia

O deseño do sistema de correo corporativo Mailion baséase nun enfoque sistemático. Levamos desenvolvendo esta dirección desde principios de 2017, cando non estaba tan de moda falar de sistemas de deseño como agora. Un sistema de deseño é un conxunto de regras e ferramentas de execución visual e técnica que reflicte a filosofía dun produto e está en constante evolución. Presentámolo para simplificar a comunicación entre o desenvolvemento e o deseño.

Personalización da identidade corporativa

O noso deseño é un "camaleón" que pode adaptarse á identidade corporativa de calquera cliente. As cores de todos os elementos da interface defínense mediante variables. Así, cambiando o conxunto básico de varias cores, podes volver colorear todas as aplicacións á vez.

As fontes tamén se definen mediante variables: a interface pode utilizar o tipo de letra corporativo da empresa cliente, se así o prevé o libro de marcas do cliente. Ao mesmo tempo, diferentes tipos de letra poden ter diferentes tamaños de letras, e témolo en conta. Por exemplo, PT Sans no tamaño 16 parece notablemente máis pequeno que Roboto no mesmo tamaño 16. Polo tanto, axustamos o tamaño dos bloques de texto ás características dunha fonte determinada.

Dedicaremos artigos separados á estrutura da nosa biblioteca de cores e ás peculiaridades de traballar con fontes.

Aplicacións para móbil

As aplicacións móbiles son parte integrante de calquera sistema de correo moderno: os usuarios deberían poder traballar desde calquera lugar e en calquera momento.
Agora só estamos formando o concepto de aplicacións móbiles corporativas, deberían ter en conta as diferenzas na funcionalidade dos sistemas de correo MyOffice e ofrecer diferentes enfoques para o uso dos sistemas de correo electrónico e calendario nas corporacións.

Panel multimedia intelixente

Os nosos grupos de discusión demostraron que os usuarios consideran complicadas as interfaces dos sistemas de correo electrónico coñecidos. Os entrevistados que entrevistamos sinalaron que traballar con eventos do calendario e anexos era particularmente difícil. Tentamos conseguir unha interface sensible e aumentar a produtividade, para que o noso produto sexa agradable de usar.

O panel multimedia, unha nova ferramenta de colaboración, organiza toda a información sobre unha conversa e ofrece acceso instantáneo á lista de participantes na conversa, ligazóns e versións dos documentos que se enviaron algunha vez.

Esta ferramenta axuda en situacións nas que os usuarios teñen que traballar con grandes pistas de centos de publicacións. Moitas veces ocorre que necesitas atopar un documento ou imaxe que só estaba nun deles. O panel multimedia crea unha lista de todos os elementos do fío de correo electrónico e móstraos nun só lugar. Como resultado, atopar o obxecto desexado faise moito máis fácil.

Localización

A necesidade dun sistema de correo corporativo non é só entre os usuarios rusos. MyOffice segue unha política consistente de entrar nos mercados estranxeiros, polo que se presta moita atención ás cuestións da localización do produto.

No noso produto, a necesidade de localización en linguas estranxeiras estableceuse desde o principio, a nivel da parte básica do sistema. En si mesmo, engadir novos idiomas non é un gran problema para nós; esta é unha tarefa completamente comprensible que sabemos resolver.

Agora os idiomas ruso e inglés están dispoñibles para os usuarios. Nas próximas versións, engadiremos soporte para os idiomas nos que funcionan os produtos MyOffice (francés, español, portugués e outros) ao sistema de correo corporativo. Nalgúns aspectos, é máis doado para nós que para os compañeiros dos departamentos veciños, xa que para os sistemas de correo e calendario só é necesario ter en conta o alfabeto e as peculiaridades de traballar con datas e horas; afortunadamente, non temos fórmulas, como nun editor de follas de cálculo.

Si, estamos contratando!

Levou varios centos de anos-homes para crear o noso produto. E con todas as miñas ganas, non sería capaz de contar todo á vez no marco dun artigo. Non obstante, espero que esta publicación sirva como punto de partida para coñecer o noso produto; como dixen anteriormente, penso seguir falando con máis detalle tanto da propia solución como das súas características, así como dos nosos enfoques para o desenvolvemento. .

Sen sombra de pudor, tamén direi que hoxe o número de empresas que desenvolven este tipo de sistemas de correo en todo o mundo é poucas. Esta é unha tarefa de enxeñería realmente complexa, que require unha profunda comprensión das necesidades dos clientes corporativos e unha análise exhaustiva dos procesos de negocio das grandes organizacións, as tendencias modernas en deseño e desenvolvemento, así como unha boa cantidade de especialistas competentes. O noso sistema de correo evoluciona cada día.

Agora mesmo estamos case abertos cincuenta prazas en desenvolvemento. Ven a traballar connosco se queres traballar connosco para crear un produto que poida cambiar a forma en que o mundo corporativo pensa sobre o correo electrónico.

Fonte: www.habr.com

Compre hospedaxe fiable para sitios con protección DDoS, servidores VPS VDS 🔥 Compra aloxamento web fiable con protección DDoS, servidores VPS VDS | ProHoster