Are you new to Liferay? Found Liferay and want to know what it can do for you? Or are you with Liferay and still remember the time when you were new and unexperienced? Where did you come from and what was the biggest problem you faced? Can you ever learn enough? And how do you keep up with the current trends and new features?
A platform as big as Liferay spans several technologies and areas of best practices that are beneficial to know of. Nobody can know everything - there's always a learning curve. At the beginning, it's quite steep. Some argue that it's flattening the more you know. Some argue that it gets steeper: The more you know, the more you know what you don't know.
I'd like to give you pointers to resources that are available to you, in order to learn about Liferay, resources that help you avoid steep detours, when there are flatter direct connections. This is meant to be (eventually) comprehensive but I'm sure that it will never be complete. It's just what I remember while I write this article and the follow ups (yes, there are more, already drafted)
Today's Target Audience: Technical (Sysadmins and Developers), unless indicated otherwise:
Liferay is always running in some kind of environment. It requires a database to store its data. It requires an application server to run on. And there are a lot more component that you can operate in combination with Liferay: Single-Sign-On, LDAP, Search Appliances, Monitoring Systems etc. Let's look at the most common ones and keep the other ones for later:
Liferay's User Guide has several chapters on Administration and Installation. While this gives you the necessary step-by-step instructions to get started on any (supported) platform, the more experience you have on a platform, the more you can get your own policy or opinion into the game.
Liferay is an application that requires a container to run in. This can be a simple servlet container or a full blown application server. Naturally, quite a bit of configuration for Liferay depends on the container that you're running on. And, as technical staff, you should know a bit about your container of choice and about Java Web applications in general. For the purpose of this blog post, I'm summarizing all these containers as "Application Servers" even if they might be more simple than you'd expect from such a component.
Among the things that you should know (or learn) about your application server of choice are
- Proper setup for production, including hardening, protecting default management interfaces from public access
- Update procedures. Even (or especially) if you're running Liferay from a bundle: The maintenance of the appserver is in your realm.
- Backup and (Disaster) Recovery.
Where do you find that information and experience? The vendor (or supporting website) of your appserver vendor should have it, alternatively somebody in your team or on the market: Having a good system administrator or developers with good understanding of the platform they're developing on is gold. There's trainings for the server of your choice, books, and the internet is full of Q&A. If you wonder why there's no link here: Liferay supports various versions of the following application servers, and I'm familiar with only few of them:
Speaking about your Application server of choice: Which one should you choose? The bulletpoints above might already answer this question: Choose the one that you feel most familiar with. If I give my recommendation (the one I'm most familiar with), this doesn't help you: you might not have a clue about hardening, maintenance, backup and recovery of that platform. So check your team's experience with and make your own choice. Ask your team about the best way to learn about their preferred platform. Mentor each other. Find local usergroups, online resources and meetups/conferences for the platform of your choice. (this exercise is left for the reader. If you have outstanding, specific preferred resources, feel free to add them as comment)
The same goes for your database: Liferay supports many of the databases available on the market. While it will be happy to store its data in your DB, the setup, backup, maintenance and tuning of that database is totally outside the realm of Liferay. Where do you get the experience? With the vendor or platform of your choice. Here we have the same recommendation as with appserver: Choose the one platform that you can maintain best. It's not worth choosing my favourite one just because it's 5% faster when you have no clue about its backup strategy or disaster recovery.
Again - where do you find this information? With the database vendor of your choice. From Q&A sites. From training and from experienced admins that you're working with. (and again: Feel free to add outstanding resources as comments)
For databases, just like for application servers, you'll have to make your own choice: Here are the databases that Liferay supports (in various versions)
- SQL Server
- Sybase ASE
Naturally, with Liferay's Training offerings, "there's a course for that": In Administering Liferay Systems, we spend 3 full days to set up, maintain and tune Liferay within the infrastructure. While this course concentrates on the open source appservers and databases (because that's what we can legally distribute for the class), you're free to bring your own appservers and databases and try out the principles that you learn in this class.
Target Audience for this class, naturally: System Administrators and DevOps.
As always, this course is available in public trainings, scheduled around the world, as well as onsite, with a trainer coming to your organization.
So much for the infrastructure. Granted, due to the nature of these recommendations there are not a lot of clickable links here. Help me fix this and add your recommendations for the environment of your choice in the comments. And stay tuned for Chapter 3: Documentation (sic!).
People that liked this article, also liked The Learning Curve Chapter 1 - a basic overview.
People that like to learn more about what happens behind the scenes, also like to listen to Radio Liferay. ;)