Aucun résultat trouvé

Votre recherche n’a donné aucun résultat.

Nous vous suggérons d’essayer ce qui suit pour trouver ce que vous recherchez :

  • Vérifiez l’orthographe de votre recherche par mot clé.
  • Utilisez des synonymes pour le mot clé que vous avez saisi, par exemple, essayez « application » au lieu de « logiciel ».
  • Lancez une nouvelle recherche.
Nous contacter Se connecter à Oracle Cloud

Développement d'applications modernes

Les applications modernes sont difficiles à trouver. Les outils, contraintes et possibilités évoluent trop rapidement. Oracle présente une structure de développement d’applications qui simplifie la prise de décision architecturale pour créer et exécuter des applications hautement disponibles, résilientes, entièrement sécurisées et conformes en utilisant un ensemble de principes de conception et de recommandations technologiques.

Savez-vous déjà ce que vous cherchez à faire ? Accédez directement à notre bibliothèque d'architecture

Exigences fondamentales

Exigences communes applicables à toute application moderne.


Sécurité et conformité

Alignez les politiques de sécurité sur les bonnes pratiques du secteur et appliquez-les à travers les couches de la pile d’applications. Assurez la confidentialité et l'intégrité de vos données. Utilisez la gestion des privilèges pour identifier et gérer les personnes autorisées à effectuer certaines tâches. Facilitez la détection et le diagnostic des événements de sécurité.


Disponibilité

Rendez les applications disponibles 24h sur 24, 7 jour sur 7, 365 jours sur 365, sans temps d’arrêt, planifiées ou non.


Évolutivité

Évoluez progressivement de dizaines à des milliers d’utilisateurs et gérez des volumes croissants de données sans avoir à repenser l’application à l’avenir.


Performances

Bénéficiez de la latence la plus faible et du débit le plus élevé requis pour une expérience utilisateur optimale.


Agilité

Appuyez-vous sur des outils et des méthodes d'automatisation modernes pour créer et déployer des processus. Évitez les goulets d'étranglement dus à la nécessité de tâches manuelles.


Observability

Enregistrer les mesures des performances et surveiller les performances du système en cas de dégradation. Permettre aux équipes de générer automatiquement des alertes lorsque ces mesures ne sont pas conformes aux limites attendues.


Résilience

Lorsque des problèmes surviennent, assurez-vous que les applications effectuent une récupération progressive, restaurent rapidement les fonctionnalités perdues, évitent toute perte de données et n’ont pas d’impact négatif sur l’expérience utilisateur.


Optimisation des coûts

Exécuter au coût total le plus bas possible, en équilibrant toutes les autres exigences.


Portabilité

Assurez-vous que l’architecture d’application respecte des normes ouvertes, ce qui facilite la migration du système sur site vers le cloud ou entre les fournisseurs.

    Principes de conception

    Les bonnes pratiques qui régissent les architectures d'application.

     

    Tout ouvrir Tout fermer

  • Utilisez des plateformes low-code dans la mesure du possible ou, à défaut, des langages de programmation matures et des frameworks légers

    Présentation
    Les langages et frameworks de programmation que vous adoptez pour créer votre application jouent un rôle crucial dans le succès de sa livraison et de sa maintenance au fil du temps. Les choix du langage et du framework ont des répercussions à long terme sur la façon dont vous faites évoluer votre entreprise, exploitez vos applications et offrez des fonctionnalités de haute qualité à vos clients. Les modifications apportées à la langue ou à la structure sont généralement coûteuses. La prise en charge d'écosystèmes parallèles de plusieurs langages et frameworks augmente la complexité et réduit l'agilité.

    Le choix d'une langue et d'un framework a des répercussions sur divers éléments, tels que la vitesse de livraison, la stabilité et la vigueur de l'écosystème existant, la préparation opérationnelle et les performances de production. Utilisez des plateformes low-code autant que possible afin de vous concentrer sur la résolution des problèmes de votre entreprise au lieu de faire face aux complications du développement traditionnel. Si les exigences de votre application sont plus complexes, choisissez des langages matures et des frameworks légers.

    Détails des principes
    Les plateformes low-code vous permettent de créer, tester et déployer des applications d'entreprise plus rapidement que le codage manuel traditionnel. Ces plateformes conviennent bien à la création d’applications en collaboration avec les parties prenantes de l’entreprise, à la création d’applications de création de rapports et d’analyse des données, à l’extension des applications SaaS et à la modernisation des anciennes applications. Cette approche vous aide à éviter les problèmes complexes, tels que la visualisation des données, la collecte des données, l'analyse des données, la sécurité, l'accessibilité, les performances et la globalisation. Une plateforme low-code réduit considérablement ces problèmes ainsi que la quantité de code que vous devez maintenir.

    Toutefois, si votre application a des exigences plus poussées, choisissez un langage de programmation mature avec un framework léger. Lorsque vous choisissez un langage de programmation, sélectionnez-en un qui vous procure des avantages tels que :

    • Sécurité
    • Hautes performances et efficacité
    • Prise en charge des outils
    • Documentation complète et à jour
    • Un écosystème de bibliothèques
    • Conformité à une suite de tests ou à une implémentation de référence
    • Une communauté forte

    Les langues plus récentes ont généralement un taux de changement plus élevé dans leur conception linguistique et dans l'écosystème et les bibliothèques correspondants. Un taux de changement plus élevé signifie qu'il est plus difficile d'évaluer le risque et plus coûteux d'effectuer des changements ultérieurs.

    Choisissez un framework open source. Les frameworks open source font l'objet d'un examen constant par les pairs, ce qui signifie que les fonctionnalités sont proches de ce que la plupart des développeurs attendent, car ils contribuent à la création et à la maintenance des frameworks. Les bugs sont détectés et corrigés rapidement. Sélectionnez également un framework léger qui consomme peu de ressources (processeur, mémoire, bande passante réseau ou descripteurs de fichier).

    Utilisez des frameworks d’application qui permettent d’améliorer l’orientation des tâches (logique métier par rapport au modèle standard et à l'échafaudage) tout en préservant la flexibilité (vous permettant de prendre en charge les besoins actuels et futurs en fonctionnalités). Adoptez un framework qui fournit des valeurs par défaut raisonnables et peu controversées faciles à utiliser pour les fonctionnalités courantes telles que la journalisation, la télémétrie, la sécurité, la configuration et les modèles communs, tels que la création d'API REST.

    Recommandations Oracle
    Oracle APEX est une plateforme low-code qui fournit des composants de haut niveau, tels que des formulaires, des graphiques et des widgets d'interface utilisateur. APEX fournit également des modèles de conception courants via un environnement de développement graphique intuitif. Les applications développées à l'aide d'APEX peuvent accéder à des données locales via SQL et s'intégrer à des services externes à l'aide d'API REST. En outre, vous pouvez publier les fonctionnalités que vous développez dans APEX en tant qu'API REST pour une utilisation externe.

    Si une plateforme low-code ne convient pas pour votre application, adoptez Java comme langage de programmation. Java offre un ensemble de fonctionnalités stable et large pour les cas d’utilisation d’applications les plus courants et offre un écosystème sain de bibliothèques et structures fiables et stables pour le développement d’applications modernes. L'accent mis par Java sur la simplicité et la lisibilité, associée à son excellent support pour les outils de développement, y compris les outils d'analyse statique et les structures de test, réduit les coûts de maintenance logicielle et les risques de bugs dans les applications de production.

    Utilisez GraalVM pour développer et exécuter votre application. GraalVM est une distribution JDK qui associe la stabilité de Java aux meilleures performances de sa catégorie grâce à l’optimisation dynamique de l’exécution, à l’application fréquente et proactive de correctifs de vulnérabilités de sécurité, ainsi qu’à l’analyse des performances à faible coût et aux outils de diagnostic tels que Java Flight Recorder.

    Créez des applications avec une approche donnant la priorité aux API en utilisant le framework Helidon ou Micronaut. Ces deux frameworks fournissent des fondations qui réduisent considérablement le temps de livraison de vos applications et des modèles faciles à utiliser pour les cas d'utilisation courants tels que les API REST, sur la base d'un ensemble de choix de framework simples et peu controversés pour les activités courantes telles que la journalisation, la télémétrie et le stockage. Les deux frameworks prennent en charge des services à hautes performances grâce à la prise en charge des E/S non bloquantes avec des API réactives idiomatiques et une faible latence grâce à la prise en charge des bibliothèques réseau à hautes performances.

    • Choisissez Helidon MP pour les applications étroitement alignées sur l'écosystème Java d'entreprise ,par exemple, CDI, JAX-RS ou JPA. La prise en charge privilégiée par Helidon des modèles d’entreprise Java modernes via MicroProfile simplifie le portage des applications Java EE existantes vers les microservices.
    • Choisissez Micronaut ou Helidon SE pour les applications qui ne dépendent pas de l'écosystème Java d'entreprise existant. Les fondations d'application de Micronaut pour la compilation augmentent les performances des applications au moment de l'exécution et permettent la vérification au niveau du framework, ce qui peut éliminer de nombreux problèmes de sécurité et de qualité liés à la réflexion et à la configuration de l'exécution.

    Helidon et Micronaut prennent tous deux en charge les images natives GraalVM, ce qui vous permet de créer des applications compactes et économes en mémoire.

  • Créez votre application en tant que suite de services qui communiquent via des API REST

    Aperçu
    Divisez les fonctionnalités ou les tâches de votre application en services indépendants peu couplés qui fonctionnent ensemble. Concevez chaque service avec une portée fonctionnelle limitée axée sur une fonctionnalité. Par rapport à une architecture monolithique traditionnelle, cette approche améliore la maintenance des applications, le développement des fonctionnalités, les tests, le déploiement et l'évolutivité.

    Adoptez une approche de conception d'API REST axée sur le contrat pour fournir des interfaces claires et compréhensibles de communication avec et entre les services. Un contrat d'API fournit le mécanisme nécessaire afin que les équipes puissent collaborer et utiliser des fonctionnalités sans dépendre des détails internes de l'implémentation d'un service. Par exemple, un service peut être entièrement détenu par une équipe de développement qui peut s'améliorer librement sur l'implémentation sans avoir à coordonner les dépendances de code avec d'autres équipes de développeurs.

    Détails du principe
    Commencez par une approche axée sur le contrat en spécifiant l'API REST d'un service. Préparez ensuite une implémentation de l'API pour permettre à vos parties prenantes, par exemple les équipes qui l'utiliseront, de l'essayer. Lorsque tout le monde s'accorde sur les détails de l'API, des équipes indépendantes peuvent travailler en parallèle pour implémenter le service et les autres services qui l'utiliseront.

    Définissez les règles appliquées pour la sécurité et les contrats de niveau de service au début du cycle de vie du produit afin que tous les aspects du contrat de service soient clairs.

    Traitez votre spécification d'API comme du code et gérez-la dans un système de contrôle de version avec votre code source et vos configurations de stratégie.

    Recommandations d'Oracle
    Indiquez votre API en utilisant le format indépendant de l'implémentation OpenAPI et stockez cette spécification dans un dépôt fourni par OCI DevOps Service.

    Implémentez vos services à l'aide d'un framework open source léger, tel que Micronaut ou Helidon.

    Déployez vos services sur des plateformes sans serveur, telles qu'Oracle Container Engine for Kubernetes ou Oracle Functions, pour faciliter le déploiement, l'évolutivité et la rentabilité.

    Utilisez Oracle Cloud Infrastructure API Gateway pour créer des adresses privées ou publiques protégées et régies à partir de la spécification d'API.

  • Packagez et déployez votre application en tant que conteneurs

    Présentation
    Un package de conteneur code et ses dépendances comme une seule unité, de sorte qu'une application s'exécute rapidement et de manière fiable dans plusieurs environnements informatiques. Une image de conteneur est un fichier qui, lorsqu'il est exécuté, crée et démarre un conteneur dans un environnement informatique.

    Par rapport aux machines virtuelles traditionnelles, les conteneurs sont plus petits, nécessitent moins de ressources et accélèrent les heures de démarrage. Ils sont également indépendants de la plateforme et permettent d’exécuter des applications n’importe où. Pour profiter de ces avantages, décomposez vos applications en services qui exécutent chacune des fonctions métier distinctes et rassemblez-les dans un conteneur. Pour les anciennes applications, remplacez progressivement chaque fonction existante de votre application par un service conteneurisé jusqu'à ce que l'ensemble de l'application soit refactorisé.

    Détails de principe
    Le regroupement du code d'application et des dépendances en une seule unité exécutable (image de conteneur) signifie qu'un conteneur est extrêmement portable. En combinant cette portabilité avec l’abstraction de l’infrastructure, les conteneurs assurent la cohérence opérationnelle de votre application. Que votre application s'exécute sur site sur un serveur physique ou dans le cloud sur une machine virtuelle, elle produit les mêmes résultats à chaque fois.

    Grâce à cette reproductibilité et à cette prévisibilité constantes, les conteneurs simplifient les processus DevOps et permettent à vos équipes de développement de déployer vos applications plus rapidement. Étant donné qu'ils assurent l'isolement au niveau des processus et qu'ils sont remplacés fréquemment, les conteneurs simplifient et accélèrent les processus associés à la correction des vulnérabilités logicielles. La décomposition des applications en services conteneur modulaires les rend également très robustes. Une erreur ou un échec dans un service individuel n'entraîne pas l'arrêt de votre application dans son intégralité. Vous pouvez mettre à jour ou corriger chaque service indépendamment du reste de l'application.

    Contrairement à une machine virtuelle, un conteneur n'est pas fourni avec un système d'exploitation qui lui est propre ; il partage le système d'exploitation de son hôte. Par conséquent, les conteneurs sont de plus petite taille et plus rapides à démarrer que les machines virtuelles. La plupart des images de conteneur ont une taille de dizaines de mégaoctets par rapport aux machines virtuelles pouvant être de plusieurs gigaoctets, et leur heure de début est exprimée en secondes au lieu des minutes nécessaires au démarrage des machines virtuelles.

    Le meilleur moyen d'exécuter et de dimensionner vos applications avec des services modularisés dans des conteneurs consiste à déployer un seul service par conteneur. Cette approche isole les services les uns des autres, ce qui élimine les temps d’arrêt et permet une évolutivité indépendante pour chaque service.

    Bien que vous puissiez déployer des conteneurs manuellement, il est préférable d'utiliser un logiciel de gestion de conteneurs qui s'intègre à vos outils d'intégration continue et de déploiement continu.

    Recommandations Oracle
    Utilisez Oracle Cloud Infrastructure Registry (Container Registry) pour stocker vos images de conteneur et Oracle Cloud Infrastructure Container Engine for Kubernetes (OKE) pour exécuter et gérer vos conteneurs. Ces services entièrement gérés sont étroitement intégrés aux différentes fonctionnalités de la plateforme Oracle Cloud Infrastructure (OCI), sont disponibles dans toutes les régions Oracle Cloud et respectent des normes réglementaires telles que PCI, ISO, SOC, HIPAA et FedRAMP.

    Outre le stockage d'images de conteneur dans Container Registry, vous pouvez stocker des listes de manifestes, parfois appelées images multiarchitectures, pour prendre en charge plusieurs architectures, telles que ARM et AMD64. Pour identifier et atténuer les failles de sécurité potentielles, activez l'analyse pour toutes les images chargées vers Container Registry. Vous devez également signer vos images de conteneur pour vous assurer que seules les images autorisées et sécurisées sont déployées sur OKE.

  • Automatisez la compilation, les tests et le déploiement

    Présentation
    L'intégration continue et le déploiement continu (CI/CD) sont des outils et des procédures que les équipes de développement utilisent pour apporter fréquemment et de manière fiable des modifications de code. Les bonnes pratiques CI/CD comprennent la révision du code, des conseils pour les tests unitaires, les tests d’intégration, les contrôles de code, le dépôt de tickets et le déploiement d’applications dans des environnements de développement et de test.

    L'intégration continue consiste en une pratique dans laquelle les développeurs intègrent fréquemment leurs modifications de code dans la branche principale d'un dépôt partagé. Les modifications des développeurs sont validées par la création d'une compilation, puis par l'exécution de tests automatisés. Ces tests garantissent que votre application fonctionne toujours correctement lorsque de nouvelles modifications sont intégrées dans la branche principale.

    Les avantages de l'intégration continue sont les suivants :

    • Moins de bugs sont expédiés en production, car les tests automatisés détectent les bugs de régression rapidement
    • Les problèmes d'intégration sont résolus plus tôt, ce qui facilite le processus de compilation
    • Les erreurs sont détectées et localisées plus rapidement et plus facilement, car les modifications sont généralement simples

    La livraison continue va plus loin que l'intégration continue. Après les tests, une compilation est automatiquement fournie à un environnement de test et/ou de production. L'objectif de la livraison continue est de toujours disposer d'une base de code prête pour le déploiement dans un environnement de production client.

    Les avantages supplémentaires de la livraison continue sont les suivants :

    • L'automatisation des déploiements complexes permet à votre équipe de consacrer moins de temps à la préparation d'une nouvelle version
    • De nouvelles versions sortent plus fréquemment, ce qui accélère la boucle de réaction des clients
    • Les itérations sont plus rapides, car vous subissez moins de pression au moment de prendre des décisions concernant des changements mineurs

    Le déploiement continu va plus loin que la livraison continue ; chaque modification qui réussit tous les tests est déployée automatiquement dans votre environnement de production client. Aucune intervention humaine n'est nécessaire ; seul un test ayant échoué peut empêcher le déploiement d'une nouvelle modification en production. Sans intervention humaine, le déploiement continu dépend fortement de la qualité des tests.

    Les avantages supplémentaires du déploiement continu sont les suivants :

    • Le développement est plus rapide, car il n'est pas nécessaire de réaliser des pauses pour les nouvelles versions
    • La satisfaction des clients augmente grâce à la meilleure qualité et au flux continu d'améliorations

    L'intégration continue et le déploiement continu fournissent les bonnes pratiques pour stocker, intégrer, déployer et gérer du code afin d'automatiser la création de vos applications. Ces bonnes pratiques sont les suivantes :

    • Utilisez un dépôt de code Git pour stocker tout votre code. Utilisez un service d'artefact non mutable pour stocker les ressources dérivées.
    • Pour implémenter l'intégration continue, fusionnez tout le code dans un branchement "version préliminaire" au moins une fois par jour. Lorsque vous fusionnez du code dans ce branchement, assurez-vous que les versions sont déclenchées automatiquement. Dans le cadre du processus de compilation, exécutez tous les tests d'unitaires et corrigez immédiatement les échecs de processus avant de poursuivre le développement dans la branche de version candidate. Utilisez des analyses de sécurité sur le code pour détecter les vulnérabilités. Ne stockez aucun artefact présentant une vulnérabilité. Corrigez toutes les vulnérabilités de la branche de la version préliminaire avant de poursuivre le développement.
    • Pour implémenter un déploiement continu, déployez automatiquement des versions préliminaires dans un environnement de test ou utilisez des déploiements canary Lorsque les déploiements de test réussissent, ils sont automatiquement promus en production complète. Si les déploiements de test échouent, résolvez immédiatement les problèmes avant de poursuivre le développement dans la branche de la version candidate. Utilisez les fonctionnalités de sécurité dans le cadre des déploiements pour empêcher le déploiement d'artefacts non autorisés et vulnérables sur l'infrastructure.
    • Dans l'environnement de production, utilisez les outils de surveillance pour évaluer l'état des applications déployées et détecter les vulnérabilités postérieures au déploiement. Si des problèmes sont détectés, implémentez l'annulation automatique sur la version précédente. Effectuez des vérifications de sécurité dans l'environnement post-déploiement et résolvez immédiatement les problèmes détectés.

    Recommandations d'Oracle
    Utilisez le service DevOps pour automatiser le déploiement de vos applications natives du cloud. Tout d'abord, stockez le code dans un référentiel de code DevOps et créez un branchement de version. Travaillez par petites étapes pour apporter des modifications au branchement de version et rapprochez quotidiennement les problèmes de branches afin de maintenir sa stabilité. Utilisez ensuite la fonctionnalité des déclencheurs dans le dépôt de code pour démarrer automatiquement un processus de compilation DevOps.

    Utilisez un seul processus de compilation DevOps pour créer tous les artefacts associés au dépôt de code. Si la compilation échoue, configurez le processus de compilation pour qu'il attende l'approbation avant qu'elle soit terminée. La demande d'approbation doit être adressée à l'émetteur qui a déclenché la construction, et doit résoudre le problème par une nouvelle validation de code, puis approuver la fin de la construction. Pour des versions réussies, configurez le processus de construction afin de transmettre automatiquement les artefacts au service Oracle Cloud Infrastructure Artifacts Registry et de déclencher automatiquement un processus de déploiement DevOps.

    Utilisez Resource Manager pour créer tous vos environnements d'infrastructure dans une zone de sécurité maximale afin de bénéficier automatiquement de la sécurité de déploiement. En utilisant Resource Manager, vous pouvez utiliser l’infrastructure en tant que code pour automatiser la création d’infrastructure dans toutes vos régions de manière cohérente. Vous pouvez ensuite configurer le processus de déploiement DevOps pour qu'il soit toujours déployé sur les ressources que vous avez créées dans la zone de sécurité.

    Créez un pipeline de déploiement DevOps unique qui déploie tous les artefacts créés à partir d'un pipeline de création unique. Organisez les environnements de déploiement, tels que la région OCI, le domaine de disponibilité et le domaine de pannes. Configurez le processus à l'aide d'une stratégie de déploiement canary, continu ou bleu-vert. Configurez-le également pour déclencher automatiquement les tests. Activez OCI Monitoring et Application Performance Monitoring sur votre application et votre infrastructure pour détecter les problèmes.

    Si aucun problème n'est détecté et que les tests sont terminés, configurez le pipeline de déploiement pour déployer automatiquement les artefacts vers l'environnement suivant dans la stratégie de déploiement jusqu'à ce que les artefacts soient entièrement déployés dans tous les environnements de production. Lors du déploiement dans l'environnement de production, configurez le pipeline de sorte qu'il se déploie dans tous les domaines de défaillance d'un domaine de disponibilité, un par un. Déployez sur un domaine de disponibilité à la fois dans une région avant de passer à la région suivante. Continuez à utiliser OCI Monitoring and Application Performance Monitoring sur l’application et l’infrastructure pour détecter rapidement les problèmes. Configurez des alertes et, si des mesures clés changent brusquement lors du déploiement, faites échouer automatiquement ce déploiement et déclenchez un retour à la version précédente.

  • Utilisez les services gérés pour éliminer la complexité du développement et des opérations d'applications

    Présentation
    Un service géré fournit des fonctionnalités spécifiques sans que vous ayez à effectuer des tâches de maintenance liées à l'optimisation des performances, de la disponibilité, de la mise à l'échelle, de la sécurité ou de la mise à niveau. Avec un service géré, vous pouvez vous consacrer plus de temps à fournir des fonctionnalités à vos clients plutôt qu'à gérer la complexité des opérations.

    Un service Oracle Cloud Infrastructure (OCI) géré fournit un composant évolutif et sécurisé pour le développement natif du cloud. Utilisez les services gérés pour développer et exécuter votre application et stocker ses données. De plus, vous bénéficiez de meilleures solutions sans avoir besoin d’expertise dans chaque domaine pour créer et utiliser vos applications.

    Détails du principe
    Les services gérés vous permettent de créer des applications hautement disponibles, évolutives, agiles et performantes avec sécurité, conformité et résilience.

    Les services gérés créent une abstraction pour la complexité des composants sous-jacents, ce qui facilite le stockage et l'extraction des données, ou la création et l'exécution de votre application. Ces services s'intègrent aux outils qui permettent la création, le test et le déploiement automatisés de votre application. Les services gérés améliorent la productivité et réduisent les délais de mise sur le marché.

    Les services gérés centralisent et automatisent diverses tâches de gestion de l’infrastructure, éliminant les erreurs humaines et le besoin de compétences spécialisées. L'infrastructure sous-jacente est maintenue à jour et sécurisée tandis que les services vous permettent de surveiller et de suivre les modifications ou l'accès, ce qui garantit la confidentialité et l'intégrité de vos applications et données.

    Les services gérés sont hautement disponibles et évolutifs, ce qui facilite la satisfaction des besoins de votre application et vous ne payez que pour ce que vous utilisez. Vous pouvez commencer à petite échelle et évoluer par la suite sans subir de dégradation des performances ou de la fiabilité.

    Recommandations d'Oracle
    Nous recommandons les services cloud suivants :

    • Oracle Autonomous Database pour gérer les données pour l'entreposage de données ou le traitement des transactions. Autonomous Database offre des bases de données en mémoire, NoSQL et SQL avec un avantage autonome pour réduire les frais généraux de gestion.
    • Oracle Cloud Infrastructure Container Engine for Kubernetes pour créer, exécuter et gérer vos conteneurs.
    • Oracle Functions pour créer, exécuter et dimensionner des applications éphémères de manière sécurisée et isolée sans gérer d'infrastructure.
    • Oracle API Gateway pour créer des adresses privées ou publiques protégées et régies à partir des spécifications de votre API.
    • Oracle Cloud Infrastructure Object Storage pour stocker ou extraire en toute sécurité une quantité illimitée de données non structurées de tout type de contenu. Ce service évolue de manière transparente, sans aucune dégradation des performances ou de la fiabilité.
    • Les services Oracle Cloud Observability and Management Platform s'intègrent à tous les services précédents pour permettre une visibilité sur les journaux, les mesures et les événements.
    • Oracle Applications Express (APEX) pour créer rapidement des applications low-code modernes reposant sur des données. APEX peut optimiser la disponibilité et l'évolutivité pour répondre aux besoins en constante évolution de votre application low-code. Il permet une gestion automatisée, des performances élevées cohérentes, une mise à l'échelle automatique et une administration simplifiée.

    Ces services sont hautement disponibles, proposent des performances élevées et sont élastiques. Leur infrastructure sous-jacente est gérée et corrigée pour garantir la sécurité de votre application.

  • Ne conservez pas d'état au niveau de votre application

    Présentation
    L'état d'une application peut se composer de nombreux éléments, notamment des caches de données, des préférences d'un utilisateur, de la personnalisation, des messages échangés entre services, de la position dans un processus en plusieurs étapes, du déploiement d'application, de la configuration d'exécution et de la session d'un utilisateur (par exemple, la page visitée pour la dernière fois par un utilisateur ou la taille et les éléments du panier de l'utilisateur). La perte de l'état de votre application peut entraîner la disparition de données, un dysfonctionnement de votre application, une expérience utilisateur non optimale et parfois un échec complet de l'application.

    Si vous stockez l'état de votre application sur des systèmes de fichiers locaux ou dans la mémoire d'un hôte unique, il se peut qu'il soit perdu si votre application subit des pannes, telles que des redémarrages ou des défaillances de disque localisées. Enregistrez plutôt l'état dans des magasins de persistance externes. Utilisez un minimum de magasins de persistance que possible, idéalement un seul, pour assurer la cohérence des données.

    Détails du principe
    Les éléments de l'état d'une application sont traditionnellement stockés en tant qu'artefacts multiples dans différents formats, tels que les objets sérialisés, les documents JSON ou XML ou les fichiers texte. Si ces éléments sont stockés dans plusieurs magasins de persistance, tels que des systèmes de fichiers externes, des banques de messages, des banques d'objets, plusieurs bases de données ou un stockage de blocs élastique, il est possible que les différents magasins de données ne soient pas synchronisés, ce qui entraînerait des incohérences d'état. Une application doit également implémenter des transactions, permettre des jointures et être idempotente pour garantir la cohérence des données lorsque l'état doit être mis à jour en tant qu'unité.

    En éparpillant les éléments de l'état d'une application dans plusieurs magasins, le risque de vulnérabilités de sécurité augmente. Les opérations de cycle de vie, telles que l’ajout et la suppression de nœuds, l’application de correctifs, la sauvegarde et la récupération, ainsi que la réplication en cas de sinistre et de reprise, sont extrêmement complexes et nécessitent une attention particulière pour maintenir la cohérence de l’état entre les différents magasins.

    Par conséquent, une meilleure approche consiste à stocker toutes les données d'état de votre application dans une seule base de données si possible. Les données restent cohérentes dans un seul magasin et sont plus faciles à gérer. Cette approche permet de remplacer les instances d'application. Cela est particulièrement utile avec les architectures, d'application modernes telles que les microservices élastiques ou les instances éphémères où une instance existe uniquement pour traiter une ou plusieurs demandes. L'ajout d'un noeud est simplifié car un nouveau noeud peut obtenir la dernière copie de l'état et la suppression d'un noeud n'entraîne pas la perte totale de l'état. Les correctifs peuvent être appliqués de manière non simultanée uniquement en remplaçant le ou les exécutable(s). Un nœud peut être restauré à partir de sauvegardes et obtenir l'état à partir de la base de données . L'état peut être répliqué de manière cohérente en tant qu'unité vers différentes régions pour la récupération après sinistre. Le fait d'avoir un état cohérent dans différentes régions peut garantir qu'il n'y aura aucun problème fonctionnel dans votre application après un basculement ou une permutation.

    Recommandations d'Oracle
    Si votre application utilise une base de données, utilisez la même base de données pour stocker son état. Une base de données offre une meilleure disponibilité, intégrité et sécurité que les autres solutions, telles que les fichiers ou les représentations en mémoire. Idéalement, utilisez une base de données multimodèle (qui peut stocker différents formats) pour stocker tous les éléments de l'état de votre application. Le recours à une base de données multimodèle au lieu de plusieurs banques de données à usage unique vous permet également d'atteindre et de maintenir facilement la cohérence entre tous les éléments de l'état de votre application. (Remarque : Bien qu'il soit permis de stocker l'état mis en cache dans l'application, l'application doit être conçue pour utiliser la base de données comme source d'informations et pouvoir recréer son état à partir de la base de données.) Oracle Database est l’idéal à cette fin. Il stocke différents formats et fournit des performances prévisibles. Par conséquent, le stockage de l'état de votre application ne dégrade pas les performances de votre application.

    Si votre application n'utilise pas de base de données, utilisez d'autres magasins de persistance durable, tels qu'Oracle Cloud Infrastructure Object Storage, pour stocker l'état. Si l'état de l'application ne peut pas être conservé dans un magasin de données unique, concevez votre application pour stocker l'état dans plusieurs magasins de données qui peuvent être synchronisés et récupérés en tant qu'unité cohérente en cas d'échec.

    Vous trouverez ci-dessous quelques suggestions concernant le stockage de l'état dans Oracle Database.

    • État de l'objet de session utilisateur : utilisez JSON un mapping, objet/relation tel que JPA ou des tables relationnelles.
    • Caches de données locaux : pour les données mises en cache dans le niveau d'application, la source d'informations doit être la base de données. Les caches doivent être reconstruits au démarrage de l'application ou quand le besoin s'en fait sentir. Les mises à jour des caches doivent utiliser la méthode d'écriture différée, qui met à jour la base de données de back-end. D'autres instances de cache dans les instances d'application doivent être informées des modifications afin que les caches puissent être actualisés.
    • Données de configuration d'application : il s'agit d'artefacts tels que les points de terminaison de connexion, les limites, les niveaux de journalisation, les destinations de journal et les numéros de port généralement stockés en tant que documents JSON, fichiers XML ou fichiers de propriétés. Utilisez le type de données approprié pour stocker ces données dans une base de données.
    • Communication interprocessus ou appels de processus distants : généralement, les microservices et les composants d'application communiquent entre eux à l'aide de messages. Utilisez les files d'attente de transaction d'Oracle Database pour rendre ces messages durables et pour que les messages survivent et soient traités même en cas de panne.
    • Texte (comme les enregistrements de journal d'audit) : les applications génèrent des fichiers journaux tels que les journaux d'audit et les journaux de diagnostic. Utilisez la fonctionnalité Oracle Text pour stocker ces journaux de manière centralisée.
    • Surveillance des performances : les applications génèrent des mesures ou des données de série temporelle à des fins de surveillance des performances. Utilisez des données de série temporelle Oracle Database ou des fonctionnalités de données JSON pour stocker ces données.
    • Etat du processus : certains moteurs de processus stockent l'état de l'application localement et le basculement de ces processus peut provoquer une perte de l'état. Utilisez le moteur de processus dans la base de données pour éviter de tels problèmes. Configurez au minimum les moteurs de processus pour qu'ils utilisent la base de données en tant que stockage de persistance pour son état.
  • Utilisez une base de données convergée avec une prise en charge complète de toutes les données

    Présentation
    Votre application peut utiliser les données sous différents formats, tels que les tableaux (relatifs), non structurés, XML, JSON, spatiaux ou de graphes. Traditionnellement, il fallait un type de base de données différent pour chaque format de données. Par exemple, une base de données relationnelle pour les données relationnelles, une banque de documents pour les données non structurées ou une base de données de graphes pour les données liées hiérarchiquement. Toutefois, l'utilisation de plusieurs bases de données entraîne souvent davantage de complexité opérationnelle et d'incohérence des données. Utilisez plutôt une base de données multimodèle pour stocker, indexer et rechercher plusieurs types et formats de données.

    Tirez parti des fonctionnalités de base de données pour simplifier la logique de votre application. Par exemple, utilisez SQL pour les requêtes, les jointures et les analyses, les transactions pour garantir la cohérence et l'isolement, et utilisez des algorithmes de machine learning et des fonctions d'analyse intégrés pour éviter les transferts de données inutiles. Pour protéger les données sensibles, utilisez les fonctionnalités de sécurité et le contrôle d'accès de la base de données, et utilisez la réplication pour améliorer la disponibilité, l'évolutivité et la résilience de vos applications.

    Détails du principe
    Utilisez une base de données multimodèle pour stocker différents types de données, tels que des documents JSON, des graphes de propriétés et des données relationnelles. Les bases de données multimodèles avancées offrent une prise en charge complète de tout type de données stockées dans la base. Vous pouvez stocker un nouveau document JSON, insérer des lignes relationnelles et mettre à jour un graphique de propriétés dans la même transaction ACID. Vous pouvez utiliser des instructions SQL pour effectuer des jointures, des filtres et des agrégations entre ces différents types de données, ce qui garantit la cohérence et la simultanéité élevées auxquelles vous êtes habitués à partir de bases de données relationnelles. En plus de proposer ce riche ensemble de fonctionnalités, les bases de données multimodèle peuvent également être utilisées en tant que banques de données à usage unique accessibles à l'aide d'API naturelles autres que SQL, telles que les API REST, les API de magasin de documents et les API de graphes.

    La réutilisabilité constitue un avantage clé de l'utilisation d'une base de données multimodèle. Bien que les données puissent être de types et de formes différents, la technologie sous-jacente permettant de gérer ces données ne change pas. Nous n'avez donc pas besoin d'apprendre plusieurs technologies de base de données pour chaque type de données et de comprendre comment utiliser et régler chacune d'entre elles. Étant donné que vous conservez la même technologie, vous n'avez pas à réécrire le code de votre application. En outre, les bases de données multimodèle améliorent la résilience de votre application en réduisant la fragmentation des données, ce qui facilite les sauvegardes et la récupération.

    Recommandations d'Oracle
    Utilisez Oracle Autonomous Database, une base de données convergée et multimodèle, pour stocker, gérer et analyser toutes vos données. Facilitez la maintenance de votre application en utilisant des vues pour exposer les données dans des tables de sorte que le schéma sous-jacent puisse être modifié sans perturber le fonctionnement de vos applications existantes. Utilisez la redéfinition basée sur l'édition pour mettre à niveau votre application sans temps d'arrêt. Utilisez Oracle Data Safe pour implémenter et évaluer les contrôles de sécurité, masquer les données sensibles et auditer les accès aux données. Utilisez Oracle Data Guard comme cache de lecture hautement évolutif pour vos données et pour conserver une sauvegarde cohérente pour la reprise après sinistre.

    Oracle Autonomous Database effectue des tâches opérationnelles sans incidence ni interruption sur le workload. Vous n'avez donc pas besoin d'ajouter de logique de compensation complexe à l'application pour gérer les scénarios de redimensionnement ou de basculement. La base de données gère les ressources telles que les processeurs et le stockage de manière indépendante et offre une évolutivité bidirectionnelle et élastique.

  • Surveillance et traçage de bout en bout des instruments

    Présentation
    Une requête d'un utilisateur peut suivre un chemin complexe sur les différents services ou microservices qui constituent une application moderne. Le suivi de bout en bout suit le parcours de chaque demande depuis sa source vers les profondeurs de votre infrastructure et vous aide à déboguer la cause principale d'un problème. Le suivi est généralement utilisé comme outil de diagnostic, avertissant vos développeurs lorsque votre application ne fonctionne pas comme prévu.

    Les développeurs, administrateurs et responsables de la sécurité doivent disposer d'une compréhension fiable et opportune de l'état, des performances, de l'état opérationnel et des éventuels incidents de sécurité d'une application. Ils peuvent ainsi vérifier que la fonction et les performances d'une application répondent aux attentes au cours du cycle de vie des tests et de la production alors que le diagnostic des incidents et la récupération des applications sont rationalisés. La surveillance et le suivi complets de bout en bout doivent être simples à implémenter et à gérer sans ajouter de complexité à votre application.

    Détails du principe
    Votre application peut ne pas se comporter comme prévu de nombreuses façons : par exemple, elle peut fonctionner mal ou tout simplement échouer. Contrairement à une application monolithique traditionnelle, une application construite à partir de microservices présente des difficultés de diagnostic supplémentaires en raison de multiples interactions entre ses composants.

    La fonction de trace est le meilleur moyen de comprendre rapidement ce qui arrive à la requête d'un utilisateur lorsqu'elle parcourt les microservices et d'autres composants (comme l'infrastructure) qui composent votre application. Utilisez le suivi de bout en bout pour collecter des données sur chaque requête de l'utilisateur, puis passez en revue les données pour voir où votre application peut rencontrer des goulets d'étranglement et des latences. Par exemple, une requête peut être transmise entre plusieurs microservices avant d'être exécutée. Sans un moyen de suivre l'ensemble du parcours d'une demande, il se révèle impossible de déterminer la cause première de son échec.

    Le suivi est généralement bien plus dirigé, ce qui vous permet de mieux comprendre le comportement de votre application en l'équipant d'outils, puis en collectant, regroupant et analysant les mesures. Un suivi exhaustif permet également une intégration intelligente et automatisée avec des outils utilisés pour ajuster dynamiquement la capacité des ressources et coordonner les réponses aux événements inattendus.

    Pour disposer d'une compréhension claire, précise et rapide de l'état opérationnel et de l'historique d'une application, il ne suffit pas seulement de mesurer l'expérience de l'utilisateur final. Vous devrez peut-être aussi vous conformer avec les législations régionales ou nationales, ce qui peut nécessiter de devoir générer, à la demande, des rapports d'activité détaillés ou des attestations concernant le traitement d'éléments de données sensibles spécifiques.

    En général, les solutions de surveillance doivent être compatibles avec les outils tiers en général et être adaptées aux outils d'administration de votre environnement en particulier. Il est important de maintenir la flexibilité de la conception et d'éviter toute dépendance vis-à-vis d'un fournisseur.

    Recommandations d'Oracle
    Intégrez dès le départ des fonctionnalités complètes de surveillance et de suivi dans votre application pour maintenir la cohérence tout au long de leur cycle de vie. Ces fonctionnalités doivent être simples à implémenter et à gérer sans complexifier le développement, les tests et le déploiement. Dans la mesure du possible, adoptez des solutions qui s'étendent pour répondre à la diversité des plates-formes que vous utilisez actuellement et qui pourraient être déployées à l'avenir.

    Les services Oracle Cloud Infrastructure (OCI), tels que Monitoring, sont conçus pour fournir une prise en charge prête à l'emploi pour la surveillance. De plus, vous pouvez étendre de nombreux services OCI pour vos composants d'application à l'aide d'une expérience de déploiement et de gestion cohérente via des API et des kits SDK pris en charge. Par exemple, vous pouvez ajouter la collecte automatisée de mesures de surveillance ou la capture de journaux avec un stockage centralisé pour toutes vos applications et machines virtuelles.

    Lors du développement et des tests, vous pouvez configurer les services pour qu'ils collectent uniquement des informations de base sur le débogage ou les tests de performances. Au fur et à mesure que votre application approche du déploiement en production, augmentez la portée, la fréquence et la traçabilité des informations collectées en effectuant des mises à jour simples des paramètres de configuration existants.

    Utilisez une collecte de données robuste et centralisée pour l'ensemble de votre environnement de location cloud, afin de fournir un emplacement unique pour l'analyse, l'investigation coordonnée et la génération d'alertes. Service Connector Hub offre des réponses flexibles, cohérentes et personnalisables aux événements. Logging Analytics permet d'analyser et d'investiguer efficacement tous vos systèmes de journalisation des événements cloud (et externes). Vous pouvez également utiliser Service Connector Hub, Oracle Functions et Oracle Notifications pour transformer des mesures et des journaux intégrés en alertes exploitables. Vous pouvez également tirer parti de nos intégrations avec des produits et services tiers, tels que Splunk et Grafana.

    Les services OCI suivants vous aident à consolider la journalisation, la surveillance et le suivi dans les environnements qui hébergent vos applications : Logging, Monitoring, Logging Analytics, Application Performance Monitoring, OS Management, Database management et Java management. Ces services entièrement gérés sont intégrés aux ressources d’infrastructure OCI courantes et fournissent des mécanismes pris en charge pour intégrer vos ressources d’application personnalisées.

  • Éliminez le point de défaillance unique grâce à la réplication automatisée des données et à la récupération des pannes

    Présentation
    Un point d'échec unique est un composant d'une application qui, en cas de défaillance, rend l'application entière indisponible ou non fiable. Lorsque vous développez une application qui doit être hautement disponible et fiable, utilisez la réplication automatisée des données pour vous assurer que la défaillance d'un seul composant n'entraîne pas de perte de données.

    La réplication des données sur plusieurs machines et l'utilisation de réseaux redondants vous protègent contre les pannes courantes des machines et du réseau. La réplication de vos données dans plusieurs data centers (ou « domaines de disponibilité ») répartis dans plusieurs régions géographiques vous protège contre les catastrophes locales, telles que les incendies, les tremblements de terre, les inondations ou les ouragans.

    Détails du principe
    Pour que votre application bénéficie d'une haute disponibilité, vous devez vous assurer que les données dont elle dépend restent disponibles même en cas d'échec. La clé de la haute disponibilité des données est la redondance via la réplication automatisée des données.

    La réplication est le processus consistant à copier et gérer des objets de base de données, tels que des tables, dans plusieurs bases de données qui constituent un système de base de données distribué. Les modifications appliquées sur un site sont capturées et stockées localement avant d'être transférées et appliquées sur chacune des répliques situées à des emplacements distants.

    Les bases de données répliquées peuvent fonctionner de deux manières différentes : le mode actif-passif et le mode actif-actif. En mode actif-passif, il existe une seule réplique principale et une ou plusieurs répliques secondaires ; seule la réplique principale participe au traitement des données d'application. En mode actif-actif, toutes les répliques participent au traitement des données. Ce mode améliore l'utilisation des ressources et la disponibilité, car aucun basculement entre le serveur principal et le serveur secondaire n'est nécessaire.

    La redondance garantit que les répliques de données échouent indépendamment. Les pannes de machine ou de disque sont généralement indépendantes, mais une panne réseau ou de courant peut entraîner l'échec simultané d'un groupe de machines. Pour vous protéger contre de tels incidents, les infrastructures réseau et d'alimentation doivent aussi être redondantes et les répliques de données doivent être placées soigneusement sur différentes machines et dans différentes régions qui ne peuvent pas échouer ensemble.

    Recommandations d'Oracle
    Les data centers d'Oracle Cloud Infrastructure (OCI) sont soigneusement conçus pour éliminer les points de défaillance en cas de catastrophes. Un data center ou un domaine de disponibilité standard contient plusieurs unités de panne indépendantes appelées domaines de pannes. Deux domaines de pannes indépendants ne peuvent pas échouer ensemble. De même, une seule région peut compter plusieurs domaines de disponibilité, séparés géographiquement pour s'assurer que deux d'entre eux ne puissent pas tomber en panne simultanément.

    Utilisez les services de stockage OCI, tels que Block Volumes, Object Storage et File Storage, pour répliquer des données dans les domaines de pannes et de disponibilité afin qu'aucun point de défaillance unique n'ait d'impact sur la disponibilité des données de votre application. Tirez parti de l'isolation résiliente des pannes intégrée à OCI grâce à Container Engine for Kubernetes pour déployer votre application sur plusieurs domaines de pannes et de disponibilité. Oracle Autonomous Database, Data Guard et GoldenGate fournissent une réplication matérielle et logicielle active-active pour la haute disponibilité, ainsi que l'application de correctifs et les mises à niveau sans temps d'arrêt. Utilisez ces services gérés pour bénéficier de données hautement disponibles sans avoir à créer ni à gérer votre infrastructure de stockage.

  • Implémentez des dispositifs automatisés de défense en profondeur pour sécuriser votre application et ses données

    Présentation
    La défense en profondeur est une approche dans laquelle plusieurs contrôles de sécurité indépendants et redondants agissent comme des couches de défense pour une application. Ces couches sont conçues pour assurer la sécurité même si l'une d'entre elles tombe en panne : par exemple, un pare-feu combiné à une détection d'intrusion.

    Toutefois, la gestion et la configuration manuelles des contrôles de sécurité peuvent être complexes, floues et sources d'erreurs, individuellement et collectivement. Au lieu de cela, sécurisez votre application et ses données à l'aide de contrôles de sécurité automatisés.

    Détails du principe
    La défense en profondeur permet de gérer les risques en utilisant divers contrôles qui couvrent les éléments physiques, techniques, administratifs, opérationnels, personnels et procéduraux de la sécurité. Étant donné qu'ils sont indépendants, ils fournissent une défense profonde qui lutte contre les défaillances, les exploits ou d'autres vulnérabilités de sécurité. Les contrôles sont conçus pour aborder les risques de différentes manières et fournir la journalisation, les audits et d'autres fonctionnalités afin que les tentatives de violation de sécurité soient détectées et signalées aux parties prenantes concernées.

    Plutôt que de devoir configurer manuellement un ensemble complexe de contrôles de sécurité, utilisez des contrôles automatisés simples et prescriptifs pour sécuriser votre application. Les contrôles de sécurité automatisés éliminent les erreurs humaines (une cause fondamentale de nombreux incidents de sécurité) et vous aident à sécuriser votre application et ses données sans que vous n'ayez à être un expert en sécurité.

    Recommandations d'Oracle
    Implémentez des contrôles de sécurité automatisés faciles à utiliser à toutes les étapes du cycle de vie des applications, y compris le développement, la création, les tests, le déploiement et l'exécution. Vérifiez les utilisateurs, les autorisations et les stratégies d'accès à chaque étape du cycle de vie et assurez-vous qu'un accès est octroyé seulement si nécessaire. Détectez les problèmes de sécurité au début du cycle de développement du logiciel. La détection précoce garantit que votre application est déployée en production avec les bonnes pratiques de l'architecture de sécurité et que les problèmes de sécurité opérationnelle causés par des erreurs de configuration ou des vulnérabilités divulguées sont détectés et atténués.

    Oracle Cloud Infrastructure (OCI) propose plusieurs services de sécurité automatisés pour sécuriser votre application et vos données client. Voici quelques recommandations concernant l'utilisation des services OCI :

    • Utilisez Web Application Firewall (WAF) pour limiter le trafic à partir d'emplacements inconnus. Pour la sécurité de la couche de transport (TLS), utilisez des certificats pour les équilibreurs de charge et l'autorotation. Activez WAF sur chaque équilibreur de charge qui dessert du contenu HTTPS. Activer les règles gérées par Oracle et régler les faux positifs. Limitez le trafic des pays avec lesquels vous n'utilisez pas de règles d'accès géo-IP. Utilisez l'intelligence des menaces dans WAF pour bloquer les noeuds Tor.
    • Utilisez Oracle Identity and Access Management (IAM) pour une approche de sécurité axée sur les identités qui facilite l'intégration et la gestion des utilisateurs. Utilisez IAM sur le front end de votre application pour authentifier les utilisateurs grâce à des méthodes d’authentification fortes tout en maintenant une expérience utilisateur optimale grâce à une sécurité adaptative tenant compte du contexte, une connexion fédérée ou sociale facultative, ou une authentification sans mot de passe (selon les exigences). Conformez-vous aux exigences réglementaires en permettant aux utilisateurs de gérer leur consentement pour les conditions d'utilisation et en respectant les exigences de résidence des données. Utilisez IAM sur le back-end pour limiter l’accès aux composants de votre application en fonction des besoins. Forcez les administrateurs à utiliser des options d'authentification à plusieurs facteurs (MFA) robustes. Appliquez des stratégies de sécurité robustes qui autorisent l'accès uniquement via des autorisations explicitement accordées. Séparez les responsabilités afin que l'accès soit limité à ceux qui en ont besoin.
    • Chiffrez les données au repos grâce à des clés stockées dans Oracle Cloud Infrastructure Vault, avec le soutien de modules de sécurité matériels. Utilisez de préférence des clés de chiffrement distinctes pour chaque service, mais alignez les entités Vault avec les compartiments. Faites pivoter les clés de chiffrement maître au moins une fois par an et les clés de données tous les trois mois. Utilisez un coffre privé en production et répliquez des clés dans les régions secondaires. Créez des sauvegardes et stockez-les avec Oracle Cloud Infrastructure Object Storage dans une région distincte. Sécurisez les clés de chiffrement et limitez l'accès aux clés uniquement à celles autorisées par le propriétaire de l'application.
    • Utilisez des principaux de sécurité intégrés pour autoriser les instances de calcul à effectuer des actions sur d'autres services OCI.
    • Appliquer le principe de l'accessibilité minimale à l'isolement des points de terminaison à l'aide de la fonctionnalité de groupes de sécurité réseau dans les réseaux cloud virtuels (VCN) d'OCI. Activez la journalisation NetFlow sur chaque VCN. Surveillez la journalisation DNS pour détecter le minage de cryptomonnaies ou les activités de command and control.
    • Lancez votre application dans une configuration sécurisée par défaut à l'aide d'Oracle Security Zones. Utilisez des zones de sécurité maximales pour créer des compartiments avec des sous-réseaux privés. Assurez-vous que l'accès des agents aux instances de calcul dans les sous-réseaux privés passe par Oracle Cloud Infrastructure Bastion.
    • Activez Oracle Cloud Guard, résolvez ou acceptez et désactivez tous les problèmes. Activer la notification sur la dérive et traiter les nouveaux problèmes avec urgence.
    • Activez Oracle Data Safe pour sécuriser les bases de données Oracle en surveillant les utilisateurs et les accès. Data Safe analyse également les bases de données pour connaître les bonnes pratiques en matière de sécurité et pour détecter les divergences.
    • Scannez régulièrement les instances et les conteneurs afin de détecter les problèmes de sécurité connus à l'aide d'Oracle Vulnerability Scanning Service.

Modèles d'architecture

Modèles avec choix de technologies recommandés.


Applications Web ou mobiles

Les applications Web contiennent généralement un front end qui correspond à ce que les utilisateurs voient et un back-end qui possède la logique métier. En réponse à une demande d'utilisateur ou d'API, une application Web interagit avec l'API ou avec des données stockées dans un système de fichiers, un stockage d'objets, un stockage de blocs ou une base de données. L'application doit prendre en charge différents clients, tels que les navigateurs et les appareils mobiles, et interagir avec d'autres systèmes et applications à l'aide d'API.

Messagerie

Les solutions de messagerie connectent les composants des applications, y compris les solutions on-premise existantes entre systèmes et cloud. Cela peut permettre le transfert de données dans le cadre d'un pipeline de traitement distribué bien défini ou la publication de messages vers plusieurs systèmes en aval indépendants qui évoluent indépendamment.

Événementiel

Dans le cloud, un événement est une occurrence ou une modification importante d'un système. Les principes fondamentaux d'une architecture orientée événement sont les événements de capture, de communication, de traitement et de persistance. Lors de la création d'une application orientée événements sur Oracle Cloud Infrastructure (OCI), vous pouvez vous abonner aux modifications apportées à vos ressources cloud et aux événements générés par votre application. Vous pouvez ainsi y répondre quasiment en temps réel. La plupart des applications modernes construites avec des microservices reposent sur une architecture orientée événement.

Big Data et analyse

Le Big Data est un ensemble de fonctionnalités et de modèles qui vous permettent de gérer, de collecter, de stocker, de cataloguer, de préparer, de traiter et d'analyser tous les types de données (non structurés, semi-structurés et structurés), qu'ils proviennent de sources telles que des bases de données, des vidéos, des formulaires, des documents, des fichiers journaux, des pages Web ou des images. Les fonctionnalités Big Data d’Oracle couvrent divers services et outils afin que vous puissiez commencer votre transition vers le Big Data en fonction de vos compétences et préférences.

Machine learning (ML) et IA

Les data scientists et les ingénieurs en machine learning ne veulent pas passer du temps à provisionner, à mettre à niveau, à appliquer des correctifs et à sécuriser l’infrastructure. Ils veulent créer, former, déployer et surveiller des modèles qui ont un impact sur l’entreprise. Une plate-forme de machine learning doit être entièrement gérée et leur permettre d'effectuer toutes ces étapes du cycle de développement du modèle.

Extensions SaaS

Oracle Fusion Cloud, l'offre Enterprise Software as a Service (SaaS) d'Oracle, couvre des solutions dans des domaines tels que HCM, ERP, SCM et CX. Il fournit des fonctionnalités étendues, mais parfois les organisations veulent créer une interface utilisateur personnalisée et des processus métier qui étendent ces fonctionnalités. Ces applications d'extension s'intègrent avec les informations d'Oracle Fusion Cloud, utilisent la même couche de sécurité et souvent des données de fusion d'autres systèmes, offrant ainsi une expérience utilisateur qui s'intègre en toute transparence aux applications Oracle Cloud.

Low-code

Les plates-formes low-code conviennent bien à la création d’applications opportunistes en collaboration avec les parties prenantes de l’entreprise, à la création d’applications de reporting et d’analyse des données, à l’extension des applications SaaS et à la modernisation des anciennes applications. Chaque ligne de code a un coût associé à sa création, sa maintenance, son débogage, sa mise à niveau et sa sécurité. Oracle Application Express (APEX) aide les développeurs à éviter ces coûts en fournissant des composants de haut niveau et des modèles de conception courants grâce à une expérience de développement graphique et intuitif.

Recommandations de technologies et de plates-formes