Cloud Azure – Services de données et bonnes pratiquesMicrosoft
Durant cette session, nous vous présenterons les différentes options de stockage de données Windows Azure SQL/NoSQL, PaaS/IaaS et les bonnes pratiques pour identifier celle(s) correspondant à votre besoin. Une application web d’Emailing sera démontrée et permettra notamment d’expliquer les avantages d’utiliser une combinaison de plusieurs options de stockage. Nous terminerons par un retour d’expérience sur une solution permettant de gérer de gros fichiers (>150 Go) et les bénéfices apportés.
Speakers : Benjamin Moulès (Microsoft France), Jean-Luc Boucho (Infosys), Mickaël Mottet (Econocom-Osiatis)
Objectif général : Découvrir l'un des SGBDs noSQL les plus utilisés
Objectifs spécifiques :
Installer et démarrer un serveur et un client mongo
Créer une base de données dans un serveur mongo
Créer une collection dans une base de données mongo
Connaître les principaux types de données
Insérer des données
Consulter des données
Modifier des données
Supprimer des données
Cloud Azure – Services de données et bonnes pratiquesMicrosoft
Durant cette session, nous vous présenterons les différentes options de stockage de données Windows Azure SQL/NoSQL, PaaS/IaaS et les bonnes pratiques pour identifier celle(s) correspondant à votre besoin. Une application web d’Emailing sera démontrée et permettra notamment d’expliquer les avantages d’utiliser une combinaison de plusieurs options de stockage. Nous terminerons par un retour d’expérience sur une solution permettant de gérer de gros fichiers (>150 Go) et les bénéfices apportés.
Speakers : Benjamin Moulès (Microsoft France), Jean-Luc Boucho (Infosys), Mickaël Mottet (Econocom-Osiatis)
Objectif général : Découvrir l'un des SGBDs noSQL les plus utilisés
Objectifs spécifiques :
Installer et démarrer un serveur et un client mongo
Créer une base de données dans un serveur mongo
Créer une collection dans une base de données mongo
Connaître les principaux types de données
Insérer des données
Consulter des données
Modifier des données
Supprimer des données
Sentry est un aggrégateur de log pour Django.
Dans cette présentation, nous allons voir quel peut en être les usages et comment l'utiliser concrètement.
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Fabien Arcellier
Après maints périples, vous avez progressivement amélioré votre capacité à gérer des environnements au travers d'Infra as Code. Votre code initialement simple a pris de l'embonpoint et vous sentez la réalité vous rattraper implacablement : vous êtes en train de créer de la complexité, voire même de la dette.
Loin d'être une fatalité, à partir de notre expérience de développeur (Fabien) et d'ops (Alexandre), nous vous proposons un road trip dans des
pratiques de développement déclinées sur l'Infra as Code (Bash, Puppet et Ansible).
Nous présentons des pratiques, des plus simples activables immédiatement à des démarches plus complexes pour dessiner une big picture de l'Infra as Code, de ses contraintes, de ses forces et de ses pièges.
* Comment mettre en place des boucles de feedback les plus courtes possibles ?
* Comment faire du test driven development sur l'infrastructure ?
* Quels patterns et outils pour tester une configuration sans tirer toute votre infra et itérer plus rapidement ?
* Quel est le rapport entre Tetris, un ascenceur et l'Infra as Code ?
This was presented at WordCamp Montreal 2014, and shows 10 old habits from the old days of WordPress, and modern alternatives to doing things the *right* way.
Chiffrer et sécuriser MariaDB - Présentation effectuée à "Ubuntu Paris 1610" par Christophe Villeneuve
MariaDB est la base de données NewSQL (NoSQL + SQL) et libre à utiliser au quotidien
Comment repousser les limites du DataCenter en termes de coût et de complexité ? Comment étendre ce datacenter vers le Cloud et bénéficier des scénarios de haute disponibilité et de disaster recovery offerts par SQL Server ? Lors de cette session, venez découvrir les différents scénarios hybrides entre SQL Server et Windows Azure : backup dans Windows Azure, Replica AlwaysOn, flexibilité dans le choix du stockage, élasticité et redondance !
Speaker : Christophe Laporte (MVP)
Presentation Zabbix en Français du 6 Juin 2013Alain Ganuchaud
Vue d'ensemble des fonctionnalités Zabbix, plus particulièrement la version 2.0, présentée en Français par Alain Ganuchaud (CORE IT PROJECT) pour l'éditeur Zabbix SIA.
Este documento proporciona instrucciones sobre cómo crear y editar presentaciones en Ubuntu. Explica cómo abrir y cerrar una presentación, crear diapositivas e insertar texto, tablas, imágenes, videos, hipervínculos y animaciones. También cubre cómo establecer transiciones, proteger con contraseña y revisar la ortografía. Por último, resume los pasos para publicar una presentación en SlideShare.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
Sentry est un aggrégateur de log pour Django.
Dans cette présentation, nous allons voir quel peut en être les usages et comment l'utiliser concrètement.
Infra as Code, choisissez vous la pilule rouge ou la pilule bleue - Devoxx 2016Fabien Arcellier
Après maints périples, vous avez progressivement amélioré votre capacité à gérer des environnements au travers d'Infra as Code. Votre code initialement simple a pris de l'embonpoint et vous sentez la réalité vous rattraper implacablement : vous êtes en train de créer de la complexité, voire même de la dette.
Loin d'être une fatalité, à partir de notre expérience de développeur (Fabien) et d'ops (Alexandre), nous vous proposons un road trip dans des
pratiques de développement déclinées sur l'Infra as Code (Bash, Puppet et Ansible).
Nous présentons des pratiques, des plus simples activables immédiatement à des démarches plus complexes pour dessiner une big picture de l'Infra as Code, de ses contraintes, de ses forces et de ses pièges.
* Comment mettre en place des boucles de feedback les plus courtes possibles ?
* Comment faire du test driven development sur l'infrastructure ?
* Quels patterns et outils pour tester une configuration sans tirer toute votre infra et itérer plus rapidement ?
* Quel est le rapport entre Tetris, un ascenceur et l'Infra as Code ?
This was presented at WordCamp Montreal 2014, and shows 10 old habits from the old days of WordPress, and modern alternatives to doing things the *right* way.
Chiffrer et sécuriser MariaDB - Présentation effectuée à "Ubuntu Paris 1610" par Christophe Villeneuve
MariaDB est la base de données NewSQL (NoSQL + SQL) et libre à utiliser au quotidien
Comment repousser les limites du DataCenter en termes de coût et de complexité ? Comment étendre ce datacenter vers le Cloud et bénéficier des scénarios de haute disponibilité et de disaster recovery offerts par SQL Server ? Lors de cette session, venez découvrir les différents scénarios hybrides entre SQL Server et Windows Azure : backup dans Windows Azure, Replica AlwaysOn, flexibilité dans le choix du stockage, élasticité et redondance !
Speaker : Christophe Laporte (MVP)
Presentation Zabbix en Français du 6 Juin 2013Alain Ganuchaud
Vue d'ensemble des fonctionnalités Zabbix, plus particulièrement la version 2.0, présentée en Français par Alain Ganuchaud (CORE IT PROJECT) pour l'éditeur Zabbix SIA.
Este documento proporciona instrucciones sobre cómo crear y editar presentaciones en Ubuntu. Explica cómo abrir y cerrar una presentación, crear diapositivas e insertar texto, tablas, imágenes, videos, hipervínculos y animaciones. También cubre cómo establecer transiciones, proteger con contraseña y revisar la ortografía. Por último, resume los pasos para publicar una presentación en SlideShare.
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive function. Exercise causes chemical changes in the brain that may help protect against mental illness and improve symptoms.
Innovation sociale : développer l'esprit d'entreprendre un nouvel enjeu pour ...Yann Alexandre Soubaï
Cultiver une nouvelle approche de l’esprit d’entreprendre dans l'enseignement supérieur : Une pédagogie citoyenne et politique creuset d’une innovation « sociale » essentielle dans un contexte de globalisation, de course à l'innovation et de perte de cohésion au sein de la société.
La pédagogie s’oriente vers la conduite de projets en groupe pour développer chez l’étudiant une démarche systémique et transdisciplinaire. L’université pourrait proposer aux étudiants de considérer dans leurs projets l’inclusion dans un environnement entrepreneurial, social, écologique, économique et humain.Elle pourrait encourager les étudiants à développer des partenariats avec des associations ou des entreprises développant des initiatives locales et/ou internationales.
Cette dimension sociale des projets collaboratifs pourrait constituer une grille de notation pertinente.
Una sociedad de la información es aquella en la que las tecnologías que facilitan la creación, distribución y manipulación de la información juegan un papel importante. Esto permite la comunicación global a bajo costo, el acceso a información y entretenimiento, y conexión con otros. Sin embargo, también conlleva riesgos como virus, contenido inapropiado, y hackers. Vivimos en un mundo con acceso a grandes cantidades de datos e información de diversas partes del mundo, aunque no siempre es fácil identificar su origen. Se bus
El documento describe los lenguajes de programación y cómo funcionan. Explica que los lenguajes de máquina son difíciles de entender para las personas y no son portables entre computadoras. Los lenguajes de programación de alto nivel son más fáciles de entender y son independientes de la computadora utilizada. Estos lenguajes se pueden traducir a código de máquina mediante compiladores o intérpretes para su ejecución.
El documento presenta una secuencia didáctica sobre el Abrazo de Acatempan para el cuarto grado de primaria. La secuencia busca que los estudiantes conozcan, comprendan y valoren los hechos y personajes que propiciaron la consumación de la independencia de México, a través de preguntas motivadoras, palabras clave, fuentes de información y productos de trabajo como línea de tiempo, guión radiofónico y teatral.
Este documento introduce el concepto de polimorfismo en C++. Define polimorfismo como la capacidad de escribir programas de manera general manipulando clases existentes y futuras. Explica que polimorfismo requiere herencia, funciones virtuales y objetos dinámicos. Presenta un ejemplo de modelado de una orquesta para ilustrar polimorfismo. Describe los mecanismos de herencia, upcasting y funciones virtuales necesarios para lograr polimorfismo.
La solution Comarch ERP est avant tout destinée aux PME et ETI. Résolument novateur, l'ERP Comarch Parmi les fonctionnalités : gestion commerciale, solution Retail, CRM, comptabilité / finance, décisionnel BI, e-commerce, mobile et workflow
La ciencia se define como el conjunto de conocimientos sistemáticos obtenidos mediante observación y experimentación. La tecnología es el uso ordenado de conocimientos técnicos para crear bienes y servicios. La tecnología educativa usa las TIC para apoyar los procesos de enseñanza y aprendizaje. En el futuro, la tecnología traerá cambios como coches que se conducen solos, robots inteligentes y comunicaciones telepáticas.
Este documento presenta un proyecto de investigación realizado por estudiantes de la Facultad de Comunicación Social para la Paz de la Universidad Santo Tomás sobre la cobertura que dio el periódico Vanguardia Liberal a las ayudas humanitarias recogidas para los damnificados por la ola invernal en Santander, Colombia entre octubre de 2010 y enero de 2011. El objetivo general fue comprender la manera en que el periódico cubrió esta noticia y los objetivos específicos fueron describir la participación de entidades públicas y privadas,
Palindrome - JFTL2014 - Mais quelle qualité voulons-nous?Olivier Denoo
Présenté à la JFTL2014, Palindrome se penche sur la condition et le métier de testeur aujourd'hui.
A la manière d'un cri ou d'un "coup de gueule", elle veut bousculer la tendance actuelle qui ne s'attache qu'aux coûts et aux bénéfices (supposés) à court terme tout en déconnectant prix et valeur. Elle démontre enfin qu'une autre vision centrée sur la qualité existe et permet aussi aux entreprises d'atteindre le succès.
Tout ce que vous devez savoir sur les meilleures pratiques autour d'Exchange 2013... Des thèmes aussi divers que "comment virtualiser au mieux un serveur Exchange 2013" à "Que faire de mes dossiers partagés et que deviennent t'ils dans Exchange 2013". Tout ce qu'il y a à savoir expliqu par nos meilleurs experts Microsoft sur le sujet.
Speaker : Guy Groeneveld (Microsoft), Stefan Plizga (Microsoft), Raquel Municio (Microsoft France), Lionel Constantin (Microsoft France)
Durant cette session, nous vous présenterons les différentes options de stockage de données Windows Azure SQL/NoSQL, PaaS/IaaS et les bonnes pratiques pour identifier celles correspondant à votre besoin. Une application web d’Emailing sera démontrée et permettra notamment d’expliquer les avantages d’utiliser une combinaison de plusieurs options de stockage. Nous terminerons par un retour d’expérience sur une solution permettant de gérer de gros fichiers 150 Go et les bénéfices apportés.
Speakers : Benjamin Moulès (Microsoft France), Jean-Luc Boucho (Infosys), Mickaël Mottet (Econocom-Osiatis)
Conteneurs Linux ou Windows : quelles approches pour des IT agiles ?Microsoft
Après une rapide introduction au concept de conteneurs et à leur intégration dans une IT agile, nous allons nous intéresser, dans cette session, à leur mise en œuvre depuis le poste du développeur ou de l'administrateur, jusqu'aux clusters apportant un niveau de disponibilité et de montée en charge nécessaires aux environnements de production. Les démonstrations couvriront donc Docker sur Windows 10 et Windows Server 2016, ainsi qu'Azure Container Service pour l'orchestration de conteneurs dans Azure avec Docker Swarm ou DC/OS, et Docker Datacenter dans Azure pour une solution complète et hybride en entreprise.
Présentation et démos techniques des principaux services Google Cloud et leurs relations
(Compute Engine, Cloud Storage, Bigquery, Cloud SQL, Dataflow, Pub/Sub, Cloud Function)
Dans cette session vous découvrirez comment le couple Visual Studio 2013 et le Framework 4.5.1 augmentent votre productivité ainsi que les performances de vos applications .NET. Dans la lignée du Framework 4.5, cette dernière version offre son lot d’améliorations, parfaitement stabilisées au rythme des versions de Visual Studio. Cependant, Microsoft a décidé de livrer des packages officiels à un rythme plus rapide et plus fréquent que les versions majeures de Visual Studio. La dernière version de NuGet intégrée à Visual Studio 2013 permet de trouver plus facilement le type de package recherché. Ne manquez pas cette session et venez découvrir l’essentielle des nouveautés apportées par Visual Studio 2013 et le Framework 4.5.1.
Speakers : Michel Perfetti (Cellenza), Bruno Boucard (Cellenza)
TechDays 2014 : Cloud Azure – Services de données et bonnes pratiquesMCKLMT
Durant cette session, nous vous présenterons les différentes options de stockage de données Windows Azure SQL/NoSQL, PaaS/IaaS et les bonnes pratiques pour identifier celle(s) correspondant à votre besoin. Une application web d'Emailing sera démontrée et permettra notamment d'expliquer les avantages d'utiliser une combinaison de plusieurs options de stockage. Nous terminerons par un retour d'expérience sur une solution permettant de gérer de gros fichiers (>150 Go) et les bénéfices apportés.
Slides du meetup Google Cloud présentant les différents services Google Cloud
- Compute Engine
- Gigquery
- Cloud Storage
- Cloud Function
- Google Dataflow / Apache Beam
- Google Spanner etc...
A brief summary of the most important reasons about why choosing MongoDB might be a good solution in current common problems in IT. This talk is dedicated to software engineers, DBA, managers, CTO that could know MongoDB but don't see why they should deploy it in production.
Les nouveautés stockage dans Windows Server 2012 R2Georgeot Cédric
Les nouveautés des composants stockage dans l'édition Windows Server 2012 R2 ont pour objectif de rendre les déploiements encore plus évolutifs mais également de simplifier les déploiements d'Hyper-V et d'en améliorer les performances et la disponibilité. Microsoft renforce ainsi sa stratégie de Cloud OS visant à permettre aux entreprises de consommer les technologies serveurs dans une typologie de déploiement Cloud. Dans le cadre de cette session, la plupart de ces nombreuses améliorations ou nouveautés seront abordées et sera démontré comment la déduplication, Automated Storage Tiering, Storage Spaces, le nouveau format VHDX ou encore la cible iSCSI permettent de déployer de puissantes infrastructures. Certaines de ces composants introduits avec Windows Server 2012 ont été largement améliorés qui rendent ainsi les composants stockage de cette édition à un haut niveau de maturité et de fonctionnalités.
Vous souhaitez implémenter une architecture Exchange 2013 ? Voici LA session à suivre pour dimensionner correctement vos serveurs en fonction des rôles que vous allez leur affecter. Evitez les pièges, et suivez les recommandations des experts afin de maximiser les performances de chaque serveur dans votre architecture. Vous souhaitez comprendre en profondeur comment mettre tout cela en place : c'est la session à suivre. Comment Sizer un CAS correctement ? idem sur le Mail Server... Tout vous sera expliqué dans cette session
Speakers : Guy Groeneveld (Microsoft), Raquel Municio (Microsoft France), Stefan Plizga (Microsoft France), Lionel Constantin (Microsoft France)
meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetesFrederic Leger
Slides du meetup du 08/12/17 montrant un workflow d'intégration et déploiement continue basé sur gitlab et les nouvelles fonctionnalités autodevops intégrées depuis la version 10.0
Similaire à OpenDS - Ludovic Poitou - December 2010 (20)
Introduction aux algorithmes génétiquesJUG Lausanne
The document introduces genetic algorithms (GA), including:
- The history and origins of GA from Darwin's theory of evolution.
- The key concepts of GA, such as encoding, selection, crossover, and mutation operations inspired by biological evolution to arrive at optimal solutions.
- Examples of applying GA to problems like the traveling salesman problem and function approximation are presented.
Développer un moteur d'exécution symbolique en partant de rienJUG Lausanne
Session du 10 Janvier 2018
En chaque développeur a sommeillé un jour ce rêve d'écrire son propre compilateur pour un language de domaine ou voir même pour créer un nouveau language de programmation. Or le développement d'un analyseur de code ressemble étrangement au développement du front-end d'un compilateur. Durant cette session, Freddy présentera les différentes étapes du développement d'un analyseur de code jusqu'à la capacité à exécuter symboliquement tous les chemins d'exécutions. Ce concept avancé d'interprétation abstraite est un pré-requis à la détection des bugs et vulnérabilités les plus profonds dans tous les languages.
Quizz en ligne
20 minutes pour jouer ensemble et mettre à l'épreuve nos connaissances des principales failles de sécurité applicatives et notre capacité les détecter des bugs dans du code Java et JavaScript. Speaker
Freddy est le créateur de la plateforme SonarQube et est co-fondateur de SonarSource. Après de nombreuses années de développement en Java, il joue désormais le role de Product Manager pour les analyseurs de code SonarSource.
Reverse engineering Java et contournement du mécanisme de paiement inapp AndroidJUG Lausanne
Session du 28 Septembre 2017
Android fournit une API Java pour la facturation d'achats in-app, permettant aux développeurs de vendre des fonctionnalités supplémentaires directement depuis l'application. Ce mécanisme est très souvent utilisé dans les jeux pour acheter des crédits donnant accès à du contenu supplémentaire, des bonus, etc ... Mais l'intégration du paiement est souvent mal comprise: on ne peut pas faire confiance au code tournant sur le smartphone. Ainsi, toutes les vérifications et l'obtention du contenu doivent s'effectuer côté serveur. Comme ce n'est pas très clair dans la documentation de Google, beaucoup de jeux continuent de faire la gestion côté client.
Nous allons exploiter une véritable application Android du Playstore pour obtenir des crédits gratuits. Et constater à quel point il est facile d'en faire son reverse engineering et d'identifier les validations effectuées côté client. Puis grâce au framework de hooking Xposed, nous allons écrire un hook tenant en une seule ligne de code Java permettant de contourner le paiement. Enfin, nous verrons comment patcher le bytecode de l'application (afin d'y injecter le hook) pour être ensuite capable de la distribuer très facilement.
Pour conclure, des recommandations pratiques seront données pour se prémunir de ce genre de problème en utilisant Angry Birds comme exemple.
Speaker
Jeremy Matos (@SecuringApps) a travaillé dans le domaine de la sécurité logicielle depuis plus de 10 ans en Suisse Romande. Avec une formation académique de développeur, il a conçu et participé à l'implémentation d'une solution innovante d'authentification forte mobile.
Il a également effectué des revues de code et des audits sécurité pour des sociétés dont l'utilisateur interne était l'ennemi ou craignant pour leur réputation.
Il fournit désormais des services en sécurité applicative au sein de sa propre société. Il a présenté l'année dernière au Crypto Village de la DefCon un nouveau vecteur d'attaque contre les messageries mobiles chiffrées appelé Man In The Contacts.
Il enseigne également la sécurité logicielle et les technologies blockchain pour des formations d'ingénieur en Suisse et en France.
Meetup : https://www.meetup.com/JUGL-the-Java-User-Group-of-Lausanne/events/242895293/
YouTube : https://youtu.be/mSYuM-PrCaw
Exemple d'IOT et ML avec Android, Cassandra et SparkJUG Lausanne
Je vais vous présenter un exemple d'objet connecté et comment analyser ses données. L'objectif est de voir comment collecter les données depuis un capteur du smartphone, stocker ces données dans Cassandra et enfin, analyser ces données pour prédire notre activité avec Spark.
Une démonstration sera faite pour monter la solution en temps réel.
Speaker
Amira LAKHAL est Java Champion et développeur chez Actyx. Elle est passionnée par l’agilité et les langages fonctionnels. Elle s’intéresse aussi aux problématiques de Big Data et diverses solutions de stockage des données volumineuses. Elle a animé des conférences sur la base NoSql Cassandra. Elle aide aussi à la mise en avant des femmes dans l’IT.
Meetup : https://www.meetup.com/JUGL-the-Java-User-Group-of-Lausanne/events/237954272/
YouTube : https://youtu.be/QIhK8OSamKM
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012JUG Lausanne
The document discusses the benefits of exercise for mental health. Regular physical activity can help reduce anxiety and depression and improve mood and cognitive functioning. Exercise causes chemical changes in the brain that may help boost feelings of calmness, happiness and focus.
CloudBees provides a platform as a service (PaaS) that allows developers to build, test, and deploy applications in the cloud. Key features of CloudBees' DEV@cloud offering include Jenkins continuous integration as a service, Git and SVN repositories, and the ability to directly deploy applications to CloudBees' PaaS from the development environment. Developers can leverage PaaS resources like MySQL for testing and CloudBees integrates additional services for tasks like static code analysis.
Apache Camel - Stéphane Kay - April 2011JUG Lausanne
Apache Camel is a powerful open source integration framework based on known enterprise integration patterns. It provides a simple Java domain specific language for defining routing and mediation logic. Camel includes over 70 components, 18 data formats, and support for many languages for expressions and predicates. It also includes tools for testing, transactions, concurrency, and exceptions handling. Camel's architecture uses services like routes, endpoints, components and data formats that are accessible through its container.
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...JUG Lausanne
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - February 2011
Alan Perkins (Coverity), Chris Chedgey (Headway Software), Bogdan Czwartkowski (Parasoft), Freddy Mallet (Sonar), Henri Tremblay (XDepend)
Infinispan - Galder Zamarreno - October 2010JUG Lausanne
Galder Zamarreno gave a presentation on Infinispan, an open source data grid platform designed for cloud computing. He discussed how traditional databases do not work well in cloud environments due to their stateful and failure-prone nature. Data grids are better suited as they are highly scalable, have no single point of failure, and work with ephemeral cloud nodes. Infinispan is a new data grid that improves on an earlier product, JBoss Cache, with a more scalable architecture and features like a simple map API, client/server support, and integration with Hibernate and Lucene. Future plans for Infinispan include enhanced replication, distributed execution capabilities, and support for cloud-based data
Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010JUG Lausanne
GlassFish v3 is the latest version of the GlassFish application server which implements the full Java EE 6 specification; it includes new features like Java API for RESTful Web Services (JAX-RS 1.1), Contexts and Dependency Injection for Java EE (CDI 1.0), and Bean Validation 1.0. GlassFish v3 provides an open source, modular, and extensible Java EE application server platform that can be used for cloud computing and embedded applications. Going forward, Oracle will continue to develop GlassFish as an open source project while providing commercial support.
Introduction à Scala - Michel Schinz - January 2010JUG Lausanne
Scala is a programming language that combines object-oriented and functional programming. It runs on the JVM and is interoperable with Java. Scala is statically typed and concise.
Scala allows modeling of concepts like rational numbers and mutable cells. Classes can implement traits to mix in functionality like logging. Pattern matching makes deconstructing data structures like lists and optional values easy. The Scala library includes collections, functions, and other functional programming constructs.
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008JUG Lausanne
The document discusses JUGL meeting dates in March, April and May and seeks speakers. It then provides an overview of using Netbeans 6.0 to develop visual mobile applications, including what Netbeans and Java ME are, how the CLDC and MIDP specifications define the Java ME architecture, and a demo of Netbeans' visual tools for developing mobile user interfaces and applications. Resources for learning more about Netbeans mobility support are listed at the end.
2. QUI SUIS-JE ?
• Ludovic
Poitou
• Product
Manager à ForgeRock
• Précédemment Architecte
chez Sun et “Community
Manager” pour le projet OpenDS
• Plus
de 14 ans d'expérience avec LDAP
• Architecte
de Sun Directory Server 5.2 / 6
2
• http://ludopoitou.wordpress.com
Friday, December 10, 2010
2
3. • ForgeRock AS
• Editeur
- Février 2010 - Norvège
de logiciels open source
• OpenAM
• ForgeRock
• Centre
(ex-OpenSSO), OpenIDM, OpenDJ (OpenDS) ...
France SAS - Novembre 2010
de Recherche & Développement à Grenoble
• UK, USA, Brésil, Allemagne, Suède...
Friday, December 10, 2010
3
4. AGENDA
• Une
présentation du projet OpenDS
• Modèles
de conceptions et réflexions sur la notion de
performance
• La
JVM et les performances
• Conclusion
Friday, December 10, 2010
4
5. LE PROJET OPENDS
• Lancé
en Open Source en July 2006
• CDDL
• Code
source : https://opends.dev.java.net/
• Sponsorisé
• Ecrit
par Sun Microsystems / Oracle
en Java par des experts LDAP
Friday, December 10, 2010
5
6. QU'EST CE ?
• OpenDS
est un server en Java qui implémente le protocol
LDAPv3 et ses services
• Il
inclut sa propre base de données,
• basé
• Pas
sur Berkeley DB Java Edition
accessible directement
• Possède
toutes les fonctions de sécurité, de contrôle d'accès,
de gestion de mots de passes pour stocker de façon sécurisée
les identités des utilisateurs et machines
Friday, December 10, 2010
6
7. POURQUOI FAIRE ?
• Stockage
• Pages
générique et orienté objet de données
blanches et carnet d'adresses mél
• Principalement
le coffre fort des Identités
• Pour
l'Authentication et les Authorizations
• Pour
les Profiles et Personnalisations
• La
brique de base de tout SI dans les entreprises
• Utilisé
• Le
par l'infrastructure Web et Mail
fondement des produits de gestion d'Identité
• Gestion
Friday, December 10, 2010
d'Access, Fédération, Provisionnage
7
8. LES OBJECTIFS DU PROJET
OPENDS
• Un
jeu complet de Services d'Annuaire
• L'annuaire
base de données, des services de Proxy
d'annuaire, des fonctions d'annuaire virtuel
• Conformes
• Capacité
aux standards et extensions LDAPv3
de croissance horizontale et verticale
• Utiliser
le code d'OpenDS pour le produit Oracle Directory
Server Enterprise Edition
Friday, December 10, 2010
8
9. TROIS PRINCIPES
•
Facilité d'utilisation
•
•
Installation, Configuration, Gestion, Surveillance...
Capacité d'extension
•
•
•
De nombreuses interfaces ont été définies
Avec des implémentations par défault
Performance
•
C'est le coeur de cette présentation !
Friday, December 10, 2010
9
10. OPENDS 2.2
• Disponible
• Un
depuis Décembre 2009
serveur d'annuaire 100% conforme à LDAPv3
• Nombreuses
• Réplication
données
• Fonctions
extensions LDAP standards et expérimentales
Multi Maitre, avec 3 niveaux de cohérence des
étendues de Sécurité
• S'installe
en 6 clics et moins de 3 minutes
• Gestion
par outils graphiques et textes
• Documentation
Friday, December 10, 2010
complète sur le Wiki
10
11. • Dérive
d’OpenDS
• Version
• Plus
2.4 la semaine prochaine
de 10 nouvelles fonctionnalités
• Un
grand nombre de correctifs
• De
meilleures performances
Friday, December 10, 2010
11
12. POUR QUI ?
• Les
opérateurs Télécom, le secteur financier, les portails
• Pour
• De
• Pour
stocker les identités des clients, téléphones et services
15 à 120 millions d'entrées, hautement disponibles
le service de Nommage, ou les PME
• OpenSolaris, Solaris, Linux..., couplé
avec Kerberos
• Pages
Friday, December 10, 2010
avec SAMBA, Intégré
blanches...
12
13. CARACTÉRISTIQUES DE
PERFORMANCES
• Comme
priment
• Jusqu'à
tout serveur, les capacités de montée en charge
plusieurs dizaines de millions d'entrées
• Plusieurs
• Quel
• Quel
Friday, December 10, 2010
milliers de connections
débit d'opérations?
Photo par Roger Smith http://www.flickr.com/photos/rogersmith/
temps de réponse moyen ? Maximum ?
13
14. ENVIRONNEMENT DE TEST
• OpenDS
• Le
2.2, Solaris 10, ZFS
test de base :
• 10
M d'entrées, taille moyenne 2,6K
• Réplication
Friday, December 10, 2010
multi-maitre entre 2 serveurs
14
15. LES RÉGLAGES DU TEST
• config.ldif
• ds-cfg-db-log-file-max: 100
MB
• ds-cfg-db-cache-percent: 70-80
• ds-cfg-db-checkpointer-bytes-interval: 100
MB
• ds-cfg-etime-resolution: nanoseconds
• ds-cfg-num-request-handlers: 4
• Replication
Friday, December 10, 2010
ON
15
19. COMMENT OBTENIR DE TELS
RÉSULTATS ?
• 2 Aspects
• Le
code
• Le
run-time : l'optimisation de la JVM et du Garbage
Collector
• Une
relation très forte entre la conception du code et la
gestion mémoire
Friday, December 10, 2010
19
20. PERFORMANCE VS
PARALLELISME
• Impact
des performances sur le parallelisme
• Code
sérialisé crée des points de contentions
• Manque
• Impact
de ressources
du parallelisme sur les performances
• L'utilisation
de plus de ressources conduit à plus de
contention et impacte les performances
• Réglage
Friday, December 10, 2010
du goulet d'étranglement
20
21. ATTENTION AUX SECTIONS
CRITIQUES
• Essayer
de minimiser le temps passé en section critique
• Mais
la bande passante est limitée par le temps passé dans la
plus grosse section critique
• Exemple
• 200
• 20
000 opérations sur processeur x64
000 sur processor T2000
• Utilisée
Friday, December 10, 2010
: LinkedBlockingQueue
pour la WorkQueue et les Access Logs
21
22. LE CACHE D'ENTRÉES
• Un
cache pour réduire les accès disques
• L'éviction
• Un
du cache rajoute du travail au GC
cache global est point de contention
• Cacher
uniquement des objets qui vont être réutilisés (et pas
peut-être)
• Utiliser
Friday, December 10, 2010
un cache “thread local”, mais attention aux coûts !
22
23. LE MONITORING DU SERVEUR
• Les
statistiques sont indispensables
• Mais
attention à la contention
• Ecritures
• Lecture
fréquentes (update stats)
beaucoup moins
• Une
stratégie est de garder des statistiques par thread et de
les collecter sur demande
• Pas
encore implémenté dans OpenDS !
Friday, December 10, 2010
23
24. PATTERNS
• Utilisation
des I/O asynchrones
• Utilisation
d'Objets Immuables
• Thread
• Less
code
• Utilisation
• Evite
• Avec
des “Static Factories” au lieu de Constructeurs
la création d'objets
• Permet
Friday, December 10, 2010
safe
des optimisations
des objet immuables.
24
26. ANTI-PATTERNS
• Manipulation
• Il
faut utiliser “StringBuilder”
• Le
compilateur optimise aussi “Aaa” + “Bbb”
• Eviter
• Ne
les grandes méthodes (Milliers de lignes de code)
pas exposer la représentation concrète d'un objet
• Set
• Ne
de chaines (String)
vs LinkedHashSet
pas définir plus de méthodes que nécessaires
Friday, December 10, 2010
26
27. COLLECTIONS JAVA
• Vector
et Hashtable sont synchronisés (toutes les méthodes)
=> Un cout à payer, même avec un seul thread
• Certaines
classes ne sont pas synchronisées par défaut
• ArrayList, LinkedList
• HashSet, HashMap
replacent Vector
replacent Hashtable
• Pour
synchroniser: Enrober dans une classe.
Par une méthode “static factory”
Collections.synchronizedList(new ArrayList())
• ConcurrentHashMap, pour
• Mais
Friday, December 10, 2010
la concurrence
attention à l'itérateur
27
28. ATTENTION AUX TESTS DE
PERFORMANCE
• Des
tests reproductibles
• Maitrise
du système et de l'environnement
• Avec
100 000 entrées LDAP lues par seconde, le goulet peut
être le réseau
• Utilisation
Friday, December 10, 2010
de 10GB ethernet
28
29. LA JVM ET LES PARAMÈTRES
DES PERFORMANCES
“Tuning GC” est un art !
Photo par Kecko http://www.flickr.com/people/kecko/
Friday, December 10, 2010
29
30. GC DANS LA JVM HOTSPOT
•3
GCs disponibles:
• Serial
GC
• Parallel
GC / Parallel Old GC
• Concurrent
• Et
Mark-Sweep GC (CMS)
bientôt Garbage First (G1)
Friday, December 10, 2010
30
31. GESTION DU TAS
(POUR TOUS LES GCS)
Young Generation
Old Generation
Permanent Generation
Friday, December 10, 2010
31
35. LE GC RÊVÉ
• Idéalement
il faudrait un GC avec
• une
faible consommation CPU,
• des
temps de pauses infimes et
• efficace
en occupation mémoire
Photo par Craig Gorcott http://www.flickr.com/photos/craigweb/
• Malheureusement, vous
Friday, December 10, 2010
ne pouvez en choisir que 2 !
35
36. CONSEIL POUR REGLER LA
TAILLE DU TAS DE LA JVM
LE PLUS GROS POSSIBLE
Friday, December 10, 2010
36
37. UN EQUILIBRE A TROUVER
• Généralement, plus
• Valable
gros est l’espace mémoire, le mieux c’est !
pour les 2 espaces (Young Gen, Old Gen)
• Un
grand espace = des GCs moins fréquents, moins
d’utilisation CPU, des objets qui sont vraiment détruits
• Un
petit espace = des GCs plus rapide (pas toujours)
• Quelques
fois, la taille maximale dépend de la mémoire
physique et/ou de l’espace d’adressage de la JVM
• Il
faut trouver l'équilibre entre les tailles des générations
Friday, December 10, 2010
37
38. L’IMPACT DES TAILLES DES
GENERATIONS
• La
taille de la “Young Generation”
• Détermine
la fréquence des GCs mineurs
• Détermine
combien d’objets vont être récoltés
• Ainsi
que le “Tenuring Threshold” et la taille des “Survivor
Spaces”
• Old
Generation
• Doit
contenir les données permanentes de l’application
• Réduire
Friday, December 10, 2010
la fréquence des GCs majeurs le plus possible
38
39. 2 POINTS TRÈS IMPORTANTS
• Essayer
de maximiser le nombre d’objets collectés dans la
“Young generation”
• L’empreinte
mémoire de l’application ne doit pas dépasser la
la taille de la mémoire physique
• Ceci
est valable quelque soit le GC
Friday, December 10, 2010
39
41. DIMENSIONER LA TAILLE
MEMOIRE
• -Xmx<size>
: Taille mémoire max. (young + old generation)
• -Xms<size>
: Taille mémoire initiale (young + old generation)
• -Xmn<size>
: Taille mémoire pour la “Young generation”
• Pour
contrôler les performances, il est préférable de mettre Xms and -Xmx à la même valeur
• Quand
-Xms != -Xmx, l’accroissement ou diminution de la
mémoire nécessite un GC complet.
Friday, December 10, 2010
41
42. DIMENSIONER LA “YOUNG
GENERATION”
• La
taille de l’Eden influence
• La
fréquence des GCs mineurs
• Les
objets qui seront réclamés à l’age 0
• Les
objets alloué dans l’Eden ont un age 0
• L’age
est incrémenté chaque GC mineur
• Augmenter
la taille de l’Eden n’impact pas toujours la durée
des GCs mineurs : celle ci est proportionnelle au nombre
d’objets copiés (objets vivants)
Friday, December 10, 2010
42
43. DIMENSIONNER LES ESPACES
MEMOIRES
• -XX:NewSize=<size>
: Taille initiale de la “Young generation”
• -XX:MaxNewSize=<size>
generation”
• -XX:NewRatio=<ratio>
“old generation”
: Taille maximale de la “Young
: Ratio entre “young generation” et
• Pour
contrôler les performances, préférer -Xmn qui combine
-XX:NewSize et -XX:MaxNewSize
Friday, December 10, 2010
43
44. TENURING
• -XX:TargetSurvivorRatio=<%>, e.g., 50
• Pourcentage
• Laisser
d’occupation de l’espace “Survivor”
de l’espace pour gérer les pics
• -XX:InitialTenuringThreshold=<threshold>
• -XX:MaxTenuringThreshold=<threshold>
• -XX:+AlwaysTenure
• -XX:+NeverTenure
Friday, December 10, 2010
- Ne rien garder dans les “Survivor”
- Une très mauvaise idée
44
45. TENURING : AVANTAGES &
INCONVENIENTS
• Maintenir
le plus d’objets dans les espaces “Survivor” pour
qu’ils soient collectés dans la “Young generation”
• Moins
de promotion vers la “Old generation”
• Moins
de GCs de la “Old generation”
• Mais
éviter les nombreuses copies entre espaces “Survivor”
• Augmente
• Un
le cout des GCs mineurs
équilibre difficile à trouver
• Généralement, il
Friday, December 10, 2010
vaut mieux copier que promouvoir
45
47. LE GC GARBAGE FIRST (G1)
• Nouveauté
de la VM Java HotSpot dans JDK 7
• Une
version experimentale de G1 est dans Java SE 6 depuis la
version mineur 14
• G1
est vu comme le replacement à long terme du GC
“Concurrent Mark-Sweep” (CMS)
• Toujours
Friday, December 10, 2010
expérimental dans Java SE 6 Update 23 ☹
47
48. CARACTERISTIQUES DE G1
• Le
remplacement de CMS
• Un
GC pour les Serveurs
• Parallèle, Concurrent
• S’appuie
sur des Générations
• Auto
Compactant
• Facile
d’utilisation
• Prédictif
(mais pas temps réel)
• Les
étapes principales sont: remembered set (RS)
maintenance, concurrent marking, and evacuation pauses.
Friday, December 10, 2010
48
49. G1: LES OPTIONS DE LA JVM
• -XX:+UnlockExperimentalVMOptions
-XX:+UseG1GC
• Temps
de pause (pas garanti, sinon utiliser Java Temps Réel)
• -XX:MaxGCPauseMillis=50
(objectif de 50 millisecondes)
• -XX:GCPauseIntervalMillis=1000
• Dimension:
(objectif de 1000 msecs)
-XX:+G1YoungGenSize=512m
• Parallélisme:
• -XX:+G1ParallelRSetUpdatingEnabled
• -XX:+G1ParallelRSetScanningEnabled
Friday, December 10, 2010
49
50. OPENDS ET CMS
• Les
options
• CMS
+ Occupency
• NewGenSize
= ¼ de la taille mémoire (jusqu’à 2GB)
• MaxTenuringThreshold
• Temps
• Mais
=1
de pause maximum GC mineur ~ 100ms
Full GC en écriture ! 10 seconds ☹
Friday, December 10, 2010
50
51. OPENDS ET G1
• Objectif: Eviter
• Collaboration
• OpenDS
• Entre
tests
le GC Complet, meilleur contrôle des pauses
entre les équipes HotSpot et OpenDS
est utilisé comme application de référence
20 et 30 améliorations integrées dans G1 suite aux
• Améliorations
par 10 des performances de G1 avec de
grandes zones mémoires
Friday, December 10, 2010
51
52. LE CONTROLE DU GC
• En
direct:
• VisualVM: http://visualvm.dev.java.net/
• VisualGC:
Photo par Rennett Stowe http://www.flickr.com/photos/tomsaint/
• http://java.sun.com/performance/jvmstat/
• VisualGC
• Peut
•A
est aussi un module extension de VisualVM
surveiller plusieurs VM dans le même outil
posteriori
• GC
Logging, PrintGCStats, GChisto
Friday, December 10, 2010
52
53. LE JOURNAL DU GC ACTIVÉ
EN PRODUCTION
• Activer
• Très
• Coût
le journal du GC en production sans crainte
utile pour analyser, diagnostiquer un problème
en performance extrêmement faible
• Peut-être
• Il
quelques gros fichiers à gérer
y a toujours des clients qui ont peur d’activer les logs
• Un
(gros) client de Sun a dit : “If someone doesn't enable
GC logging in production, I shoot them!”
Friday, December 10, 2010
53
54. PARAMETRES POUR LE
JOURNAL DU GC
• -XX:+PrintGCTimeStamps
• Ajouter
-XX:+PrintGCDateStamps si besoin
• -XX:+PrintGCDetails
• Donne
• Mais
plus de détails que -verbosegc
aussi:
• -Xloggc:<fichier>
• Permet
de séparer les sorties du GC de celles de
l’application
Friday, December 10, 2010
54
55. PRINTGCSTATS
• Analyse
• Un
et résume les journaux du GC
script disponible
• http://java.sun.com/developer/technicalArticles/
Programming/turbo/PrintGCStats.zip
• Usage
• PrintGCStats
-v cpus=<num> <gc log file>
• Ou
<num> est le nombre de CPU de la machine qui a
produit les logs.
• Peut
ne pas marcher avec certains paramètres du log du GC
Friday, December 10, 2010
55
58. GCHISTO
• Pour
une visualisation graphique des journaux du GC
• Développement
• Affiche
• Open
• Peut
démarré en 2008 (mais arrêté ?)
uniquement les temps de pause
source sur Java.net : http://gchisto.dev.java.net/
ne pas marcher avec certains paramètres du log du GC
Friday, December 10, 2010
58
59. EN RÉSUMÉ
• OpenDS: Un
serveur LDAP en Java, open source
• Simple
à installer et utiliser
• Conçu
pour de hautes performances et haute disponibilité
• OpenDJ
• Le
pour une version supportée (et améliorée)
paramètrage de la JVM et du GC est un Art
• L'ingénierie
des performances, un métier !
• Comprendre
• Qui
la JVM et les GCs est indispensable
a dit que Java est lent !
Friday, December 10, 2010
59