Projet DevOps - perso

Bonjour à toutes et à tous,

Actuellement en M1 en tant qu’ingénieur système dans une ESN reconnu en France. Je me pose de plus en plus la question, si je dois m’orienter ou non dans le DevOps.

Autre le fait que le DevOps est un effet de mode pour certain, les politiques DevOps m’intéresse énormément que ça soit sur l’automatisation, déploiement en masse, gestion des versions…

Ayant un serveur chez moi, j’aimerai en profiter pour apprendre les outils DevOps.

Pour la partie hyperviseur, j’ai pensé à ovirt.

Pour la partie automatisation, j’ai pensé à ansible.

Pour la partie orchestrateur, j’ai pensé à k8s avec Rancher et rundesk.

Pour la partie versionning et wiki, j’ai pensé à gitlab en self-hosting.

Pour la partie référencement des machines, j’ai pensé à GLPI

Pour la partie sauvegarde, j’ai pensé à borgbackup couplé avec owncloud

Pour la partie supervision, j’ai pensé à ELK + nagios + grafana

Pour la partie firewall, j’utilise souvent Pfsense / Stormshield mais dans le domaine DevOps je pense que ça ne sera pas adapté :confused: Avez-vous une idée ?

Mon but est d’apprendre les outils et de m’amuser avec.

Avez-vous des outils / méthodes à me conseiller ?

Dans le futur, j’aimerai faire une interface web + gestion qui s’occupe de tout via les API à la AWS ou/et Digital Ocean. Avez-vous des idées pour le réaliser ?

Je souhaite soutenir les outils OpenSource free, donc, j’essaie au mieux ne pas utiliser des outils on-promise qui font tout.

En vous remerciant par avance,

Hello @hujinokun, c’est deja tres bien ce que tu as choisi. Par contre pour te donner un conseil c’est assez difficile, ca depend surtout qu’est-ce que tu veux faire après, mais en general tu devrais te poser les questions suivantes :

  • Tu as mentionné K8s, donc tu vas gérer comment tes images? ( quelle Docker Registry? ).

  • Comment tu penses déployer ton k8s? ( E.G Helm )

  • Comment tu vas pouvoir déployer l’automatisation de ton cluster? ( Script GO / Rust / Python / Bash)

  • Qu’est-ce que t’as pensé a faire pour la CI-CD ? quel outil a utiliser ? ( Gitlab-CI + Jenkins ? )

  • Quelle type de versioning du projet ( monorepo? )

  • (Admin) Comment gérer tes features? Kanban? comment? (E.G. Jira , Trello )

  • Tu veux avoir un projet web pour tous gérer, pour que ca marche il faudrait choisir un fournisseur cloud, t’es conscient que ca veut dire de ne pas faire de l’agnostic des le depart ? ( ca peut changer après ) .

  • Serverless, c’est possible pour toi? comment ? ( OpenFaas / Lambda / GCF / etc… )

  • Tes DB, ou? dans ton cluster k8s (déconseillé) ? DBaaS?

  • Pour la generation des credentials, quel outil? ( Vault? )

La plupart de mes question sont des questions d’architecture, mais c’est beaucoup plus facile le gérer avant commencer qu’après.

Si t’as des doute sur une des questions , ne hesites pas a me demander :).

Saludos :smiley:

Merci pour ta réponse.

Je suis encore débutant dans le domaine, donc mes réponses peuvent être incomplète ou flou.

Je pense que je vais utiliser un docker registry en self-hosting.

Pour les k8s, je vais installé des nodes qui seront gérer par Rancher.

Les scripts seront en YAML / Bash dans un premier temps. Peut-être en python si j’en ai les compétences et le temps.

Sur la partie CI/CD, tu me conseilles quoi ? J’aimerai éviter Jenkins vu qu’il est écrit en java

Pour le versionning, j’utiliserai gitlab + les versions sur ansible

Pour les suivis des activités pour le moment, j’utilise Trello.

Mon fournisseur sera OVH et rien d’autre.

Pour le serverless, j’ai pensé à nodejs, nosql

Pour les bases de données, je ferai une/des VM dédié ou carrément un serveur dédié selon le traffic et la puissance nécessaire.

Pour les crédentials j’ai pensé à un équivalement etcd.

Pour tout ce qui est sécurité, firewall, tu me conseilles quoi ?

A la fin du projet, chaque client pourra demander sa propre VM selon ses besoins mais dans la manière DevOps, comme propose les fournisseurs de serveurs (Digital Ocean, Google, AWS…).

Hello,

Sur la partie CI/CD, tu me conseilles quoi ? J’aimerai éviter Jenkins vu qu’il est écrit en java

Pour la partie CI/CD(Continuous Integration et Continuous Delivery) je te conseile d’utiliser Gitlab-ci , de ce facon tu auras juste a pusher pour avoir ton code testé et ton artifact ( image docker? ) prêt.

pour la partie CD ( Continuous Deployement ) je te conseil d’utiliser un serveur d’automatisation ( donc Jenkins, CircleCI, TravisCI,etc…) mais tu peux toujours utiliser Gitlab-ci qui fait le taf.

Mon fournisseur sera OVH et rien d’autre.

Je ne suis pas tres fan d’OVH , je te conseil d’utiliser le meilleur ( moi, j’ai un peu l’avis américain de “go hard or go home” et “aim for the best” ). le seul moyen de savoir qu’est-ce que c’est “le meilleur” c’est de faire un benchmark. Un bon example c’est le Gartner Magic Quadrant qui est toujours a jour.

Mais ca c’est a toi de decider :slight_smile: .

Pour le serverless, j’ai pensé à nodejs, nosql

Ca ne répond pas vraiment la question xD. ce n’est pas une question de language , c’est une question d’architecture, regarde un peu du OpenFaas et Serverless Framework pour que tu aies une idee :wink: .

Pour tout ce qui est sécurité, firewall, tu me conseilles quoi ?

Do the less work as possible. Ton cloud doit avoir des outils de réseau mais je ne suis pas sur que tu aies quelque chose chez OVH, sinon il y a des plugin K8s pour gérer Load balancing, replication, throttling, etc… (un service spécifique j’ai jamais utilisée mais il doit avoir des gens ici qui pourrait mieux te répondre ce question ) , juste toujours penser a Fail2ban :stuck_out_tongue:

A la fin du projet, chaque client pourra demander sa propre VM selon ses besoins mais dans la manière DevOps, comme propose les fournisseurs de serveurs (Digital Ocean, Google, AWS…).

Je ne suis pas sur si j’ai bien compris. Tu veux pouvoir déployer ton projet dans peu importe quelle fournisseur Cloud? si c’est le cas , je te rappel que DevOps != agilité et que DevOps != agnostique, DevOps c’est juste le pont entre le Dev et l’Ops , si ton projet te demande ( comme 99.999999% des projet) de l’agilité, tu peux le faire, mais rien t’empêche a faire DevOps a la Nasa, ou tu peux pas vraiment déployer des choses tous les jours :P.

Je te deconseil fortement de commencer avec l’agnostic, c’est comme les gens qui veulent commencer avec des microservices direct, j’ai lu 3 livres sur le sujet et a chaque fois le conseil est le meme: commence ton premier projet monolith et passe fur a mesure a microservice. Il y a énormément des problèmes complexes qui s’ajoute quand tu veux faire de l’agnostique, rien que avec

Mon fournisseur sera OVH et rien d’autre.

ca veut dire que tu vas falloir avoir une couche d’abstraction qui permet de s’installer chez OVH , ensuite qui deploy GKE , AKS, EKS, Openstack, etc…

si ce n’est pas ca que tu voulais dire, désolé.

Note, mon motto:
Do it, then do it right and then do it better

Hello,

Pour la partie CI/CD, je testerai gitlab-ci et circleCI voir drone.io

J’aimerai tenter l’aventure avec un fournisseur français :stuck_out_tongue:

Sur le serverless, je vais tenté tes deux solutions

Niveau sécurité des serveurs, j’ai l’habitude avec un fw virtuel voire physique. Sur les serveurs linux, le classique iptables / fail2ban. Y’a t’il des meilleures solutions ?

Pour la partie gestion, j’aimerai faire un like WHMcs / SolusVM (ce genre de solution) mais en mieux et + poussé. Un avis là dessus ? L’idée serait d’avoir un ITSM

Niveau tuto, site pour les scripts, tu as des sites qui peuvent aider à faire les best practices, etc etc ?

Je vois d’autre personne utilisé LXC / LXD, pour ma part, j’aimerai k8s et/ou docker.

Hello @hujinokun,

A mon avis , tu devrais penser a ton produit et adapter tes outils a ta solution ( et pas a l’inverse ) , pour te donner plus de conseil il faudrait savoir ton objectif ( ou business model ) et le forum pourra bien sur te donner des conseils.

1 « J'aime »

Hello,

Je suis d’accord, il est vrai que je devrai finalisé le business model xD

Pour la partie web, tu me conseilles quelle base pour créer un WHMcs like ou équivalent ?

J’ai jamais mis un place Web Hosting Manager , mais je dirai qu’aujourd’hui Zendesk et Jira Service Desk ces sont des bonnes solutions , mais ca depend qu’est-ce que tu cherches exactement, le mot Mangement et fortement lie a ce que tu veux manager :stuck_out_tongue: .