Enonic XP - Why, what and how?
Building, operating and maintaining modern applications, websites and their respective back-ends is growing increasingly more complex - Enonic XP aims to simplify these tasks without sacrificing flexibility, performance and scalability.
For a typical web project today, you are likely to find many or all of the requirements below:
- Service Web Assets
- Caching / CDN / Load balancing
- Identity / Authentication / Authorization
- Application logic
- Storing data
- Editorial content / CMS
With every new piece of technologi that goes into the stack, testing, debugging and maintaining grows increasingly more complex. With microservices growing more popular, the diversity of infrastructure used, and skills needed to keep things running only seems to increase.
There are many different approaches to use:
- Managing all of these platforms yourself: scaling, monitoring, patching and integrating leaving less time for application development.
- Leaning on a proprietary cloud PaaS to help you out: with parts of it, but realizing you still have to deal with the integration and an increasing amount of wiring to make things work
- Use Enonic XP: and only integrate with other components when needed - with the bonus of hosting it wherever you like.
At Enonic we saw an opportunity to simplify application and website development by creating a tighter coupling between the platform technologies that developers spend most of their time on. Additionally we wanted projects to have the freedom of open source, and to deploy in any cloud.
When we built Enonic XP we were inspired by many things.
- Java and the JVM are awesome pieces of technology
- Microservice architectures for maintenance and durability
- NoSQL and Elasticsearch - fast and flexible
- Java Content Repository and thinking out of the box
- Clustering and Grid technologies for distributed systems
- Continuous Deployment - the promise of agile development
- And Wordpress.. for how to build a community
As there is no thing exactly like Enonic XP out there, lets try comparing it with things you might already know:
- Its like NodeJS - but it's not as it runs on the Java Virtual Machine (JVM) and supports multi-core processors
- Its like a Java app engine - kind of, but it also supports running multiple apps in a single instance thanks to OSGi
- Its like Elasticsearch - and then some - actually XP's embedded NoSQL storage is built on top of Elasticsearch, but additionally offers tree structures, ACL, versioning, branches, storing binaries and more
- Its like Wordpress - no way, but XP ships with powerful CMS capabilities, and the ability to dynamically extend sites with new functionality on the fly.
- Its like an Operating System - because you can build complete applications with just one dependency. You also have a concept for users and roles - and even an appstore.
A single XP application can include everything from web assets, application logic, logins, data persistence, search, and even CMS functionality. Alternatively, you can split things into smaller pieces, developed, deployed and running in microservice style.
The illustration below illustrates an Enonic app containing both front-end assets and back-end components:
When an application is installed, it will by default be distributed across the all servers running in your cluster (or just one if you don't hava a cluster). Apps are even able to utilize multi-core hardware and distributed events.
Rather than depending on a 3rd party database, Enonic XP moves the data closer to your code. Enonic XP ships with an embedded search-driven NoSQL database (based on technology from the Elasticsearch project).
The technology provides a range of useful capabilities such as:
- Document oriented model
- Storing of binaries, text and typed data
- Advanced indexing options
- Tree structures and fine-grained access control
- Versioning and branches
- Powerful Search, data statistics and aggregations
- Data replication across servers
And - its ridiculously fast too!
Uniquely for an application platform, XP ships with powerful CMS capabilities that can be used in your project. Take advantage of the landing page functionality to create web content and organize websites, or run in "headless mode" by accessubg cibtebt through our state-of-the-art GraphQL API, or combine all features in a "decoupled" mode.
XP's Content Studio offers a responsive, easy to use (yet powerful) interface where editors harness content, tools and templates provided by the developers. Content Studio has a rich set of features and capabilities, built to support Enterprise scale projects.
Enonic Market is XP's equivalent of the Appstore. Here you will find ready2run applications ranging from integrations with popular Analytics tools and ID providers to sample applications, libraries and starter kits for developers.
The fastest way to get going with a new XP project is by using one of the starter kits.
As with every open source project, we are passionate about developers and the community. We meet and share, we discuss problems on our forum, or directly on the Enonic Github account, where all Enonic projects are hosted.
Enonic XP - a tightly integrated, portable microservice platform
Developers are faced with many choices, from frameworks, platforms, languages and architecture. The simple idea behind XP is to offers a stack that reduces the number of moving parts in your project, and as such the number of desicions you need to make. We all know you will likely regret them before your project is finished anyway :-)
Enonic XP is open source software, bringing further benefits over locking yourself into proprietary cloud platforms:
- Portability - runs in any cloud, on premises, and on any OS
- Run the full stack on your own computer (boots in 5 seconds)
- Fully customizable testing and deployment piplines
- Only app stack with embedded CMS features
- Flexibility to customize every aspect of your deployment
- Control how and when the platform is upgraded
- Microservice architecture
- Scale from a single application on a single server, to multiple applications in a clustered deployment.
Finally, you may deploy and run XP in any container-based PaaS out there, giving you the best of both worlds!
Watch the video below where we discuss Enonic XP and Progressive Web Apps with Oreilly
How do I get started?
There is nothing like getting your hands dirty, we suggest that you complete the Hello XP tutorial, and move on from there!