July 18, 2022
L'ÉQUIPE TECHNIQUE D'EMENCIA SE RENFORCE ! Célia Bellod a rejoint notre équipe technique le 18 juillet 2022 en qualité de développeuse Fullstack Python/Django, React/Typescript. Passionnée par le développement web et la conception d'applications complexes, Célia dispose d'une formation de développeur Web et Web Mobile. Elle a travaillé pendant 2 ans…
Jan. 24, 2022
L'ÉQUIPE EMENCIA ACCUEILLE UN NOUVEAU DEVELOPPEUR FULLSTACK ! Alexandre Richer a rejoint notre équipe technique le 24 janvier 2022 en qualité de développeur Fullstack Python/Django, Jquery/Vuejs.
Nov. 8, 2021
L'ÉQUIPE EMENCIA ACCUEILLE UN NOUVEAU DEVELOPPEUR PYTHON SENIOR ! Diplômé de l'ENSEA (École Nationale Supérieure de l'Électronique et de ses Application) en 2011 et titulaire d'un Master Recherche en Systèmes Intelligents. Colin Goutte a rejoint l'équipe technique d'Emencia le 8 novembre 2021.
Oct. 12, 2021
Nous recrutons des développeurs Python / Django @ Emencia - Paris Emencia est un acteur historique depuis 2002 dans le monde Python. Nous proposons notre expertise Python et DevOps à nos clients. Nous intervenons dans des projets à forte valeur ajoutée pour répondre  à des problématiques complexes, dans des secteurs…
Oct. 3, 2018
Située au cœur de la Bourgogne, à 100 Km de Lyon, la société COMEGE est une entreprise familiale spécialisée dans la conception et la réalisation d’appareils de levage. Composée d'une quarantaine de personnes, COMEGE réalise un chiffres d'affaires de 8,5 miliions d'euros et s'impose comme le leader français en potences,…
Aug. 28, 2018
Locust - un framework open source (sous licence MIT) pour réaliser vos "Stress Tests" Il permet d'écrire simplement des scénarios utilisateur grâce au langage python : pas d'interface graphique ou de template XML, juste du python ! Vous pouvez simuler plusieurs millions d'utilisateurs, définir et maîtriser la montée en charge et…
Aug. 20, 2018
OOSHOT est la première plateforme internationale de confiance qui permet d’organiser ses prises de vues. Qu'il s’agisse d’images de volume e-commerce ou de création, OOSHOT propose des outils propriétaires innovants pour optimiser vos flux de production et en contrôler les coûts. Avec une assistance à la production audiovisuelle qu’elle soit…
March 30, 2013
3 millions de dollars : c'est le montant que la DARPA (branche recherche du ministère de la défense américaine) a attribué au langage de programmation open source Python. Ces 3 millions ne sont qu'un début, en effet au cours des années à venir plusieurs projets vont bénéficier des 100 millions ...
Nov. 5, 2012
C'est à Varsovie que se tiendra le Django Con 2013 pour sa spéciale "Circus Edition".
July 2, 2012
Emencia a développé une plateforme dématérialisée de déclaration des sinistres destinée aux clients institutionnels des Assurances Vigreux (mairies, communautés de communes, hôpitaux, maisons de retraite...).
Nov. 18, 2011
Depuis maintenant quelques années, le mot "cloud" fait partie du vocabulaire à la mode du monde de l'informatique. Rejoignant les mots tels que "virtualisé", "web2.0" ou "ajax", n’importe quel décideur voulant être à jour sur les dernières technologies est obligé de s’intéresser à ce concept qui commence à faire ses preuves afin de comprendre ce qu'il peut nous apporter dans le monde du développement et plus précisément dans le monde python.

1) Le cloud

Je suis certain que vous avez déjà vu la pub d'IBM ventant le "Cloud Computing" comme LA solution d'avenir, LA technologie que toute société digne de ce nom se doit d'utiliser. Cette présentation du cloud est certes attractive, mais que se cache-t-il réellement derrière ce "nuage" ? Si l'objet de cet article n'est pas de lister précisément toutes les technologies liées au cloud computing (wikipedia le fait déjà parfaitement http://fr.wikipedia.org/wiki/Cloud_computing ), il est bon de définir brièvement ce concept. Le Cloud computing c'est tout simplement l'action de déporter l'ensemble de ses services informatiques internes sur des serveurs distants. Alors certes, les plus perspicaces noteront judicieusement que cela fait déjà plusieurs années que leur intranet/extranet est stocké sur un serveur dédié, et qu'il n'y a rien de nouveau ! Mais là où le système "Cloud" va plus loin c'est grâce à l'apport de la virtualisation. Tout cela gagne en souplesse d'utilisation car au lieu d'installer ça sur un serveur fixe, souvent trop puissant au début et qui peut se retrouver limité lors de montée en charge, le cloud, par des mécanismes assez poussés en administration et de manière totalement invisible pour l'utilisateur va pouvoir adapter le support de l'application en fonction de la demande. La facturation de l’hébergement ne va donc plus fonctionner en terme de machine, mais en termes de consommation de services (bande passante, nombre de requêtes, consommation espace disque ....) L'exemple le plus connu et utilisé reste à ce jour Amazon EC2 (Elastic Compute Cloud). Ceci dit, même si tout cela est transparent pour l'utilisateur, la configuration et la gestion de ces systèmes demandent des compétences de plus en plus poussées en "administration système". Si cela ne pose aucun problème pour les grands comptes, le cas n'est pas identique pour une majorité de PME où souvent la casquette d'administrateur système est joué, à ses temps perdus par un développeur bien dépassé par ces nouveaux concepts. Une des solutions serait donc de proposer à ces développeurs (et donc aux PME qui les emploient) un système clef en main, prêt à être déployé à tout moment et qui permet au développeur de travailler sur ce qui le concerne: "le développement".

2) Développement et hébergement de services sur le cloud

Dans le monde python, Google a ouvert le bal le premier "médiatiquement parlant" avec Google App Engine et son framework basé sur Django associé a une base de données maison, puis par la suite a fait évoluer son produit permettant d'héberger des projets en Java, Go, Python. Par un ensemble de lignes de commande il était très facile de développer un site sur son ordinateur puis de le déployer sur les serveurs de Google. Dans le monde de ruby, Heroku fait parler de lui depuis quelques années et permet grâce à Git de déployer très facilement une applis Rails sur les serveurs d'Amazon. Ceci dit dans les 2 cas un inconvénient assez important peut être souligné: une seule et unique technologie peut être utilisée. Impossible de faire héberger sur une même application un forum php, une instance Redmine sous RoR et un site en Django. De plus, souvent certaines concessions sur la technologie/framework employés sont à faire. (Toujours sous Google App Engine, l'utilisation de leur base de données). Mais depuis quelques mois une société du nom de Dotcloud propose un service du même nom qui semble s’affranchir de ces défauts. Leur concept : voir une application comme un ensemble de briques framework/technologiques. On choisit donc l'ensemble des services que l'on veut et afin de créer une "stack" que l'on déploie ensuite sur leurs serveurs. Plus que prometteur, il restait à voir ce que cela donne en réalité.

3) Dotcloud: La fin de l’administration système ?

Fin septembre, dans les bureaux d'Emencia a eu lieu une petite réunion où quelques geeks du monde python viennent présenter les projets sur lesquels ils bossent. Jérôme Petazzoni profite de sa venue en France pour venir nous faire une démo de Dotcloud et je dois dire qu'au bout d’une heure de démonstration je suis fortement convaincu ! Comme décrit plus haut, Dotcloud est un système d’hébergement sur le cloud, permettant de déployer une application en utilisant plusieurs technologies. Premier constat : après à peine 6 mois d’existence la liste des services proposés est juste énorme. On retrouve les principales technologies du web: Php, Ruby, Python, Java, Mysql Postgresl mais aussi des plus minoritaires comme des bases NoSql (MongoDB, Redis), PostGIS (postgres avec le support d'objets géographiques), le moteur d'indexation Solr et de nombreux autres devraient faire rapidement leur apparition ( http://docs.dotcloud.com/services/roadmap/ ). Pour sa présentation, Jérome s'est penché sur l'installation d'un serveur Django couplé d'une base en postgres. Pour cela il se base sur la documentation présente sur le site. ( http://docs.dotcloud.com/tutorials/python/django/ ). Et là, 2eme point très agréable, il en profite pour nous montrer la richesse de la documentation. Chaque service possède sa documentation, claire et précise. Elle est couplée d'une suite de tutoriaux très clairs expliquant pas a pas comment déployer "from scratch" telle technologie. Un autre élément impressionnant vient du fait que ces tutoriaux ont été créés par un outil appelé Gitorial qui utilise les commits réalisés sur un repo Git pour créer un tutoriel. Résultat : tous ces tutoriaux sont en faite un ensemble de base de configuration permettant à tout moment via un "git clone" de créer une conf dotcloud associée à la technologie choisie et de le déployer en quelques lignes de commande. D'un point de vue développeur, cela peut être comparé à la DDD (développement dirigé par la documentation) et nous assure que la documentation fournit par Dotcloud sera toujours de qualité. Au final, la création d'un projet se résume a sa création via la commande:: dotcloud create monprojet Une récupération du squelette via git et quelques personnalisations de la configuration pour l'adapter à notre cas que l'on commit. Puis au déploiement:: dotcloud push monprojet Le projet se retrouve alors déployé sur les serveurs de Dotcloud. (il est bon de noter que l'on n'est pas du tout obligé de passer via Git pour commit et déployer son projet. Si Dotcloud ne trouve pas de folder .git dans le projet il utilisera alors rsync pour faire la synchro lors du dotcloud push)

4) Dans les entrailles d'un projet Dotcloud

La structure d'un projet est assez simple. Il y a à la racine du projet un fichier dotcloud.yml qui décrit la configuration sous une syntaxe de type yaml. On va lister les services qu’on veut utiliser. Chaque entrée correspondra à 1 service dotcloud. Un exemple de configuration pour un Django: il va nous falloir python et postgresql:: www: type: python db: type: postgresql Je défini donc 2 types de services, le www qui hébergera mon serveur python (puis Django) et ma db de type postgresql Lors du déploiement de l'application, Dotcloud va alors déployer 2 systèmes virtualisés (de type LXC), un hébergeant le serveur python et l'autre la base postgresql. Les 2 systèmes communiqueront ensemble à travers le réseau. Pour ceux qui le veulent il est possible d’accéder via un ssh et un shell restreint aux vm hébergeant les services. Enfin la configuration du domaine web se fait très facilement puisqu'il suffit de mettre son bout de configuration nginx dans le fichier nginx.conf. On peut donc très facilement créer son vhost pour son domaine personnel.

5) Et le prix dans tout ça ?

La grille de prix est ultra simple et très claire. Il existe 3 forfaits, un gratuit, un "pro" a 99$ par mois et un "entreprise" au tarif non communiqué. Leur principale différence se fera au niveau du nombre de services que l'on peut utiliser et un support plus adapté au monde de l'entreprise. Mise à part cela, pas de restrictions techniques sur la bande passante, l'espace disque ou les performances du serveur. Quant aux services proposés, le choix est total dans toutes les gammes de prix. A noter que Dotcloud s'engage à héberger gratuitement les projets d'étudiants, ceux associatifs ou en rapport avec le logiciel libre. Il suffit de les contacter si cela vous intéresse. Au final, nous pouvons voir que même si Dotcloud est jeune, ce service n'en possède pas moins de nombreux avantages. Un usage simple, une documentation claire et fournit, un nombre de technologies supportées déjà très élevé. Il est à coup sûr une option plus qu’intéressante pour tous développeur qui n'a pas envie ou le temps de gérer ses propres serveurs dédiés. Pratiquement tous les inconvénients (vus ci-dessus dans l’hébergement dans le cloud) disparaissent avec cette technologie. Ceci dit, on peut encore constater une petite zone d’ombre. Leur infrastructure se base sur Amazon EC2 donc des serveurs basés aux Etats- Unis et tributaires du service Amazon. Mais cela devrait être bientôt corrigé car Dotcloud est en train de se munir de ses propres serveurs en Europe.

Ressources:

Ibm: http://www.ibm.com/cloud/fr Cloud Computing: http://fr.wikipedia.org/wiki/Cloud_computing Amazon EC2: http://aws.amazon.com/ec2/ Google App Engine: http://code.google.com/appengine/ Django: https://www.djangoproject.com/ Java: http://www.java.com/fr/ Python: http://www.python.org Dotcloud: http://www.dotcloud.com http://docs.dotcloud.com/services/roadmap/ http://docs.dotcloud.com/tutorials/python/django/ Emencia: http://www.emencia.fr
June 7, 2011
Ce tutoriel va vous permettre de découvrir Django, sa philosophie, créer une application Django, et la déployer. Pour voir ce tutoriel, cliquez ici : http://www.emencia.fr/fr/formations/django/documentationdjango1.3
Feb. 10, 2011
"February Headline: C# and Python are closing the gap on PHP The rise of C# and Python are continuing in 2011. Both languages scored another old-time high this month and are now busy with overtaking PHP. Other interesting news is that we started to add results of Chinese search engine Baidu and reintroduced Yahoo!. These search engines now only count for 3% each until all false positives have been weeded out. This change has already some effect: JavaScript is back in the top 10 while SAS and Transact-SQL both lost much ground. " En savoir plus : http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html