SlideShare una empresa de Scribd logo
1 de 20
Descargar para leer sin conexión
SCARLET
scalable cloud enabled JIRA
  Sanne Grinovero, Sourcesense
What is Scarlet

Scarlet is a custom edition of Atlassian JIRA for demanding
customers, to scale both vertically and horizontally.

It solves the limitation of standalone JIRA to be deployed on a
single node, applies some performance tuning, enables
dynamic cluster resizing with automatic node discovery and
failover.
What Scarlet isn't

  It's not a JIRA plugin

  Doesn't need a cloud

  Can scale down to one or zero nodes without data
  loss

  Doesn't cost more than JIRA
Why did we make it?


 Some customers need failover for high availability

 Having a single node makes maintenance harder

 Sometimes vertical scaling is not an option
   or is too expensive

 We are cool partners
Why did we make it?

 British Telecom, UK:
    25,000 users
    50 million issues with complex workflows

 Another telecom, in Italy:
   140 projects
   100 issues added a day
   1,000 users
   complex workflows:
      issues live in the system for many months
From the technical point of view, it is..
  It is a source code patch to JIRA:
      Enables caching with Infinispan
      Extreme tuning at Lucene level
      Removes the design barriers to multi-node
      clustering

  It is a complex build system
      automated JIRA repackaging
      short time reaction to new JIRA releases

  cross-technology virtual appliances builds

  Designed to ease deploy and maintenance
Caching with

Infinispan is an extremely scalable, highly available data grid
platform - 100% open source, and written in Java.
                                              www.infinispan.org

JIRA uses several dozens of special-purpose internal caches;
almost all need a java.util.concurrent.ConcurrentMap, which is
implemented by Infinispan
   Scarlet detects and enables Infinispan on each of JIRA's
   caches
   Each cache can be configured independently
   Infinispan uses state-of-the-art algorithms for maximum
   efficiency (such as Low Inter-reference Recency Set - LIRS
   eviction)
   Scarlet uses Infinispan' support for cache distribution,
   invalidation and replication for multi-node deployments.
tuning & new strategies

JIRA's usage of Lucene needs to be flexible for all kind of
customers: low, medium and high number of concurrent users.

Scarlet takes advantage of some of the latest Lucene
innovations to reach for peak performance
scaling vertically:
   shared buffers across index reopening
   pooled IndexSearchers
   in-memory transactional writes
   enables more low-level tuning patterns

and scaling horizontally:
   Index stored in replicated/distributed memory (Infinispan)
Lucene index stored in Infinispan
Infinispan: shared state, cache, index
Concerns with clustering

  Internal caches
      replication, distribution or invalidation with Infinispan

  Internal state (configuration settings,...)
      replication

  Indexes
     Infinispan distributed or replicated

  File uploads (issue attachments)
      use a shared filesystem
      in future Scarlet might store files using Infinispan's
      GridFS
          http://www.infoq.com/articles/infinispan-gridfs
Concerns with clustering

  Session replication
     not implemented yet: in case the node you're connected
     to is killed you'll have to login again.

  Load balancer
     any load balancer should work
     mod_cluster is recommended when using Apache Httpd
        Dynamic configuration of httpd workers
        Server-side load balance factor calculation
        http://www.jboss.org/mod_cluster
Scarlet with mod_cluster
On a cloud...

Node automatic discovery might be problematic
  Infinispan (JGroups) has several ways to do it
      start with a list of known IPs (TCPPING)
      use S3 (S3PING)
      setup a GossipRouter

We test Scarlet using RDS as database and index store
(Amazon's MySQL as-a-service), S3PING for node
autodiscovery:
    1. provide EC2 credentials
    2. the build system produces and registers a
       preconfigured custom AMI
    3. start many of them!
On a cloud...

  Your nodes are "stateless", all equal:
     no important data on them
         no need to backup the volatile node data
     you can kill some if you want to scale back
     you can start new clones to scale up

  All your important data is stored in a database
      or S3
      a single object to backup and manage

  We have build targets to provide appliances for many
  virtualization environments (VMWare, Xen, KVM, ...)
      Using BoxGrinder: http://www.jboss.org/boxgrinder.html
Ease of management
 No "special" nodes needed
    no master node, no passive master

 the Scarlet package installs exactly the same way as
 standalone JIRA:
    uncompress it
    configure a datasource
    configure the jira_home parameter
        until we implement GridFS too
    optionally, do some tuning
        plenty of more options

 All nodes activated in the same network will form a cluster
     you might need to configure firewall and network
Upgrading to Scarlet from JIRA

1. replace the package, keep configuration files
2. start it!
       previous indexes are detected and imported in Infinispan
       a new table is added to your DB.
                                           Scarlet just adds a
                                           single table to your
                                           existing schema.
From Scarlet to JIRA                       Nothing else is
                                           changed in the
 1. replace the package                    database, and
 2. delete the extra table                 there's no need to
 3. perform re-indexing                    change any
                                           configuration files
                                           either!
Plugin compatibility

  With the ones tested so far no changes where needed, still
  many plugins are untested and might need fixing.
     Greenhopper works fine
     Fisheye works fine

  To plugin developers:
     avoid to make your own cache
        use JIRA's services
        use JIRA's cache factories
     we are available for help
        if you can show us the code we can help even better
How to get it?

  The package is free of charge for beta testers
  pay for setup, tuning and testing time

           atlassian@sourcesense.com

 www.sourcesense.com/en/events/scarlet.html

               scarlet.sourceforge.net
Combined best of breed OSS
technologies

Más contenido relacionado

La actualidad más candente

Inspecting a multi everything linux system (plmce2k14)
Inspecting a multi everything linux system (plmce2k14)Inspecting a multi everything linux system (plmce2k14)
Inspecting a multi everything linux system (plmce2k14)
Frederic Descamps
 
Best Practices for Enabling Speculative Execution on Large Scale Platforms
Best Practices for Enabling Speculative Execution on Large Scale PlatformsBest Practices for Enabling Speculative Execution on Large Scale Platforms
Best Practices for Enabling Speculative Execution on Large Scale Platforms
Databricks
 

La actualidad más candente (20)

Inspecting a multi everything linux system (plmce2k14)
Inspecting a multi everything linux system (plmce2k14)Inspecting a multi everything linux system (plmce2k14)
Inspecting a multi everything linux system (plmce2k14)
 
OpenStack and Rackspace – an Australian perspective: Tony Breeds, Rackspace
OpenStack and Rackspace – an Australian perspective: Tony Breeds, RackspaceOpenStack and Rackspace – an Australian perspective: Tony Breeds, Rackspace
OpenStack and Rackspace – an Australian perspective: Tony Breeds, Rackspace
 
Keep your environment always on with sql server 2016 sql bits 2017
Keep your environment always on with sql server 2016 sql bits 2017Keep your environment always on with sql server 2016 sql bits 2017
Keep your environment always on with sql server 2016 sql bits 2017
 
The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a...
 The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a... The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a...
The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a...
 
MySQL Cluster Scaling to a Billion Queries
MySQL Cluster Scaling to a Billion QueriesMySQL Cluster Scaling to a Billion Queries
MySQL Cluster Scaling to a Billion Queries
 
Pass Summit Linux Scripting for the Microsoft Professional
Pass Summit Linux Scripting for the Microsoft ProfessionalPass Summit Linux Scripting for the Microsoft Professional
Pass Summit Linux Scripting for the Microsoft Professional
 
Running MariaDB in multiple data centers
Running MariaDB in multiple data centersRunning MariaDB in multiple data centers
Running MariaDB in multiple data centers
 
Galera Cluster 4 for MySQL 8 Release Webinar slides
Galera Cluster 4 for MySQL 8 Release Webinar slidesGalera Cluster 4 for MySQL 8 Release Webinar slides
Galera Cluster 4 for MySQL 8 Release Webinar slides
 
ZFS appliance
ZFS applianceZFS appliance
ZFS appliance
 
Running Galera Cluster on Microsoft Azure
Running Galera Cluster on Microsoft AzureRunning Galera Cluster on Microsoft Azure
Running Galera Cluster on Microsoft Azure
 
Best Practices for Enabling Speculative Execution on Large Scale Platforms
Best Practices for Enabling Speculative Execution on Large Scale PlatformsBest Practices for Enabling Speculative Execution on Large Scale Platforms
Best Practices for Enabling Speculative Execution on Large Scale Platforms
 
Oracle Failover Database Cluster with Grid Infrastructure 12c
Oracle Failover Database Cluster with Grid Infrastructure 12cOracle Failover Database Cluster with Grid Infrastructure 12c
Oracle Failover Database Cluster with Grid Infrastructure 12c
 
Codership's galera cluster installation and quickstart webinar march 2016
Codership's galera cluster installation and quickstart webinar march 2016Codership's galera cluster installation and quickstart webinar march 2016
Codership's galera cluster installation and quickstart webinar march 2016
 
Hey Relational Developer, Let's Go Crazy (Patrick McFadin, DataStax) | Cassan...
Hey Relational Developer, Let's Go Crazy (Patrick McFadin, DataStax) | Cassan...Hey Relational Developer, Let's Go Crazy (Patrick McFadin, DataStax) | Cassan...
Hey Relational Developer, Let's Go Crazy (Patrick McFadin, DataStax) | Cassan...
 
Exadata x3 workshop
Exadata x3 workshopExadata x3 workshop
Exadata x3 workshop
 
Openstack summit 2015
Openstack summit 2015Openstack summit 2015
Openstack summit 2015
 
Key to a successful Exadata POC
Key to a successful Exadata POCKey to a successful Exadata POC
Key to a successful Exadata POC
 
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014
 
Oracle Enterprise Manager Cloud Control 12c: how to solve 'ERROR: NMO Not Set...
Oracle Enterprise Manager Cloud Control 12c: how to solve 'ERROR: NMO Not Set...Oracle Enterprise Manager Cloud Control 12c: how to solve 'ERROR: NMO Not Set...
Oracle Enterprise Manager Cloud Control 12c: how to solve 'ERROR: NMO Not Set...
 
AWS April 2016 Webinar Series - Best Practices for Apache Spark on AWS
AWS April 2016 Webinar Series - Best Practices for Apache Spark on AWSAWS April 2016 Webinar Series - Best Practices for Apache Spark on AWS
AWS April 2016 Webinar Series - Best Practices for Apache Spark on AWS
 

Destacado

JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009
Sanne Grinovero
 
A Rocket Internet experience @ ForumPHP Paris 2013
A Rocket Internet experience @ ForumPHP Paris 2013A Rocket Internet experience @ ForumPHP Paris 2013
A Rocket Internet experience @ ForumPHP Paris 2013
Alessandro Nadalin
 

Destacado (7)

Hibernatesearch
HibernatesearchHibernatesearch
Hibernatesearch
 
JBoss Clouds - JBug Roma october 2009
JBoss Clouds -  JBug Roma october 2009JBoss Clouds -  JBug Roma october 2009
JBoss Clouds - JBug Roma october 2009
 
What you get by replicating Lucene indexes on the Infinispan Data Grid (Berli...
What you get by replicating Lucene indexes on the Infinispan Data Grid (Berli...What you get by replicating Lucene indexes on the Infinispan Data Grid (Berli...
What you get by replicating Lucene indexes on the Infinispan Data Grid (Berli...
 
NO-HQL at JUG Milano
NO-HQL at JUG MilanoNO-HQL at JUG Milano
NO-HQL at JUG Milano
 
Infinispan
InfinispanInfinispan
Infinispan
 
Apache Lucene for Java EE Developers
Apache Lucene for Java EE DevelopersApache Lucene for Java EE Developers
Apache Lucene for Java EE Developers
 
A Rocket Internet experience @ ForumPHP Paris 2013
A Rocket Internet experience @ ForumPHP Paris 2013A Rocket Internet experience @ ForumPHP Paris 2013
A Rocket Internet experience @ ForumPHP Paris 2013
 

Similar a Scarlet - Scalable, Redundant, Cloud Enabled JIRA

Clustering In The Wild
Clustering In The WildClustering In The Wild
Clustering In The Wild
Sergio Bossa
 
Design and implementation of a reliable and cost-effective cloud computing in...
Design and implementation of a reliable and cost-effective cloud computing in...Design and implementation of a reliable and cost-effective cloud computing in...
Design and implementation of a reliable and cost-effective cloud computing in...
Francesco Taurino
 

Similar a Scarlet - Scalable, Redundant, Cloud Enabled JIRA (20)

Clustering In The Wild
Clustering In The WildClustering In The Wild
Clustering In The Wild
 
Design and implementation of a reliable and cost-effective cloud computing in...
Design and implementation of a reliable and cost-effective cloud computing in...Design and implementation of a reliable and cost-effective cloud computing in...
Design and implementation of a reliable and cost-effective cloud computing in...
 
Apache ignite v1.3
Apache ignite v1.3Apache ignite v1.3
Apache ignite v1.3
 
Spark to Production @Windward
Spark to Production @WindwardSpark to Production @Windward
Spark to Production @Windward
 
Low latency in java 8 v5
Low latency in java 8 v5Low latency in java 8 v5
Low latency in java 8 v5
 
MySQL Cluster overview + development slides (2014)
MySQL Cluster overview + development slides (2014) MySQL Cluster overview + development slides (2014)
MySQL Cluster overview + development slides (2014)
 
Spark 101 - First steps to distributed computing
Spark 101 - First steps to distributed computingSpark 101 - First steps to distributed computing
Spark 101 - First steps to distributed computing
 
Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin  Monitoring&Logging - Stanislav Kolenkin
Monitoring&Logging - Stanislav Kolenkin
 
Technical Report NetApp Clustered Data ONTAP 8.2: An Introduction
Technical Report NetApp Clustered Data ONTAP 8.2: An IntroductionTechnical Report NetApp Clustered Data ONTAP 8.2: An Introduction
Technical Report NetApp Clustered Data ONTAP 8.2: An Introduction
 
Blades for HPTC
Blades for HPTCBlades for HPTC
Blades for HPTC
 
Oracle exalytics deployment for high availability
Oracle exalytics deployment for high availabilityOracle exalytics deployment for high availability
Oracle exalytics deployment for high availability
 
Oracle database maximum performance on Exadata
Oracle database maximum performance on ExadataOracle database maximum performance on Exadata
Oracle database maximum performance on Exadata
 
Spark Unveiled Essential Insights for All Developers
Spark Unveiled Essential Insights for All DevelopersSpark Unveiled Essential Insights for All Developers
Spark Unveiled Essential Insights for All Developers
 
Spark
SparkSpark
Spark
 
Architecture of exadata database machine – Part II
Architecture of exadata database machine – Part IIArchitecture of exadata database machine – Part II
Architecture of exadata database machine – Part II
 
Near Real time Indexing Kafka Messages to Apache Blur using Spark Streaming
Near Real time Indexing Kafka Messages to Apache Blur using Spark StreamingNear Real time Indexing Kafka Messages to Apache Blur using Spark Streaming
Near Real time Indexing Kafka Messages to Apache Blur using Spark Streaming
 
Galera webinar migration to galera cluster from my sql async replication
Galera webinar migration to galera cluster from my sql async replicationGalera webinar migration to galera cluster from my sql async replication
Galera webinar migration to galera cluster from my sql async replication
 
Embrace Sparsity At Web Scale: Apache Spark MLlib Algorithms Optimization For...
Embrace Sparsity At Web Scale: Apache Spark MLlib Algorithms Optimization For...Embrace Sparsity At Web Scale: Apache Spark MLlib Algorithms Optimization For...
Embrace Sparsity At Web Scale: Apache Spark MLlib Algorithms Optimization For...
 
Accelerating Spark Genome Sequencing in Cloud—A Data Driven Approach, Case St...
Accelerating Spark Genome Sequencing in Cloud—A Data Driven Approach, Case St...Accelerating Spark Genome Sequencing in Cloud—A Data Driven Approach, Case St...
Accelerating Spark Genome Sequencing in Cloud—A Data Driven Approach, Case St...
 
Building Apache Cassandra clusters for massive scale
Building Apache Cassandra clusters for massive scaleBuilding Apache Cassandra clusters for massive scale
Building Apache Cassandra clusters for massive scale
 

Último

+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
?#DUbAI#??##{{(☎️+971_581248768%)**%*]'#abortion pills for sale in dubai@
 

Último (20)

Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 

Scarlet - Scalable, Redundant, Cloud Enabled JIRA

  • 1. SCARLET scalable cloud enabled JIRA Sanne Grinovero, Sourcesense
  • 2. What is Scarlet Scarlet is a custom edition of Atlassian JIRA for demanding customers, to scale both vertically and horizontally. It solves the limitation of standalone JIRA to be deployed on a single node, applies some performance tuning, enables dynamic cluster resizing with automatic node discovery and failover.
  • 3. What Scarlet isn't It's not a JIRA plugin Doesn't need a cloud Can scale down to one or zero nodes without data loss Doesn't cost more than JIRA
  • 4. Why did we make it? Some customers need failover for high availability Having a single node makes maintenance harder Sometimes vertical scaling is not an option or is too expensive We are cool partners
  • 5. Why did we make it? British Telecom, UK: 25,000 users 50 million issues with complex workflows Another telecom, in Italy: 140 projects 100 issues added a day 1,000 users complex workflows: issues live in the system for many months
  • 6. From the technical point of view, it is.. It is a source code patch to JIRA: Enables caching with Infinispan Extreme tuning at Lucene level Removes the design barriers to multi-node clustering It is a complex build system automated JIRA repackaging short time reaction to new JIRA releases cross-technology virtual appliances builds Designed to ease deploy and maintenance
  • 7. Caching with Infinispan is an extremely scalable, highly available data grid platform - 100% open source, and written in Java. www.infinispan.org JIRA uses several dozens of special-purpose internal caches; almost all need a java.util.concurrent.ConcurrentMap, which is implemented by Infinispan Scarlet detects and enables Infinispan on each of JIRA's caches Each cache can be configured independently Infinispan uses state-of-the-art algorithms for maximum efficiency (such as Low Inter-reference Recency Set - LIRS eviction) Scarlet uses Infinispan' support for cache distribution, invalidation and replication for multi-node deployments.
  • 8. tuning & new strategies JIRA's usage of Lucene needs to be flexible for all kind of customers: low, medium and high number of concurrent users. Scarlet takes advantage of some of the latest Lucene innovations to reach for peak performance scaling vertically: shared buffers across index reopening pooled IndexSearchers in-memory transactional writes enables more low-level tuning patterns and scaling horizontally: Index stored in replicated/distributed memory (Infinispan)
  • 9. Lucene index stored in Infinispan
  • 11. Concerns with clustering Internal caches replication, distribution or invalidation with Infinispan Internal state (configuration settings,...) replication Indexes Infinispan distributed or replicated File uploads (issue attachments) use a shared filesystem in future Scarlet might store files using Infinispan's GridFS http://www.infoq.com/articles/infinispan-gridfs
  • 12. Concerns with clustering Session replication not implemented yet: in case the node you're connected to is killed you'll have to login again. Load balancer any load balancer should work mod_cluster is recommended when using Apache Httpd Dynamic configuration of httpd workers Server-side load balance factor calculation http://www.jboss.org/mod_cluster
  • 14. On a cloud... Node automatic discovery might be problematic Infinispan (JGroups) has several ways to do it start with a list of known IPs (TCPPING) use S3 (S3PING) setup a GossipRouter We test Scarlet using RDS as database and index store (Amazon's MySQL as-a-service), S3PING for node autodiscovery: 1. provide EC2 credentials 2. the build system produces and registers a preconfigured custom AMI 3. start many of them!
  • 15. On a cloud... Your nodes are "stateless", all equal: no important data on them no need to backup the volatile node data you can kill some if you want to scale back you can start new clones to scale up All your important data is stored in a database or S3 a single object to backup and manage We have build targets to provide appliances for many virtualization environments (VMWare, Xen, KVM, ...) Using BoxGrinder: http://www.jboss.org/boxgrinder.html
  • 16. Ease of management No "special" nodes needed no master node, no passive master the Scarlet package installs exactly the same way as standalone JIRA: uncompress it configure a datasource configure the jira_home parameter until we implement GridFS too optionally, do some tuning plenty of more options All nodes activated in the same network will form a cluster you might need to configure firewall and network
  • 17. Upgrading to Scarlet from JIRA 1. replace the package, keep configuration files 2. start it! previous indexes are detected and imported in Infinispan a new table is added to your DB. Scarlet just adds a single table to your existing schema. From Scarlet to JIRA Nothing else is changed in the 1. replace the package database, and 2. delete the extra table there's no need to 3. perform re-indexing change any configuration files either!
  • 18. Plugin compatibility With the ones tested so far no changes where needed, still many plugins are untested and might need fixing. Greenhopper works fine Fisheye works fine To plugin developers: avoid to make your own cache use JIRA's services use JIRA's cache factories we are available for help if you can show us the code we can help even better
  • 19. How to get it? The package is free of charge for beta testers pay for setup, tuning and testing time atlassian@sourcesense.com www.sourcesense.com/en/events/scarlet.html scarlet.sourceforge.net
  • 20. Combined best of breed OSS technologies