Database Reference
In-Depth Information
Chapter 7. Neo4j Deployment
Designing a scalable and distributed software deployment architecture is another challenge
for developers/architects. Development teams are constantly striving to deploy software in
such a way that various enterprise concerns such as maintenance, backups, restores, and
disaster recovery are easier to perform and flexible enough to scale and accommodate fu-
ture needs.
However, application software does provide various deployment options, but which one to
use and how they are used, will largely depend upon the end users. For example, you may
have more reads being performed as compared to writes or vice versa. So your deployment
architecture would need to support and be optimized either for a high volume of reads or
high volume of writes, or both.
Scalability is another aspect that is closely linked to the deployments. In simple terms, it
defines a feature of a software where it can support x number of user requests by adding
more nodes in a cluster (horizontal scalability or scale out) or by upgrading the existing
hardware by adding more processing power CPUs or memory—RAM (vertical scalability).
Now, which one to use, without impacting the SLAs, is again a challenging question that
will require pushing the software to its limits, so that you can understand its behavior in ex-
treme / rare circumstances and then define an appropriate strategy / plan for your produc-
tion deployment. We should also remember that the production deployments are evolving
and will change over time due to many reasons such as new versions of software, innova-
tion in hardware, changes in user behavior, and so on.
In this chapter, we will discuss the Neo4j deployment scenarios and also talk about recom-
mended setup and monitoring. This chapter will cover the following topics:
• Neo4j architecture and advanced settings
• Cluster mode - principles and recommended setup
• Monitoring
Search WWH ::




Custom Search