Recent Posts
Archives

Posts Tagged ‘DevoxxFR2015’

PostHeaderIcon [DevoxxFR2015] Reactive Applications on Raspberry Pi: A Microservices Adventure

Alexandre Delègue and Mathieu Ancelin, both engineers at SERLI, captivated attendees at Devoxx France 2015 with a deep dive into building reactive applications on a Raspberry Pi cluster. Leveraging their expertise in Java, Java EE, and open-source projects, they demonstrated a microservices-based system using Play, Akka, Cassandra, and Elasticsearch, testing the Reactive Manifesto’s promises on constrained hardware.

Embracing the Reactive Manifesto

Alexandre opened by contrasting monolithic enterprise stacks with the modular, scalable approach of the Reactive Manifesto. He introduced their application, built with microservices and event sourcing, designed to be responsive, resilient, and elastic. Running this on Raspberry Pi’s limited resources tested the architecture’s ability to deliver under constraints, proving its adaptability.

This philosophy, Alexandre noted, prioritizes agility and resilience.

Microservices and Event Sourcing

Mathieu detailed the application’s architecture, using Play for the web framework and Akka for actor-based concurrency. Cassandra handled data persistence, while Elasticsearch enabled fast search capabilities. Event sourcing ensured a reliable audit trail, capturing state changes as events. The duo’s live demo showcased these components interacting seamlessly, even on low-powered Raspberry Pi hardware.

This setup, Mathieu emphasized, ensures robust performance.

Challenges of Clustering on Raspberry Pi

The session highlighted configuration pitfalls encountered during clustering. Alexandre shared how initial deployments overwhelmed the Raspberry Pi’s CPU, causing nodes to disconnect and form sub-clusters. Proper configuration, tested pre-production, resolved these issues, ensuring stable heartbeats across the cluster. Their experience underscored the importance of thorough setup validation.

These lessons, Alexandre noted, are critical for constrained environments.

Alternative Reactive Approaches

Mathieu explored other reactive libraries, such as Spring Boot with reactive Java 8 features and async servlets, demonstrating versatility beyond Akka. Their demo included Gatling for load testing, though an outdated plugin caused challenges, since resolved natively. The session concluded with a nod to the fun of building such systems, encouraging experimentation.

This flexibility, Mathieu concluded, broadens reactive development options.

Links:

PostHeaderIcon [DevoxxFR2015] Evolving Infrastructure Without Downtime: CloudBees’ Journey

Nicolas De Loof, an Apache Maven committer and founder of BreizhJUG, delivered an engaging session at Devoxx France 2015, stepping in for his colleague Michael Neale. Representing CloudBees, Nicolas shared the company’s evolution from a fragmented startup to a robust, globally available system, focusing on seamless infrastructure migrations without interrupting service. His narrative, infused with humor and practical insights, highlighted transitions to multi-tenant architectures and Docker-based deployments.

From Startup Chaos to Structured Systems

Nicolas began by outlining CloudBees’ early days, marked by ad-hoc technical decisions that later demanded refinement. Initial choices, such as a custom LXC-based solution, became obsolete as the company scaled. He described the challenge of maintaining zero downtime across a global user base, necessitating careful planning to evolve infrastructure while keeping services operational.

This journey, Nicolas emphasized, required strategic foresight.

Migrating to Multi-Tenant Architecture

The shift to a multi-tenant build-on-demand system was a cornerstone of CloudBees’ transformation. Nicolas detailed how this migration, spanning months, consolidated resources to improve efficiency without impacting users. By gradually phasing in the new architecture, the team ensured continuity, addressing regrets from earlier single-tenant designs that strained scalability.

This transition, he noted, enhanced resource utilization.

Adopting Docker for Containerization

Replacing LXC with Docker marked another pivotal change. Nicolas explained how Docker’s containerization simplified deployment and management, offering greater flexibility than the bespoke LXC setup. The migration, executed incrementally, maintained service uptime, with Docker’s lightweight containers streamlining operations across CloudBees’ infrastructure.

This adoption, Nicolas highlighted, modernized their platform.

Operational Best Practices

Drawing from CloudBees’ experience, Nicolas stressed the importance of health checks, monitoring, and termination strategies to prevent service disruptions. His lighthearted “Salut les Geeks” conclusion, inspired by a YouTube series, underscored practical advice: robust monitoring prevents “blonde” moments where systems fail silently. He urged teams to integrate these practices early to avoid production chaos.

These strategies, he concluded, ensure resilient operations.

Links:

PostHeaderIcon [DevoxxFR2015] Advanced Streaming with Apache Kafka

Jonathan Winandy and Alexis Guéganno, co-founder and operations director at Valwin, respectively, presented a deep dive into advanced Apache Kafka streaming techniques at Devoxx France 2015. With expertise in distributed systems and data warehousing, they explored how Kafka enables flexible, high-performance real-time streaming beyond basic JSON payloads.

Foundations of Streaming

Jonathan opened with a concise overview of streaming, emphasizing Kafka’s role in real-time distributed systems. He explained how Kafka’s topic-based architecture supports high-throughput data pipelines. Their session moved beyond introductory concepts, focusing on advanced writing, modeling, and querying techniques to ensure robust, future-proof streaming solutions.

This foundation, Jonathan noted, sets the stage for scalability.

Advanced Modeling and Querying

Alexis detailed Kafka’s ability to handle structured data, moving past schemaless JSON. They showcased techniques for defining schemas and optimizing queries, improving performance and maintainability. Q&A revealed their use of a five-node cluster for fault tolerance, sufficient for basic journaling but scalable to hundreds for larger workloads.

These methods, Alexis highlighted, enhance data reliability.

Managing Kafka Clusters

Jonathan addressed cluster management, noting that five nodes ensure fault tolerance, while larger clusters handle extensive partitioning. They discussed load balancing and lag management, critical for high-volume environments. The session also covered Kafka’s integration with databases, enabling real-time data synchronization.

This scalability, Jonathan concluded, supports diverse use cases.

Community Engagement and Resources

The duo encouraged engagement through Scala.IO, where Jonathan organizes, and shared Valwin’s expertise in data solutions. Their insights into cluster sizing and health monitoring, particularly in regulated sectors like healthcare, underscored Kafka’s versatility.

This session equips developers for advanced streaming challenges.

Links:

PostHeaderIcon [DevoxxFR2015] Harnessing Java 8: Building Real-Time Applications

Trisha Gee, a Java Champion and Developer Advocate at JetBrains, showcased the power of Java 8 at Devoxx France 2015 by live-coding a real-time dashboard application. With extensive experience in high-performance Java systems, Trisha demonstrated how streams, lambdas, and the new date/time API can create robust, end-to-end applications using core Java libraries.

Crafting a Real-Time Dashboard

Trisha kicked off by building a JavaFX-based dashboard that consumed a high-velocity data feed, simulating Twitter sentiment analysis. She leveraged Java 8 streams to process collections efficiently, transforming raw data into meaningful insights. Lambdas simplified code, replacing verbose loops with concise expressions. Her demo highlighted real-time updates, with the dashboard dynamically rendering mood data.

This approach, Trisha emphasized, showcases Java 8’s expressiveness.

Streamlining Data Manipulation

Using streams, Trisha demonstrated filtering and aggregating data to display sentiment trends. The joining collector automatically formatted outputs, eliminating manual string manipulation. She also touched on the new date/time API, ensuring precise temporal handling. Despite a glitch requiring a restart, the dashboard successfully visualized real-time Twitter data, proving Java 8’s suitability for dynamic applications.

Her live coding, Trisha noted, demystifies complex features.

JavaFX for Modern UIs

Trisha integrated JavaFX to create a responsive UI, binding data to visual components. She contrasted fake and real mood services, showing how streams handle both seamlessly. Q&A was limited due to time, but she shared a comprehensive resource page, including WebSocket and JavaFX references, encouraging further exploration.

This session positions Java 8 as a versatile tool for modern development.

Links:

PostHeaderIcon [DevoxxFR2015] Unlocking Chrome OS: Insights from Its Open-Source Code

François Beaufort, a Chromium Evangelist based in Paris, delivered an engaging session at Devoxx France 2015, sharing ten key lessons gleaned from diving into the open-source code of Chrome OS. Despite a last-minute rush to the stage, François captivated the audience with practical insights into Chrome OS’s architecture, emphasizing the power of exploring source code to understand and debug this web-centric operating system.

Exploring Chrome OS’s Open-Source Roots

François introduced Chrome OS, the operating system powering Chromebooks, built on the open-source Chromium OS project. He highlighted its web-based nature, where applications leverage HTML, CSS, and JavaScript. By enabling a specific flag, developers can right-click to inspect elements, revealing the underlying code of Chrome OS applications, such as the wallpaper app. This transparency allows direct debugging, transforming how developers interact with the system.

This accessibility, François noted, empowers developers to troubleshoot effectively.

Practical Debugging with Source Code

Through a real-world example, François recounted debugging a broken Linux distribution app, Gestan, on a Chromebook. By accessing the JavaScript console in the Dev Channel, he identified a compatibility issue with a Chrome update, enabling a swift fix. This approach bypasses traditional bug reporting, allowing developers to collaborate directly with maintainers. His session underscored the value of open-source code for rapid problem-solving.

François’s insights inspire hands-on exploration of Chrome OS.

Links:

PostHeaderIcon [DevoxxFR2015] Scaling Seamlessly with Infinispan on Google Cloud

Ludovic Champenois and Mandy Waite, stepping in for Ray Tsang, delivered a dynamic session at Devoxx France 2015 on Infinispan, a scalable Java-based key/value data store. As Google Cloud Platform advocates, they demonstrated automatic scaling on GCP, showcasing Infinispan’s ability to handle up to 500 nodes effortlessly.

Infinispan’s Scalability Features

Ludovic introduced Infinispan as a highly available data grid, ideal for distributed systems. He explained its key/value store mechanics, optimized for scalability, and demonstrated deployment on GCP’s Compute Engine. The platform’s auto-scaling capabilities adjust resources dynamically, ensuring performance under load.

This flexibility, Ludovic highlighted, simplifies infrastructure management.

Automatic Provisioning and Decommissioning

Mandy detailed GCP’s managed infrastructure, focusing on auto-scaling policies that prioritize removing short-lived or initializing VMs. Q&A clarified mechanisms for controlling instance removal, such as manual group adjustments. This ensures minimal disruption during scaling events, maintaining system stability.

These policies, Mandy noted, enhance operational reliability.

Practical Deployment and Feedback

The duo showcased deploying Infinispan clusters, leveraging GCP’s free trial ($300 credit) for experimentation. They directed attendees to a feedback form and GitHub resources for deeper exploration, encouraging hands-on testing.

This session equips developers for scalable deployments.

Links:

PostHeaderIcon [DevoxxFR2015] How Git Rescued Our Project (Almost)

Cécilia Bossard, an agile developer at TIM Consulting and co-founder of Women In Technology Nantes, shared a compelling narrative at Devoxx France 2015 about migrating a decade-old software project from SVN to Git. Cécilia detailed how GitFlow streamlined versioning across diverse client deployments, transforming a chaotic process into a manageable one.

Challenges of SVN in a Multi-Version Environment

Cécilia recounted the struggles of managing multiple software versions for clients using SVN. The heterogeneous client base led to complex branching and merging, with the Eclipse SVN plugin causing performance issues due to frequent polling. This inefficiency sparked the team’s decision to explore Git, seeking a more robust solution for their aging product.

This context, Cécilia explained, highlighted SVN’s limitations.

GitFlow’s Streamlined Workflow

Adopting GitFlow, the team established a clear branching model, with feature branches merging seamlessly into development streams. Cécilia shared a developer’s astonishment at completing a day-long merge in minutes, showcasing Git’s efficiency. The migration retained SVN for older versions, porting changes to Git, ensuring continuity while transitioning.

This shift, she noted, revitalized development speed.

Links:

None available

PostHeaderIcon [DevoxxFR2015] Standardizing Development Environments with Docker Compose

Etienne Peiniau, a Java architect at Ekino, presented a concise yet insightful session at Devoxx France 2015 on using Docker Compose (formerly Fig) to streamline development environments. With expertise in Spring, Hibernate, and cloud deployments, Etienne demonstrated how Docker Compose ensures reproducible, isolated setups for Spring Boot applications and their dependencies.

Docker Compose for Consistent Setups

Etienne introduced Docker Compose as an open-source tool, succeeding Fig after its acquisition by Docker. He showcased a YAML configuration file defining a Spring Boot app with dependencies like databases and caches. A single docker-compose up command spins up the entire environment, eliminating manual setup overhead. This approach rivals Vagrant and Foreman, offering simplicity and isolation.

This method, Etienne argued, ensures uniformity across developer machines.

Scaling and Load Balancing Demonstrations

Through live demos, Etienne illustrated scaling multiple instances of a web application, such as Elasticsearch, using Docker Compose’s scale command. He showed how it automatically balances loads across instances, simplifying testing and development. His GitHub repository provides additional examples, enhancing accessibility for experimentation.

This functionality, Etienne noted, boosts development agility.

Links:

PostHeaderIcon [DevoxxFR2015] React: Rethinking UI Components

Mathieu Ancelin, a Java EE expert at SERLI, introduced React, Facebook’s JavaScript library, at Devoxx France 2015. With a focus on component-based UIs, Mathieu demonstrated how React’s JavaScript-centric approach eliminates templates, enabling reusable, testable interfaces for dynamic applications.

React’s Component-Based Paradigm

Mathieu highlighted React’s departure from traditional templating, using pure JavaScript to define components. This expressiveness supports complex UIs with evolving data, as seen in his Reddit iOS client demo, coded entirely in React with native iOS components. The approach ensures consistency across platforms, aligning with the “learn once, write everywhere” philosophy.

This paradigm, Mathieu argued, simplifies scalable UI development.

Flux for Unidirectional Data Flow

He introduced Flux, a pattern for managing application state with unidirectional data flows. User actions dispatch to stores, updating views via events, ensuring predictable state management. His demo showcased a mobile app, emphasizing React’s versatility beyond HTML to native components.

Mathieu noted Flux enhances application robustness.

Cross-Platform Potential

Despite a demo glitch, Mathieu’s Reddit client illustrated React’s cross-platform capabilities, rendering native iOS elements via JavaScript. Q&A explored Flux implementations, encouraging exploration of tutorials for deeper understanding.

This flexibility positions React as a powerful UI tool.

Links:

PostHeaderIcon [DevoxxFR2015] Write in AsciiDoc, Publish Everywhere

Dan Allen and Maxime Gréau, prominent figures in open-source documentation, presented at Devoxx France 2015 on AsciiDoc’s versatility for streamlined content creation. Dan, Asciidoctor lead and Java Champion, alongside Maxime, eXo Platform’s Software Factory Manager, shared best practices for maintainable, collaborative documentation.

AsciiDoc’s DRY Philosophy

Dan introduced AsciiDoc’s lightweight syntax, designed to minimize repetition and enhance reusability. Unlike traditional formats, AsciiDoc separates content from presentation, enabling publication across platforms—PDFs, HTML, or ebooks. He demonstrated structuring documents for clarity, using modular includes to keep content DRY.

This approach, Dan explained, simplifies multi-format publishing.

Enhancing Collaboration and Maintainability

Maxime emphasized organizing documentation for contributor accessibility, advocating clear folder structures and version control integration. Tools like live reload, despite IntelliJ delays, enhance editing flows. Q&A addressed tightening preview loops, ensuring instant feedback for writers.

Maxime noted this fosters seamless team contributions.

Standardizing Lightweight Formats

Dan outlined AsciiDoc’s potential as a standard for documentation, citing an initiative to formalize its grammar. This addresses parsing inconsistencies, ensuring reliability as global adoption grows. Their Hubpress demo showcased real-time previews, reinforcing AsciiDoc’s practicality.

This vision, Dan concluded, positions AsciiDoc as a documentation cornerstone.

Links: