Découvrez le coût réel d’un site web vitrine ou catalogue en 2025. Tarifs, solutions, prestataires, erreurs à éviter et frais cachés.

Combien coûte un site internet professionnel en 2025 ?

Vous voulez créer un site vitrine ou refondre un site existant ? Voici un guide clair pour comprendre les tarifs, comparer les solutions et éviter les mauvaises surprises.

1. Quels facteurs influencent le coût d’un site web ?

  • Design : thème prêt à l’emploi ou création sur-mesure.
  • Fonctionnalités : blog, réservation, formulaire avancé, etc.
  • SEO & responsive : pour être visible sur Google et performant sur mobile.
  • Prestataire choisi : freelance, agence, plateforme DIY ou CMS.

2. Tarifs moyens en 2025

Type de prestation Coût estimé Avantages / Inconvénients
Plateforme DIY (Wix, IONOS…) 5 à 50 €/mois Facile à utiliser, mais limité en SEO et en personnalisation
Freelance débutant 500 à 1 500 € Budget abordable, mais accompagnement limité
Freelance expérimenté / micro-agence 1 500 à 3 000 € Personnalisation correcte, bon rapport qualité/prix
Agence web locale 3 000 à 6 000 € Design professionnel, stratégie SEO de base
Agence premium / développement sur-mesure 6 000 à 15 000 €+ Projets complexes, design unique, SEO avancé

3. Création vs Refonte : quelle différence de prix ?

Créer un site de zéro est plus coûteux qu'une simple refonte visuelle. Mais si votre ancien site est obsolète, repartir de zéro peut être plus rentable à long terme.

4. Coûts annexes à anticiper

  • Nom de domaine : 10 à 30 €/an
  • Hébergement : 5 à 60 €/mois selon les ressources
  • Maintenance : de 30 à 200 €/mois ou plus pour support avancé
  • SEO / référencement : optionnel mais fortement recommandé

5. Bien choisir son prestataire web

Comparez plusieurs devis, vérifiez les références, et soyez clair sur vos objectifs : visibilité locale, génération de leads, vente en ligne, etc.

6. Erreurs fréquentes qui font exploser le budget

  • Se focaliser uniquement sur le prix bas
  • Négliger le référencement
  • Oublier les frais cachés : hébergement, maintenance, support

7. En résumé

Le prix d’un site web en 2025 dépend surtout de vos besoins, de la solution choisie et du niveau d’accompagnement.

Site vitrine simple : 1 500 à 3 000 €
Site avancé : 3 000 à 8 000 €
Projet complexe : 10 000 € ou plus

Ajoutez 10 à 20% par an pour les frais d’entretien et d’évolution.

Besoin d’un devis sur mesure avec stratégie SEO incluse ?

📩 Contactez-nous à : [email protected]

Lire la suite

Bonnes pratiques de sécurité Azure pour 2025

🔐 Bonnes pratiques de sécurité Azure en 2025

Comment sécuriser efficacement votre environnement Azure selon les recommandations les plus récentes.

1. Gestion des identités & accès (IAM)

  • Multifactor Authentication (MFA) : à activer pour tous les comptes, en particulier les administrateurs. Les comptes protégés par MFA sont compromis jusqu’à 99,99 % moins souvent que les comptes uniquement par mot de passe :contentReference[oaicite:1]{index=1}.
  • Utilisation des Security Defaults pour imposer MFA et bloquer les anciens protocoles d’authentification :contentReference[oaicite:2]{index=2}.
  • Policies Conditional Access pour exiger MFA selon le risque, l’emplacement, le type d’appareil :contentReference[oaicite:3]{index=3}.
  • Privileged Identity Management (PIM) : accès à privilèges just-in-time, enregistré et limité dans le temps. Permet d’activer temporairement un rôle administrateur, avec approbation et justification :contentReference[oaicite:4]{index=4}.
  • Comptes d’urgence (« break‑glass ») : comptes admin séparés pour les situations critiques, non utilisés au quotidien, régulièrement audités :contentReference[oaicite:5]{index=5}.
  • Station de travail privilégiée (PAW) : poste dédié à usage administratif seulement, protégé contre navigation ou email standard :contentReference[oaicite:6]{index=6}.

2. Adoptez le modèle Zero Trust & la micro-segmentation

Le modèle Zero Trust est désormais essentiel dans les environnements Azure :

  • Vérifier systématiquement identité, appareil, contexte d’accès à chaque requête (« Verify Explicitly »)
  • Limiter les permissions au strict minimum (« least privilege »)
  • Segmenter le réseau via NSG, Private Link ou firewalls pour éviter les mouvements latéraux :contentReference[oaicite:7]{index=7}.
  • Intégrer Azure Defender et Sentinel pour surveiller les accès et menaces depuis la base :contentReference[oaicite:8]{index=8}.

3. Sécurisation du réseau & périmètre

  • Azure Firewall pour filtrage, prévention intrusion, antimalware, DDoS.
  • Groupes de sécurité réseau (NSG) au niveau VM ou subnet pour contrôler précisément les flux réseau :contentReference[oaicite:9]{index=9}.
  • ExpressRoute ou Private Link : limites l’exposition à Internet public :contentReference[oaicite:10]{index=10}.

4. Chiffrement des données

  • Chiffrement au repos : Azure Disk Encryption, Transparent Data Encryption (TDE), clés gérées par Microsoft (PMK) ou client (CMK) via Azure Key Vault :contentReference[oaicite:11]{index=11}.
  • Chiffrement en transit : usage obligatoire de TLS 1.2+ / TLS 1.3 et HTTPS :contentReference[oaicite:12]{index=12}.
  • Gestion des secrets : centralisez les secrets dans Azure Key Vault, évitez les mots de passe dans le code ou les fichiers de configuration :contentReference[oaicite:13]{index=13}.

5. Surveillance, détection & réponse

  • Microsoft Defender for Cloud (anciennement Azure Security Center) : détection proactive des vulnérabilités et recommandations de remédiation :contentReference[oaicite:14]{index=14}.
  • Azure Sentinel : SIEM cloud-natif avec possibilités d’automatisation (SOAR), détection d’anomalies et réponse (playbooks) :contentReference[oaicite:15]{index=15}.
  • Logs centralisés : Azure Activity Logs, Entra Audit Logs + Log Analytics pour traçabilité complète et alertes :contentReference[oaicite:16]{index=16}.
  • Surveillance des accès élevés (Elevated Access) via enregistrement et alertes automatiques, notamment avec Sentinel :contentReference[oaicite:17]{index=17}.

6. Automatisation & conformité

  • Infrastructure as Code (IaC) : Terraform, ARM templates garantissent déploiement cohérent, revu et versionné.
  • Azure Policy & Blueprints pour appliquer des règles de configuration obligatoires et conformité continue :contentReference[oaicite:18]{index=18}.
  • Mises à jour automatisées via Azure Update Manager, avec patch des VM et containers pour réduire les risques exploités :contentReference[oaicite:19]{index=19}.

7. Résilience & sauvegarde

  • Azure Backup & Site Recovery : politiques de rétention, tests réguliers de restauration pour assurer reprise en cas d’incident.
  • Soft delete & SAS expirables pour limiter l’exposition des objets blob à accès public :contentReference[oaicite:20]{index=20}.

8. Culture sécurité & gouvernance

  • Secure Future Initiative (SFI) : 34 000 ingénieurs Microsoft mobilisés autour de la sécurité, inventaire des identités, suppression de comptes inactifs, transparence sur les CVEs :contentReference[oaicite:21]{index=21}.
  • Formation continue, évaluations individuels prises en compte sur la sécurité, gouvernance structurée au niveau CISO :contentReference[oaicite:22]{index=22}.

🧾 Résumé synthétique

DomaineBonnes pratiques clés
IAM & accèsMFA, RBAC, PIM, PAWs, comptes break‑glass
Zero TrustAuthentification continue, segmentation de réseau
RéseauFirewall, NSG, segmentation stricte, ExpressRoute
ChiffrementTDE, TLS, Key Vault
Détection & réponseDefender, Sentinel, logs centralisés
AutomatisationIaC, Policy & Blueprints, patch automatisé
RésilienceSauvegarde, soft delete, SAS
Culture & gouvernanceSFI, formation, audits réguliers

Conclusion

La sécurité dans Azure en 2025 repose sur l’**identité forte**, une stratégie **Zero Trust**, une supervision proactive, une **automatisation intelligente**, et une **culture de sécurité partagée**. Les failles de configuration restent présentes, mais une gouvernance rigoureuse et des outils natifs puissants permettent de bâtir une infrastructure résiliente et bien protégée.

Lire la suite

Bonnes pratiques d’infrastructure Azure et optimisation des coûts

Microsoft Azure est une plateforme cloud puissante, mais une mauvaise configuration peut entraîner une explosion des coûts. Dans cet article, découvrez les meilleures pratiques pour construire une infrastructure Azure performante, sécurisée et surtout économique.

🧱 Concevoir une architecture Cloud modulaire et scalable

🔹 Utiliser les Azure Resource Groups efficacement

  • Organisez vos ressources par projet ou environnement (dev, test, prod).
  • Facilite la gestion, la sécurité et les automatisations.

🔹 Adopter l’Infrastructure as Code (IaC)

Utilisez des outils comme Terraform, Bicep ou les ARM Templates pour des déploiements reproductibles et auditables.

🔹 Privilégier les services managés Azure

Azure App Service, Azure SQL Database ou Cosmos DB offrent des services scalables sans maintenance d’infrastructure.

🛡️ Sécurité et gouvernance dans Azure

🔸 Utiliser Azure Policy et Blueprints

Ces outils permettent d'appliquer des règles de conformité et de sécurité automatiquement à l’ensemble des ressources Azure.

🔸 Mettre en place le RBAC (Role-Based Access Control)

Accordez des droits minimums pour chaque rôle utilisateur et évitez les accès administrateur globaux.

🔸 Superviser avec Azure Monitor et Log Analytics

Centralisez vos logs et configurez des alertes en temps réel pour assurer la disponibilité et la performance de vos services.

💰 Réduction des coûts sur Azure : stratégies clés

🔻 Dimensionner correctement les ressources

Analysez les usages réels avec Azure Advisor et ajustez la taille des VMs, bases de données ou services.

🔻 Exploiter l’élasticité du cloud

Utilisez l’auto-scale sur App Service ou AKS. Automatisez l'arrêt des environnements non utilisés avec Azure Automation.

🔻 Réserver les ressources stables (Reserved Instances)

Jusqu’à 72% d’économies sur 1 à 3 ans en réservant des machines virtuelles ou services Azure.

🔻 Optimiser le stockage

Supprimez les disques inutilisés, choisissez la bonne classe de stockage (Hot, Cool, Archive).

🔻 Suivre les dépenses avec Azure Cost Management

Visualisez vos dépenses, définissez des budgets, recevez des alertes de dépassement et analysez les postes de coûts.

⚙️ Automatiser avec DevOps pour maîtriser les coûts

  • Ajoutez des étapes de vérification des coûts dans vos pipelines CI/CD.
  • Automatisez l'arrêt ou la suppression des ressources inactives.

📋 Checklist d’optimisation Azure

  • ✅ Infrastructure as Code mise en place
  • ✅ Groupes de ressources bien organisés
  • ✅ Services managés utilisés au maximum
  • ✅ Sécurité RBAC appliquée
  • ✅ Auto-scale et arrêt automatisé
  • ✅ Azure Advisor & Cost Management utilisés
  • ✅ Réservations pour les workloads stables
  • ✅ Nettoyage régulier des ressources inutiles

🎯 Conclusion

Bien gérer son infrastructure Azure, c’est allier performance, sécurité et sobriété budgétaire. En appliquant ces bonnes pratiques, vous pouvez améliorer votre architecture tout en réduisant significativement vos coûts Azure.

Besoin d’un audit FinOps ou d’un accompagnement technique sur Azure ? Contactez notre équipe chez Zokastech !

Lire la suite

Combien coûte un site vitrine en 2025 ?

Combien coûte un site vitrine en 2025 ?

La création d’un site vitrine en 2025 reste un investissement essentiel pour toute entreprise souhaitant renforcer sa présence en ligne. Que vous soyez indépendant, artisan ou PME, le prix varie selon plusieurs facteurs : le prestataire choisi, les fonctionnalités attendues, la qualité du design ou encore le niveau d’accompagnement.

Les fourchettes de prix en 2025

Voici les tarifs moyens observés en 2025 :

  • Site vitrine avec un freelance : entre 800 € et 2 500 €
  • Site vitrine avec une agence web : entre 2 000 € et 6 000 €
  • Site vitrine avec un outil en ligne (type Wix, Webflow, etc.) : entre 200 € et 1 000 € (abonnement + options premium)

Les critères qui influencent le coût

Le prix d’un site vitrine dépend notamment de :

  • La complexité du design (sur-mesure ou template)
  • Le nombre de pages (en général de 3 à 10 pour un site vitrine classique)
  • L’intégration d’éléments dynamiques (formulaire, carte interactive, animations)
  • L’optimisation SEO et la rédaction des contenus
  • Le niveau de personnalisation demandé
  • Les fonctionnalités supplémentaires (blog, module de prise de rendez-vous, chat, etc.)

Coûts annexes à prévoir

Outre la création initiale, d’autres frais peuvent s’ajouter :

  • Hébergement : entre 50 € et 150 € / an
  • Nom de domaine : entre 10 € et 20 € / an
  • Maintenance et mises à jour : entre 300 € et 1 000 € / an
  • Référencement (SEO) : prestation ponctuelle ou forfait mensuel (à partir de 300 €/mois)

Conclusion

En 2025, un site vitrine professionnel peut coûter de quelques centaines à plusieurs milliers d’euros. Le plus important est de bien définir vos objectifs, vos priorités et votre budget. Un bon prestataire saura vous accompagner pour trouver l’équilibre entre qualité, performance et coût.

Astuce : Un site vitrine bien conçu est un investissement rentable s’il génère de la visibilité, des contacts ou des ventes.

Vous hésitez encore ? Demandez plusieurs devis et comparez les offres. La transparence et la pédagogie du prestataire sont souvent un bon indicateur de sérieux.

Lire la suite

Explore how AI is transforming sports, business, investments, energy efficiency, and science with groundbreaking 2025 innovations everyone can understand.

How AI Is Changing Our World: From Badminton Robots to Business Breakthroughs

How AI Is Changing Our World: From Badminton Robots to Business Breakthroughs

Discover the exciting ways artificial intelligence is making waves beyond the screen—in sports, investment, business, sustainability, and science.

Intro:
Artificial intelligence (AI) often feels like a tech buzzword, but it’s rapidly moving off the lab bench and into everyday life in surprising ways. Imagine a robot playing badminton like a human, or AI systems reshaping entire industries and scientific research faster than ever before. With record investments fueling these breakthroughs and new tools designed to be more energy-efficient and trustworthy, AI is becoming a powerful partner in everything from sports to business to science. Let’s explore some of the most captivating AI stories from 2025 that show how this technology is transforming our world.

AI Robots Take on Badminton – A New Kind of Sports Partner

Picture a four-legged robot moving swiftly around a badminton court, smashing shuttlecocks back and forth with a real player. That’s reality now, thanks to AI-powered robots developed by researchers in Switzerland and China. Using advanced cameras and sensors, these robots track the shuttlecock’s flight, anticipate where it’s going, and react with impressive agility.

How do they get so good? Through something called reinforcement learning — a method where the robot learns by trial and error, similar to how humans practice a sport. This progress hints at a future where robots could train athletes, assist in rehabilitation, or even become teammates in various sports, bridging the gap between humans and machines in physical activities.

The AI Investment Boom: Betting Big on Smarter, More Independent Machines

AI isn't just about making chatbots smarter—it’s evolving into systems that can think, plan, and act on their own, often called agentic AI. This exciting frontier attracted a whopping $2 billion investment in 2025 alone, with startups led by AI veterans raising huge funds to build these autonomous AI helpers.

Why the hype? Agentic AI can manage complex tasks independently—from customer service to managing real estate rentals—freeing humans to focus on creative and strategic work. Investors see this as the next major wave in AI, similar to the early internet boom, with the potential to revolutionize industries and boost productivity in ways we’re just beginning to imagine.

How TCS and Microsoft Are Bringing AI to Workplaces Worldwide

The partnership between Tata Consultancy Services (TCS) and Microsoft shows how AI is reshaping the future of work. Together, they’re training tens of thousands of employees in AI skills and developing AI-powered cloud solutions designed to transform industries like healthcare, finance, and manufacturing.

With tools that help businesses migrate to the cloud and run smarter operations, this collaboration aims to make AI adoption smoother and more effective—helping companies innovate faster, serve customers better, and stay competitive in a digital world.

Making AI Greener and More Trustworthy: The Next Big Leap

AI’s rapid growth creates a big energy appetite, often drawing criticism for its environmental impact. But recent breakthroughs show AI is becoming more energy-efficient and trustworthy. New computer chips inspired by the human brain, smarter algorithms that only use energy when needed, and AI that can forget sensitive data on demand all make AI faster, safer, and greener.

Think of it as shifting from gas-guzzling SUVs to electric cars—AI is learning to do more while using less power, making this powerful technology kinder to our planet and safer for users.

AI Accelerating Science: Faster Discoveries for Everyone

Finally, AI is supercharging science itself. Companies like Google and Microsoft have developed “AI co-scientists”—virtual research partners that help generate new ideas, analyze mountains of data, and even control robotic labs. These AI collaborators are helping scientists accelerate breakthroughs in medicine, materials, energy, and more, potentially speeding up discoveries that could affect all our lives.

By automating routine but complex tasks, AI frees human researchers to think creatively, unlocking innovations at an unprecedented pace.


Takeaway:
Artificial intelligence is no longer just code in the cloud; it’s taking physical form, transforming workplaces, and driving faster scientific discovery—all while becoming more sustainable and reliable. Whether it’s competing on the badminton court or revolutionizing industries, AI’s growing impact is something we can all witness and benefit from. Keeping an eye on these developments can help professionals and curious readers understand how to engage with AI’s exciting future.

Lire la suite

Comprendre l’IA Agentique, A2A et les Nouveaux Protocoles

L'intelligence artificielle (IA) évolue rapidement, et de nouveaux concepts comme l'IA agentique et les communications entre agents (A2A) transforment notre manière d'interagir avec la technologie. Cet article vise à expliquer ces notions de manière simple et claire.

:contentReference[oaicite:7]{index=7}

Qu'est-ce que l'IA Agentique ?

L'IA agentique désigne des systèmes d'intelligence artificielle capables d'agir de manière autonome pour atteindre des objectifs spécifiques. Contrairement aux IA traditionnelles qui nécessitent des instructions précises, les agents IA peuvent percevoir leur environnement, raisonner, agir et apprendre de leurs expériences.

:contentReference[oaicite:10]{index=10}

Les 4 étapes clés de l'IA Agentique :

  • Percevoir : collecter des informations à partir de diverses sources.
  • Raisonner : analyser les données pour prendre des décisions.
  • Agir : exécuter des actions pour atteindre les objectifs fixés.
  • Apprendre : s'améliorer continuellement grâce aux retours d'expérience.

Source : NVIDIA Blog

Communication entre Agents (A2A)

Dans un système multi-agents, plusieurs IA collaborent pour accomplir des tâches complexes. La communication entre ces agents, appelée A2A (Agent-to-Agent), est essentielle pour coordonner leurs actions et partager des informations.

:contentReference[oaicite:13]{index=13}

Des protocoles comme le Natural Language Interaction Protocol (NLIP) permettent à ces agents de communiquer efficacement en utilisant le langage naturel, facilitant ainsi leur collaboration sans nécessiter une compréhension préalable des structures internes de chacun.

:contentReference[oaicite:16]{index=16}

Source : Wikipedia - Agent Communications Language

Les Nouveaux Protocoles : Model Context Protocol (MCP)

Pour que les agents IA puissent interagir efficacement avec divers systèmes et bases de données, des protocoles standardisés sont nécessaires. Le Model Context Protocol (MCP), développé par Anthropic, vise à standardiser la manière dont les modèles d'IA accèdent et partagent des données avec des outils externes.

:contentReference[oaicite:19]{index=19}

MCP agit comme un "connecteur universel", permettant aux agents IA de lire des fichiers, exécuter des fonctions et gérer des invites contextuelles de manière cohérente, quel que soit l'environnement logiciel.

:contentReference[oaicite:22]{index=22}

Source : Wikipedia - Model Context Protocol

Conclusion

L'IA agentique, la communication entre agents et les nouveaux protocoles comme le MCP représentent une avancée significative dans le domaine de l'intelligence artificielle. En permettant aux systèmes de travailler de manière autonome et collaborative, ces technologies ouvrent la voie à des applications plus intelligentes et adaptatives dans divers secteurs.

:contentReference[oaicite:25]{index=25}
Lire la suite

Les Performances des Bases de Données Cloud : Une Révolution en Cours

Avec la montée en puissance de la transformation numérique, les bases de données cloud sont devenues un pilier central pour les entreprises modernes. Ces solutions offrent une flexibilité, une scalabilité et une performance sans précédent, permettant aux organisations de gérer des volumes de données croissants avec efficacité. Cet article explore les performances des bases de données cloud, leurs avantages, et les défis qu'elles posent.

Avantages des Bases de Données Cloud

Scalabilité à la Demande

L'un des principaux avantages des bases de données cloud est leur capacité à évoluer selon les besoins de l'entreprise. Contrairement aux bases de données traditionnelles qui nécessitent des investissements initiaux conséquents en matériel et infrastructure, les solutions cloud permettent de "scaler" les ressources rapidement et sans coûts initiaux élevés.

Haute Disponibilité et Sécurité

Les fournisseurs de services cloud intègrent des mécanismes de sauvegarde et de basculement automatique, garantissant ainsi une haute disponibilité des données. De plus, la sécurité est souvent plus robuste grâce à des équipes dédiées et des technologies de pointe mises en place par les fournisseurs.

Maintenance Réduite

La gestion des bases de données cloud réduit considérablement les besoins en ressources IT internes. Les mises à jour et les maintenances sont automatisées, ce qui permet aux équipes techniques de se concentrer sur des tâches plus stratégiques.

Performances des Bases de Données Cloud

Adaptabilité et Flexibilité

Les bases de données cloud sont conçues pour s'adapter à des environnements de données variés, incluant des données structurées, semi-structurées et non structurées. Cette flexibilité permet aux entreprises de choisir des modèles de données qui répondent spécifiquement à leurs besoins sans les limitations des bases de données relationnelles traditionnelles.

Intégration et Interopérabilité

Les solutions cloud offrent une meilleure intégration avec d'autres services cloud et applications, facilitant ainsi une approche plus cohérente et unifiée de la gestion des données. Les bases de données cloud supportent souvent des fonctionnalités avancées comme le traitement transactionnel et analytique hybride (HTAP), permettant une analyse en temps réel sans délai entre les transactions et les analyses.

Réduction de la Latence

En distribuant les données sur plusieurs nœuds géographiques, les bases de données cloud réduisent la latence, offrant ainsi une expérience utilisateur plus fluide et rapide. Cela est particulièrement bénéfique pour les applications nécessitant des temps de réponse rapides et des performances constantes.

Défis des Bases de Données Cloud

Enfermement Propriétaire (Vendor Lock-In)

Un des principaux défis est l'enfermement propriétaire, où les entreprises deviennent dépendantes d'un fournisseur spécifique pour leurs services de base de données. Cela peut limiter la flexibilité et augmenter les coûts à long terme si l'entreprise souhaite changer de fournisseur ou adopter une stratégie multi-cloud.

Sécurité et Conformité

Bien que les fournisseurs de services cloud investissent massivement dans la sécurité, la responsabilité ultime de la protection des données reste partagée. Les entreprises doivent veiller à ce que leurs pratiques de sécurité et de conformité soient en adéquation avec les normes réglementaires et les exigences spécifiques de leur secteur.

Coûts à Long Terme

Alors que les coûts initiaux peuvent être faibles, les frais récurrents pour les services de base de données cloud peuvent s'accumuler avec le temps. Les entreprises doivent donc évaluer attentivement les coûts totaux de possession par rapport aux avantages offerts.

Conclusion

Les bases de données cloud représentent une avancée significative pour les entreprises cherchant à exploiter leurs données de manière plus efficace et agile. En offrant des avantages tels que la scalabilité à la demande, une haute disponibilité, et une maintenance réduite, elles permettent aux entreprises de rester compétitives dans un environnement numérique en constante évolution. Cependant, les défis tels que l'enfermement propriétaire, la sécurité et les coûts à long terme doivent être soigneusement gérés pour maximiser les bénéfices de ces technologies.

En conclusion, les bases de données cloud sont une solution puissante et flexible pour les entreprises modernes, mais comme toute technologie, elles nécessitent une stratégie bien pensée pour être pleinement efficaces et rentables.

Lire la suite

Streamlining MLflow Deployment on Kubernetes with Local Storage


Configuring Persistent Storage

In the realm of MLOps, the combination of Kubeflow and MLflow stands out as a powerful duo, empowering data scientists and engineers with a comprehensive platform for managing machine learning workflows. To enhance this synergy, let's delve into deploying MLflow on Kubernetes with a focus on utilizing local storage for enhanced efficiency and reliability.

Persistent Storage Configuration


apiVersion: v1
kind: PersistentVolume
metadata:
  name: mlflow-pv
  namespace: mlflow
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Retain
  storageClassName: mlflow-storage
  hostPath:
    path: /mnt/data/mlflow

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mlflow-pvc
  namespace: mlflow
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: mlflow-storage
  resources:
    requests:
      storage: 10Gi
    

Deploying MLflow Service

With storage in place, we proceed to deploy the MLflow service. Our deployment configuration ensures seamless integration with Kubernetes, utilizing the defined PVC for data storage.

MLflow Service Deployment Configuration


apiVersion: apps/v1
kind: Deployment
metadata:
  name: mlflow-deployment
  namespace: mlflow
  labels:
    app: mlflow
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mlflow
  template:
    metadata:
      labels:
        app: mlflow
    spec:
      automountServiceAccountToken: false
      serviceAccountName: mlflow-sa
      containers:
        - name: mlflow
          image: ghcr.io/mlflow/mlflow:v2.2.1
          imagePullPolicy: Always
          command: ["/bin/bash", "-c", "mlflow server --host 0.0.0.0"]
          ports:
            - containerPort: 5000
          resources:
            requests:
              memory: "512Mi"
              cpu: "100m"
            limits:
              memory: "1Gi"
              cpu: "1"
          volumeMounts:
            - name: mlflow-storage
              mountPath: /mnt/mlflow
      volumes:
        - name: mlflow-storage
          persistentVolumeClaim:
            claimName: mlflow-pvc
    

Integrating with Kubeflow's Central Dashboard

To seamlessly integrate MLflow into Kubeflow's ecosystem, we configure a VirtualService and update the central dashboard to include an MLflow tab. This enables users to access MLflow's features directly from Kubeflow's centralized interface.

VirtualService Configuration


apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: mlflow
  namespace: mlflow
spec:
  gateways:
    - kubeflow/kubeflow-gateway
  hosts:
    - "*"
  http:
    - match:
        - uri:
            prefix: /mlflow/
      rewrite:
        uri: /
      route:
        - destination:
            host: mlflow-service.mlflow.svc.cluster.local
            port:
              number: 5000
    

Modifying Kubeflow Central Dashboard ConfigMap

Additionally, we need to modify the configmap of centraldashboard for Kubeflow to include the MLflow tab. This ensures that users have easy access to MLflow's functionalities from within Kubeflow's central dashboard.


kubectl edit cm centraldashboard-config -n kubeflow
# add this under the other menu items
{
  "type": "item",
  "link": "/mlflow/",
  "text": "MlFlow",
  "icon": "icons:cached"
}

With these configurations in place, MLflow seamlessly integrates into Kubeflow's ecosystem, enriching the platform with robust experiment tracking and management capabilities. This holistic approach ensures smooth collaboration and enhanced productivity for MLOps practitioners leveraging Kubernetes and MLflow.

Lire la suite

Les Nouveautés de Java 21


Java 21 est enfin disponible ! En plus d'être une version LTS (Long Term Support), elle regorge d'innovations. Vous êtes un peu perdu ? Explorons ces nouveautés ensemble.

Nouveautés de l'API

Ces fonctionnalités sont immédiatement utilisables dans Java 21.

Collections Séquencées (JEP 431)

Un rafraîchissement bienvenu de l'API Collection ! La gestion des collections ordonnées est enfin là. Trois nouvelles interfaces sont ajoutées :

  • SequencedCollection
  • SequencedSet
  • SequencedMap

Ces interfaces fournissent des méthodes cohérentes pour manipuler ou ajouter des éléments en début ou en fin de collection.

Illustration des Collections Séquencées

Notez que ArrayList, qui implémentait déjà List, est maintenant aussi une SequencedCollection.

Pattern pour les Records (JEP 440)

Initialement en preview, cette fonctionnalité est maintenant officielle, permettant de déconstruire un record pour accéder directement à ses composants. Par exemple :

record Point(int x, int y) {}

if (o instanceof Point(int a, int b)) {
    int sum = a + b;
}

Cela fonctionne aussi dans les instructions switch :

int sum = switch (o) {
    case Point(int a, int b) -> a + b;
    default -> 0;
};

Threads Virtuels (JEP 444)

Très attendue, cette fonctionnalité est enfin stable ! Pour plus de détails, vous pouvez consulter mon article précédent.

Autres ajouts

Quelques autres nouveautés intéressantes :

  • Gestion des emojis avec Character.isEmoji()
  • StringBuilder.repeat() pour répéter une chaîne de caractères
  • HttpClient implémente AutoCloseable et peut être utilisé dans un bloc try-with-resources

Nouveautés en Preview

Ces fonctionnalités ne sont pas activées par défaut. Pour les utiliser, ajoutez les options de compilation :

--release 21 --enable-preview

et pour l'exécution :

--enable-preview

Modèles de Chaînes (JEP 430)

Permet d'intégrer des expressions dans les chaînes de caractères avec interpolation. Par exemple :

String str = "World";
String result = STR."Hello \{str}";

Utilisez la notation \{expression} et un Processor comme STR pour traiter l'interpolation. Le JDK inclut trois Processors par défaut :

  • RAW : Pas d'interpolation
  • STR : Concatène les chaînes
  • FMT : Formatte les chaînes en utilisant un formateur

Vous pouvez également créer votre propre Processor en implémentant l'interface StringTemplate.Processor.

Variables et Patterns Anonymes (JEP 443)

Parfois, il est nécessaire de déclarer une variable sans l'utiliser. Cette fonctionnalité permet d'utiliser le caractère '_' (underscore) pour ces cas. Par exemple :

for (Element _ : elements) {
    // Bloc qui n'utilise pas les éléments
}

var _ = mySet.remove(myObject);

try {
    int i = Integer.parseInt(str);
} catch (NumberFormatException _) {
    logger.warn("Not a number");
}

Map> employees = new HashMap<>();
employees.computeIfAbsent(id, _ -> new ArrayList<>());

Cela fonctionne aussi avec le pattern matching :

if (object instanceof Point(int _, int y)) {
    // ...
}

int result = switch (obj) {
    case Point(int x, int _) -> x;
};

Classes et Méthodes Main Sans Nom (JEP 445)

Pour simplifier l'apprentissage de Java, cette fonctionnalité permet de créer des classes sans nom avec une méthode main simplifiée. Par exemple, au lieu de :

public class HelloWorld { 
    public static void main(String[] args) { 
        System.out.println("Hello World!");
    }
}

On peut écrire :

class HelloWorld { 
    void main() { 
        System.out.println("Hello World!");
    }
}

Ou même :

void main() { 
    System.out.println("Hello World!");
}

Les classes sans nom simplifient l'écriture de la méthode main, facilitant l'apprentissage de Java.

Conclusion

Java 21 apporte une série d'améliorations et de nouvelles fonctionnalités visant à rendre le langage plus moderne, performant et facile à utiliser. Avec le pattern matching, les records améliorés, la nouvelle API FFM, les threads virtuels et les valeurs à portée, cette version offre des outils puissants pour les développeurs cherchant à écrire du code plus propre, plus efficace et plus sûr. Les améliorations continues de la sécurité et des performances font de Java 21 une mise à jour incontournable pour les développeurs et les entreprises utilisant cette plate-forme pour leurs applications critiques.

Lire la suite

Intégration de l'architecture hexagonale dans un projet Quarkus avec des exemples Java



L'architecture hexagonale, également connue sous le nom de portes et adaptateurs ou architecture en oignon, est un modèle de conception logicielle qui favorise la séparation des préoccupations et la facilité de testabilité. En mettant l'accent sur la dépendance inverse, elle permet de créer des systèmes hautement modulaires et évolutifs. Dans cet article, nous explorerons comment intégrer l'architecture hexagonale dans un projet Quarkus en utilisant des exemples concrets en Java.

Comprendre l'architecture hexagonale

L'architecture hexagonale repose sur le principe de séparation des préoccupations en divisant l'application en trois couches principales : le domaine, les adaptateurs et l'infrastructure.

  • Le domaine représente le cœur métier de l'application, il contient les entités, les règles métier et les services.
  • Les adaptateurs, également appelés ports, sont les points d'entrée et de sortie de l'application. Ils permettent d'interagir avec le domaine en fournissant des interfaces pour les entrées (ports primaires) et les sorties (ports secondaires).
  • L'infrastructure est responsable de la mise en œuvre des adaptateurs. Elle comprend les bases de données, les API externes, les frameworks, etc.

Intégration de l'architecture hexagonale dans Quarkus

Quarkus est un framework Java open source conçu pour créer des applications cloud natives. Il offre une prise en charge de premier ordre pour les conteneurs, la réactivité et le développement rapide. Intégrer l'architecture hexagonale dans un projet Quarkus peut être réalisé en suivant quelques principes de conception simples.

Création du domaine

Commençons par définir le domaine de notre application. Supposons que nous construisons une application de gestion de tâches. Nous pouvons avoir des entités telles que Task, User, et des services comme TaskService qui implémentent la logique métier.


public class Task {
    private String id;
    private String title;
    private boolean completed;
    // Getters and setters
}

public interface TaskService {
    Task createTask(String title);
    Task markTaskAsCompleted(String taskId);
    List<Task> getAllTasks();
    // Other business methods
}
    

Implémentation des adaptateurs

Les adaptateurs fournissent des interfaces pour interagir avec le domaine. Dans notre exemple, nous pourrions avoir des adaptateurs pour interagir avec une base de données, une API REST, ou toute autre source de données.


@ApplicationScoped
public class TaskRepository implements TaskService {
    @Transactional
    public Task createTask(String title) {
        // Logic to persist task in database
    }

    @Transactional
    public Task markTaskAsCompleted(String taskId) {
        // Logic to mark task as completed in database
    }

    @Transactional
    public List<Task> getAllTasks() {
        // Logic to retrieve all tasks from database
    }
    // Other database interactions
}
    

Configuration de l'infrastructure

Dans Quarkus, la configuration de l'infrastructure peut être réalisée en utilisant les fonctionnalités natives de Quarkus pour la persistance des données, les appels REST, etc.


@QuarkusTest
public class TaskResourceTest {

    @Inject
    TaskService taskService;

    @Test
    public void testCreateTask() {
        // Test logic to create task via REST API
    }

    @Test
    public void testMarkTaskAsCompleted() {
        // Test logic to mark task as completed via REST API
    }

    @Test
    public void testGetAllTasks() {
        // Test logic to get all tasks via REST API
    }
}
    

Conclusion

En utilisant l'architecture hexagonale dans un projet Quarkus, nous pouvons créer des applications bien structurées, modulaires et faciles à tester. En séparant clairement le domaine des adaptateurs et de l'infrastructure, nous obtenons une meilleure maintenabilité et évolutivité de notre code. En combinant la flexibilité de Quarkus avec les principes de conception solides de l'architecture hexagonale, nous pouvons construire des applications Java robustes pour répondre aux besoins métier les plus exigeants.

Lire la suite