As for software there are several solutions available:
Bcache is implemented as kernel patch and user space utility.
Obviously patching kernel is an exercise for skilled not to mention that
deployment would require testing for every kernel update.
However maintenance burden is not the worst problem with
bcache primarily because data partition has to be prepared
i.e. "formatted" beforehand. This invalidates
bcache as viable solution
for plugging to existing file systems with data. Combined with already
mentioned special kernel needs we have two big weaknesses that in our view
outweigh all the potential benefits.
Bcache is not available as Debian package.
Flashcache is implemented as loadable kernel module and user space utilities to manage cache device through device mapper.
In 2011 we tried
flashcache and found it reasonably reliable and
stable. However when Debian package was ready we did benchmarking that
produced disappointing results. Contrary to our expectations we've seen
little speed improvement on some work loads while other operations
suffered from significant slowdown on cache-miss reading operations.
There were many cache misses on data that could completely fit to
caching device even after repetitive reads. Reading from flashcached
device was slower than reading directly from rotational media.
Some of those problems were probably associated with blocks alignment and sub-optimal transfer block size.
Significant limitation of Flashcache was also the fact that it didn't work on the i686 (x86_32) architecture.
Since 2011 Flashcache performance appears to improve.
Debian package with DKMS support is available.
EnhanceIO (just released) is immature yet impressive Flashcache successor that is not using device mapper and allows to attach caching device to mounted partition.
Debian package with DKMS support will be available soon.
Btier is not a cache but tiered storage that automatically moves frequently accessible data to fast(er) device.
Btier is not available as Debian package.
ext4 external journal on SSD
All the above caching solutions have negative impact on reliability in write-back mode where failure of caching device will certainly cause data loss or corruption. Write-through/write-around modes do not compromise reliability neither accelerate writing operations.
On ext4 there is a safe and effective way to accelerate writing by placing ext4 journal to SSD.
Journal device doesn't have to be redundant because ext4 can be easily recovered from loss of external journal.
This method requires no additional software.