Pages

Monday, November 21, 2016

Neo4j Production Ready: Security

With cloud adoption consistently accelerating in all organizations and industries, selecting a Neo4j cloud platform that offers your business security and scalability while eradicating lead time of internal-building is important. To simplify such a process for utilizing Neo4j Enterprise, the GraphGrid Data Platform provides a Neo4j Amazon Web Services (AWS) cloud offering. This Neo4j Enterprise data platform not only enables management of global Neo4j Enterprise clusters but is capable of helping you free up time from laying the foundation in operations, to let you concentrate on your product and services development for your business.

VPC Security for Neo4j Enterprise

Security is the biggest question on any organization’s mind when transitioning to the cloud, which is why that has been the core of the architecture and design for enabling a Neo4j Enterprise cloud offering in AWS.
In AWS it is important to utilize a VPC, which guarantees that all your Neo4j Enterprise resources can be launched in an isolated network that only your authorized personnel, infrastructure and services can access.
The VPC configuration must be properly configured to adhere to your enterprise security requirements. For instance, a public subnet is made so your servers can gain entry to the internet while your backend systems within a private subnet virtually has no internet access. It is important to establish controls for multiple security layers as well as security groups and network access control lists, for controlled access to Neo4j Enterprise clusters.
Furthermore, you can make a Peering or Direct VPN connectivity between your enterprise data center/VPC 

Neo4j Production Ready: Deployment Basics

If you intend to perform a Neo4j production deployment successfully, you’ll likely think about the best application architecture to use and how you’ll operate your Neo4j Enterprise deployment at a scale. Some things you’ll need to think about should include how you intend to guarantee availability uptime, handle failures and efficiently facilitate zero downtime upgrades, which is really just the required baseline to be considered production ready. It may go without say, but to go to production without using Neo4j Enterprise is a huge risk to your applications availability. 

Neo4j Deployment Options

In terms of deployment options, there are two ways in which you can incorporate the graph database Neo4j Enterprise version within your app. These can be:
  • Using Neo4j embedded: This means you’ll be utilizing the Neo4j Java libraries and packaging it with the rest of your application code into a WAR or JAR file that is deployed to the Java server of your choice such as JBoss or Tomcat.
  • Using Neo4j server: This means you’ll be utilizing the default Jetty server wrapper that is provided with Neo4j and communicating with the database over rest, which is the recommended approach for almost all applications because it keeps your database decoupled from your application and enables the two to 

Monday, November 14, 2016

Neo4j Enterprise Cluster Basics

Neo4j Enterprise enables a high availability cluster using the PAXOSprotocol for cluster communication prior to 3.x and the RAFT protocol with the core-edge clustering model is now available in the current milestone releases. If you’re interested into diving deeper into specifications and the implementation of the new RAFT protocol, I suggest you checkout Jim Webber’s great overview in his keynote from GraphConnect SF 2015. One very useful feature coming in 3.x is the ability to read your own writes. Meaning you can require that the transaction with write you made to core is available on the edge server handling the read request before it returns your request.

So while that is coming in 3.x, what is the current landscape in 2.x?

Neo4j Enterprise Write Operations

When operating a Neo4j Enterprise cluster, there will always be one master instance and some number of slaves. Neo4j is capable of handling write requests on all instances, but that requires the slave to proxy the request to the master so it is best to separate reads and writes to ensure the master is the only Neo4j instance handling write requests.
Writes to the Neo4j master instance will be optimistically pushed to zero or more slaves as configured. This means the master will try pushing the successfully written transaction to the specified number of slaves prior to the write request completion. If the replication ends up failing for any reason, the transaction on the master will still remain successful although it will be different from the typical normal replication factor. The Neo4j slave instances will continue to pull for their updates at the configured interval so the writes will still eventually replicate and be available for read requests.

Neo4j Enterprise Master Re-Election

Whenever a Neo4j Enterprise graph database instance becomes unavailable (as a result of network outages 

Read More......

Graph Advantage: Real-Time Recommendations

We all receive recommendations presented to us on a daily basis. From the products that we should be buying to the movies we should be watching to the people we should be dating…the list goes on. You’re capable of recommending just about anything — as long as you have the right data in place. Graph databases are naturally well-suited for building real-time recommendation engines thanks to the native graph traversal performance when traversing the network around and between the desired starting node such as a person that already bought a set of products.

Whether an enterprise functions within the social, media or retail sector, providing users with targeted, real-time recommendations are important for providing the customer value through a personalized experience, which is quickly becoming the baseline for remaining competitive. Unlike that of business data, recommendations should be contextual and inductive so it can be deemed relevant by the end consumer. Achieving this requires a “good enough” level of data classification with sufficient connectedness between the data points in the system.
With a graph database where relationships are treated as first class citizens, you can connect a customer’s browsing history while combining that with their purchase history and offline product and brand interactions to enable the real-time recommendation algorithm to utilize their present choices and offer personalized recommendations without any offline pre-compute delaying the interaction — lowering the potential for the consumer to purchase from a competitor.

Neo4j for Real-Time Recommendations

Whether you’re leveraging social connections or connecting data across digital and physical customer touch points, the Neo4j graph database provides the possibility of providing relevant real-time recommendations 

Read More......

Neo4j Data Pipeline

Every enterprise has a constant flow of new data that needs to be processed and stored, which can be done effectively using a data pipeline. Upon introducing Neo4j into an enterprise data architecture it becomes necessary to efficiently transform and load data into the Neo4j graph database. Doing this efficiently at scale with the enterprise integration patterns involved requires an intimate understanding of Neo4j write operations along with routing and queuing frameworks such as Apache Camel and ActiveMQ. Managing this requirement with its complexity proves to be a common challenge from enterprise to enterprise.

One of the common needs we’ve observed over the years is that an enterprise that wants to move forward efficiently with a Neo4j graph database needs to be able to rapidly create a reliable and robust data pipeline that can aggregate, manage and write their ever increasing volumes of data. The primary reason for this is to make it possible to write data in a consistent and reliable manner at a know flow rate. Solving this once and providing a robust solution for all is the driving force behind the creation of GraphGrid Data Pipeline.

GraphGrid Data Pipeline

The GraphGrid Data Platform, offers a robust data pipeline that manages high write throughput to Neo4j from varying input sources. The data pipeline is capable of batch operations management, keeps highly 

Read More......

Keeping Your Data Current and Flowing into Neo4j

For an enterprise to excel today a key aspect centers around utilization of the data-based business assets. To grow and succeed as a whole an enterprise must enable the usability, quality, and constant flow of its data into a connected state. Sometimes, an enterprise with a data architecture may have to deal with a complex life cycle while undergoing varying transformation processes. This makes it difficult to track the origin and flow of data as well as managing changes, audit trails, history, and a host of other critical processes.

Distributed Graph Database Platform with Neo4j

The dynamics of an increasingly distributed and connected world are shining the spotlight on a new generation of database focused on more efficiently modeling, storing and querying the connected nature of the data enterprises deal with in the real world. But as graph database usage grows, solving the issue of handling large volumes of read and write operations at scale will pose a serious challenge for the growing market.
Graph databases like Neo4j are perfect aggregation and landing place for data across the enterprise because it effectively deals with challenges presented with variations in data. As a leading graph database, enterprises are relying on Neo4j to effectively connect data for usage by real-time enterprise applications. The big challenge though is efficiently and continuously flowing data into your Neo4j graph database.
To do this effectively data connectors need to be utilized to perform ETL. The data extraction will come from 

Introducing a Graph Database into Your Data Architecture

A graph database is capable of offering long-lasting competitive advantages for organizations worldwide from startups to the largest enterprise. Interest within the enterprise sector surged dramatically the past two years and Forrester recently projected that graph databases will reach over 80% of leading enterprises within two years. Graph databases provide business benefits because graph databases make use of intuitive principles of the connections experienced between everything and everyone as a realistic representation of the way the world interacts. Even with all the benefits Graph Advantage: Why Every Enterprise Should Use a Graph Database, the introduction of a graph database into an enterprise, especially one that may have just finished getting their Hadoop implementation into production, can seem risky.
discussed in

Graph Database Data Model Flexibility

One of the great strengths of a the Neo4j graph database is it’s schema free flexible data model, which it turns out provides a very low-risk entry point as way for an enterprise to begin to explore the benefits of using a graph database. The Neo4j graph database is made to model and navigate connected data with high performance. The Neo4j graph database processes and stores data within the node and relationship structure defined by the written data, making it flexible enough to accommodate the many data models of the existing databases within an enterprise.

Enterprise Data Challenge

We know it’s not reasonable for an enterprise to go all in on a graph and try to replace existing SQL or 

Read More......