meshBlog
Cloud Foundry Intro: How using PaaS can save you a lot of time
Learn why Cloud Foundry is useful for your application deployment and see how easy you can speed up your deployment process:
A typical use case for the use of platform as a service:
The graphic on top shows a typical architecture of an SaaS application. This includes a load balancer, 2 different microservices, a message queue cluster and a database cluster. Offering SaaS applications to your customers you usually have 2 main concerns:
- Is my app highly available?
- Can I rapidly scale my app when needed?
Why do we care about infrastructure?
Microservices are a rising trend when it comes to modern application architecture. They bring flexibility in development and scaling and allow fast deployment cycles. However, having a multi-component architecture comes with a cost: Each of its components has to fulfill the requirements of scalability and high-availability. This implies that an application developer has to ensure that these requirements are met for the complete infrastructure, including load balancers, message queue clusters and database clusters.
As an application developer you would probably rather spend your time on the actual application development than on the surrounding infrastructure. That is why application developers love Cloud Foundry. Cloud Foundry takes care of and supports in many DevOps tasks.
In order to be able to benefit from these features it is necessary to adjust application development to the cloud model. Infrastructure has to be treated in the "cattle" way, which means that VMs or services can die at any point in time and can be restarted in an automated manner. (See our blog post on pet vs cattle here)
How Cloud Foundry solves this problem
The Cloud Foundry platform comprises various components for DevOps tasks:
- Cloud Foundry builds on a container-based architecture. It builds, distributes and scales containers for us.
- Cloud Foundry takes care of routing for us. It provides HA load balancers that route the traffic to the application instances.
- Cloud Foundry collects logs and metrics on its container status to inform and alarm us in case of problems or failure and automatically restarts failed instances for us.
- Cloud Foundry keeps configuration settings in environment variables. This enables us to build identical test and production environments that only differ in environment variables.
The first steps
Cloud Foundry has buildpacks for most programming languages. It uses the buildpacks to containerize our applications and to get them ready for deployment with a
cf push
Furthermore, we can deploy our own docker containers on Cloud Foundry.
As containers are stateless, we most probably need additional persistent services that keep our data during restarts. We offer multiple services, such as PostgreSQL, mySQL, MongoDB, Redis, etc. They are provided via the
cf marketplace
an can be created with a
cf create-service
whithin minutes. Cloud Foundry provides its services redundant and highly available.
Using the
cf scale
command, we are able to scale our application at all times.
About meshcloud:
The meshcloud platform offers multi-location Cloud Foundry with multiple services. meshcloud is a european open-source public cloud platform. Apart from Cloud Foundry the meshStack provides OpenStack as an IaaS solution. The meshcloud user interface enables cloud users to use and administrate IaaS and PaaS in multiple locations but on a single platflorm. Find out more about the meshcloud Cloud Foundry offer here.