Nous avons proposé une solution utilisant la suite collaborative source Zimbra pour s’occuper de la partie Système de Courriels et le logicielopen-source OpenStack pour la partie virtual
Trang 1UNIVERSITE NATIONALE DU VIETNAM, HANOI
INSTITUT FRANCOPHONE INTERNATIONAL
SENTHAVONG CHANTHALA
SYSTÈMES DE COURRIERS ÉLECTRONIQUES À
GRANDE ÉCHELLE SUR LE CLOUD
H TH NG TH TÍN ĐI N T KÍCH TH Ệ Ố Ư Ệ Ử ƯỚ C L N Ớ
TRÊN ĐÁM MÂY ĐI N TOÁN Ệ
MEMOIRE DE FIN D’ETUDES DU MASTER INFORMATIQUE
Trang 3ATTESTATION SUR L’HONNEUR
J’atteste sur l’honneur que ce mémoire a été réalisé par moi-même et que lesdonnées et les résultats qui y sont présentés sont exacts et n’ont jamais été publiésailleurs La source des informations citées dans ce mémoire a été bien précisée
L I CAM ĐOAN Ờ
Tôi cam đoan đây là công trình nghiên c u c a riêng tôi.ứ ủ
Các s li u, k t qu nêu trong Lu n văn là trung th c và ch a t ng đố ệ ế ả ậ ự ư ừ ược
ai công b trong b t kỳ công trình nào khác Các thông tin trích d n trong Lu nố ấ ẫ ậvăn đã được ch rõ ngu n g c.ỉ ồ ố
Signature de l’étudiant
SENTHAVONG Chanthala
Trang 41.1 Introduction 3
1.2 Système courriels 3
1.2.1 Architecture générale d’un Système de Courriers élec-troniques 3
1.2.2 Protocoles et Fonctionnement des Systèmes Emails 4
1.2.3 Structure d’un courriel 5
1.3 Zimbra 6
1.3.1 Architectures de Zimbra 7
1.3.2 Composants de la suite collaborative Zimbra 10
1.3.3 Comparatif Zimbra et autres solutions 13
1.3.4 Déploiement du système à grande échelle 16
1.4 Cloud Infrastructure 17
1.4.1 Virtualisation 17
1.4.2 Le Cloud Computing 19
1.4.3 Solutions Existantes du Cloud 21
1.4.4 Openstack 24
Trang 51.5 Conclusion 29
2 Solution Implémentée 30 2.1 Concept 30
2.1.1 Concept pour Openstack 33
2.1.2 Concept pour Zimbra 34
2.2 Implémentation 36
2.2.1 Installation d’OpenStack 37
2.2.2 Création des machines virtuelles 43
2.2.3 Installation de Zimbra 45
3 Expérimentations sur le Système 49 3.1 Administration d’OpenStack 49
3.2 Administration de Zimbra 51
3.3 Test d’envoi de Mail 53
4 Conclusion 55 Bibliographie 56 Annexes 60 4.1 Annexe A - Première connexion à une instance OpenStack après son démarrage 60
4.2 Annexe B - Création d’une Instance de Machine virtuelle 62
Trang 6Je tiens à remercier tout d’abord les professeurs de l’Institut FrancophoneInternational (IFI) et précisément Monsieur Nguyen Hong Quang, Professeurd’informatique, qui m’a conseillé ce stage et m’a assisté lors des difficultésque j’ai rencontrées
Je tiens également à remercier l’entreprise Netnam, là ó je suis restéeprès de 6 mois pour réaliser ce stage, et plus précisément mon responsable àNetnam Mr Le Anh Tuan monsieur le directeur, Nguyen Thanh Thai, TânNguyen Van, Hieu Vo Trung tous les membres de l’équipe Network
Finalement, merci à tous mes amis étudiants de l’IFI avec qui j’ai passédes bons moments et des moments difficiles, et aussi ma famille qui m’atoujours apporté leur soutien
Trang 7Parmi les nombreux moyens de communications apparus avec Internet,figure le courrier électronique ou e-mail Il s’agit d’un moyen de communica-tion fonctionnant de façon similaire aux traditionnelles lettres en papier : unepersonne possède une adresse, et peut envoyer un texte virtuel par Internet
ou un réseau à une autre personne via son adresse Cependant, le fait que
de plus en plus de personnes utilisent Internet et les ordinateurs a amené lesfournisseurs de ce moyen de communication à se poser des questions sur lesressources que cela pourrait nécessiter
La virtualisation a amené une autre dimension intéressante sur ces tèmes, tout en utilisant les possibilités d’Internet grâce au Cloud, en permet-tant aux administrateurs de pouvoir gérer à distance, leurs serveurs Dans lecadre de notre stage, nous nous sommes intéressés à la mise en place d’unsystème de courriers électroniques sur le Cloud possédant une grande échelle
sys-en terme du nombre d’utilisateurs
Nous avons proposé une solution utilisant la suite collaborative source Zimbra pour s’occuper de la partie Système de Courriels et le logicielopen-source OpenStack pour la partie virtualisation et Cloud computing.Après avoir mis en place les différents serveurs, et installer notre système,nous avons effectués une expérimentation d’envois et de réceptions de mailsafin de voir le bon fonctionnement de notre système prototype
open-Mots-clés : Système grande échelle pour courrier électronique, Cloud puting, zimbra
Trang 8Among the communication technologies appeared with Internet, figurethe e-mail It is a communication technology working like the old letter inpaper : someone has an address, and can send a virtual text thanks to Inter-net or an other network to someone else by its address However, the fact ofhaving more and more Internet users and computers users asks to the provi-ders of these communication technologies questions about the resources that
We proposed a solution using the open-source groupware Zimbra to nage the mailing system part, and the open-source software OpenStack forthe virtualization and Cloud computing part After setting the different ser-vers, and install our system, we made experiments of sending and receivingmails to see the good execution of our prototype
ma-Keywords : System large-scale for electronic mail, Cloud computing, bra
Trang 9Zim-Table des figures
1.1 Montre l’architecture ordinaire d’un système de courriers
élec-troniques (abréviation courriels)[3] 4
1.2 Protocoles principaux utilisés par les systèmes de courriels modernes[3] 5
1.3 Structure d’un Email[3] 6
1.4 Architecture Serveur[7] 8
1.5 Architecture Cliente[7] 9
1.6 Composants possibles dans Zimbra[7] 11
1.7 Schéma d’un Hyperviseur[11] 18
1.8 Fonctionnement des deux types d’Hyperviseur[10] 18
1.9 Contenu du Cloud[12] 19
1.10 Architecture Générale d’OpenStack[23] 25
1.11 Architecture Détaillée d’OpenStack[24] 26
1.12 Minimal Architecture Example- Network Layout OpenStack Networking(Neutron)[24] 27
1.13 Minimal Architecture Example - Service Layout OpenStace Networking(Neutron)[24] 28
2.1 Architecture Globale du Système choisi 32
2.2 Architecture du système Zimbra implémenté 34
2.3 Diagramme de cas d’utilisation 37
2.4 Résultat d’installation 42
2.5 Architecture des Machines Virtuelles 44
3.1 Interface d’Authentification sous OpenStack 49
3.2 Vue Générale d’OpenStack 50
3.3 Vue de la Topologie d’Openstack 51
3.4 Interface d’authentification sous Zimbra 52
Trang 103.6 Interface en Utilisateur sous Zimbra 534.1 Annexes- Configuration de notre Interface 604.2 Annexes- Génération d’une paire de clé administrateur côté
admin 614.3 Annexes- Génération d’une paire de clé administrateur côté
OpenStack 614.4 Annexes- Création d’une image de Système d’Exploitation 624.5 Annexes- Création d’une instance de machine virtuelle 634.6 Annexes- Protocoles Extérieurs 634.7 Annexes- Création d’une IP publique 64
Trang 11Liste des tableaux
1.1 Tableau Comparatif des Suites Collaboratives 15
1.2 Tableau des serveurs requis pour Zimbra 16
1.3 Tableau des Capacités par Service de Zimbra 17
1.4 Comparaison entre les logiciels du Cloud Computing 23
2.1 Ressources Nécessaires pour Zimbra avec 1.000.000 d’utilisateurs 30 2.2 Serveurs Nécessaires pour Zimbra avec 1.000.000 d’utilisateurs 31 2.3 Ressources Nécessaires pour Zimbra avec 10.000 d’utilisateurs 31 2.4 Ressources Nécessaires pour ce système 32
2.5 Logiciels Nécessaires dans chaque Noeud 34
2.6 Modules Zimbra présents dans chaque Serveur 35
3.1 Tableau Comparatif deux différents systèmes 54
Trang 12Introduction Générale
Contexte et Cadre d’étude
Ce rapport a été réalisé durant les travaux de notre stage de fin de mation de Master Réseaux et Systèmes Communicants de l’Institut Franco-phone International, en double diplơmation avec l’Université Claude Bernard
for-de Lyon Le stage a été effectué au sein du service " Réseaux Recherche etDéveloppement " de l’entreprise Netnam1 Netnam est un fournisseur d’ac-cès à Internet mais aussi à des services en ligne et des services déjà géré parl’entreprise Elle fut la première entreprise à introduire le service de courriel
au Vietnam en 1994, et est composée de 170 employés répartis entre Hanoi
et Ho Chi Minh Ville
Le sujet que nous étudierons au sein de ce rapport concerne les systèmes
de courriers électroniques et la virtualisation En effet, Internet étant deplus en plus utilisés, les services qu’ils proposent ont étés multipliés, et nousavons vus différents types de systèmes de courriels apparaỵtre Très souvent,les utilisateurs privilégient les systèmes déjà gérés par une entreprise commeGmail pour Google, Yahoo, ou bien des solutions logicielles comme Outlook
de Microsoft
Cependant, certains utilisateurs comme les gouvernements, l’armée oucertaines grandes entreprises ont une préférence pour un système qu’ils ad-ministrent eux mêmes, et ceux pour des raisons comme la liberté, la confi-dentialité ou encore la sécurité Mais ces systèmes sont très complexes etcỏteux autant en terme de mise en place, que de maintenance, surtout àgrande échelle
1 Netnam company : http ://www.netnam.vn/
Trang 13L’apport de la virtualisation dans ce domaine permet une souplesse enterme d’échelle utilisateur et de simplicité du système, si bien que plusieurssystèmes de courriels sont déjà présents dans le Cloud[1], cependant, leursperformances et leur mise en place sont toujours à étudier Les probléma-tiques qui ont été soulevées concernent la disponibilité des services, leursperformances mais aussi l’optimisation du stockage des données de ces sys-tèmes à grande échelle
Objectifs du stage
Les objectifs de notre stage sont diverses, mais nous pouvons les regrouper
en deux grandes parties Dans un premier temps, nous effectuerons une partieorientée recherche conséquente sur les différents technologies Open-sourceexistantes afin d’essayer de devenir expert dans le domaine des systèmescourriels, de la virtualisation, de stockage et des logiciels existants dans lebut de dresser un comparatif Puis nous commencerons la deuxième partie de
ce stage, qui consiste en l’implémentation du système, plus précisément dansson installation, sa configuration qui sont des étapes cruciales, mais aussi lesdifférents tests effectués pour vérifier le bon fonctionnement de notre système
à grande échelle, soit plus d’un million d’utilisateurs
Organisation du mémoire
Ce rapport sera divisé en deux parties : une première qui introduira lesujet et dressera un état de l’art en terme de conception de systèmes decourriels, avec une présentation de leur architecture, suivie par une sous partieportée sur le logiciel Zimbra et terminée par un descriptif du Cloud, plusprécisément de OpenStack, logiciel qui nous aura permis la virtualisation.Nous continuerons avec une deuxième partie plus centrée sur le système quenous aurons réalisé, avec les différents concepts qui ont été retenus et nousnous concentrons sur l’implémentation de ce système, autant au niveau dusystème de courriels que la partie virtualisation, enfin, nous terminerons cettedeuxième partie par l’énonciation des différents résultats obtenus
Trang 141 État de l’Art
1.1 Introduction
Au sein de cette partie, nous étudierons ensemble les différents logiciels
et systèmes de courriers électroniques utilisés durant nos travaux Nous senterons dans un premier temps le fonctionnement des systèmes d’envois
pré-de courriers électroniques pré-de façon détaillée Nous continuerons ensuite enfaisant un descriptif de l’architecture du système utilisé durant nos travaux,Zimbra, tout en dressant un comparatif entre celui-ci et les différents sys-tèmes d’envois de courriers électroniques Puis, nous aborderons plus faci-lement le domaine de la virtualisation, en nous intéressant de plus près auCloud Computing Cela nous amènera à réaliser de nouveau un comparatifentre le logiciel choisi, c’est à dire OpenStack, et les différents autres logicielsexistants, non sans avoir présenter OpenStack au préalable
Trang 15Figure 1.1 – Montre l’architecture ordinaire d’un système de courriersélectroniques (abréviation courriels)[3]
MUA (Mail User Agent ou Agent Utilisateur d’E-mail) : qui permet àl’utilisateur de recevoir et envoyer des courriels
MTA (Mail Transfer Agent ou Agent de Transfert d’E-mail) : qui permet
la communication entre le client et le serveur, deux MTA sont nécessaires(coté client et coté serveur)
MAA (Mail Access Agent ou Agent d’Accès aux E-mail) : qui gère thentification et l’accès aux courriels des utilisateurs
l’au-SMTP (Simple Mail Transfer Protocol ou Protocole Simple de Transfertd’E-mail) qui assure la communication entre deux MTA
1.2.2 Protocoles et Fonctionnement des Systèmes Emails
Le fonctionnement du courrier électronique est basé sur l’utilisation d’uneboîte à lettres électronique.(Voir dans la figure 1.2 )
Trang 16Figure 1.2 – Protocoles principaux utilisés par les systèmes de courrielsmodernes[3]
Dans la figure 1.2, nous avons constaté lorsque nous réalisons l’envoi d’unemail, le message est acheminé de serveur en serveur, jusqu’au serveur demessagerie du destinataire Plus exactement, le message est envoyé au serveur
de courrier électronique chargé du transport (nommé MTA), jusqu’au MTA
du destinataire Le protocol SMTP, Simple Mail Transfer Protocol, est unprotocole de communication utilisé pour transférer le courrier électroniquevers les serveurs de messagerie, grâce à ce protocole sur internet, les MTAcommuniquent entre-eux et sont logiquement appelés serveurs SMTP (parfoisserveur de courrier sortant) Le serveur MTA du destinataire délivre alors lecourrier au serveur de courrier électronique entrant (nommé Mail DeliveryAgent ou MDA), qui conserve alors le courrier en attendant que l’utilisateurvienne le récupérer
Il existe deux principaux protocoles permettant de récupérer du courriersur un MDA : le protocole POP3, Post Office Protocol, le plus ancien, per-mettant de relever son courrier et éventuellement d’en laisser une copie sur leserveur, et le protocole IMAP4, Internet Message Access Protocol, qui per-met une synchronisation de l’état des courriers (lu, supprimé, déplacé) entreplusieurs clients de messagerie, et réalisant une copie de tous les messagesqui est conservée sur le serveur afin de pouvoir assurer la synchronisation
1.2.3 Structure d’un courriel
Les courriers électroniques sont divisés en deux sous parties : l’en-tête(Header)
et le corps (Body).(Voir dans la figure1.3)
Trang 17Figure 1.3 – Structure d’un Email[3]
Les deux parties principales [5] sont l’en-tête(header) et le corps(body)
de l’E-mail, quand le MUA veut envoyer des emails, la partie l’en-tête, elle
va générer automatiquement, conserver les informations sur la date, le tinataire, l’expéditeur et enfin le sujet du mail Le corps du courriel contient
des-le contenu du message L’en-tête et ce corps sont séparés par une ligne vide,alors que les paramètres du header sont séparés par des retours à la ligne.Chaque ligne aura une longueur maximum de 1,000 bytes, et la taille d’uncourriel ne doit pas dépasser 64 Kilobyte[6]
Le courriel passera au moins deux fois le MTA, la première lors de l’envoi
du mail au serveur, et la deuxième, après avoir trouvé le destinataire, lors del’envoi du serveur vers la boîte électronique du destinataire Nous venons devoir le fonctionnement d’un système de courriers électroniques, nous allonsdésormais nous intéresser au logiciel qui a été utilisé lors de ce stage : la suitecollaborative Zimbra
1.3 Zimbra
Nous allons présenter dans cette sous-partie la suite collaborative Zimbra[7].Mais avant d’entrer dans les détails de son architecture, nous allons effectuerune courte présentation de cette suite, non sans préciser ce qu’est une suite
Trang 18collaborative Une suite collaborative est un logiciel d’applications destiné àaider les utilisateurs participant à une même tâche de travail à atteindre leursobjectifs en leur fournissant des produits comme les courriers électroniques,les calendriers, les agendas, les chats et tout ce qui pourrait être utilisé par
un groupe de travail
Quant à Zimbra, il s’agit d’une suite collaborative comprenant un serveur
de messagerie mais aussi un client web Cette suite possède deux versions :
la première est gratuite, et a des composants Open-Source uniquement, ladeuxième, appelée " Network Edition " est payante, qui intègre des com-posants propriétaires (Closed-Source) pour les services d’échanges web parexemple Il est possible de faire son propre package en prenant des compo-sants Open-Source principalement, et ne payer que pour certains composantsClosed-Source
La suite prend en charge les courriers électroniques, les contacts, les lendriers de groupe et de tâches ainsi que le partage de document Nousvenons de faire un bref descriptif de Zimbra, nous allons maintenant voir en-semble son architecture, en commençant par l’architecture coté serveur puisl’architecture coté client
Le transfert avec la boîte de courriers électroniques est assuré grâce auxprotocoles SMTP et LMTP (Local Mail Transfer Protocol ou Protocol Local
de Transfert d’E-mail) SMTP est utilisé pour les courriers électroniques venant du serveur et allant vers le Cloud, alors que LMTP est utilisé pour lescourriers allant du Cloud vers le Serveur Cela permet de libérer la queue desmessages entrants si jamais un message ne peut être immédiatement distribué
pro-à son destinataire (LMTP)
Trang 19Figure 1.4 – Architecture Serveur[7]
Ensuite, il y a le serveur MailBoxD, qui est un serveur web applicatifqui est basé sur la Servlet Jetty, le conteneur de logiciel Zimbra Ce serveurcontrôle tout, de la partie Interface Web Cliente des utilisateurs, pour qu’ilspuissent voir leur boîte de réception, aux réponses à envoyer aux autres clientsmails qui effectuent des requêtes POP et IMAP, ainsi qu’à leur livraison
Le serveur conserve aussi les messages et fournit des index pour ces sages grâce au système de gestion de base de données MariaDB (développépar ceux qui ont fait MySQL suite au rachat de MySQL par Oracle) C’estpareil ailleurs MariaDB qui gère les agendas, les tâches et les contacts desutilisateurs Dans l’image, nous pouvons voir la présence de deux MailBoxD :une pour gérer le contenu dynamique avec des données enregistrées au niveau
mes-de l’Interface Utilisateur, et une autre pour gérer le contenu statique
Nous allons désormais nous intéresser au principal composant de tecture Zimbra, que tout implémentation Zimbra doit avoir : Zimbra OpenLDAP Il s’agit d’un service qui s’occupe des informations nécessaires enterme de configuration à l’éxécution de l’environnement Zimbra En plus decela, les informations sur les utilisateurs sont stockées dans ce composant,
Trang 20l’archi-comme les mots de passe, les identifiants, leurs préférences, ou encore le veur sur lequel se situe leurs boîtes de réception LDAP s’occupe aussi de
ser-la gestion en terme d’informations de domaines Pour chaque domaine, uneinformation sur la configuration est incluse, sur la façon dont les utilisateurss’identifient par exemple
Puis nous avons le proxy, qui sépare ce qui est exposé à Internet de cequi est protégé par un pare-feu Le serveur Proxy et le serveur MTA sontnormalement placés dans la DMZ (Zone démilitarisée) Le serveur proxyattend des requêtes des clients et les envoie aux différents serveurs de laboîte de réception Le proxy fournit principalement une couche de sécurité.Les protocoles utilisés et ecoutés par le proxy sont les protocoles HTTPS(HyperText Transfer Protocol Secure) , IMAPS (Interactive Message AccessProtocol Secure) et POP3s (Post Office Protocol Secure) qui permettentd’assurer une certaine sécurité sur les transferts
Cliente Zimbra : L’Architecture cliente Zimbra est décrite dans la Figure1.5
Figure 1.5 – Architecture Cliente[7]
Nous allons expliquer l’architecture cliente, de la même façon que nousl’avons fait dans la sous partie précédente Le premier composant auquelnous allons nous intéresser est le composant Zimbra-Collaboration Il s’agit
du processus de MailBoxD, qui écoute les différents protocoles pour répondreaux requêtes clientes (POP, IMAP, LMTP, CardDAV, etc)
Trang 21Le navigateur du client effectue une requête SOAP (Simple Object cess Protocol) pour récupérer des informations qui seront alors envoyées aunavigateur Il y a ensuite la partie Navigateur du Client, dans lequel deuxmodes sont possibles : le premier, HTML ó l’information est affichée avec
Ac-le langage HTML, et Ac-le second en AJAX, qui utilise un framework AJAX etpermet des fonctionnalités supplémentaires telles que le Glisser-Déposer.Les clients bureaux permettent une collaboration entre Zimbra et lesclients mails tels que Thunderbird grâce au protocol IMAP, POP ou Cal-DAV ou Outlook Cependant, pour Outlook, la version payante de Zimbraest nécessaire car Outlook est un logiciel closed-source et utilise un protocoleMAPI qui provient de l’API Microsoft
Les clients mobiles peuvent communiquer avec Zimbra, les rys peuvent grâce au Blackberry Enterprise Server, mais les autres mobilespeuvent utiliser activesync, cependant, tous sont présents uniquement dans
Blackber-la version payante de Zimbra
Enfin nous pouvons remarquer la présence de Zimlet, qui sont une sibilité d’extension de l’interface web pour intégrer des services externes àZimbra Il n’est pas recommandé d’un point de vue sécurité de présenter desinformations dans un client à travers des domaines, cependant il existe uneZimlet nommée Zimlet Web Service Proxy pour prévenir ce manque de sé-curité Une autre Zimlet nommée Zimlet JSP Tags communique quant à elledes informations sur le navigateur grâce à l’interface MailBoxD
pos-1.3.2 Composants de la suite collaborative Zimbra
Nous allons voir dans la figure 1.6, les différents composants individuelsqui peuvent constitués Zimbra, d’abord nous allons presenter dans "Key forZCS(Zimbra Collaboration Server)8.5" En orange (Z) les composants dusystème Zimbra, les fonctionnalités que Zimbra a créé et a ajoutée à sonarchitecture En blanc (3p)"3rd party FOSS" sont les logiciels Open-source,celles fournient par des parties tierces et en blanc (NE)"ZCS NE Only" cellesdisponibles dans la version Payante Network Edition
Trang 22Figure 1.6 – Composants possibles dans Zimbra[7]
En utilisant les protocoles standards voici les composants : premièrement,pour Zimbra MTA Nous avons Postfix, un agent de transfert de message(MTA) qui renvoient les emails reçus par SMTP ou LMTP comme ce clientimplement les deux[4] Il y a aussi Zimbra Archiving, qui est une fonction-nalité optionnelle Il possède la fonctionnalité de recherches qui peut êtreutilisée dans la boîte réception active mais aussi celle archivée L’Anti-Virus
et Anti-Spam comprennent un scanner anti-virus (Clam AV), et un filtre mailpour identifier les Spam (SpamAssassin ou DSpam au choix)
— Postfix est un serveur de messagerie électronique et un logiciel libre veloppé par Wietse Venema et plusieurs contributeurs.(Voir plus détaillédans le site "http ://www.postfix.org/")
dé-— DSPAM : DSPAM est un filtre anti-spam open-source à échelle lable désigner pour les systèmes d’entreprises possédant plusieurs utili-sateurs (Voir le site "http ://dspam.nuclearelephant.com")
modu-— OpenDKIM : OpenDKIM est une implémentation du système tification d’émetteur DKIM proposé par le E-mail Signing TechnologyGroup (ESTG) (Voir le site "http ://www.opendkim.org")
Trang 23authen-— Cyrus SASL : Cyrus est un système d’E-mail entreprise à grande échelleconçu pour les environnements d’entreprises de différentes tailles et dif-férentes technologies.(Voir "https ://cyrusimap.org/index.php")
Le composant Zimbra Proxy utilise un server IMAP/POP3 qui permet
à des mails d’un domaine d’être partagé à travers plusieurs serveurs bra sur une base par utilisateur Ce proxy inclut Nginx, un serveur proxyIMAP/POP3 de très bonne qualité qui peut gérer les requêtes POP/IMAPentrantes Le composant Zimbra Proxy peut être utilisé comme un proxyinverse pour les requêtes HTTP Ce composant est optionnel Le compo-sant Zimbra Memcache est un package séparé du composant Zimbra Proxy
Zim-et qui est automatiquement sélectionné quand le package Zimbra Proxy estinstallé Un serveur doit fonctionné avec Zimbra Memcache quand le proxyest en cours d’éxécution Tous les proxys peuvent utiliser un même serveurMemcache
Le composant mailbox UI est utilisé uniquement si l’interface de mailboxdest dans un noeud séparé, ce qui n’est pas requis comme nous en avons parlédans l’architecture serveur Ce composant possède un processus Jetty quifournit des services pour les répertoires Zimbra et les informations Zimlet
Le composant MailboxD est l’application serveur basée sur Jetty dans quel le logiciel Zimbra est éxécuté, Jetty étant une servlet éxécutant Zimbra
le-Il possède la base de données MariaDB, qui est un logiciel qui représente lestockage de méta-données ó sont conservées les identifiants de boỵte de récep-tion liées aux comptes utilisateurs Elle contient aussi les étiquettes définiespar l’utilisateur, ses dossiers, son calendrier et ses contacts ainsi que tous lesstatuts des messages (Lu, Non Lu) MailboxD contient aussi Lucene qui est
un moteur de recherche et d’indexation de texte open source, qui maintientles fichiers d’indexation de chaque boỵte mail Il contient aussi le packageoptionnel Zimbra Logger qui permet de traquer les messages, LibreOfficepour avoir un affichage des documents de haute résolution et RRDTool pourbénéficier de graphe pour les statistiques
Le composant Zimbra Spell est un composant optionnel qui permet devérifier l’orthographe des courriers électroniques Le composant Convertd est
un package installé sur le serveur de stockage Zimbra, et contient une tionnalité source qui convertit les fichiers liés dans un mail en HTML
Trang 24fonc-Le composant OpenLDAP software est une implémentation open-source
du protocole LDAP qui fournit une authentification utilisateur Chaque
uti-lisateur a un identifiant de boîte de réception unique qui sert de point de
réfé-rence au compte utilisateur (Voir plus détaillé dans le site "http ://www.openldap.org/")
Le composant DNS Cache a pour but d’améliorer les performances des
serveurs MTA en créant un cache local pour le DNS ce qui évite à Zimbra
de s’adresser à un serveur DNS externe
Le composant "Connecteurs" s’occupent de la réaliser la compatibilité
Outlook(NE) et Zimbra, et propose une solution pour réaliser la migration
des données sous un serveur Microsoft Exchange, mais pour ce service il faut
payer Le dernier composant permet le "Monitoring" c’est à dire un logiciel
de surveillance grâce à l’implémentation logicle libre Swatch(en savoir plus
http ://sourceforge.net/projects/swatch/)
1.3.3 Comparatif Zimbra et autres solutions
En comparaison avec d’autres logiciels avec des fonctionnalités vers les
utilisateurs mobiles, sur le web, Zimbra fournit une interface webmail,
pro-fessionnelle et de la flexibilité Le tableau 1.1 [8] compare les caractéristiques
du système Zimbra avec les systèmes e-mail de collaboration comme Kolab,
Zarafa ou encore OBM[9] Présentons tout d’abord les différents logiciels
Kolab est une suite collaborative open-source tenue par le Consortium
Kolab, un consortium allemand, qui permet de gérer les mails et carnets
d’adresse d’une organisation, le but principale de Kolab et de tout conserver
dans un serveur IMAP (mails comme carnets, notes, agendas, fichiers, etc)
Le serveur gère les droits d’accès et la synchronisation du clients Il utilise
des normes open-sources et connues pour être compatible avec beaucoup de
logiciels ( Pour plus d’information, aller sur "https ://kolab.org/")
OBM est une suite collaborative, développée par Linagora, qui permet à
ses utilisateurs de conserver, organiser et partager des rendez-vous, des mails,
des contacts ou encore des documents Le serveur est compatible avec de
nom-breux navigateurs, et des clients pour l’annuaire Les fonctionnalités d’OBM
sont aussi accessibles grâce à des connecteurs pour Thunderbird ou Outlook
Cette plate-forme peut être intégrée à un système d’information existant
fa-cilement (Voir plus information dans ce site "http ://www.obm.org/")
Zarafa est elle aussi une suite collaborative open-source, développée par
Trang 25Connectux initialement (renommée Zarafa), qui fournit des services de ckage de courriers électroniques sur un serveur, et des clients AJAX ouHTML Des versions commerciales existent et rendent disponibles des ser-vices avancés Le serveur gère un carnet de contacts personnel, un calendrier,des notes et des tâches et un dossier Public avec un calendrier partagé dispo-nible autant pour des utilisateurs internes ou externes.(Voir plus informationdans ce site "https ://www.zarafa.com/")
sto-Zentyal est un serveur de réseau unifié open-source, qui peut servir pourgérer l’infrastructure du réseau, faire face aux menaces de sécurité, faire office
de passerelle internet, de serveur bureautique ou encore de serveur de nications, en plus de Framework pour le développement de nouveaux servicesUNIX Il a été développé par eBox Technologies.(Voir plus information dans
commu-ce site "http ://www.zentyal.org/")
Le dernier logiciel qui va nous servir de comparatif est Gmail, qui certesn’est pas une suite collaborative en lui même, mais la suite Google (Drive,Docs, Calendar et Gmail) peuvent être considéré comme une suite collabo-rative
Nous avons donc le tableau comparatif suivant :
Trang 26Feature Zimbra Kolab OBM Zarafa Zentyal Gmail
Custom Postfix
OUI fix
OUI fix
OUI fix Exim Qmail
OUI fix
Post-OUI
Stockage
Base avec In- dexation
XML
iCal
Outlook et iCal
Google Agenda
Google Agenda
pour les compo- santes closed- source
assistance Payante
mais pas toutes les fonc- tionna- lités
Table 1.1 – Tableau Comparatif des Suites Collaboratives
Pour résumé, le premier choix qui est de définir un système de courrielopen-source avec sa propre base de données sur un serveur propre vient d’unbesoin de confidentialité et de sécurité des données Lorsque nous utilisons
un logiciel tel que GMAIL1, les informations sont conservées sur les serveursGoogle et nous ne pouvons pas être sûrs de qui a accès à ces informations
Le système doit être open-source pour pouvoir être personnalisé, et gratuitpour éviter d’avoir des licences à gérer Le choix s’est porté sur Zimbra pources raisons principalement, mais aussi pour des raisons de confiance du fait
de son nombre d’utilisateurs (500 millions de téléchargements, 100 millionsd’utilisateurs pour la version payante)
1 Savoir plus sur Gmail "https ://www.google.com/intl/fr/mail/help/about.html"
Trang 271.3.4 Déploiement du système à grande échelle
Pour Zimbra : En utilisant les informations disponibles, et en utilisantles précédentes expériences de Netnam en terme de système de courriersélectroniques, nous pouvons résumer l’installation de Zimbra dans le tableausuivant :
Small (<1,000
Users)
Medium (1,000 à 2,500)
15,000)
(>15,000) Tous les compo-
BDD Message sur un serveur
— MTA sur un serveur
serveurs
— LDAP sur un serveur
plu-sieurs serveurs Proxy
LDAP comme Master
— Plusieurs
LDAP
— Plusieurs veurs de boîtes Mails
— Plusieurs veurs MTA
— Plusieurs veurs Proxy
ser-Table 1.2 – ser-Tableau des serveurs requis pour Zimbra
Selon les differents taille du système (Voir dans la table 1.2), avec 1.000.000
de compte, on doit utiliser le dernier " très lagre ", avec plusieur serveur,comme serveur LDAP , serveur Boites de mails, serveur MTA, et serveurProxy Nous voudrons etre sure que s’il y a un serveur qui ne marche plus,
et le client peut toujour connecter dans notre systeme et peut utiliser desinformations
Caractéristiques techniques du système : Quelque caractéristiques desystèmes email, qu’on doit savoir pour voir un peu près ce qu’il va arriverdans norte systeme (Voir dans la table 1.3 )
Trang 28Service Capacité pour
1,000,000Chaque compte peut augmenter sa capacité (se-
Taille maximale d’un mail reçu 500kb
Envoyer et recevoir quotidiennement 10.000 Mails et
500.000 MailsTaille moyenne des fichiers attachés 700kb
Taille maximale des fichiers attachés 20Mb
Moyenne de stockage utilisé des boîtes Mails 50%
Utilisateurs utilisant POP ou IMAP 50%
Nombre de mails envoyés par minute 100
Table 1.3 – Tableau des Capacités par Service de Zimbra
Pour un compte email, on peux configurer des au debut et c’est possible
si on veut augmenter, tout les utilisateurs 1.000.000, on sait qu’ils vont pasactive tout en meme temps peut etre 80 pourcentage, et aussi chaque minutedes mails envoyés 100 mails
1.4 Cloud Infrastructure
1.4.1 Virtualisation
La virtualisation[10] consiste à faire fonctionner un ou plusieurs systèmesd’exploitation, applications comme un simple logiciel, sur un ou plusieursordinateurs-serveurs, au lieu de ne pouvoir en installer qu’un seul par ma-chine Alors que les machines virtuelles ne peuvent lancer qu’un certainnombre d’opérations par seconde , la virtualisation permet de lancer plusd’opérations que la somme des opérations des machines virtuelles qui la com-posent Chaque copie d’un système d’exploitation est installée sur une ma-chine virtuelle dans le but d’ajouter des applications au système virtualisé.Chaque machine aura donc sa propre mémoire, ses propres ressources et sacarte réseau virtuel, la rendant indépendante : si une machine virtuelle nefonctionne plus, aucun impact n’aura lieu sur les autres machines virtuelles
du système.(Voir dans la figure1.7)
Trang 29Figure 1.7 – Schéma d’un Hyperviseur[11]
L’Hyperviseur est une couche logicielle située entre la partie Matérielle et
le système d’exploitation qui va interagir avec le matériel et les ressources,fournir une interface afin de partager les ressources disponibles dans les dif-férents conteneurs virtuels Deux types d’hyperviseur existent : le premier,Bare-Metal, concerne les hyperviseurs directement installés dans le serveurphysique, aucune application ou système d’exploitation n’a besoin d’être ins-tallé Le second, appelé Hosted, fonctionne de la même manière qu’une ap-plication installée sur un système d’exploitation.(Voir dans la figure1.8)
Figure 1.8 – Fonctionnement des deux types d’Hyperviseur[10]
Trang 301.4.2 Le Cloud Computing
Maintenant que nous avons vu la base de la virtualisation, nous allonsnous intéresser au Cloud Computing[14] Le Cloud Computing (ou NuageInformatique) fournit des services ou des applications informatiques en ligne,accessibles partout à tout moment, de n’importe quel terminal dès qu’on
a un accès Internet Pour être plus précis, le Cloud Computing permet departager, chez un fournisseur d’offres Cloud, une infrastructure, une solutionapplicative ou encore une plateforme à tout utilisateur qui en fait la demandevia un simple site internet (aussi appelé portail) en libre-service.(Voir dans
la figure1.9)
Figure 1.9 – Contenu du Cloud[12]
Caractéristiques du Cloud : Le modèle Cloud Computing possède cinqcaractéristiques essentielles, qui sont :
— Un Accès par l’utilisateur à la demande :
La mise en oeuvre des systèmes est entièrement automatisée et la mise enplace ainsi que la configuration des systèmes est faîte par l’utilisateur, àdistance
— Un Accès réseau à large bande :
Les centres de traitement du Cloud Computing sont généralement dés directement sur les dorsales d’Internet pour bénéficier d’une excellente
Trang 31raccor-connectivité Les grands fournisseurs répartissent les centres de traitementsur la planète pour fournir un accès aux systèmes en moins de 50ms den’importe quel endroit.
— Réservoir de ressources (non localisées) :
La plupart de ces centres comportent des dizaines de milliers de serveurs
et de moyens de stockage pour permettre des montées en charge rapides
Il est souvent possible de choisir une zone géographique pour mettre lesdonnées à "proximité" des utilisateurs
— Redimensionnement rapide :
La mise en ligne d’une nouvelle instance de serveur est réalisée en quelquesminutes, l’arrêt et le redémarrage en quelques secondes Toutes ces opé-rations peuvent s’effectuer automatiquement par des scripts Ces méca-nismes de gestion permettent de bénéficier de la prochaine caractéristique
en adaptant la puissance de calcul au trafic instantané
Compu-le fournisseur de service Cloud et l’entreprise Trois modèCompu-les [15] existent :
— IaaS (Infrastructure as a Service) :
Dans le modèle IaaS, seul le matériel (serveurs, baies de stockage, réseaux)qui constitue l’infrastructure est hébergé chez un prestataire ou un four-nisseur Avec le modèle IaaS, l’entreprise bénéficie d’une infrastructuremutualisée (pour des raisons évidentes de cỏts des matériels) et auto-matisée Avec un modèle IaaS très flexible, l’entreprise peut diminuer ouaugmenter ses ressources IT en fonction de ses besoins actuels et futurs
— Paas (Platform as a Service) :
Le modèle PaaS se place à un niveau supérieur du modèle IaaS en offrantaux entreprises un environnement leur permettant de déployer leurs dé-veloppements Le PaaS fournit ainsi des langages de programmation, des
Trang 32bases de données et différents services pour faire fonctionner leurs cations De plus, il automatise entièrement le déploiement (mises à jour,correctifs, etc) et la montée en charge.
appli-— SaaS (Software as a Service) :
Le modèle SaaS fournit des applications à l’utilisateur sous la forme d’unservice prêt à l’emploi qui ne nécessite aucune maintenance : les mises àjour étant régulièrement faites par l’éditeur Il est donc perçu, à juste titrepar les utilisateurs, comme un modèle de consommation des applications
Cloud privé et Cloud public : De manière générale, un Cloud public secompose d’un service ou d’un ensemble de services achetés par une entreprise
ou une structure et livrés via Internet par un fournisseur tiers Ces servicesutilisent de l’espace de stockage et des processeurs qui ne sont pas la propriété
de l’entreprise qui les achète Au lieu de cela, cette capacité (sous la forme
de serveurs et centres de données) peut être détenue soit par le fournisseurdirect (par exemple, une entreprise de stockage/sauvegarde en ligne) ou par
un fournisseur d’infrastructure Cloud
Un Cloud privé est essentiellement une extension du centre de donnéestraditionnel d’une entreprise, optimisée pour offrir capacité de stockage etpuissance de traitement à tout un éventail de fonctions Le terme "privé"renvoie au fait que ce type de plate-forme n’est pas partagé et non à unéventuel avantage en termes de sécurité
1.4.3 Solutions Existantes du Cloud
Nous allons faire la comparaison des solutions libres du Cloud Computingexistantes :
— Eucalyptus : est un logiciel Open-Source pour l’implémentation du cloudcomputing sur une grappe de serveurs[16][17]
— OpenNebula : est une plateforme purement Open-Source permettant dedéployer des Clouds privés, hybrides et publiques[18]
— Openstack : est une offre d’IaaS 100 pourcent open-source encore endéveloppement qui a livré son code source récemment et qui permet auxsociétés de développer leurs propres solutions d’infrastructure du CloudComputing[19]
Trang 33— ClouStack : cela commence avec Cloud.com L’objectif était de permettreaux fournisseurs de services aux entreprises de créer et d’exploiter desClouds publics ou privés[20].
Comparaison entre les logiciels du Cloud Computing : Nous avonsprésenté une liste de logiciels permettant de créer des solutions Cloud Il est
à présent temps de faire le choix de celui qui nous convient le mieux Unecomparaison est menée dans le tableau 1.4, selon plusieurs critères choisis enfonction des conseils trouvés [21] [22]
Trang 34Openstack Eucalyptus OpenNubela CloudStackBut Cloud public
Hiérarchique,Cinq com-posants,
Supporte tiple cluster,Minimumdeux serveurs
mul-Centralisé,Trois com-posants,
Minimumdeux serveur
Intégrationdes sto-rage(pod),network,cluster etmanage
Système
d’exploi-tation
Linux(Ubuntu, Fe-dora, CentOS,OpenSUSE
et Debian)etrécemmentWindows
Linux Open-Source Windows,
Li-nux
Langage Python Java, C, et
Python
Java, Ruby,C++
EC2, tone,vCloud,API OCCI(storage, vir-tualization,network)
Databasebackend (en-registre lesinformationsdes machinesvirtuelles)
Node ler
control-Cluster node Cluster
Table 1.4 – Comparaison entre les logiciels du Cloud Computing
Nous avons finalement choisi OpenStack pour plusieurs raisons :
— Open source sécurisée (Sous licence libre)
— Facile à installer et déployer
— Extensible
Trang 35— Modulaire et innovante
— S’adaptant à tous types d’infrastructures existantes
— S’adressant à toutes les tailles d’entreprise
et nous pouvons compter un regroupement de plus de 360 sociétés et 15.000membres individuels Il offre la possibilité d’implémentation pour un CloudPublic avec les trois différents modèles : IaaS, PaaS et SaaS
Nous avons choisi OpenStack pour plusieurs raisons : tout d’abord, tack est Open-Source, ensuite, il s’agit d’une solution Cloud facile à déployersur des machines virtuelles avec une interface, ensuite les utilisateurs peuventutiliser le service par eux mêmes, avec un système pour gérer les ressourcespartagées de manière efficace
OpenS-Architecture Générale Nous pouvons voir plusieurs composants danscette architecture, que nous allons décrire ensemble.(Voir dans la figure1.10)
Trang 36Figure 1.10 – Architecture Générale d’OpenStack[23]
Tout d’abord, pour la partie Traitement(Compute) : elle est composéedes processeurs, du disque de stockage et de l’interface réseau C’est surcette composante qu’est exécutée la virtualisation, et c’est ici que sont lesressources qui seront réparties dans les différentes machines virtuelles
Ensuite il y a la composante Réseau(Network), qui permet aux utilisateurs
de se connecter au système OpenStack, mais aussi qui permet aux services etmachines virtuelles de communiquer entre elles et rend possible la connection
du système OpenStack à Internet
Le composant Stockage(Storage) s’occupe de la sauvegarde de données,avec deux types de stockages : un stockage Objet, ó il est possible de stocker
un nombre infini d’objets, limité par la taille pour enregistrer les données àl’image d’un répertoire ; un stockage en Bloc, qui fonctionne de la même façonqu’un volume ou qu’une clé USB Enfin le dernier composant, le Tableau deBord, est une interface utilisateur qui permet à ceux-ci de se connecter àOpenStack
Architecture Détaillée Nous allons désormais entrer plus en détails dansl’architecture d’OpenStack.(Voir dans la figure 1.11)
Trang 37Figure 1.11 – Architecture Détaillée d’OpenStack[24]
Comme nous pouvons le voir dans l’image, nous pouvons dénombrer 9composants Le premier que nous allons présenter, est le module Keystone.Keystone s’occupe de la partie authentification de l’utilisateur lors de saconnexion au système ainsi que de l’identification de son rôle
Ensuite, nous avons le module Cellometer, qui sert de moniteurs à sateur sur les modules Nova, Glance, Neutron et Cinder Cinder est le com-posant qui fournit des volumes de stockages pour les machines virtuelles etest de type Bloc Le module Nova gère quant à lui les ressources en terme
l’utili-de processeurs, l’utili-de RAM pour les machines virtuelles, alors que le composantGlance fournit les images des systèmes exploitations pour les machines vir-tuelles, qui sont stockées dans le module Swift qui bénéficie d’un espace destockage de type Objet grâce à Cinder