Run WordPress on Cloud Foundry

WordPress runs a huge portion of all websites on the internet. It, therefore, seems obvious, to run this software on Cloud Foundry. There’s just one small problem: WordPress uses the file system to store all uploaded media. On Cloud Foundry and other container-based systems, that doesn’t work because the container can be restarted at any time, which would remove all stored files. For that reason, we need to externalize all file storage to a separate service.

Run Docker Registry on Cloud Foundry

If you work a lot with Docker, you are probably used to the concept of having a Docker Registry, which allows you to store your images in a safe place. There’s a public registry that you can use for free at Docker Store. But what if you don’t want your images to be publicly available? What if you want to have your images in a safe place that you control? The solution is to deploy a private Docker registry.

Run Ghost on Cloud Foundry

This blog runs on Ghost. It’s a pretty light weight blogging platform based on Node.js. Let’s look into how it can be run on Cloud Foundry. Create Services To run Ghost, we’ll need two services: a database and an email server. First, let’s create the database. I’m using the Swisscom Application Cloud here, but you can use any Cloud Foundry provider. We’ll create a small MariaDB service which works like MySQL and therefore can be used by Ghost.

Docker for Local Development

I’m using Docker. Daily. It has become a very valuable part of my tool chain because it allows me to quickly set up any backend my applications might need to run and tear it down the second I don’t need it anymore. Gone are the days when you had to have all kinds of databases and other services installed just to be able to run your apps locally. With Docker, you can do all of that and isolate it from your machine.

Manage Buckets on Cloud Foundry S3 Services

S3 is a great concept to store static files and larger BLOBs. Let’s look into how we can use it in Cloud Foundry. S3 was originally created by Amazon Web Services, but by now there are many 3rd party services that are compatible with the S3 API. Some Cloud Foundry providers have S3 compatible services available in their marketplace. If they don’t, you can create your own by creating a user-provided service and adding the respective S3 credentials (e.

Blue Green Deployment on Cloud Foundry

Imagine you have one of your apps in production and want to cf push an update to it. If you do so, your app will experience a short downtime because CF needs to stop your old application and then power up the new one. During this short period of time, your users will be receiving 404s when trying to access your application. Now, what if the new version of your app has an error in it and doesn’t even start on Cloud Foundry?

Run Piwik on Cloud Foundry

Piwik is an open-source analytics platform based on PHP and MySQL. That makes it a perfect application to be run on Cloud Foundry-based platforms. So, in case you are tired of sending all your data to Google Analytics but rather want to have your own analytics platform in place, this tutorial is for you. We will see what it takes to run Piwik on Cloud Foundry and what modifications are necessary to integrate it smoothly into our platform.

Configure Front End Apps With Environment Variables on Cloud Foundry

The 12 factor manifest tells us in point III that apps should retrieve their config from environment variables to strictly separate config from code. “Config” meaning everything that is likely to vary between deployments (staging, production, developer environments, etc.). Cloud Foundry allows us to do that easily using either the manifest.yml file or the cf set-env command. However, this only works for apps which have a dynamic back end. What if we want to configure a front end app that we have pushed to Cloud Foundry using the Staticfile Buildpack?

Cloud Foundry Route Services

In Cloud Foundry, we use services to provide additional functionality as reserved resources to our apps. They get bound to the app(s) directly and are accessible from these bound apps only. The image below shows how they get provisioned through the service broker and are then accessible to the client through the app. This is obviously a great setup for services like databases, messaging brokers, app data loggers or other handy additions for our apps to consume.

Observables With Angular and Feathers

Feathers is a modern API framework for Node.js. It exposes its backend services as a REST API or as a WebSocket API. To consume the exposed WebSockets from an Angular app, it makes sense to create Angular services to abstract the respective Feathers services in a way that makes it easy for our Angular components to consume them. This tutorial is assuming that you are using the Angular CLI for your app.