What you can take away from this presentation:
- What a SaaS solution is
- Key figures on the SaaS market
- Advantages of Kubernetes Kapsule for SaaS
- How to optimize your costs and loads while maintaining stability
- How to guarantee the security of your infrastructures
- The difference between a multi-instance and a multi-tenant architecture
Discover the benefits of Kubernetes to host a SaaS solution
1. Discover the benefits of
Kubernetes to host a SaaS solution
🆕 www.scaleway.com/en/saas
2. 2
YOUR HOST
Jean-Guillaume Burlet (call me JG)
@PaRijSeL #HeadInTheClouds
Brand Evangelist @Scaleway
Career spent bridging novelty-induced
knowledge gaps around the world 🇺🇳
4. + 260
Inhabitants
5 Datacenters
Guests
in over
160 countries
• European cloud services provider(IaaS) and pioneer of Bare Metal
• 9th cloud provider worldwide (last Netcraft rankings)
• 2nd European public cloud provider
cloud branch of the group
5. 5
THEY TRUST US 🤝
Several hundreds of large and scaling companies in numerous diverse
sectors and industries such as e-commerce, health, finance or the media…
6. 6
From colocation through servers to public cloud, we bring the essential components to each of your projects thanks
to our three brands.
Private
Infrastructures
Dedicated
Servers
Public Cloud
Ecosystem
8. L’écosystème de
cloud public
What is a SaaS solution?
SaaS stands for “Software As
A Service”.
This is a software distribution
method that typically involves
paying for a subscription
model for a product, tool, or
service.
Source: https://images-www.scaleway.com/wp-
content/uploads/2020/07/15120911/SaaS-infography-
scaleway_EN-scaled.jpg
11. L’écosystème de
cloud public
Key metrics on the SaaS market
Source: https://www.idg.com/tools-for-marketers/2018-cloud-computing-survey
12. L’écosystème de
cloud public
Advantages of a SaaS solution
As a customer point of view As a software editor point of view
• Lower up-front cost
• Quick set up and deployment
• Easy upgrades
• Accessibility
• Scalability
• Lower Costs
• Recurring Revenue
• Easy To Use For Your Customers
• Updates And New Features
13. L’écosystème de
cloud public
IaaS vs PaaS vs SaaS
Infrastructure
(as a Service)
Platform
(as a Service)On premises
Software
(as a Service)
15. “In a production environment, you may need to manage huge quantities of containers, and you will need
to manage containers running applications to make sure there is no downtime.
Handling thousands of containers running simultaneously on a cluster of machines seems to be a rather
unpleasant task.”
Kubernetes is an open source container orchestration platform created by Google.
16. Compute
Storage
AI
Tools
BAREMETAL DEVINSTANCES GPUGPINSTANCES CONTAINER REGISTRY
KUBERNETES
Kubernetes Kapsulein ourcloud ecosystem
OBJECT BLOCK Database
RESEARCH
PROGRAMS
INFERENCE
API NEWconsole
Available
Early/Beta
R&D
IoT IoT Hub
SERVERLESS
LB VPC DNS&DomainsNetwork
IoT Edge
Cold Storage
IaC
17. Compute
Storage
AI
Tools
BAREMETAL DEVINSTANCES GPUGPINSTANCES CONTAINER REGISTRY
KUBERNETES
Associatedproducts
OBJECT BLOCK Database
RESEARCH
PROGRAMS
INFERENCE
API NEWconsole
Available
Early/Beta
R&D
IoT IoT Hub
SERVERLESS
LB VPC DNS&DomainsNetwork
IoT Edge
Cold Storage
IaC
20. L’écosystème de
cloud public
Multi-tenant pros & cons
• Cost effective
• Simplicity
• Time effective
• Always up to date
Pros
Cons
• Shared database
• Preventing data in app layer
• Massive effect in case of
security breach
21. L’écosystème de
cloud public
Multi-instance pros & cons
• Data isolation
• Flexibility
• High availability
• High scalability
Pros
Cons
• Harder to deploy
• Not cost efficient
23. L’écosystème de
cloud public
Kubernetes Kapsule: a great tool to host your SaaS solution
Automatic provisioning of
instances upon user action
http://<tenant-name>.<saas-domain>
Provisioning
Custom Hostname definition by user action
24. L’écosystème de
cloud public
Kubernetes Kapsule: a great tool to host your SaaS solution
Automatic scaling of Kubernetes nodes
kubectl autoscale deployment myapp --cpu-percent=70 --min=1 --max=10
Scaling
Automatic scaling of applications
25. L’écosystème de
cloud public
Kubernetes Kapsule: a great tool to host your SaaS solution
Portability
Going further: Kubernetes Basics Modules
https://kubernetes.io/docs/tutorials/kubernetes-basics/
26. L’écosystème de
cloud public
Conclusion
Kubernetes is a great way to manage your cloud
infrastructure. If you are in a position where you are
having trouble scaling your application, consider moving
to a Kubernetes-based architecture. You will see a large
increase in your DevOps productivity when it comes to
deployments, clustering, and overall stability.
27. 27
Thank you for listening 🙏🏻
Follow our updates, tutorials and cloud news on our
social media accounts as well as our events on our meetup pages!
@Scaleway / @Scaleway_FR
Editor's Notes
Citez : nos 3 activités / nos 3 produits
L’acronyme SaaS signifie « Software As A Service » (logiciel en tant que service).
Il s’agit d’une méthode de distribution de logiciels qui implique généralement modèle d’abonnement pour un produit, un outil ou un service.
Dans la plupart des cas, les produits SaaS sont maintenant hébergés dans le cloud et sont accessibles de n’importe où via votre navigateur web ou votre appareil mobile.
Dans le passé, les sociétés de logiciels s’appuyaient sur un modèle de licence pour vendre leurs produits numériques et gagner de l’argent.
La différence entre un logiciel sous licence et le SaaS est que vous installez et exécutez un logiciel traditionnel sur votre propre ordinateur ou serveur.
Avec le SaaS, le fournisseur héberge et gère généralement la solution logicielle pour vous.
Ainsi, au lieu de vous contenter d’acheter le code, vous payez également le service d’hébergement, de mise à jour et de maintenance des logiciels, des serveurs et des bases de données.
Avantages - Point de vue consommateur
Coût initial inférieur –
Le SaaS est généralement basé sur un abonnement et n'a pas de droits de licence initiaux, ce qui entraîne une baisse des coûts initiaux. Le fournisseur SaaS gère l'infrastructure informatique qui exécute le logiciel, ce qui réduit les frais de maintenance matérielle et logicielle.
Configuration et déploiement rapides :
l'application SaaS est déjà installée et configurée dans le cloud. Cela minimise les retards courants résultant du déploiement souvent long des logiciels traditionnels.
Mises à niveau faciles :
les fournisseurs SaaS s'occupent des mises à jour matérielles et logicielles, déploient des mises à niveau centralisées vers les applications hébergées et éliminent cette charge de travail et cette responsabilité.
Accessibilité —
Tout ce dont vous avez besoin pour accéder à une application SaaS est un navigateur et une connexion Internet. Cette solution est généralement disponible sur une large gamme d'appareils et de n'importe où dans le monde, ce qui rend le SaaS plus accessible que l'installation traditionnelle des logiciels professionnels.
Évolutivité :
les fournisseurs SaaS offrent généralement de nombreuses options d'abonnement et une flexibilité pour modifier les abonnements au fur et à mesure des besoins, par exemple lorsque votre entreprise grandit ou que plus d'utilisateurs ont besoin d'accéder au service.
-------------------------------------------------
Avantages du point de vue d’un editeur logiciel
Baisser les couts:
L’un des plus grands avantages du modèle commercial SaaS est la rentabilité. Lors de la création d'un logiciel que les utilisateurs doivent installer, vous devez vous soucier de prendre en charge plusieurs systèmes d'exploitation et périphériques. Vous devez également fournir un support client à vos clients pour leurs problèmes d'appareil local.
Mais avec le modèle commercial SaaS, vous avez seulement à vous soucier de la prise en charge de différents navigateurs Web (beaucoup moins compliqué) et n'avez pas à traiter les problèmes de périphériques locaux non plus.
Revenus récurrents
Un autre grand avantage du modèle commercial SaaS est le chiffre d'affaires récurrent et la stabilité qui l'accompagne.
Au lieu d'obliger les clients à payer des frais uniques pour votre logiciel, ils paient des frais mensuels, ce qui facilite la prédiction de vos revenus mensuels et annuels.
Facile à utiliser pour vos clients
Tout ce que vos utilisateurs ont à faire est de se connecter, et ils peuvent commencer à utiliser l’application. Il n'y a pas de logiciel compliqué à installer.
De plus, avec le modèle SaaS, il est plus facile pour votre entreprise de proposer des essais gratuits.
Mises à jour et nouvelles fonctionnalités
En utilisant le modèle commercial Saas, les mises à jour et les nouvelles fonctionnalités peuvent être facilement ajoutées et proposées à vos utilisateurs immédiatement. En fait, les entreprises SaaS peuvent proposer des mises à niveau et de nouvelles fonctionnalités plusieurs fois par jour si elles le souhaitent, c'est facile.
On entend partout ces termes As a Service…
As a service signifie ni plus ni moins qu’on modèle où on consomme des ressources informatiques ou des ressources cloud comme n’importe quelle utilité (eau, électricité, gaz).
En fonction des différents cas d’usage, vous pourrez consommer de la puissance de calcul, des serveurs, de l’espace de stockage jusqu’aux applications elles-mêmes.
Et tout ça, sans posséder les infrastructures!
Infrastructure as a Service
L’Infrastructure en tant que Service (IaaS) est une forme de Cloud Computing offrant des ressources informatiques au sein d’un environnement virtualisé (le Cloud)
Platform as a Service (PaaS)
PaaS est l’abréviation de « platform as a service » (Plateforme en tant que service).
Les solutions PaaS se concentrent sur l’offre d’une plateforme de développement pour leur service. Ces outils aident les entreprises à créer, tester et déployer le code et les données de leurs logiciels.
Software as a Service (SaaS)
SaaS, comme nous l’avons mentionné plus haut, signifie « software as a service » (logiciel en tant que service). Il s’agit généralement d’une solution logicielle hébergée qui aide les entreprises ou les particuliers à améliorer leur productivité ou tout simplement qui réponde à un besoin.
Kubernetes signifie en grec ancien pilote ou l’homme de barre. C’est un peu le chef d’orchestre de votre infrastructure.
Kubernetes fournit un environnement de gestion focalisé sur le conteneur (container-centric).
Il orchestre les ressources machines (computing), la mise en réseau et l’infrastructure de stockage sur les workloads des utilisateurs.
Cela permet de se rapprocher de la simplicité des Platform as a Service (PaaS) avec la flexibilité des solutions d’Infrastructure as a Service (IaaS), tout en gardant de la portabilité entre les différents fournisseurs d’infrastructures (providers).
Évolution des déploiements des applications
Dans un environnement de production, vous devrez peut-être gérer d'énormes quantités de conteneurs, et vous devrez gérer les conteneurs exécutant les applications pour vous assurer qu'il n'y a pas de temps d'arrêt.
Gérer à la main des milliers de conteneurs exécutés simultanément sur un cluster de machines semble être une tâche désagréable.
Architecture cloud des SaaS
Les SaaS sont construits sur deux architectures principalement :
multi-instance, multi-tenant,
On ne les verra pas ici mais il existe aussi des architectures tels que mono-instance et flex tenancy.
Le résultat ne sera pas très différent pour l'utilisateur final, mais il variera en ce qui concerne l'architecture du système, les données et leur accès, la configuration et la gestion des utilisateurs.
Toutes ces architectures ont tendance à répondre à une meme besoin, qui est de mettre à disposition un logiciel, cependant, la multi-tenancy diffère de la multi-instance par son architecture. Voyons cela :
Dans une architecture multi-instances, plusieurs entreprises exécuteront leur propre instance distincte de l'application, avec leur propre base de données distincte. Chaque entreprise aura accès à ses données séparément de l'autre.
Cependant, dans une architecture multi-tenant, plusieurs entreprises utiliseront une seule instance de l'application, avec une seule base de données. Cette architecture ne donne pas beaucoup de flexibilité mais simplifie le processus d'ajout de fonctionnalités et de correction des bugs de code.
Beaucoup ont fait valoir que l'approche multi-instance est meilleure que multi-tenant en ce qui concerne l'architecture cloud, et selon beaucoup, c'est ainsi que les entreprises exécutent leurs applications stratégiques.
Voici deux listes des avantages et des inconvénients de l'approche multi-locataires.
Avantages :
Coût rentable. Utiliser la même infrastructure et les mêmes ressources.
Simplicité lié à l’infrastructure partagée. Il n’y a qu’une unique infrastructure ce qui est plus facile a maintenir
Efficacité du temps. Nécessite moins de temps et de ressources pour les mises à jour/mises à niveau d'un grand nombre d'utilisateurs à une instance donnée.
Toujours sur la dernière version. Les changements ont lieu dans l'ensemble de l'environnement et se produisent une fois pour le système/l'application.
Inconvénients :
Base de données partagée. Toute action affectant la base de données affectera tous les clients partagés.
C’est donc au niveau de l’application que la séparation des données devra être faite et donc à l'équipe de développeurs de prévenir l'exposition des données d'un client à un autre, ce qui augmentera suffisamment en termes de complexité.
Toute violation de sécurité a un effet massif car elle affectera tous les utilisateurs du système.
Avantages :
Isolation des données. Chaque utilisateur / équipe / organisation dispose de sa base de données et de son infrastructure.
Grande flexibilité et contrôle de la configuration et de la personnalisation.
Haute disponibilité. Si une instance est en panne en raison de problèmes d'infrastructure, cela n'affectera pas les autres.
Évolutivité élevée. il est plus facile d'ajouter plus de ressources.
Inconvénients :
Il est plus difficile de déployer des modifications sur plusieurs instances.
Moins rentable lorsqu'il s'agit de créer et de configurer l'environnement tel que la base de données ou l'application.
Provisionnement automatique:
Pour une architecture multi-instances, les utilisateurs finaux demanderont en fin de compte le déploiement d'applications dans Kubernetes. Pour cela, vous devriez envisager d'intégrer votre application à l'API Kubernetes.
Hostname personnalisable:
Ces derniers temps, les utilisateurs finaux attachent leur domaine à des applications. Kubernetes a mis en place des outils pour rendre ce processus plus facile et même arriver au point où il devient libre-service (les utilisateurs pressant un bouton pour obtenir leur domaine pointant vers le pod). Vous pouvez utiliser un système tel que Nginx Ingress pour accomplir cela.
Scaling des nœuds automatiques:
Lorsque vos nœuds deviennent pleins, généralement vous voulez provisionner plus de nœuds afin que tout puisse continuer à se dérouler en douceur.
Scaling de l’application:
Mise à l'échelle vers le haut ou vers le bas en fonction de l'utilisation. Kubernetes fournit cette fonction out of the box à l'aide de triggers qui mettent automatiquement à l'échelle les déploiements. Par exemple, en exécutant cette commande :
kubectl autoscale deployment myapp --cpu-percent=70 --min=1 --max=10
Qui définira le déploiement myapp pour qu'il évolue jusqu'à 10 pods lorsque le pourcentage de CPU dépasse 70.
Kubernetes est un excellent moyen de gérer votre infrastructure cloud. Si vous rencontrez des difficultés pour mettre à l'échelle votre application, envisagez de passer à une architecture basée sur Kubernetes. Vous constaterez une forte augmentation de la productivité de votre DevOps en matière de déploiements, de clustering et de stabilité globale.