Lexpage, pour tout savoir sur les champignons !    —  LLB

Discussions

Lexpage (enfin) sur GitHub !

Sysson 1402 Spammeur
Reprise automatique du message précédent.
Les containers et leur utilisation en prod existe depuis un bail oui, mais ça reste une solution plus admin friendly que developper friendly. Maintenant quand je vois comment certains galèrent avec docker je me dis que c'est pas si dev friendly non plus en fait :D

Je ne connaissais pas vagga, et je dois dire que les objectifs du projet me plaisent beaucoup plus que docker. Maintenant ça va rester loin loin de ma prod pendant encore quelques années ça!
Guybrush 8342 Bob
Je vais me renseigner sur Vagga et Rocket, je pense qu'il y a du bon à prendre là-dedans tout de même :-)

Concernant le dépôt sur GitHub, j'ai mis à jour le README avec quelques informations supplémentaires, notamment sur le fait que la commande migrate ne crée pas un compte super-utilisateur par défaut (il faut utiliser createsuperuser) ce qui rend l'accès au site délicat. J'ai aussi ajouté des informations concernant la création d'autres comptes (vu que les clés du captcha ne sont pas livrées dans les settings du dépôt, la procédure classique ne fonctionne pas).

Dès que j'ai un peu de temps libre, je vais refactorer certaines parties du code (il y a notamment quelques pans entiers qui manquent de documentation) pour que ça soit plus clair. J'en profiterai sûrement pour rajouter quelques prefetch_related sur certains querysets, j'avais ignoré cela initialement en pensant que l'ORM serait assez malin pour le déduire par endroit, mais ça ne semble pas être le cas systématiquement (mais bon, c'est pas comme si on avait un souci de performances actuellement :-D).
pom 145 Padawan
Ca me rassure quelque part, il y a bien une couille dans le potage ;).
C'est étonnant tchou que tu ne puisses pas utiliser boot2docker sous OS X 10.9. Mais maintenant que j'en parle, je crois que ça non plus ça ne marchait pas du 1er coup ;). Genre je devais sur VW Ware en plus pour relancer la VM , hmm, je sais plus exactement. J'ai noté qu'il fallait faire un boot2docker up au début, je crois que c'est ce qui marchait quand je le lançais d'un terminal.

Mais j'ai donc courageusement opté pour une retraite tactique du moins temporairement de l'exploration de docker. Faut avouer que derrière le côté fun quand tu vois des issues Github qui datent de Décembre 2013 pour lesquelles y a pas encore de patch, ça fait peur... J'imagine que Linux reste leur seule priorité?

Bon en plus au boulot je fais du Puppet et je passe mon appli en Java7/Tomcat7 alors il me reste peu d'énergie pour faire encore du boulot de techos le soir ;). Et même si ça fonctionnait, il faudrait se remettre à Python, Django et comprendre uswgi, etc.. tu as mis un fort ticket d'entrée Guy ;)
Guybrush 8342 Bob
pomEt même si ça fonctionnait, il faudrait se remettre à Python, Django et comprendre uswgi, etc.. tu as mis un fort ticket d'entrée Guy ;)
Il n'y a rien à savoir d'uwsgi pour s'en sortir, hein ;-) Mais oui, une connaissance (au moins de Python) est bien nécessaire. Django, par contre, est facultatif : c'est impératif de le connaître pour développer quelque chose, mais c'est facultatif de le connaître pour comprendre le code. C'est l'avantage du framework : l'organisation est conventionnelle, mais le reste est de la pure configuration. A aucun moment, tu ne fais usage de "magie" dans le code, tu fais toujours appel explicitement à ce dont tu as besoin. Je suppose qu'avec un éditeur comme pycharm (en version pro), c'est encore plus facile (vu l'intégration de Django dans leur éditeur). Mais je n'ai jamais essayé.

Dans l'absolu, je pense que le seul langage qui ne représente probablement pas un trop gros ticket d'entrée est le PHP, mais je ne pouvais raisonnablement envisager de développer un machin en PHP en 2013 :-D
Fabe 607 Geek
Je serai ravi d'avoir vos retours sur Vagga :-)

Sinon my 2 cents, j'utilise docker au quotidien en dév (poste physique linux) et en Q/A (cloud apache mesos) et je dois dire que ça fonctionne plutôt bien, ou en tous cas, je suis très loin de tous les problème que vous rencontrez.

Je ne connais pas la maturité de Boot2docker, c'est un projet supporté par docker itself ou ça tiens plus de la rustine communautaire ?
Tchou 3555 Bob
C'est du docker, c'est la surcouche osx pour faire fonctionner docker, indiquée dans la doc. Apparemment, il la faut aussi pour windows, et je suis étonné de ne pas voir de procédure d'install pour des BSD (alors qu'il liste 20000 distributions linux differentes), il faudrai probablement aussi une telle surcouche.

Pour être depuis un petit moment sysadmin de fortune, dans une structure moyenne, je suis parfois amené à créer une VM entière pour une appli et/ou des serveurs "parking" avec une tonnes d'applis dont certaines figées dans une version spécifique, vrai trou de sécurité pour les autres. Quand je vois les promesses de docker, je trouve ça intéressant de compartimenter des "blocs applis". Quand je lisais hier les recettes de cuisine avec des docker qui se lancent uniquement quand il y en a besoin, je reste un peu rêveur.

edit : comme c'est paumé dans le readme, je c/c ce que je trouve plein de promesses :
The applications run in Docker containers, because we can be pretty much sure that some of them have some sort of vulnerability in them at any given time, so it would be too dangerous to host these things on a shared LAMP environment. To avoid wasting too much resource (mainly virtual memory taken up by idle Apache and MySQL instances), I keep the containers stopped as much as possible. Some domains get only a few hits a day. When a request comes in for a website whose container is stopped, snickers holds it queued, quickly activates the necessary backend container (this takes about 100ms), queries its local IP address, checks that it's up, and proxies the request to it.


Ce message a été modifié 2 fois. Dernière modification : 11 mars 2015 à 11:39 par Tchou.

Guybrush 8342 Bob
Bon, allez, je vais me taper la doc de Vagga, et si je suis convaincu, je rajoute ce qu'il faut pour que Lexpage puisse tourner avec ça (et probablement que je vais retirer Docker, car je ne l'utilise personnellement pas, et j'ai l'impression que la majeure partie des personnes qui peuvent l'utiliser ici rencontrent des soucis :-D).
Tchou 3555 Bob
Pour ma part, je trouve que ça manque d'un jeu de data de test, pour avoir un site démo fonctionnel. On a la procédure pour créer les tables, mais avoir de la data de test pourrai être intéressant. En tout cas il va falloir que je le fasse pour tester mes modifs CSS car c'est ce dont je me suis auto-chargé.

Y'a moyen de générer un fichier migration à base d'un sql existant, ou il faut impérativement écrire en syntaxe migration pour avoir de telles data communes ?

Ah, pour info, j'ai fini par m'en sortir avec docker en ... ne l'utilisant pas, mais en utilisant virtualenv ! :applause:
J'arrive à utiliser docker, mais l'image docker de ce projet y'a une couille dans le potage avec la redirection des ports.


Ce message a été modifié 2 fois. Dernière modification : 11 mars 2015 à 12:31 par Tchou.

Guybrush 8342 Bob
TchouY'a moyen de générer un fichier migration à base d'un sql existant, ou il faut impérativement écrire en syntaxe migration pour avoir de telles data communes ?
On peut écrire des fixtures qui fournissent les données initiales. Je ne sais pas trop comment ça se charge automatiquement dans la db, par contre, lors du "migrate" ou lors d'une commande supplémentaire. Je vais me renseigner.
TchouPour ma part, je trouve que ça manque d'un jeu de data de test, pour avoir un site démo fonctionnel. On a la procédure pour créer les tables, mais avoir de la data de test pourrai être intéressant. En tout cas il va falloir que je le fasse pour tester mes modifs CSS car c'est ce dont je me suis auto-chargé.
Et quelles sont les données auxquelles tu penses en particulier ? Un exemple d'édito, quelques billets, quelques faux threads sur le forum, quelques comptes utilisateurs, etc. ?

Si oui, je pense que le plus simple est que je fournisse une base SQLite pré-remplie avec quelques données dedans directement sur le dépôt, plutôt que d'utiliser le mécanisme de fixtures de Django.


Tchou 3555 Bob
Bein, pour tester, il faut pouvoir tester sinon tout, du moins une bonne partie : avoir des billets en nombre suffisant, plusieurs users avec plusieurs avatars différents (qui peut être une image générée ou un placekitten.com ), des topics remplis de plusieurs réponses (lorem ipsum) avec des quote, des spoilers, des emphases, des ...

Avec au moins un user avec deux notifications en attente. Les users avec mdp identique au login. Au moins un endroit où il faut une pagination pour tester la pagination, ...

Je comptais m'occuper de créer ça pour mes besoins, effectivement si le fichier 'db' est rempli de data de tests, ça peut suffire.


Ce message a été modifié 1 fois. Dernière modification : 11 mars 2015 à 13:31 par Tchou.

Guybrush 8342 Bob
Je vais regarder ce soir si j'ai le temps (et le courage) de faire ça. Je ne peux malheureusement pas simplement exporter une partie de la db utilisée en prod (notamment pour certains données privées), donc je vais sans doute faire tourner le site localement et peupler joyeusement la db avec des exemples, qu'il me faudra ensuite documenter... (ouais, dis comme ça, la motivation est pas grande :-D).

Y a quelques endroits où ça va être embêtant, par exemple, pour le forum dont seuls les topics récents s'affichent sur la page d'accueil (ça va être difficile de vous faire une db où les topics sont toujours des topics récents :-D).

Répondre

Vous devez être inscrit et identifié.