Vous êtes sur la page 1sur 69

Plan

1. Définition du cloud
Cloud Computing 2. Caractéristiques du cloud
3. Modèles de déploiement
4. Modèles de services
Asma BEN LETAIFA
Amel HAJI 5. Avantages du Cloud
SIRT - 2017-2018
2

1.Pourquoi le Cloud Computing ? 1.Pourquoi le Cloud Computing ?

3 4
1.Cloud Computing: Définition
1.Pourquoi le Cloud Computing ?
• Le Cloud computing est un modèle qui permet un accès omniprésent,
pratique et à la demande à un réseau partagé et à un ensemble de
ressources informatiques configurables (réseaux, serveurs, stockage,
des applications et des services) qui peuvent être provisionnées et
libérées avec un minimum d’administration.

5 6

2.Cloud Computing: Caractéristiques 2.Cloud Computing: Caractéristiques

• Elasticité des ressources


• Un accès simple via le réseau Mise à l’échelle

• Des coûts contrôlés grâce à la mutualisation Fiabilité


des ressources et aux effets d’échelle Billing

• Un SI plus agile
Facilité
• Une facturation à l’usage d’utilisation
Elasticité
rapide

7
8
3.Cloud computing:
Modèles de déploiement 4.Cloud Computing: Modèles de service
Cloud Public: Les services sont livrés au
client, via Internet, à partir d'un fournisseur de
services tiers

Cloud Privé: Ses services sont gérés et


fournis par l'organisation.
* Il y a moins de restriction sur la bande
passante réseau et moins de risques concernant
la sécurité

Cloud hybride: C’est la combinaison des


services fournis par le cloud public et le cloud
privé c

Cloud communautaire: C’est la


combinaison entre les services de cloud privé

10
9

4.1 Modèles de service: IaaS 4.2 Modèles de service: PaaS


Infrastructure as a Service Platform as a Service PaaS
• Considérer la plateforme comme un service
• Modèle de prestation de service représente une forme
moderne d'informatique utilitaire « utility computing » • Faciliter le développement et le déploiement des
et d'hébergement. applications sans la gestion de l'infrastructure sous-
jacente
• Gérer les ressources informatiques (la constitution de
réseaux, le stockage, les serveurs virtualisés). • Cette plate-forme se compose de logiciels
d'infrastructure et comprend généralement une base de
données, middleware et des outils de développement.
• Le consommateur n'a pas à gérer ou contrôler
l'infrastructure du cloud sous-jacente, mais il a le • Ce type de service fonctionne généralement à un
contrôle sur les systèmes d'exploitation, le stockage et niveau d'abstraction élevé afin que les utilisateurs
les applications déployées. puissent gérer et contrôler les moyens qu'ils déploient
11 dans ces environnements. 12

E l A EC2 Wi d A R k
4.3 Modèles de service: SaaS
Software as a Service
4.4 XaaS: Everything as a Service
Abréviation
CaaS Communication as a Service
• Les applications ou logiciels hébergés sont
DaaS Data as a Service
consommés directement par les utilisateurs. Desktop as a Service
DBaaS DataBase as a Service
DCaaS DataCenter as a Service
• Les consommateurs ne contrôlent que la manière
HaaS Hardware a as Service
avec laquelle ils utilisent les services du cloud, MaaS Management as a Service
Monitoring as a Service
NaaS Network as a Service
• les fournisseurs de services se chargent de RaaS Resource as a Service
maintenir et de gérer les logiciels, les données et SaaS Storage as a Service
l'infrastructure sous-jacente. XaaS Everything as a Service

• Exemples: Google Docs, Mail, Salesforce CRM, 13 14

D B

4.5 Modèles de service: partage des Pizza as a Service


responsabilités

15 16
5.Avantages du Cloud computing Ressources Bibliographiques
• Ressources en self-service, et adaptation automatique à la • Vmware, « Virtualization Overview », White paper
demande • Michel MESTRALLET, « Virtualisation: Concepts et
Techniques de la Virtualisation »
• Agilité, flexibilité : Capacité à adapter ses ressources à la
demande, en fonction de l'évolution de son activité • Olivier FLAUZAC, « Introduction à la virtualisation »
• Réduction des coûts : Mutualisation des ressources • Peter Mell and Tim Grance, “The NIST Definition of Cloud
physiques, réduction des coûts de possession et d'exploitation Computing”, National Institute of Standards and Technology,
• Productivité : Déploiement plus rapide de nouvelles solutions Information Technology Laboratory
riches en fonctionnalités • Michael Armbrust et al. “Above the Clouds: A Berkeley View
• Mobilité : Capacité à travailler et à collaborer de n'importe où of Cloud Computing”, Electrical Engineering and Computer
dans les mêmes conditions qu'au sein de l'entreprise. Accès à Sciences, University of California at Berkeley
ses ressources via tout type d'équipement.

17 18

Webographie

• http://www.culture-informatique.net/cest-quoi-la- • grep –E ‘vmx|svm’ /proc/cpuinfo&> /dev/null


virtualisation/ && echo « oui » || echo « non »
• http://www.tutospourlesnuls.fr/category/virtualisation
/vmware/
• http://virtualisation.developpez.com/cours/
• https://www.supinfo.com/articles/single/1866-
virtualisation

19 20
Cloud Computing : definition
` Le Cloud computing est un modèle qui permet un accès
omniprésent, pratique et à la demande à un réseau partagé et à
un ensemble de ressources informatiques configurables
Séance1 : Cloud/IaaS/Amazon (réseaux, serveurs, stockage, des applications et des services)
qui peuvent être provisionnées et libérées avec un minimum
d’administration.
Asma BEN LETAIFA
Tasnim ABBAR

Cloud computing:
Cloud Computing : Caractéristiques Modèles de déploiement
Cloud Public: Les services sont livrés au
• Elasticité des ressources client, via Internet, à partir d'un fournisseur de
services tiers
• Un accès simple via le réseau
• Des coûts contrôlés grâce à la mutualisation des ressources et Cloud Privé: Ses services sont gérés et
fournis par l'organisation.
aux effets d’échelle * Il y a moins de restriction sur la bande
• Un SI plus agile passante réseau et moins de risques concernant
la sécurité
• Une facturation à l’usage
Cloud hybride: C’est la combinaison des
services fournis par le cloud public et le cloud
privé c

Cloud communautaire: C’est la


combinaison entre les services de cloud privé

4
Modèles de service: IaaS
Cloud Computing: Modèles de service
Infrastructure as a Service
• Modèle de prestation de service représente une forme moderne
d'informatique utilitaire « utility computing » et
d'hébergement.

• Gérer les ressources informatiques (la constitution de réseaux,


le stockage, les serveurs virtualisés).

• Le consommateur n'a pas à gérer ou contrôler l'infrastructure


du cloud sous-jacente, mais il a le contrôle sur les systèmes
d'exploitation, le stockage et les applications déployées.

• Exemples: Amazon EC2, Windows Azure, Rackspace, Google


Compute Engine, OpenStack,..

Modèles de service: PaaS Modèles de service: SaaS


Platform as a Service PaaS Software as a Service
• Considérer la plateforme comme un service • Les applications ou logiciels hébergés sont consommés
directement par les utilisateurs.
• Faciliter le développement et le déploiement des applications
sans la gestion de l'infrastructure sous-jacente • Les consommateurs ne contrôlent que la manière avec laquelle
ils utilisent les services du cloud,
• Cette plate-forme se compose de logiciels d'infrastructure et
comprend généralement une base de données, middleware et
des outils de développement. • les fournisseurs de services se chargent de maintenir et de
gérer les logiciels, les données et l'infrastructure sous-jacente.
• Ce type de service fonctionne généralement à un niveau
d'abstraction élevé afin que les utilisateurs puissent gérer et • Exemples: Google Docs, Salesforce CRM, SAP Business by
contrôler les moyens qu'ils déploient dans ces environnements. Design.

• Exemples : Force.com, Google App Engine, Windows


Azure…
Amazon web service AWS
Ambitions AWS
• Amazon Web Services (AWS) est une collection de services
d'infrastructure à distance, principalement dans la catégorie
Infrastructure comme service (IaaS), avec certains services
dans la plate-forme en tant que service (PaaS).

• Introduit en 2006/2007, il est considéré comme la première


véritable offre de cloud computing.

Ambitions AWS pour l’education Aws Educate?


• Préparer les nouvelles générations au besoins d’entreprises en
• Crédits par professeur et étudiants de $200 et $100
Cloud: Inclure l’enseignement du cloud dans le cursus de tous renouvelables chaque année a utiliser librement sur AWS.
les ingénieurs informaticiens • Barrières a l’entrée de AWS Educate:
(1) Disposer d’une carte de paiement internationale
• Augmenter sur le long terme d’adoption du cloud au sein des (2) Disposer d’un email lie a l’institution
entreprises. On estime aujourd’hui être a seulement 1% du (3) Risque financier indéfini au cas de dépassement de crédit
potentiel d’adoption global • est un programme qui fonctionne indépendamment de AWS
Enterprise Agreement. Il a son propre contrat et est conçu pour
l'utilisation des étudiants et des instructeurs.
• Faire de AWS un outil essentiel a l’éducation et a la recherche • https://cuit.columbia.edu/aws#What about AWS
Educate?
Services AWS Services AWS
• Avec IaaS, les principaux services offerts par AWS sont :

• Compute - par exemple Elastic Compute Cloud (EC2)


• Stockage - par exemple Simple Storage Service(S3)
• Base de données - par exemple Relational Database Service
• Réseautage - par exemple Virtual Private Cloud

Services AWS : EC2 Services AWS : EC2


• Amazon EC2 présente un environnement informatique virtuel,
• Amazon Elastic Compute Cloud (EC2) est vous permet de:
un service web qui fournit une capacité de 9 Utilisez une interface Web pour lancer des instances avec une
calcul redimensionnable dans le cloud. variété de systèmes d'exploitation qui sont regroupés dans
Amazon Machine Images (AMI).
• disponible depuis 2006
9 Charger vos instances avec votre environnement d'application
• est considéré comme le premier véritable
personnalisé
produit cloud computing
9 Gérer les autorisations d'accès de votre réseau
• Les développeurs peuvent louer des
9 Amazon EC2 réduit le temps nécessaire pour obtenir et
machines virtuelles (appelées instances initialiser de nouvelles instances de serveur en minutes, cela
EC2) par heure vous permet d'augmenter rapidement la capacité lorsque vos
• Plusieurs types d'instances sont disponibles besoins informatiques changent
Services AWS : EC2 Services AWS : S3
• Le service de stockage simple d'Amazon (S3) est un service de
stockage Web hautement disponible qui prend en charge de
très gros fichiers.
• Vous pouvez écrire, lire et supprimer des objets (fichiers) dans
S3 contenant de 1 octet à 5 To de données. Le nombre d'objets
pouvant être stockés est illimité.
• Chaque objet est stocké dans un seau et un seau peut être
stocké dans plusieurs régions.
• Les objets stockés dans une région ne quittent jamais la région
que si vous les transférez
Life cycle of an EC2 Instance

EC2 instance types

Services AWS : EMR RosettaHUB: A Social IaaS platform


• Amazon EMR est une plate-forme de cluster managée qui simplifie • Partage d’accés a la console AWS avec des groupes
l'exécution de grandes structures de données, comme Apache d’utilisateurs
Hadoop et Apache Spark, sur AWS pour traiter et analyser de vastes
• Partage d’accés a la console par un étudiant avec un
quantités de données.
manager(enseignant/CPOC)
• En utilisant ces frameworks et les projets open-source connexes,
tels que Apache Hive et Apache Pig, vous pouvez traiter des • Partage d’information d’un étudiant avec son manager:
données à des fins d'analyse et de workflows de business droits/budget/consommation
intelligence. • Création et gestion de sessions temporaires pour les
• De plus, vous pouvez utiliser Amazon EMR pour transformer et utilisateurs AWS STS (Security Token Service) a travers
déplacer de grandes quantités de données vers d'autres banques de RosettaHUB: sessions temporaires
données et de données AWS, comme Amazon S3 et Amazon • Transfert de budget entre utilisateurs
DynamoDB.
• Forum RosettaHUB Tunisia
• Wiki RosettaHUB Tunisia
Solution RosettaHUB pour AWS
RosettaHUB: A Social IaaS platform

Educate
Créer des comptes emails fictifs pour tous les étudiants et enseignants:
• Devenir l’équivalent de Github pour tout ce qui est partage et «user@institution.rosettahub.com »
le développement d’applications orientées data science et big • Faire la demande AWS Educate pour tous et appliquer les coupons de
data crédit sur les comptes AWS individuels
• Créer un environnement de partage, collaboratif en temps réel • Activer les comptes des tous les enseignants et étudiants avec des cartes
de paiement de RosettaHUB.
et gratuit pour la recherche et l’éducation
• Consolider tous les comptes avec le compte du CPOC par institution
• Fournir les outils essentiels pour produire et publier les
• Créer des utilisateurs IAM par compte AWS et des IAM policies afin de
applications et services pour la science et l’ingénieur. définir les périmètres d’actions permises pour chaque utilisateur
• Créer un méta cloud au dessus de tout cloud publique tel que • Injecter des micro-services par compte AWS pour permettre le suivi de
AWS qui permet d’utiliser et de généraliser les avantages du la consommation, remonter les informations sur la création de
cloud tels que la reproductibilité, la scalabilité et la machines EC2, clusters EMR, les volumes de stockage EBS et les
programmabilité a tout ce qui vit dans le cloud Snapshots EC2 vers le Dashboard RosettaHUB en temps réel.

TP AWS
• Le but de ce TP :
• Création et configuration d’une instance
• Déploiement de « hello world » sur votre instance
• Déploiement d’une application de chat sur votre instance
• Déploiement de votre application Jeux déjà développée sur la
MEANstack dans le cadre du module IAI.
• Déploiement de Docker sur Amazon :
https://aws.amazon.com/fr/getting-started/tutorials/deploy-
docker-containers/
Module : Fondem ments du Cloud
Plate-forrme : Am
mazon Weeb services
Enseignaante : Asma BENN LETAIF FA

TP00 : Getting sstarted with


h github an
nd git?

3. Create a new repository by typiing New Reepository


Choose a name
n for youur repositoryy and write a short repoository desccription in thhe Descriptiion field.
You can iniitialize yourr project witth a readme file and a liicense
G is not Gitthub
Git
I . What is Git?

Version Coontrol Systeem


Lets say yoou have a prroject you wwant to workk on.
Now you have
h 2 primary motivees.
(a)To writee some codee
(b)To take up the projeect as a team
m , meaningg that more tthan one peeople are going to be responsible foor
writing the code.
II. How to use git withh github ?
1. Insttall git and ccreate a githhub account
The first tw
wo things yoou'll want too do are: insttall git and ccreate a freee GitHub acccount.
sudo appt-get installl git (ubunttu)
sudo yu
um install giit (redhat)
2. logiin to your github accouunt

Hit : Createe repositoryy


4.Copy reppository linkk

hit Clone or
o downloadd

ABL Page 1 ABL Page 2


then Copy to Clipboarrd
in my case the command above printed :

LICENSE README.md

If you didn’t initialized your repository neither with a README file nor a LICENSE the command
above will not print anything

now let us modify this repository by adding some files :


for example let us create a file simple.js and add this line to it :
console.log('hello world')

now we will upload our work to the repository reopen the terminal and go to the Helloworld folder :

1. cd peth/to/Helloworld
2. git add –-all
3. git commit -m “adding simple.js file”
4. git push

then git will prompt for your username and your password then it will update your guthub repository :
Counting objects: 4, done.

Delta compression using up to 4 threads.


Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 341 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/xxxxxxxxxx/Helloworld.git
bea04cd..9c1f1b4 master -> master

5. Now opeen your term minal :


and verify tthat git is innstalled by typing
t

git - -version
in my case the output oof this comm
mand is :
git version
v 1.9.1

6. Cloningg repositoryy to your loccal disk


to clone thee repositoryy to your disk you have to issue thee command :
git clone
c <pastte clipboardd content>
example:
git clone
c https:://github.com/JhonDoee/Helloworlld.git

this commaand will coppy the conteent of the reppository Helloworld to the current directory.
Now verifyy that the reppository is ccloned by tyyping ls
you can notice that a nnew folder nnamed Hellooworld was created

cd H
Helloword;lls
ABL Page 3 ABL Page 4
Module : Fondements du Cloud • Déploiemeent d'une ap pplication. Voous pouvez ddéployer une e application
n Java, PHP oou .NET rapiddement, sans
avoir à vouss soucier de l'infrastructu
ure AWS. Poour en savoirr plus, consultez le manuuel AWS Elasstic Beanstalkk
Plate-forme : Amazon Web services Developer G Guide. Si voous savez qu uelles sont lles ressourcces AWS que e vous voullez utiliser, vous pouvez
également u utiliser AWS CloudForma ation afin dee les lancer de
d manière planifiée.
p Déccouvrez com mment lancer
Enseignante : Asma BEN LETAIFA un site Webb en 10 minutes en vous rendant sur la page Vidé éos & webinaires et apprrenez à déplloyer un blogg
WordPress à l'aide d'AW WS CloudFormation. Pouur en savoir plus, p consulttez la sectionn Get Started du manueel
AWS CloudFFormation Usser Guide.
Séance1 • Lancemen nt d'un serveeur dans le cloud.
c Utiliseez les interfaaces des servvices Web ppour lancer des
d instances
exécutant lee système d'exploitation
d n et l'enviroonnement ap pplicatif perssonnalisé dee votre choix. Pour vous
TP1 : Amazon Web Services familiariser avec le foncctionnement, vous pouveez lancer rap pidement un ne instance A Amazon Elasstic Computee
Cloud (Amazzon EC2) à paartir de la pa
age https://aaws.amazon..com/amis. Pour P apprenddre à lancer une instancee
EC2, puis à s'y connectter et à y mettre
m fin, coonsultez la documentattion Amazonn Elastic Com mpute Cloud d
Getting Started Guide.
1. Introduction
• Gestion d'ensembles de d données volumineux.
v Découvrez comment
c utiliser les servvices du clou
ud AWS pour
Qu'est-ce qu'Amazon Web Services ? gérer les ennsembles dee données qui sont tropp volumineu ux pour être stockés surr des bases de données
Pour mieux comprendre le fonctionnement d'Amazon Web Services, il est utile de savoir en quoi consiste le relationnellees classiquess et trop diffficiles à anaalyser avec des
d applications non disstribuées. Po our en savoir
cloud computing. Dans son rapport Key Attributes Distinguish Cloud Computing Services, Gartner définit le plus, consulttez le manueel Getting Staarted with AW WS Analyzinng Big Data with
w AWS.
cloud computing comme « un type d'informatique où des capacités TI évolutives et élastiques sont fournies • Envoi d'e-mails markeeting et transsactionnels. Vous pouve
ez utiliser Am
mazon Simplee Email Servvice (Amazonn
sous forme de service à des clients externes, par le biais des technologies Internet ». En clair, de la même SES) pour eenvoyer dess e-mails en n masse, saans devoir gérer
g la com
mplexité d'uune solutionn interne dee
manière que les réseaux électriques nationaux permettent aux foyers et entreprises de se raccorder à une
messagerie électroniquee à grande échelle. Am azon SES fo ournit des sttatistiques dd'envoi en te
emps réel et
source d'énergie rentable, performante et gérée de manière centralisée, le cloud computing vous permet de
intègre une boucle de retour qui vo ous informe de tout échec de livraison. Pour en savoir plus, consultez lee
bénéficier d'une infrastructure informatique rentable, sécurisée et flexible, fournie par un prestataire
expérimenté dans l'exploitation de réseaux et d'environnements informatiques à grande échelle. Grâce au manuel Amaazon Simple Email Service Developerr Guide.
cloud computing, d'une part, vous n'avez pas à consacrer votre main-d'œuvre et votre budget à des tâches qui De nombreu ux autres scéénarios coura
ants sont priis en charge par AWS. Poour connaîtrre ces autress scénarios et
ne contribuent pas directement à améliorer vos résultats financiers et, d'autre part, vous bénéficiez des consulter dees documentts de référence, rendez-vvous sur la paage Solutions AWS.
capacités d'infrastructure dont vous avez besoin pour continuer à exécuter vos applications métier. En
https://aws..amazon.com
m/fr/solution
ns/
particulier, les capacités du cloud AWS incluent puissance de calcul, stockage, bases de données, messagerie,
ainsi que d'autres modules de service. AWS fournit une plate-forme de cloud computing facile à utiliser,
évolutive, rentable et flexible qui convient aux applications de recherche, à des fins de formation, à un usage
personnel ainsi qu'aux entreprises de toutes tailles. Vous pouvez accéder facilement aux services de cloud
AWS via Internet. Le modèle de cloud computing d'AWS vous permet, en outre, de payer pour les services à
la demande et d'utiliser autant (ou aussi peu) de ressources que nécessaire à chaque instant. Ainsi, vous
remplacez les dépenses de capital initiales liées à l'infrastructure par des coûts variables faibles, en adéquation
avec l'évolution de vos besoins. AWS offre des services dans divers domaines afin de répondre à vos attentes,
comme illustré sur le diagramme ci-après. Pour lire une description des produits AWS, rendez-vous sur
http://aws.amazon.com/products/

Que puis-je faire avec AWS ?


Que vous souhaitiez, par exemple, stocker du contenu dans le cloud, concevoir un site Web statique,
déployer une application Web, exécuter des charges de travail à forte intensité de données et gourmandes
en capacités de calcul ou élaborer des solutions de sauvegarde fiables, la plate-forme de cloud computing
AWS vous offre la flexibilité dont vous avez besoin, quel que soit votre cas d'utilisation ou secteur d'activité.
Voici une courte liste de scénarios courants reposant sur le cloud, allant de simples applications à des
implémentations complexes, et vous expliquant comment faire vos premiers pas :
• Stockage de contenu dans le cloud. Vous pouvez utiliser Amazon Simple Storage Service (Amazon S3) pour
stocker du contenu (images et fichiers, par exemple) dans le cloud et en contrôler l'accès. Pour en savoir
plus, consultez le manuel Amazon Simple Storage Service Getting Started Guide. Vous pouvez également
utiliser Amazon S3 pour déployer un site Web statique. Pour en savoir plus, consultez la section Hosting
Websites on Amazon S3 du manuel Amazon Simple Storage Service Developer Guide.

ABL Page 1 ABL Page 2


Avant de commencer votre TP, veuillez jeter un coup d’œil sur ce lien 2. Crééation d’unne machin
ne virtuellee
http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html Amazon Elaastic Compuute Cloud (A Amazon EC C2) est un service
s Web qui fournitt une capaciité de calcuul
redimensionnnable, sous forme de serveurs
s danns les centrees de données Amazon,, que vous utilisez pouur
concevoir ett héberger vos
v systèmess logiciels. D Destiné aux développeurrs, il est connçu pour facciliter l'accès
aux ressourcces de cloud computing à l'échelle duu Web.

Etape 1
Connectez-vvous sur le site Rosetttahub.com aavec le logiin et le moot de passe qui vous ont été déjàà
p mail : “R
communiquéés, fin 2016 par RosettaHUB/A AWS Educatte Application Approved””.
Ceux qui nne se sont pas
p inscrits peuvent
p dem
mander aux autres de lees rajouter en tant que Friends suur
RosettaHUBB pour leur permettre d'acccéder à leurr console.
Rosettahub eest une plateeforme interm
médiaire, grââce à elle, no
ous avons puu avoir accèss à Amazon Web Servicee
et son prograamme Educaate sans voir besoin d’unee carte bleuee, nécessaire à la phase innscription.

Tout au millieu, cliquer sur la barree jaune, aprèès avoir activé les fenêtrres pop, acccéder à la paage d’acceuiil
d’amazon.
Le carré jaunne en haut à gauche indiq
que tous les sservices disp
ponibles sur votre
v Dashbooard.
Cliquer sur E
EC2.
Puis sur l’éccran suivant : cliquer sur : Lancer unee instance.

Types d'insstances Amazon EC2


https://aws..amazon.co om/fr/ec2/prricing/reservved-instanc ces/
Amazon EC C2 fournit unn vaste évenntail de typees d'instancess optimisés pour différeents cas d'utiilisation. Ces
types d'instaances corresppondent à diifférentes co mbinaisons en termes de capacités dde CPU, de mémoire, dee
stockage et dde mise en rééseau. Vous pouvez ains i choisir un ensemble
e de ressources pparfaitement adapté à vos
applications. Chaque typpe d'instancee inclut une oou plusieurs tailles d'insttance, ce quii vous permeet de mettre à
l'échelle voss ressources en
e fonction des
d exigencess de la charg ge de travail ciblée.
c

Veuillez en cchoisir la touute denrière Machine


M ubuuntu 14 :
Ubuuntu Server 14.04
1 LTS (H
HVM), SSD Volume
V Type - ami-a192bbad2

ABL Page 3 ABL Page 4


Parcourir less différentes étapes qui see présentent à vous Votre machiine en prête ; elle sera lan
ncée d’ici quuelques minu
utes
Étape 2 : Choisir unn type d'in
nstance
Étape 3 : Configureer les détaiils de l'insstance
Étape 4 : A
Ajouter lee stockagee
Vous n’avezz pas à moddifier ces paaramètres, auu contraire les
l laisser par défaut. C
Ce sont les spécification
s s
matérielles dde votre macchine (hard disque, mémooire, stockagee,)
Étape 5 : A
Ajouter dees balises
Ajouter un nnom à votre instance
i : MeeanApp
Étape 6 : Configureer le group
pe de sécuurité
Lors de cettte étape, nous devons spécifier
s queels ports et quels protoccoles seraiennt accessiblees pour notree Afin de vouss connecter cliquer
c sur lee bouton en hhaut : Connex
xion
machine
Veuillez spéécifier « SSHH, » et « Tou
us les TCP »ppour simplifi
fier la tâche de
d connexionn via SSH paar la suite, dee Pour vous coonnecter à vootre instance, ceci dépendd de votre OS.
ping, d’instaallation de NoodeJS et Mo
ongo, etc. com
mme l’indiquue l’imprimee écran qui suuit :
Toujours connsulter la documentation
n officielle :
http://docs.aaws.amazon.ccom/fr_fr/AW
WSEC2/latesst/UserGuidee/get-set-up-for-amazon--ec2.html#create-a-key-
pair

Si vous utilisez Window


ws, prière de suivre
s ce lienn
http:///docs.aws.am
mazon.com/fr
fr_fr/AWSEC
C2/latest/UseerGuide/putttty.html

Vous aurez bbesoin :


- d’innstaller un cliient Putty
- de ccréer une pairre de clé
Lancer la maachine - de ggénérer une clé
c publique .ppk
. à partir de la clé priv
vée reçu .pem
m et ceci à l’’aide de Puttygen
A ce niveauu vous devezz être en messure de créerr une paire de
d clé pour pouvoir
p vouss connecter par
p la suite à - d’acccéder via unn compte clieent nommée uubuntu à la machine
m d’addresse
votre instancce :
ec2-54-171
1-188-133.
.eu-west-1.compute.a
amazonaws.
.com

en utilisant laa commande :


ssh -i "ME
EANapp5.pe
em" ubuntu
u@ec2-54-17
71-188-133
3.eu-west-1.compute .amazonaws
s.com

Si vous êtes sur une macchine Linux, prière d’utiliiser directem


ment votre terrminal.

ABL Page 5 ABL Page 6


});
3. TODO1 Installation d'un serveur Web LAMP sur Amazon Linux.
http://docs.aws.amazon.com/fr_fr/AWSEC2/latest/UserGuide/install-LAMP.html // Listen on port 80
000, IP def
faults to 1
127.0.0.1

sten(8000);
server.lis
ou plutot
// Put a f
friendly me
essage on the
t termina
al
https://franciskim.co/how-to-install-lamp-stack-on-ubuntu-14-04-on-aws-ec2/
console.lo
og("Server running at
t http://12
27.0.0.1:80
000/");

4. Installation de la MEANStack sur l’instance crée

Lancer depuis le terminal nodee server.Js


4.1 Documentation
Ouvrir le naavigateur
Veuillez suivre ce lien pour mettre en place une première application TodoList
Y mettre @
@IP_instance :8081
http://programmersdiary.com/node/deploy-mean-stack-app-on-amazon-ec2/
Une fenêtree indiquant Helloworld
d s’affiche
Comment déployer une application MEAN stack sur l'instance d'Amazon EC2

Nous avons tous construit plusieurs applications Web petites ou grandes dans notre voyage en tant que
programmeur. Mais quand il s'agit de déploiement, beaucoup d'entre nous ne pas vraiment passer du temps à 4.3 Déploieement d’unee application
n de chat
comprendre comment notre application fonctionnera dans un environnement de production avec des milliers
de personnes l'utilisant en même temps. Grâce au cloud computing, le déploiement est devenu beaucoup plus Etape1 : Insttallation de Node
N
facile aujourd'hui. Vous n'avez pas besoin de gérer vos propres serveurs et de vous inquiéter de la mise à
Veuillez visiiter le site offficiel pour in
nstaller NodeeJS
l'échelle de votre application à mesure que le trafic augmente. Tout cela peut être géré par différents
fournisseurs SAAS et PAAS comme AWS, AZURE, Heroku, Google App Engine, IBM Bluemix, etc. https://
//nodejs.org/e
/en/download
d/package-m
manager/#deb
bian-and-ub
buntu-based--linux-distrib
butions
En suivant ce lien, vous allez apprendre les services web amazon en déployant un exemple d'application todo curl -sL h
https://deb
b.nodesourc
ce.com/set up_6.x | sudo
s -E bas
sh -
construite à l'aide de la pile MEAN sur amazon ec2. sudo apt-g
get install
l -y nodejs
s
La prmeière étape passe par la création et la configuration d’une instance amazon EC2

Après s'être inscrit, accédez à AWS Management Console. Maintenant nous allons créer une instance amazon
ec2. EC2 signifie Elastic Compute Cloud. C'est une machine virtuelle dans le nuage où votre application sera
déployée. Cliquez sur EC2, situé dans le coin supérieur gauche de la console de gestion AWS.

4.2 Déploiement d’un serveur http sur NodeJS

Créer votre serveur http avec Node

Les différentes étapes déjà connues : server.js

Y insérer le code suivant


var http = require('http');

// Configure our HTTP server to respond with Hello World to all requests.

var server = http.createServer(function (request, response) {

response.writeHead(200, {"Content-Type": "text/plain"});

response.end("Hello World\n");

ABL Page 7 ABL Page 8


Veuillez vérrifier que noddeJS est bien
n installé sur votre instancce vous accéderez ainsi à l’application de chat

4.5 TODO3

Déployer dessus votre application Jeux déjà développée sur la MEANstack dans le cadre du module IAI.

4.4 TODO4

Déployer docker sur Amazon

Veuillez consulter ce lien pour déployer Docker sur votre instance

https://aws.amazon.com/fr/getting-started/tutorials/deploy-docker-containers/

https://aws.amazon.com/fr/ecs/

Veuillez fairre pareil pour Mongodb

Etape2 : Insttallation de Mongodb


M

https://docs.m
mongodb.coom/manual/tu
utorial/installl-mongodb-o
on-ubuntu/

4.4 TODO
O2 : Déployyer l’applicattion chat de SSIRT 2016

Télécharger le répertoirre de l’appliccation chat dééjà développpée (SIRT 20016, git hub) ou le récupéérer depuis
B,
une clé USB

Lancer l’appplication

Node index.jjs

Et depuis le navigateur

https://@IP__de_linstancee_crée/3000 (port d’écouute)

ABL Page 9 ABL Page 10


Module Cloud_SERTEL 2018
Séance 2 : PaaS
Enseignante : Asma BEN LETAIFA

But : Héberger son application Node.JS


Plateformes disponibles
1. Openshift de Redhat
2. Bluemix d’IBM
3. Heroku

Ressources disponibles

Application Jeux du module IAI

Application Chat de IAI disponible sur clé USB

3 textes de TP_ABL.pdf

TP1_ABL_Openshift

TP2_1BL_Heroku

TP3_ABL_Bluemix

Tutoriel à suivre depuis Internet

À la fin de la séance, vous devez être en mesure de déployer vos applications (jeux + chat) sur les 3
plateformes PaaS citées

Délivrable : Un compte rendu sera remis à la fin de la séance contenant :

1. Un petit aperçu sur les PaaS


2. Vos Imprim-écrans et phases de réalisation des 3 TPs
3. Vos commentaires, suggestions

ABL Page 1
Module Cloud
TP1 

La plateforme PaaS : Openshift 


Getting Started with Openshift
1.go to https://www.openshift.com/ and create a free account
2. login to your account (Openshift web console)
3. Create an Application by choosing : → Create your first application now

4. Choose NodeJS Application in the bottom of the catalog

5. Fill in the application name field and the domain field


6. Jump to the bottom of the page and hit Create Application

It might take a while


7.Testing your application
hit Continue to the application overview page

hit the link in the top (chat-angstrom.rhcloud.com)


This is the Home page of your application (automatically created by Openshift engines when you hit
Create Application)
9. Generating key Pair
OpenShift uses a public key to securely encrypt the connection between your local machine and your
application and to authorize you to upload code so you have to generate a key pair and add your public
key to your Openshift Account
✔ . Open Terminal.(not root)
✔ Paste the text below, substituting in your email address (the email you used to login to your
Openshift account).

ssh-keygen -t rsa -b 4096 -C "your_email@domain.com"

Generating public/private rsa key pair.

This creates a new ssh key, using the provided email as a label.

✔ When you're prompted to "Enter a file in which to save the key," press Enter. This accepts
the default file location.
Enter a file in which to save the key
(/Users/you/.ssh/id_rsa): [Press enter]
✔ At the prompt, type a secure passphrase

Enter passphrase (empty for no passphrase): [Type a passphrase]


Enter same passphrase again: [Type passphrase again]

✔ Add your SSH key to the ssh-agent. If you used an existing SSH key rather than generating a
new SSH key, you'll need to replace id_rsa in the command with the name of your existing
private key file.

ssh-add ~/.ssh/id_rsa
✔ Copy the public key to your clipboard :
cat .ssh/id_rsa.pub
(then copy it’s content )
✔ Now go to the Settings section

✔ Hit Add new key and paste your public key in the text-area
✔ Hit Create

10. Cloning the default nodejs application to your pc


comeback to the Applications section and hit the application name to get to the application preview
page again :
Copy the code below the Source code label :

Now Open the terminal and issue the following command :

git clone the_source_code_that_you_copied

When you're prompted to “Are you sure you want to continue connecting
(yes/no)?” write yes
When you're prompted to type a passphrase : type the passphrase you used previously to create your
key pair
Then the application seed will be cloned to your working directory
now issue ls and verify that the application was successfully cloned :

$ ls

chat

$ cd chat

$ ls --color

app.js package.json start.js static utils

I will assume that you have a basic Nodejs and express knowledge.
Have a look on the apps.js file and package.json file. (app.js file contains the server sourve code)
now we will try to copy the content of our chat application (the application we developed) to the this
folder

copy routes.js views config.js public index.js to the chat folder (openshift
application)

$ ls

app.js package.json routes.js static views config.js public


start.js utils

now we have to merge index.js and app.js :

app.js:

const http = require('http'),

fs = require('fs'),

path = require('path'),

contentTypes = require('./utils/content-types'),

sysInfo = require('./utils/sys-info'),

env = process.env;

let server = http.createServer(function (req, res) {


let url = req.url;

if (url == '/') {

url += 'index.html';

// IMPORTANT: Your application HAS to respond to GET /health with


status 200

// for OpenShift health monitoring

if (url == '/health') {

res.writeHead(200);

res.end();

} else if (url == '/info/gen' || url == '/info/poll') {

res.setHeader('Content-Type', 'application/json');

res.setHeader('Cache-Control', 'no-cache, no-store');

res.end(JSON.stringify(sysInfo[url.slice(6)]()));

} else {

fs.readFile('./static' + url, function (err, data) {

if (err) {

res.writeHead(404);

res.end('Not found');

} else {

let ext = path.extname(url).slice(1);

res.setHeader('Content-Type', contentTypes[ext]);

if (ext === 'html') {

res.setHeader('Cache-Control', 'no-cache, no-store');

}
res.end(data);

});

});

server.listen(env.NODE_PORT || 3000, env.NODE_IP || 'localhost',


function () {

console.log(`Application worker ${process.pid} started...`);

});

index.js :

var express = require('express'),

app = express()

var port = process.env.PORT || 8080;

var io = require('socket.io').listen(app.listen(port));

require('./config')(app, io);

require('./routes')(app, io);

console.log('Your application is running on http://localhost:' +


port);

app.js after changes :

const http = require('http'),

fs = require('fs'),

path = require('path'),

contentTypes = require('./utils/content-types'),

sysInfo = require('./utils/sys-info'),

env = process.env;
var express = require('express'),

app = express();

var io = require('socket.io').listen(app.listen(env.NODE_PORT ||
3000, env.NODE_IP || 'localhost', function () {

console.log(`Application worker ${process.pid} started...`);

}));

require('./config')(app, io);

require('./routes')(app, io);

now we have to add node modules dependencies to package.json file :

package.json before changes :

"name": "openshift-cartridge-nodejs-template",

"version": "1.0.1",

"description": "Custom Node.js cartridge for OpenShift - sample


application",

"private": true,

"main": "start.js",

"scripts": {

"start": "node --use_strict start.js"

},

"author": "Ionut-Cristian Florescu <ionut.florescu@gmail.com>",

"license": "ISC"

}
package.json after changes :

"name": "openshift-cartridge-nodejs-template",

"version": "1.0.1",

"description": "Custom Node.js cartridge for OpenShift - sample


application",

"private": true,

"main": "start.js",

"dependencies": {

"ejs": "^1.0.0",

"express": "^4.8.2",

"gravatar": "~1.0.6",

"socket.io": "1.0.6"

},

"scripts": {

"start": "node start.js"

},

"author": "Ionut-Cristian Florescu <ionut.florescu@gmail.com>",

"license": "ISC"

finally we have to create a file called .gitignore and write “node_modules/” to it

echo node_modules/ > .gitignore

Final application architecture :

ls -a

. app.js .eslintrc .gitignore public start.js utils

.. config.js .git package.json routes.js static views

Now our application is ready to be deploied to openshift so let’s do it :


git add --all

git commit -m ‘chat’

git push

When you're prompted to “Are you sure you want to continue connecting
(yes/no)?” write yes

After a lot of ugly debugging messages you will get

remote: Deployment completed with status: success

if something want wrong verify all files and retype :

git add --all

git commit -m ‘other_message ’

git push

make sure that you use a different commit message


every time you made changes.
Visit your application link :(it works like a charm)

http://chat-angstrom.rhcloud.com/
Module Cloud
TP2 

La plateforme PaaS : Heroku 


Getting Started with Heroku

I. What is Heroku ?
Heroku is a platform as a service (PaaS) that enables developers to build, run, and operate
applications entirely in the cloud.

Why using Heroku ?


Heroku :
• PAAS
• Documentation is very good.
• Have in built tools and architecture.
• Limited control over architecture while designing app.
• Heroku is best at what they provide.
• Deployment is taken care(through git commands only).
• Good support.
• Not time consuming.
II. Getting started with Heroku
1. Install Heroku Toolbelt
* Debian/Ubuntu
Run the following to add our apt repository and install the CLI:
$ sudo apt-get install software-properties-common # debian
only
$ sudo add-apt-repository "deb https://cli-
assets.heroku.com/branches/stable/apt ./"
$ curl -L https://cli-assets.heroku.com/apt/release.key |
sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install heroku

* Standalone version
Download the tarball and extract it so that you can access the binary from your PATH.
For example:
# replace OS/ARCH with values as noted below
$ wget https://cli-
assets.heroku.com/branches/stable/heroku-OS-ARCH.tar.gz
$ mkdir -p /usr/local/lib /usr/local/bin
$ tar -xvzf heroku-OS-ARCH.tar.gz -C /usr/local/lib
$ ln -s /usr/local/lib/heroku/bin/heroku
/usr/local/bin/heroku
# ensure that /usr/local/bin is in the PATH environment
variable

2. Verify your installation


To verify your CLI installation use the heroku –version command.
$ heroku --version

heroku-cli/5.6.18-9f6df83 (linux-amd64) go1.7.5

3. Create a Heroku account and login to your account


* go to https://signup.heroku.com/login
* create a free account
* select NodeJS in the Primary Development Language drop down menu

* Check you mail and confirm your heroku account


* Set your password :

* Login to your account using your password

4. Create your first Nodejs application :

* hit Node.js and you will be redirected to a page named “Getting Started on Heroku with Node.js”
* Hit I’m ready to start
* Log in using the email address and password you used when creating your Heroku account

$ heroku login

Enter your Heroku credentials.

Email: zeke@example.com

Password:

...

Authenticating is required to allow both the heroku and git commands


to operate.

* now verify that node, npm and git are installed :

$ which git

/usr/bin/git

$ git --version

git version 1.9.1

$ which node

/usr/bin/node

$ node -v

v6.9.5
$ which npm

/usr/bin/npm

$ npm -v

3.10.10

* Now jump to the bottom of the page and hit I have installed the Heroku CLI

5. Prepare the application to be deployed


I assumed that you have the source code of the chat application:

$ cd Chat

$ ls

config.js index.js package.json Procfile public routes.js views

I created this application when I was student like you. It uses sockets for real time communications :)

every application must include an index.js file because Heroku engines search for this file and run it
when you deploy your application.

6. Deploy your application :


* Open your terminal and issue the following command :

$ heroku create

Creating app... done, ⬢ afternoon-escarpment-99892

https://xxxxxxxxxx.herokuapp.com/

the url of our application is :

https://xxxxxxxxxxx.herokuapp.com/

Now deploy your code by typing :

git push heroku master

Ensure that at least one instance of the app is running:


$ heroku ps:scale web=1

Verify that your application is up and running by visiting the link provided by Heroku previously

https://xxxxxxxxxx.herokuapp.com/
Module Cloud
TP3 

La plateforme PaaS : Bluemix 


09 FEVRIER 2017

BLUEMIX
DEPLOIEMENT D’UNE APPLICATION SUR LA PLATE-FORME
BLUEMIX

SUPCOM
Grâce à Bluemix™, vous pouvez d'un clic et en quelques minutes seulement créer, gérer et
exécuter très rapidement un vaste éventail d'applications (applications Web, mobiles, Big Data
ou pour tout nouvel appareil intelligent, par exemple) sur une plateforme basée sur le cloud et
les standards ouverts (gratuite pendant la période d'essai de 30 jours, puis offrant gratuitement
500 Mo de mémoire disponible chaque mois et de nombreux services)

Pourquoi Bluemix
I. IBM Bluemix :

1. Présentation de Bluemix :
Bluemix est la nouvelle offre Paas d'IBM. Elle a été développée par une communauté d'experts
IBM. C'est l'une des méthodes utilisées par IBM pour l'implémentation de son modèle Paas
nouvelle génération en vue d'obtenir une architecture open cloud mettant l'accent sur son
environnement ouvert. Cette méthode permet à ses clients de créer et déployer des
applications très rapidement. Les environnements applicatifs sont essentiellement composés
d'un environnement d'exécution, d'un ensemble de services et du code du développeur. Les
services peuvent inclure : infrastructure, middleware, Big Data, applications mobiles,
développement, et autre service opérationnel ou périphérique.

2. Architecture de Bluemix :
Bluemix offre trois technologies informatiques ouvertes : Cloud Foundry, Docker et
OpenStack. Par conséquent, les applications peuvent utiliser des environnements d'exécution
instantanés, des conteneurs ou des machines virtuelles, respectivement, dans lesquels vous
pouvez choisir le niveau d'infrastructure le plus adapté aux besoins de vos applications en
termes d'architecture. Elle a été optimisée grâce au middleware d’IBM (services), qui viennent
s'ajouter aux services tiers et communautaires existants. Il existe trois méthodes uniques
permettant de déployer les applications Bluemix : les formules Bluemix Public ou Bluemix
Dédié (toutes deux optimisées par les 40 centres de données IBM SoftLayer répartis dans le
monde entier), ou encore la formule Bluemix Local, mise en œuvre dans votre centre de
données.
a) Cloud Foundry :

Cloud Foundry est une infrastructure (et une communauté) Paas à norme ouverte, financée
et gérée par IBM et par d'autres fournisseurs. Elle est exécutée sur un vaste éventail de
plateformes d'infrastructure cloud (OpenStack, VMware et IBM SoftLayer, notamment). Elle
prend en charge de nombreux environnements d'exécution de langages de programmation
(Java, Ruby, JavaScript et Python par exemple. Cloud Foundry est associé à un écosystème
dynamique et étendu de partenaires, de fournisseurs et d'utilisateurs, ce qui permet aux
entreprises de développer des applications cloud sur la base de normes ouvertes, sans crainte
de devenir captif d'un fournisseur.

Programmes exécutés dans Cloud Foundry :


Multi-Langues
o Ruby, Java, Scala, Node.js, Erlang, Python, PHP
Multi-Frameworks
o Rails, Sinatra, Spring, Grails, Express, Lift
Multi-Services
o MySQL, Postgres, MongoDB, Redis, RabbitMQ
Multi-Cloud, Multi-IaaS
o Cloud public, Micro-cloud, cloud privé

b) SoftLayer :

SoftLayer est l'infrastructure IaaS d'IBM Bluemix ; elle offre une infrastructure globale et
unifiée de cloud computing. Elle associe : des instances de cloud virtuel public, des serveurs
bare metal puissants, des clouds privés clés en main, ainsi qu'une large gamme de dispositifs
et de services de stockage, de gestion réseau et de sécurité. Les formules Bluemix Public et
Bluemix Dédié sont intégralement exécutées sur l'infrastructure SoftLayer, et s'appuient sur
les 40 centres de données d'Amérique du Nord, d'Europe et d'Asie ; (ces centres de données
ont pour objectif de répondre aux besoins croissants des clients en termes de choix, de
conformité et d'emplacement des données).
c) Caractéristiques d’IBM Bluemix :

 Bluemix associe le développement de l'application et la gestion de son cycle de vie.


Cette association implique la gestion, le test, la configuration et la maintenance
logicielle, grâce aux capacités des services IBM Bluemix DevOps
 Services prêts à l'emploi (créés soit par IBM, soit par nos partenaires), capables
d'optimiser les fonctionnalités d’une application.
 Interface utilisateur intuitive.
 Inscription avec essai gratuit.
 Approche combinée de services et de bases de données, avec un environnement et
des capacités hautement intégrés, ce qui permet de garantir l'évolutivité des
performances au fur et à mesure de l'augmentation de la charge de travail.
 S'appuie sur des technologies de cloud computing en open source (Cloud Foundry,
Docker et OpenStack).
 Evolutivité élevée, grâce à l'infrastructure SoftLayer. SoftLayer (société IBM) offre une
infrastructure cloud en tant que service, via 40 centres de données répartis entre
l'Amérique du Nord, l'Europe et l'Asie.
 Déploiement d'applications via les formules Bluemix Public ou Bluemix Dédié
(optimisées par IBM SoftLayer), ou via la formule Bluemix Local, exécuté dans votre
centre de données.
3. Services et outils de développement IBM DevOps :

Les services IBM Bluemix DevOps constituent un référentiel GIT destiné à la gestion du code
source et aux activités de collaboration dans le cloud. Ils offrent une expérience intégrée,
ouverte, évolutive, permettant un développement rapide et la création d'applications à l'aide
d'un environnement IDE (Integrated Development Environment) associé à un référentiel GIT,
en vue d'un déploiement rapide dans Bluemix. L'environnement IDE Web contient les outils
et les processus de création d'applications mobiles et cloud permettant d'assurer la
planification, le suivi, le contrôle de versions, le développement et le déploiement de logiciels
dans le cloud. Les services IBM Bluemix DevOps offrent un grand nombre d'autres capacités
utiles pour le développement d'applications. Leurs principales caractéristiques sont les
suivantes :

Hébergement public et gratuit de projets


Référentiels de codes à sources multiples
Aide au développement agile
Outils de développement Web, avec personnalisations spécifiques pour Bluemix
Pipeline de livraison en continu, pour le déploiement d'applications dans Bluemix

Les développeurs peuvent également modifier le code sur leurs machines locales à l'aide d'un
éditeur de texte ou d'un environnement de développement tel qu'Eclipse, puis déployer les
applications dans Bluemix via l'interface de ligne de commande Cloud Foundry.

Pour modifier le code, vous pouvez utiliser les capacités des services IBM Bluemix DevOps,
optimisés par JazzHub. La deuxième partie de ce document décrit la procédure d'intégration
d’applications dans Bluemix, à l'aide des services IBM Bluemix DevOps.
II. Déploiement de l’application Chat-SUPCOM sur la Plateforme Bluemix :

Cette partie se compose de trois sections : Une première section présente la procédure
d'enregistrement (pour le cas où vous ne seriez pas encore inscrit). La deuxième section
permet de créer une application Web simple « Chat-SUPCOM » sur Bluemix, à l'aide de
Node.js. Cette application sera immédiatement accessible en ligne ; elle peut donc être testée
par toute personne possédant un accès Internet. Enfin, la dernière section présentera
l'utilisation des services IBM Bluemix, vous pouvez modifier le code : pour cela, vous avez le
choix entre 3 méthodes différentes : Via le plug-in Eclipse pour Bluemix, l'interface de ligne de
commande Cloud Foundry et les services IBM Bluemix DevOps.

1. Processus d’inscription :

Tout d’abord vous pouvez accéder à ce lien pour en savoir d’avantage sur la plateforme IBM
Bluemix.
https://www.ibm.com/fr-fr/marketplace/cloud-platform
Pour vous inscrire à la plateforme, vous accéder à ce lien.
https://console.ng.bluemix.net/registration/
Créer votre compte on spécifier une adresse électronique, le prénom, le nom, la société, le
pays ou la région (utile pour l’emplacement ou l’hébergement de vos applications) et enfin le
mot de passe.

Une fois vous avez terminé, vous recevrez par e-mail un message de confirmation
d’inscription à Bluemix et une demande d’activation de votre compte. Suivez les instructions
qui s'affichent, puis connectez-vous à l'aide de vos données d'identification. Maintenant vous
bénéficiez d’une période d’essaie de 30 jours de la plateforme.
https://idaas.iam.ibm.com/idaas/mtfim/sps/authsvc?PolicyId=urn:ibm:security:authenticati
on:asf:basicldapuser
Accéder à l’onglet « Catalogue » Pour consulter les différents outils et services offerts à travers
cette plateforme.

Vous bénéficiez de plusieurs services mis à votre disposition et prêts à être exploités. Service
de Calcul pour effectuer des traitements distribués ou réparties sur plusieurs instances,
service de Storage (créer des nœuds de stockage), service Réseau (par exemple créer des VPN
pour sécuriser l’échange d’informations entre deux entités distantes), service de sécurité (par
exemple apporter l’authentification à vos applications), la création de conteneurs. Une bonne
documentation sur les différents outils et services est nécessaire pour la création, le
développement, le déploiement de vos jeux. Ces outils vous facilitent la tache.
2. Création de l’application « Chat-SUPCOM » :

On arrive maintenant à la création de notre application « Chat-SUPCOM » : l’application sera


développée en Node.js. Consultez l’onglet « Catalogue », la section « Applis Cloud Foundry ».
Choisissez « SDK for Node.js ».

Choisissez le nom de l’application. « Chat-SUPCOM » a été utilisée pour la préparation de ce


TP, le nom de l’application doit être unique donc vous devez fixer un autre nom. Enfin
valider la création de votre application.
Consultez le tableau de bord pour vérifier la création de votre application ainsi que ses
paramètres.
Accéder maintenant à l’application. Dans l’onglet « initiation » téléchargez Bluemix_CLI et
CF_CLI qui vous permettent l’accès à votre compte et le déploiement de votre application à
partir de l’interface des lignes de commandes respectivement.

Passez en mode super-utilisateur (root). Créez un répertoire là où vous désirez, ici j’ai choisi de créer
le répertoire « DemoBluemix » sous le chemin /home/. Vous devez placer les archives Bluemix_CLI
et CF_CLI dans ce répertoire.
Suivez ces tutoriels pour installer Bluemix_CLI et CF_CLI respectivement.
https://console.ng.bluemix.net/docs/cli/reference/bluemix_cli/index.html#reference

https://docs.cloudfoundry.org/cf-cli/install-go-cli.html

Créez le répertoire « Applications »

Téléchargez le code de l’application. Placez le répertoire portant le nom de votre application dans le
répertoire « Applications »
Le contenu du répertoire « Chat-SUPCOM » est listé ci-dessous. Ne vous inquiétez pas certains
fichiers et répertoire n’existent pas encore {config.js, routes.js, views}.

On vous fournira au cours du TP, un fichier .zip qui contiendra l’application Chat.

Extract et déplacez le répertoire « Chat-master » dans notre répertoire « Application »

Vous devez ensuite éditer le fichier « app.js » du répertoire de l’application « Chat-SUPCOM »

Apportez les modifications nécessaires à ce fichier.


Déplacez le répertoire « views » dans le répertoire de votre application.

Déplacez le contenu du répertoire « public » dans le répertoire « public » de votre application.

Déplacez le fichier « routes.js » dans le répertoire de votre application.

Déplacez le fichier « config.js » dans le répertoire de votre application.

Vous devez ensuite éditer le fichier « package.json » du répertoire de l’application « Chat-SUPCOM »

Apportez les modifications nécessaires à ce fichier. Modifiez les dépendances.


3. Déploiement de l’application sur la plateforme Bluemix :

Après apporter les modifications à notre application, on procède à son déploiement sur la
plateforme Bluemix. Une première étape consiste à se connecter à votre compte à partir de
l’interface des lignes de commandes.
Se placer dans lé répertoire de l’application et exécuter la commande suivante. Vous devez spécifier
le nom de l’application que vous avez choisi.

Accéder à l’application à partir de votre navigateur.


Une autre méthode de modifier le code de votre application consiste à utiliser les services
IBM Bluemix DevOps. Pour modifier le code, vous pouvez utiliser les capacités des services
IBM Bluemix DevOps, optimisés par JazzHub.
Module Cloud 
Ressources : Help2 

Présentation_Bluemix 
 
- analyses
Délivrables

2. Notifications push
Ressources disponibles
Texte de TP à suivre
Présentation firebase

1. authentification utilisateur,

- récupération de qq statistiques
But : utilisation de Firebase BaaS

3. Intégration des réseaux sociaux


Quelques liens depuis Internet

- récupération des données utilisateurs


Pensez à y insérer des fonctionnalités telles que :

4. requêtes géolocalisées/ synchronisation hors ligne


Enseignante : Asma BEN LETAIFA
Séance 3 : Projet BaaS

fonctionnement et le déploiement de votre Jeux sur Firebase


Module Cloud_SERTEL 2018

5. Et pourquoi pas Intégrer une composante Dashboard avec analytics


Présentation récapitulant ǀŽƚƌĞƚƌĂǀĂŝůŵƵŶŝĞĚ͛/ŵƉƌŝŵ-écran illustrant bien le

But
• Ils‘agitdedéployervotrejeusurlecloud
• D ’yajouterunebasededonnéesutilisateur
ProjetCloud • D’yajouterquelquesfonctionnalités

Miseenplaced’uneapplicationavec
Firebase

Intégrer4fonctionnalitésessentielles Quelquespistesutiles
1.authentificationutilisateur,
• https://code.tutsplus.com/series/creatingͲaͲwebͲ
2.Notificationspush
appͲfromͲscratchͲusingͲangularjsͲandͲfirebaseͲͲ
3.Intégrationdesréseauxsociaux cmsͲ717
• https://code.tutsplus.com/fr/tutorials/creatingͲaͲ
4.requêtesgéolocalisées/synchronisationhorsligne webͲappͲfromͲscratchͲusingͲangularjsͲandͲ
firebaseͲͲcmsͲ22391
5.EtpourquoipasIntégrerunecomposanteDashboardavecanalytics
Ͳ récupérationdesdonnéesutilisateurs
• https://www.raywenderlich.com/139322/firebas
Ͳ récupérationdeqq statistiques eͲtutorialͲgettingͲstartedͲ2
Ͳ analyses • https://openclassrooms.com/courses/developpez
ͲuneͲapplicationͲmobileͲmultiͲplateformeͲavecͲ
ionic/firebaseͲpourͲaccederͲauxͲdonnees
3
3. storagee
Fireba
ase Firebase provides
p
conditionss.
seccure uploadds and dow
wnloads of users’ filess even in pooor networkk

II.Getting started
d with Firrebase
1. Create a gmail acccount
2. visit htttps://firebaase.google.com/
3. Jump too W acrosss
Work
platforms

I. Introdu
ucing Firrebase :
What is F
Firebase ?
“Firebase is a mobille and web application
n platform with tools and infrasstructure deesigned to
help devellopers buildd high-quaality apps. Firebase
F is made up oof complem
mentary features that
developerss can mix-aand-match to fit their needs.” -WWikipedia

What are some goood uses forr Firebase?

1 – Realttime Database 4. Choosee Try Web tutorial annd go throuugh the tutoorial

Firebase iss a cloud-hhosted databbase that alllows you tto store andd sync dataa across all clients in
real time. III. Creatte your O
Own Project
2. User A
Authenticaation 1. go to htttps://firebase.googlee.com/
User autheentication ccan be perfformed withh the help ofo Simple LLogin service which supports
s 2. hit GET
T STARTE
ED FOR FR
REE
different nnetworks; aamong them m are Twittter, Faceboook, Googlee, and GitH
Hub. All theese are in
addition too a traditionnal email-ppassword reegistration scheme.
5. visit htttps://firebaase.google..com/docs//web/setupp to get an idea aboutt how use firebase inn
a web appplication
3. Fill outt thhe form 6. hit “acccess the console”
c att
the top lefft screeen

7. hit the pproject thaat you created previouusly


4. hit add firebase too your webb app
10. Now hhit set up ssign-in metthod
All sign-inn methods are turnedd off

8. scroll down
d to disscover the hot featurees that youu can integgrate to youur web appp 11. Email//Passwordd sign-in m
method activvation

9. hit (GE
ET STARTE
ED) in thee Authenticcation paneel
As you caan see abovve you haave to provvide an Appp ID and aan App secrret (things that we
don’t havee yet :( )
No worriees here’s thhe solutionn : (thank you
y googlee)
https://fireebase.googgle.com/doocs/auth/web/faceboook-login
12. Gmaill Sign-in m
method actiivation
now keep calm and implemennt the facebbook Sign-in methodd :)
14. Twitteer and Githhub
you can reefer to thiss tutorial too implemennt Gmail S
Sign in metthod
Twitter annd Github can
c be useed with a fiirebase appplication tooo, actuallyy they developed
https://fireebase.googgle.com/doocs/auth/web/google--signin
their own APIs to doo the “grunnt work” foor you
13. Facebook Sign-iin method activationn:
you can uuse these tuutorials :
https://fireebase.googgle.com/doocs/auth/web/twitter--login
https://fireebase.googgle.com/doocs/auth/web/github--auth

IV. Intera
acting with the da
atabase
1. hit GET
T STARTE
ED in the Database
D panel
Deploying the web appplication to firebase is not n really a big deal, acctually Firebbase developped tools thaat
take care off most of thhe “nitty-grittty” details of the deplooyement proocess so whaat you have to do is to
follow thesse simple tuttorials (be ppatient guys good thing takes time ) :
https://firebbase.google.com/docs/hhosting/quicckstart
https://firebbase.google.com/docs/hhosting/deplloying

VI. Application m
monitorin
ng and Analytics

w running oon Firebase but this not enough youu have to monitor your applicationn,
Your appliccation is now
get informaation about yyour users, predict the number of yyour visitors in six monnths …
What you nneed is here is data ! Daata and morre Data but w c get this data ?
where you can
We will usee google of course in faact firebase provides Annalytics but for iOS andd Android A
Apps this is
disappointiing , isn’t it ?
We have too use a moree generic sollution to gett statistics aabout our application, inn this case ccase we will
use google analytics:
“Google An
nalytics Soluutions offerr free and ennterprise anaalytics toolss to measuree website, appp, digital
and offline data to gainn customer insights.” – Google
You can refeer to these tuttorials to inteegrate Googlee Analytics too your Applicaation

https://sridharkatakam.coom/add-new--website-googgle-analytics//

wikihow.com//Add-Google--Analytics-to--Your-Websitte
http://www.w
2. add a nnew new enntry to the database

I added Gooogle Analyticss to my firebaase applicatioon :


3. You cann give a look to thesee tutorials :
https://firrebase.gooogle.com/d
docs/datab
base/web/sstart
https://firrebase.gooogle.com/d
docs/datab
base/web/sstructure--data
https://firrebase.gooogle.com/d
docs/datab
base/web/rread-and-write
https://firrebase.gooogle.com/d
docs/datab
base/web/llists-of-daata

V. Deplo
oying you
ur applic
cation
Not a bad beeginning

Firebase is ffull of featurees so you havve to give it a try again andd remember

“He who woould search foor pearls musst dive below””

Vous aimerez peut-être aussi