Pages

Sunday, October 2, 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 and your Neo4j AWS cloud to leverage your AWS cloud VPC as a branch of your current data centers.

Neo4J Cloud Platform Securely in AWS

The GraphGrid Data Platform provides enterprise required security out of the box for a comprehensive security approach including authorized entry, VPC controls with subnet segmentation, data auditing, and 

Read More......

Neo4j Production Ready: Enterprise Cloud

The cloud today has become the primary deployment option for startups and is gaining adoption across the worlds largest enterprises. As with other critical infrastructure holding sensitive organization or customer data, there are several key questions enterprises must consider when evaluating the Neo4j graph database cloud deployments.

When running Neo4j in production, especially for an enterprise, the obvious baseline is to use the Neo4j Enterprise edition because it offers high availability clustering, cache sharding, hot backup, enhanced monitoring, and a several other critical production features. Taking a shortcut here will leave your enterprise vulnerable to outages, data loss and little ability to upgrade as new versions of Neo4j are released.

Essential Neo4j Enterprise Database Features

In addition to the high availability clustering and hot backups a few of the key benefits of Neo4j Enterprise include:
  • Enterprise Lock Manager
    The enterprise lock manager enables high levels of concurrency through fast lock resolution, which provides vertical scaling of concurrent applications beyond 5 CPU cores.
  • Cache Sharding
    For large graphs this is very useful when paired with sticky sessions because it provides a high cache hit ratio where reads that are relevant to each instance in the cluster will warm the cache without needing to load the whole graph into memory.
  • Property Existence Constraints
    This allows to specify a property that must exist on a node when that node has a certain label. This database enforced schema eases data integration within an enterprise environment as well as increases developer productivity.
You’ll definitely want to take advantage of Neo4j Enterprise for commercial deployments where availability and scale are critical.

Essential Neo4j Enterprise Cloud Features

While Neo4j Enterprise provides a robust foundation as a core database, there are a several additional operational concerns to address for an enterprise to go into production with a Neo4j cloud deployment.
  • Security
    As with typical database deployments part of the security hardening process involves removing direct web access to the database through it’s accessible ports and protocols. Neo4j is no different. While Neo4j provides basic auth, it is not recommended to expose your Neo4j graph database production deployment with a publicly accessible URL.
    Public hosting options aren’t an option here. A Virtual Private

Graph Advantage: Identity and Access Management

Identity and Access Management for a complex media workflow was actually my first experience with Neo4j as a graph database solution that enabled us to represent access throughout the flow in a structure realistic to the way it actually existed. During the last 4+ years since then I’ve continued to see Identity and Access Management as major beneficiary of the flexible data model and
performance of non-JOIN node traversal of the Neo4j graph database.
The access and authorization structure in enterprises today is constantly evolving and becoming increasing complex. The user structure within organizations today rarely fits well into simple tree structure, especially when dealing with approvals, collaboration across internal groups and integration with external groups where role levels of access and permission vary by business use case rather than by the position or title held within the organization.

Signs Your Identity & Access Management System Needs a Graph Makeover

If you’re seeing these signs it’s time to considering going graph:
  • Access is No Longer Static Based on Title
    In the modern enterprise access and authorization tends to be driven by function rather than position. As collaboration across departments and teams becomes the default the increasing complexity of permissions for such a user model does not fit well into traditional user and access management systems.
  • Performance Degrades as Complexity Increases
    As users have their roles and access evolving with ever more caveats driven by the function within a particular team at that time, the queries to return access and authorization for specific actions increase drastically until there becomes a need to duplicate the user account to represent their multiple functions purpose With users, permissions, and products growing, older systems no longer deliver a responsive query performance, leading to user frustration and diminished experience.
  • Adding New Users Takes Hours
    Due to increased user size and expanding metadata complexity, entering a new

Getting Ready for Neo4j 3.0

As we’ve been deploying and testing the Neo4j 3.0 Milestone releases on GraphGrid we’ve been excited for some of the shiny new features and also taking note of the operational differences that we’ll need account for in preparation for supporting Neo4j 3.0.
Neo4j is the most popular option in today’s graph database space with its native
graph reliability, performance and expressive querying language, Cypher, and Neo4j 3.0 takes strides in continuing the trend in being both enterprise ready and more developer friendly with your preferred language.

Neo4j 3.0 Feature Highlights

Some of the features in Neo4j 3.0 that we’re enjoying are the following in no particular order:
The upgrade to Lucene 5 comes with many performance improvements and other improvements made to the Lucene library since version 3 that was previously being used by Neo4j. Lucene is a high-performance, full-featured text search engine library written entirely in Java that Neo4j uses for some indexing operations so this brings some nice improvements to the indexing management and performance within Neo4j.
The introduction of a uniformed language driver, called Bolt, that greatly improves performance and capability of the language drivers that communicate with the Neo4j
graph database completely remotely.
Complex graph update operations using MERGE are probably our most used Cypher operations for loading data into Neo4j and keeping it updated constantly during various ETL processes when integrating Neo4j with existing data sources. This makes the Cypher improvements to the cost-based planner to supper update 

Every Organization Needs a Knowledge Graph

A knowledge graph as it relates to individual organizations is a unification of information across that organization enriched with contextual and semantic relevance. Introducing a knowledge graph creates a comprehensive and baseline set of knowledge accessible by personnel, applications and customers alike to gain understanding and drive actions and direction.

This foundational knowledge graph is not only useful for people and applications, but provides a relevant and evolving dataset for sophisticated learning and intelligence software systems to utilize in providing personalized internal guidance as well as highly engaging interactions with customers.

Knowledge Sharing Falling Short

To engage all personnel in collaboration and knowledge sharing, a majority of organizations today have adopted social networking trends and offering different kinds of internal tools. However, such applications can generate large volumes of unstructured organization data stored in isolated systems across an organization. This attempt at creating a holistic understanding falls short because all this knowledge sharing and information isn’t actually being connected together.
The main result from this approach is a complex infrastructure containing data silos filled with duplicated, expired, and redundant information. This makes it hard to see the right information and acquire important insights. Organizations today need a graph data platform to support increasingly complex data management needs; deal with information flow, data infrastructure and communication problems; and allow next-generation systems to effectively seek, share, filter, and review data.

Knowledge Graph: Understanding and Growth

By embracing the nuanced complexities, semantics and contextual connections within an organization, a knowledge graph can be a catalyst for understanding and growth. The diverse and complex aspects of an organization’s business and operations are often well understood by a few

Read More......

Neo4j is Designed to be Your Source of Truth Database

When introducing the idea of using Neo4j within an enterprise one common assumption is that because Neo4j is a graph database it must not provide ACID-compliance that RDBMS has delivered for so long. This assumption isn’t unfounded considering most of the NoSQL database solutions have moved towards a performance and availability at all costs model. But it’s a fact: Neo4j is a fully ACID-compliant and transactional database intended to be a secure and safe source of truth
database for your enterprise.
Neo4j is a reliable, scalable and high-performing native graph database that’s suitable for enterprise use. Its proper ACID characteristics is a foundation of data reliability. Neo4j ensures that operations involving the modification of data happen within a transaction to guarantee consistent data.
This is especially important in graph because the paradigm for writing data reliably shifts when you introduce the concept of a relationship that is a primary entity within the database. To write a relationship reliably requires locking both the nodes it’s connected to in order to guarantee that they both agree on that relationship between them.

What is ACID?

For those that may not know or need a refresher as to what that acronym includes, heres a quick summary. ACID is a set of properties that guarantee database transactions are processed reliably and a transaction is a single logical operation on the database.
  • Atomicity requires that a transaction is all or nothing, which means if a portion of a transaction fails, the state of the database is left without changes.
  • Consistency ensures any transactional operation will leave the database at a

Neo4j 3.0 Welcomes a New Era for Graphs

At GraphConnect at the end of April the Neo4j team announced the release of Neo4j 3.0. We had the opportunity to celebrate this release at The Honest Company last night with the Graph Database LA Meetup group where I shared many of these highlights from the official Neo4j announcement. The first release in the 3.x series ushers in a new era of scalable yet reliable graph database technology with, this version of Neo4j based on a completely redesigned architecture that offers enhanced developer productivity, and varying deployment options at a massive scale.

3 Things to Expect in Neo4j 3.0

Here’s what to be expected with the new Neo4j 3.0:
  • Redesigned internals that eradicates limits on node numbers and restoration of indexed and stored properties and relationships.
  • Official support for language drivers via Bolt binary protocol and Java Stored Procedures support, while enabling full-stack developers for powerful application creation.
  • Streamlined deployment structure and configuration for deploying Neo4j in the cloud or on premise.

Diving Deeper into Neo4j 3.0

Here’s an in-depth look of what’s new in the latest version:
  • Unlimited Graph Storage
    By far the biggest headline in the release. Graph to size infinite – challenge accepted! Dynamic pointer compressions expands the available address of Neo4j as needed, making it possible to house graphs regardless of size. Such features can be seen in the Neo4j Enterprise Edition, which complements its scale-out clustering features.
  • Enhanced Cost-based Optimizer
    This is a huge one for us because most of the Cypher we write are complex MERGE operations so we need as much write performance as possible. A cost-based optimizer has been enhanced by adding support for write queries. The new parallel indexes capability within the optimizer also allows for swifter performance population of indexes.
  • Language Drivers & Bolt
    Bolt is great for Neo4j developers because it means better performance of the applications they build all the way around and enables them to go bigger and do more with Neo4j. Bolt is a connection-driven protocol for graph access. It utilizes a portable binary encoding over web sockets or TCP for lower latency and enhanced throughput. It comes with built-in security that enhances both graph database performance and developer experience.
    Official language drivers have been released to complement Bolt, which also encapsulate the protocol. These drivers include .NET, Java, JavaScript, and Python.
  • Java Stored Procedures
    These new and powerful performance facility offers low-level and direct graph access, giving you a way to conduct an imperative code when you want to conduct complex work within the database. Neo4j comes bundled with built-in procedures as part of the APOC project. There are some very useful procedures in the APOC project so you should definitely check it out. One that stood out to me as immediately useful is the last one in the list that makes periodic commit available for use outside of LOAD CSV.
  • Neo4j Browser Sync
    This is a nice convenience because now you can take your styles and queries with you wherever you go. Browser Sync lets you synchronize graph style sheets and saved scripts to preserve