We have been working on a few bigger projects for the last three months, and had to handle lots of traffic, data, and better search engines. A few things we had to learn and code, and some of those are pretty amazing stuff for your websites.
Amazon Cloud Search
We were building a website which has a large number of pages, and events. One of the main areas of the website was the search. Search the events by various attributes of them, the Venue they take place, the type of the event, dates and time of the events, status (On Sale, Sold Out, Available etc) and a lot more. Also we wanted to use suggesters to provide a user with suggestions when he types in to the search box. Use facet information to produce options for the search forms.
To support all these we used Amazon Cloud Search. We built a whole new module for SilverStripe which works pretty much the same like the SilverStripe Solr module. The module makes a bridge between SilverStripe and CloudSearch domains. The module we built can decorate any type of a data object and keep it synchronized with CloudSearch, depending on the status of the objects, whether it is created, updated, published, hidden, marked as hide from search, the cloud search documents get updated. And we make bulk operations to support synchronizing the objects in a bulk. For indexing the documents and to make the indexes we use the SilverStripe's searchable fields extended by some new functions we added, and if worked for suggesters in a similar way.
Cloudinary is a cloud service which is to manage images. With cloudinary you can customize images with having different URL patterns, to resize / crop, face detection, image rotation and many more, read here to find out more it can do. We built a whole new layer which can replace the Image classes of SilverStripe and supports all the resizing in the templates. So the $Image.SetSize() syntax works the same, and many additional functions to support the features we need for the project we were working on.
A SilverStripe based automated deployment engine
We built a module for SilverStripe which can connect to BitBucket (can be extended to use with github) which does automatic deployments for the commits you push, and we look forward to bundle this and give it back to the community. This module provides you with an interface where you can add your projects to it and specify the directories / paths of the server where it needs to be installed on, and each project will have a unique URL which is used to trigger a new deployment. Once you set it up and make a POST hook on the repo to call the URL, it will updated your git repo on the server, run composer updates and do dev builds, and on demand it will send you emails of the logs for the entire process.
The module supports BitBucket for the moment and we look forward to add GitHub too and make it available for the community to use.