Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

4D Summit Europe 2016 - Conférence d'A&C Consulting : "Stocker des données sur le cloud avec S3"

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité

Consultez-les par la suite

1 sur 55 Publicité

4D Summit Europe 2016 - Conférence d'A&C Consulting : "Stocker des données sur le cloud avec S3"

Télécharger pour lire hors ligne

Le « cloud » est le nouveau mot-clé pour créer le buzz dans l’IT. Grâce aux nouvelles apps, accessoires, etc., nous utilisons ou stockons tous des données dans le cloud parfois sans parfois s’en rendre compte. Amazon, au-delà de son si populaire site marchand, dispose d’un vaste catalogue de web services (AWS). Au sein de ces services, l’un d’entre eux dipose d’un grand potentiel pour les développeurs 4D. Il s’agit d’Amazon Simple Storage Service (S3). S3 constitue la solution Amazon de stockage sur le Cloud.

Le « cloud » est le nouveau mot-clé pour créer le buzz dans l’IT. Grâce aux nouvelles apps, accessoires, etc., nous utilisons ou stockons tous des données dans le cloud parfois sans parfois s’en rendre compte. Amazon, au-delà de son si populaire site marchand, dispose d’un vaste catalogue de web services (AWS). Au sein de ces services, l’un d’entre eux dipose d’un grand potentiel pour les développeurs 4D. Il s’agit d’Amazon Simple Storage Service (S3). S3 constitue la solution Amazon de stockage sur le Cloud.

Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Les utilisateurs ont également aimé (20)

Publicité

Similaire à 4D Summit Europe 2016 - Conférence d'A&C Consulting : "Stocker des données sur le cloud avec S3" (20)

Plus récents (20)

Publicité

4D Summit Europe 2016 - Conférence d'A&C Consulting : "Stocker des données sur le cloud avec S3"

  1. 1. Stocker des données sur le Cloud avec S3 4D Summit Europe 2016
  2. 2. Bruno LEGAY A&C Consulting www.ac-consulting.fr
  3. 3. Introduction
  4. 4. Définition de «Cloud Computing»
  5. 5. Définition Cloud computing :“mise à disposition de services hébergés via Internet”
  6. 6. Caractéristiques • A la demande • Accès réseau large bande • Réservoir de ressources • Elasticité • Facturation à l’usage
  7. 7. Modèles de service • IaaS (Infrastructure as a Service) • PaaS (Plateform as a Service) • SaaS (Software as a Service)
  8. 8. Modèles de service (suite) Storage Network Servers Virtualization OS Middleware Runtime Data Application Traditionnel (pour comparaison) Vousgérez Storage Network Servers Virtualization OS Middleware Runtime Data Application Infrastructure (as a Service) Vousgérez Fournisseur Storage Network Servers Virtualization OS Middleware Runtime Data Application Platform (as a Service) Vousgérez Fournisseur Storage Network Servers Virtualization OS Middleware Runtime Data Application Software (as a Service) Fournisseur
  9. 9. Modèles de déploiement • Cloud public • Cloud privé • Cloud communautaire • Cloud hybrid
  10. 10. Pourquoi utiliser le Cloud ?
  11. 11. Les avantages • Fiabilité/résilience • Montée en charge • Coût • Sécurité
  12. 12. Les inconvénients • Coût (estimation) • Verrouillage fournisseur • Confidentialité / sécurité ?
  13. 13. Exploiter le Cloud avec 4D
  14. 14. Un cas d’espèce • 4D db avec de gros blobs (>30 Mb) • Document avec des métadonnées • Faible taux de création de blobs • Faible taux de modification de blobs • Faible taux de lecture des blobs
  15. 15. Le problème • % de blob dans les données • Gestion des gros fichiers • Backup : intégral vs différentiel
  16. 16. Options Store Infrastructure managed by Integrity managed by Transaction Security Backup blob (record) na 4D 4D na yes blob (data file) na 4D 4D na yes blob (disk) na 4D 4D na yes file (local disk) you you you you you file (shared disk) you you you you you cloud cloud you you you + cloud you + cloud
  17. 17. Notre approche
  18. 18. Everything is an object • Un fichier est un objet • Un blob est un objet • Mais pour REST un objet est une «ressource»
  19. 19. Cloud Object • Un objet identifié par UUID • Metadonnées • Imagette
  20. 20. Métadonnées de ressource • chemin/nom de fichier • Date de création, modification • type (pdf, jpg, png, xml, json, etc...) • Taille, empreinte (md5) • Pdf : nombre de pages • Image : résolution, exif, etc...
  21. 21. Amazon AWS
  22. 22. Amazon AWS • Visionnaire • Leader • «Eat your own dog food» • Documentation https://aws.amazon.com/documentation/
  23. 23. Services • S3 : stockage d’objets • EC2 : machines virtuelles • Glacier : archivage • DynamoDB : NoSQL database • Beanstalk : déploiement d’application • RDS : bases de données
  24. 24. Créer son compte • Accès à la Console AWS • Gestion et suivi des services • Obtenir les identifiants o «AccessKeyId» : 20 caractères o «SecretAccessKey» : 40 caractères
  25. 25. Les «régions» AWS • 10 régions • Vérifier la disponibilité du service • Choisir une région (proche de vous)
  26. 26. Région Continent Localisation us-east-1 US East N. Virginia us-west-2 US West Oregon us-west-1 US West N. California us-gov US West ? eu-west-1 EU Ireland eu-central-1 EU Frankfurt ap-southeast-1 Asia Pacific Singapore ap-northeast-1 Asia Pacific Tokyo ap-southeast-2 Asia Pacific Sydney ap-northeast-2 Asia Pacific Seoul cn-north-1 Asia Pacific Beijing sa-east-1 South America Sao Paulo
  27. 27. AWS endpoint • La partie Host/domain de l’URL • Exemple : s3-eu-central-1.amazonaws.com S3 service EU - Frankfurt
  28. 28. Les outils et APIs AWS • Online : AWS Management Console • Outil : AWS CLI • SDKs (Java, PHP, Python, Ruby, etc) • APIs : o RESTful APIs o SOAP APIs : déprécié
  29. 29. AWS ligne de commande • Outil basé sur Python • Unifié pour tous les services • Cross platform • Peut être utilisé dans 4D avec LPE (LANCER PROCESS EXTERNE)
  30. 30. AWS ligne de commande (suite) • Télécharger installer • Configurer $ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: ENTER
  31. 31. • Exemple : • Sortie : json, text (tab / table) • Documentation http://docs.aws.amazon.com/cli/latest/reference/ $ aws <service> ... AWS ligne de commande (suite) • Syntaxe spécifique au service
  32. 32. Les APIs AWS • Basés sur REST • Mécanisme d’authentification commun • APIs spécifiques à chaque service
  33. 33. Le service S3 d’Amazon
  34. 34. Tarifs S3 • 100 Gb ≈ 3$/mois • Les tarifs dépendent de la région • Calculatrice de coût http://calculator.s3.amazonaws.com/index.html
  35. 35. Les ressources S3 • «Bucket» (conteneur racine) • Objet • Identifié par une «clé» • Exemple de clé : map/ map/images/ map/images/logo.png
  36. 36. Les propriétés d’objet S3 • Basiques (clé, taille, dates, ...) • Date d’expiration • Stockage (standard, reduced, ...) • Cryptage (none, AES-256) • Permissions • Métadonnées
  37. 37. Url S3 • Deux syntaxes possibles • Exemples avec le bucket «myBucket» : https://myBucket.s3-eu-central-1.amazonaws.com https://s3-eu-central-1.amazonaws.com/myBucket
  38. 38. Url S3 (suite) • Avec la clé https://s3-eu-central-1.amazonaws.com/myBucket/map/images/logo.png https://myBucket.s3-eu-central-1.amazonaws.com/map/images/logo.png https://myBucket.s3-eu-central-1.amazonaws.com/<object_key> https://s3-eu-central-1.amazonaws.com/myBucket/map/images/logo.png?acl • Avec la clé et une «query string»
  39. 39. Les services S3 avec cli • Deux services • s3 • s3 api • Documentation http://docs.aws.amazon.com/cli/latest/reference/s3api/ http://docs.aws.amazon.com/cli/latest/reference/s3/ $ aws s3 ... $ aws s3api ...
  40. 40. Les opérations REST S3 • Opérations sur les «buckets» • Opérations sur les objets • Les réponses de S3 au format XML ou JSON • Documentation http://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketOps.html http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectOps.html
  41. 41. S3 auth/signature • Deux méthodes possibles • Entêtes HTTP • Paramètres «Query string» • Documentation http://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4- header-based-auth.html http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4- query-string-auth.html
  42. 42. La signature AWS
  43. 43. La signature S3
  44. 44. Le composant AWS
  45. 45. L’assistant CLI // call once (AWS client needs to be configured) AWS_cliPathSet ("/Users/ble/.local/lib/aws/bin/aws") // http://docs.aws.amazon.com/cli/latest/reference/s3/ C_POINTEUR($vp_nil) C_TEXTE($vt_list) AWS_cliRun ("s3 ls s3://ac-consulting-test/test/demo/" ;Faux;$vp_nil;->$vt_list) ALERTE($vt_list)
  46. 46. L’assistant CLI (suite) // http://docs.aws.amazon.com/cli/latest/reference/s3api/ // we will use json :-) // first get informations of the object with the "head-object" the json as text and parse the json C_TEXTE($vt_json) C_POINTEUR($vp_nil) AWS_cliRun ("s3api "+ "head-object "+ "--bucket ac-consulting-test "+ "--key test/demo/imagePrivate.png"; Faux;$vp_nil;->$vt_json) C_OBJET($vo_objectProperties) $vo_objectProperties:=JSON Parse($vt_json) // { // "AcceptRanges": "bytes", // "ContentType": "image/png", // "LastModified": "Mon, 04 Jan 2016 09:43:06 GMT", // "ContentLength": 288548, // "ETag": ""43ef6cf259c8183e4c79d584ca03733c"", // "StorageClass": "REDUCED_REDUNDANCY", // "ServerSideEncryption": "AES256", // "Metadata": {} // }
  47. 47. L’assistant CLI (suite) // wouldn't it be nice if we could get the json directly from the AWS_cliRun ? // list objects in the bucket C_POINTEUR($vp_nil) C_OBJET($vo_objectProperties) EFFACER VARIABLE($vo_objectProperties) AWS_cliRun ("s3api "+ "head-object "+ "--bucket ac-consulting-test "+ "--key test/demo/imagePrivate.png"; Faux;$vp_nil;->$vo_objectProperties) // { // "AcceptRanges": "bytes", // "ContentType": "image/png", // "LastModified": "Mon, 04 Jan 2016 09:43:06 GMT", // "ContentLength": 288548, // "ETag": ""43ef6cf259c8183e4c79d584ca03733c"", // "StorageClass": "REDUCED_REDUNDANCY", // "ServerSideEncryption": "AES256", // "Metadata": {} // }
  48. 48. L’assistant CLI (suite) // get a resource into a blob C_POINTEUR($vp_nil) C_BLOB($vp_blob) AWS_cliRun ("s3 cp s3://ac-consulting-test/test/demo/imagePrivate.png -" ;Faux;$vp_nil;->$vp_blob)
  49. 49. L’API REST AWS API C_TEXTE($vt_region;$vt_AWSAccessKeyId;$vt_AWSSecretKey) C_BOOLEEN($vb_interprocess) $vt_region:="us-west-2" $vt_AWSAccessKeyId:="AKIAIOSFODNN7EXAMPLE" $vt_AWSSecretKey:="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" $vb_interprocess:=Vrai // The parameters are set for the next S3_restApi calls AWS_paramSet ($vt_region;$vt_AWSAccessKeyId;$vt_AWSSecretKey;$vb_interprocess) Gestion des identifiants
  50. 50. TABLEAU TEXT($tt_requestHeadersArray;0) TABLEAU TEXT($tt_responseHeadersArray;0) C_BLOB($vx_requestBodyBlob;$vx_responseBodyBlob) C_TEXTE($vt_httpVerb;$vt_bucket;$vt_uri) $vt_httpVerb:=HTTP Méthode GET //"GET" $vt_bucket:="ac-consulting-test" $vt_uri:="/" C_ENTIER LONG($vl_httpReponseStatus) //200 <=> OK $vl_httpReponseStatus:=S3_restApi ($vt_httpVerb;$vt_bucket;$vt_uri; ->$tt_requestHeadersArray; ->$vx_requestBodyBlob; ->$tt_responseHeadersArray; ->$vx_responseBodyBlob) L’API REST AWS API Appel à l’API S3
  51. 51. Démonstration
  52. 52. Questions & Réponses
  53. 53. Votre avis compte beaucoup pour nous Visitez summit.4d.com Sélectionnez l’agenda, la session et Wifi gratuit : Novotel_Charenton pas de mot de passe En participant à l’enquête, vous pouvez gagner des prix remis lors de la session des questions/réponses de jeudi
  54. 54. Merci ! Bruno LEGAY A&C Consulting www.ac-consulting.fr www.linkedin.com/in/brunolegay

×