SlideShare a Scribd company logo
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

More Related Content

PPTX
Glint with Apache Spark
PPTX
Akka 2.4 plus commercial features in Typesafe Reactive Platform
PPTX
MySQL Multi Master Replication
PDF
Webinar slides: Introduction to Database Proxies (for MySQL)
PDF
20141011 my sql clusterv01pptx
PPTX
Akka Clustering And Sharding
PDF
OpenStack Summit Vancouver: Lessons learned on upgrades
PDF
Real-time personal trainer on the SMACK stack
Glint with Apache Spark
Akka 2.4 plus commercial features in Typesafe Reactive Platform
MySQL Multi Master Replication
Webinar slides: Introduction to Database Proxies (for MySQL)
20141011 my sql clusterv01pptx
Akka Clustering And Sharding
OpenStack Summit Vancouver: Lessons learned on upgrades
Real-time personal trainer on the SMACK stack

What's hot (20)

PDF
Inspecting a multi everything linux system (plmce2k14)
PDF
OpenStack and Rackspace – an Australian perspective: Tony Breeds, Rackspace
PPTX
Keep your environment always on with sql server 2016 sql bits 2017
PDF
The Analytic Platform behind IBM’s Watson Data Platform by Luciano Resende a...
PDF
MySQL Cluster Scaling to a Billion Queries
PPTX
Pass Summit Linux Scripting for the Microsoft Professional
PPTX
Running MariaDB in multiple data centers
PDF
Galera Cluster 4 for MySQL 8 Release Webinar slides
PPTX
ZFS appliance
PDF
Running Galera Cluster on Microsoft Azure
PDF
Best Practices for Enabling Speculative Execution on Large Scale Platforms
PDF
Oracle Failover Database Cluster with Grid Infrastructure 12c
PPT
Codership's galera cluster installation and quickstart webinar march 2016
PDF
Hey Relational Developer, Let's Go Crazy (Patrick McFadin, DataStax) | Cassan...
PPT
Exadata x3 workshop
PDF
Openstack summit 2015
PDF
Key to a successful Exadata POC
PDF
What we unlearned_and_learned_by_moving_from_m9000_to_ssc_ukoug2014
PDF
Oracle Enterprise Manager Cloud Control 12c: how to solve 'ERROR: NMO Not Set...
PDF
/bin/tails from OpenStack Operations: Rarm Nagalingam, Red Hat
Inspecting a multi everything linux system (plmce2k14)
OpenStack and Rackspace – an Australian perspective: Tony Breeds, Rackspace
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...
MySQL Cluster Scaling to a Billion Queries
Pass Summit Linux Scripting for the Microsoft Professional
Running MariaDB in multiple data centers
Galera Cluster 4 for MySQL 8 Release Webinar slides
ZFS appliance
Running Galera Cluster on Microsoft Azure
Best Practices for Enabling Speculative Execution on Large Scale Platforms
Oracle Failover Database Cluster with Grid Infrastructure 12c
Codership's galera cluster installation and quickstart webinar march 2016
Hey Relational Developer, Let's Go Crazy (Patrick McFadin, DataStax) | Cassan...
Exadata x3 workshop
Openstack summit 2015
Key to a successful Exadata POC
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...
/bin/tails from OpenStack Operations: Rarm Nagalingam, Red Hat
Ad

Viewers also liked (7)

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

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

PDF
OrangeScape Cool Facts That You Did Not Know!!!
ODP
Clustering In The Wild
PDF
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
PDF
ElasticSearch on AWS - Real Estate portal case study (Spitogatos.gr)
PDF
Stardog talk-dc-march-17
PDF
Atlassian Jira Brochure
PDF
Architecture by Accident
PPTX
BDM8 - Near-realtime Big Data Analytics using Impala
PDF
Infinispan from POC to Production
PDF
Infinispan from POC to Production
PPTX
Super cluster oracleday cl 7
KEY
Storing and distributing data
PDF
Cold Storage That Isn't Glacial (Joshua Hollander, Protectwise) | Cassandra S...
ODP
Liferay and Cloud
KEY
Infinispan, Data Grids, NoSQL, Cloud Storage and JSR 347
PDF
ISWC 2012 - Industry Track: "Linked Enterprise Data: leveraging the Semantic ...
PDF
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
PDF
ModeShape 3 overview
PDF
Infinispan - Galder Zamarreno - October 2010
PDF
Using and Benchmarking Galera in different architectures (PLUK 2012)
OrangeScape Cool Facts That You Did Not Know!!!
Clustering In The Wild
"JBoss clustering solutions Mission Critical Enterprise" by Mircea Markus @ e...
ElasticSearch on AWS - Real Estate portal case study (Spitogatos.gr)
Stardog talk-dc-march-17
Atlassian Jira Brochure
Architecture by Accident
BDM8 - Near-realtime Big Data Analytics using Impala
Infinispan from POC to Production
Infinispan from POC to Production
Super cluster oracleday cl 7
Storing and distributing data
Cold Storage That Isn't Glacial (Joshua Hollander, Protectwise) | Cassandra S...
Liferay and Cloud
Infinispan, Data Grids, NoSQL, Cloud Storage and JSR 347
ISWC 2012 - Industry Track: "Linked Enterprise Data: leveraging the Semantic ...
A Graph Database That Scales - ArangoDB 3.7 Release Webinar
ModeShape 3 overview
Infinispan - Galder Zamarreno - October 2010
Using and Benchmarking Galera in different architectures (PLUK 2012)

Recently uploaded (20)

PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Approach and Philosophy of On baking technology
PDF
Encapsulation theory and applications.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Machine learning based COVID-19 study performance prediction
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
cuic standard and advanced reporting.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Machine Learning_overview_presentation.pptx
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Assigned Numbers - 2025 - Bluetooth® Document
Approach and Philosophy of On baking technology
Encapsulation theory and applications.pdf
Network Security Unit 5.pdf for BCA BBA.
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Machine learning based COVID-19 study performance prediction
Encapsulation_ Review paper, used for researhc scholars
Dropbox Q2 2025 Financial Results & Investor Presentation
Building Integrated photovoltaic BIPV_UPV.pdf
A comparative analysis of optical character recognition models for extracting...
cuic standard and advanced reporting.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
NewMind AI Weekly Chronicles - August'25-Week II
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Machine Learning_overview_presentation.pptx

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