Now that I have joined Pivotal and focusing on Cloud Foundry, which up until now I only knew from a high-level, I thought I would take you on my knowledge journey…..
So what is Cloud Foundry and what’s Pivotal Cloud Foundry?
Cloud Foundry is an open source project, Pivotal take Cloud Foundry, add some smarts and support. This allows customers to deploy cloud foundry with the knowledge and reassurance of Pivotal support. This blog post highlights the value you get from Pivotal. It describes the following 8 values;
- Certification
- Simplified Infrastructure Management
- Enhanced Platform Functionality
- Application Services
- Cloud-native Enablement
- Security
- Enterprise Support
- Strategic Partnership
What does it do?
The Onsi Fakhouri (leads engineering at Pivotal) haiku sums up nicely cloud foundry;
" here is my source code
run it on the cloud for me
i do not care how"
Admittedly this is very developer focused however an alternative haiku from an operations perspective is;
“here are my servers
go make them a cloud foundry
i do not care how”
Developer Centric
The developer experience can be summed up by the command cf push
. Don’t get me wrong CF has many other cool developer focused CLI’s for binding services, obtaining logs, scaling, blue-green deployments etc. etc.
If we look at what cf push
does you can make up your own mind about the above haiku….
The command will basically take your application and deploy it to the platform which will take care of keeping it running. The cf push
performs the following tasks;
- Uploads the application and stores it
- Looks at the application metadata and stores it
- Creates a unit of execution (droplet) for the application
- Works out the required dependancies
- Selects the appropriate place to run the application (cell)
- Starts the application
This is an example of me deploying a simple Python Flask web app;
Operator
The first thing I think about with these sort of tools is operations, operations, operations! The good news is over recent years a lot of thought and effort has gone in to this aspect. To be honest this will be an area I will be working a lot with and will be covered in many blog posts (thats my plan anyway). While at a high level bosh deploy
is the ‘magic’ equivalent to cf push
it can get complex fast!
Bosh has now turned 5 years old!! You can get more info in this CF blog post.
Bosh (good learning tool) is a tool that takes care of deploying and running distributed systems, in this case cloud foundry (original developed for CF). It is not limited to CF, I have used it to deploy a number of systems (Concourse, Docker Registry, Hashicorp Vault, Prometheus). It will take care of deploying the system, monitoring it and ensuring its running as expected. This is done across multiple IaaS, abstracting away the differences to the operations teams.
I still have a crazy amount to learn with regards to Bosh, speaking to Dan from EngineerBetter early on in my learning cycle. This is a quite apt representation he has used is some of his talks;
If you want to view a good introductory video about CF and specifically PCF Onski does a good job in this session;