Difference between revisions of "IT-SDK-CloudFoundry"
Jump to navigation
Jump to search
Samerhijazi (talk | contribs) (→ReCap) |
Samerhijazi (talk | contribs) (→ReCap) |
||
| (One intermediate revision by the same user not shown) | |||
| Line 169: | Line 169: | ||
</pre> | </pre> | ||
| − | = | + | =Recap= |
* https://pivotal.io/pcf-dev | * https://pivotal.io/pcf-dev | ||
<pre class="code"> | <pre class="code"> | ||
| Line 175: | Line 175: | ||
$ cf dev start | $ cf dev start | ||
$ cf login -a api.local.pcfdev.io --skip-ssl-validation | $ cf login -a api.local.pcfdev.io --skip-ssl-validation | ||
| − | + | </pre> | |
| + | <pre class="code"> | ||
### Deploy the Sample App | ### Deploy the Sample App | ||
$ git clone https://github.com/cloudfoundry-samples/spring-music | $ git clone https://github.com/cloudfoundry-samples/spring-music | ||
$ cd .\spring-music | $ cd .\spring-music | ||
$ .\gradlew.bat assemble | $ .\gradlew.bat assemble | ||
| − | + | </pre> | |
| + | <pre class="code"> | ||
### Push App in Claoud | ### Push App in Claoud | ||
$ cf push --hostname spring-music | $ cf push --hostname spring-music | ||
| − | + | </pre> | |
| + | <pre class="code"> | ||
### View the Logs | ### View the Logs | ||
$ cf logs spring-music --recent | $ cf logs spring-music --recent | ||
$ cf logs spring-music | $ cf logs spring-music | ||
| − | + | </pre> | |
| + | <pre class="code"> | ||
### Connect a Database | ### Connect a Database | ||
$ cf marketplace -s p-mysql | $ cf marketplace -s p-mysql | ||
| Line 194: | Line 198: | ||
$ cf restart spring-music | $ cf restart spring-music | ||
$ cf services | $ cf services | ||
| − | + | </pre> | |
| + | <pre class="code"> | ||
### Scale the App | ### Scale the App | ||
$ cf app spring-music | $ cf app spring-music | ||
Latest revision as of 13:49, 3 January 2021
Contents
Resources
- https://www.cloudfoundry.org/how-to-try-cloud-foundry/
- https://pivotal.io/platform/pcf-tutorials/getting-started-with-pivotal-cloud-foundry-dev/introduction
- https://github.com/cloudfoundry/bosh-deployment
- https://cloud.ibm.com/docs/cloud-foundry-public?topic=cloud-foundry-public-endpoints
- https://developer.ibm.com/blogs/game-of-cloud-technologies-kubernetes-vs-cloud-foundry/
- Exam Preparation: https://cfcd-prep.cloudfoundry.org/
- Localization: https://docs.cloudfoundry.org/cf-cli/getting-started.html#i18n
- API-Endpoint: api.eu-de.cf.cloud.ibm.com
- API-Endpoint: api.eu-gb.cf.cloud.ibm.com
- Cloud Foundry-CLI: https://github.com/cloudfoundry/cli
- Cloud Foundry-CLI-Reference: http://cli.cloudfoundry.org/en-US/cf/
- BOSH-Lite: https://bosh.io/docs/bosh-lite/
Commands
Setting
- api, target - login, logout - config - buildpacks - stacks
MgM Org
- orgs - org-users, set-org-role, unset-org-role
MgM Space
- spaces - create-space, delete-space - space-users, set-space-role, unset-space-role
Applications
- apps, app - push, delete - start, stop, restart, restage, scale - logs, events - env, set-env - ssh, run-task, create-app-manifest
Services
- marketplace - services, service - create-service, update-service, delete-service, bind-service, unbind-service
User-Provided-Service
- create-user-provided-service, update-user-provided-service - service-keys, service-key - create-service-key, delete-service-key - bind-route-service, unbind-route-service
Route and domain
- domains, create-domain - routers, create-route, delete-route, map-route, unmap-route
Manifest
---
applications:
- name: my-app
memory: 750M
instances: 1
path: ./rest-data-service.jar
timeout: 30
#stack: cflinuxfs3
#no-route: true
#random-route: true
routes:
- route: my-app.eu-de.mybluemix.net
buildpacks:
- java_buildpack
services:
- mydb
#docker:
#image: docker-image-repository/docker-image-name
env:
ROSTER_A: AA
ROSTER_B: BB
RSOTER_C: BB
Ziele
CF-Life-Cycle
- Manifest: https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html
- YAML-Formater: http://www.yamllint.com/
- Logging: https://www.papertrail.com/
- Monitoring: https://newrelic.com/signup
$ cf push $NAME_APP $ cf scale $NAME_APP $ cf app $NAME_APP $ cf logs $NAME_APP $ cf events $NAME_APP $ cf restart $NAME_APP $ cf marketplace $ cf create-service $NAME_SERVICE $ cf services $ cf bind-service $NAME_APP $NAME_SERVICE $ cf unbind-service $NAME_APP $NAME_SERVICE $ cf env $NAME_APP $ cf set-env $NAME_APP $VAR_NAME $NAR_VALUE $ cf delete $NAME_APP
curl
- http://hijazi-app.eu-de.mybluemix.net/people
- http://hijazi-app.eu-de.mybluemix.net/people_status
- http://hijazi-app.eu-de.mybluemix.net/profile
- http://hijazi-app.eu-de.mybluemix.net/app-details
- http://hijazi-app.eu-de.mybluemix.net/kill
$ curl -H "Content-Type:application/json" -X POST -d '{"firstName":"foo", "lastName":"bar"}' http://hijazi-app.eu-de.mybluemix.net/people
Exam-Values
$ cf push roster -p ./rest-data-service.jar -i 1 -m 750M -b java_buildpack --random-route --no-manifest
$ curl -H "Content-Type:application/json" -X POST -d '{"firstName":"foo", "lastName":"bar"}' http://hijazi-app.eu-de.mybluemix.net/people
cf examples
$ cf push $NAME_APP -p $PATH_FILE -i %VALUE_INSTANCE -m $VALUE_RAM -b $NAME_BUILDPACK --random-route --no-manifest
$ curl -H "Content-Type: application/json" -X POST -d '{"firstName":"foo","lastName":"bar"}' http://<YOUR-APP-URL>/people
$ cf scale $APP_NAME -m 1G
$ cf scale $APP_NAME -i 2
...
$ cf logs $APP_NAME
$ cf logs $APP_NAME --recent
$ cf events $APP_NAME
...
$ watch cf app roster
$ watch cf events roster
$ curl https://<YOUR-APP-URL>/kill
...
$ cf marketplace
$ cf create-service $SERVICE_NAME $SERVICE_PLAN $NAME_SVC
$ cf service $NAME_SVC
$ cf bind-service $NAME_APP $NAME_SVC
$ cf restage $NAME_SVC
...
$ cf env $NAME_APP
$ cf set-env $NAME_APP $NAME_VAR $VALUE_VAR
...
$ cf unbind-service $NAME_APP $NAME_SVC
$ cf delete $NAME_APP
...
$ cf push -f ./manifest.yaml
...
$ cf map-route $NAME_APP $NAME_DOMAIN -n $NAME_HOST
$ cf unmap-route $NAME_APP $NAME_DOMAIN -n $NAME_HOST
$ cf rename $NAME_APP $NAME_APP_NEW
$ cf restart $NAME_APP
...
$ cf cups $NAME_SVC -p $CREDENTIALS
$ cf push -f ./manifest.yaml --no-start
$ cf bind-service $NAME_APP $NAME_SVC
$ cf start $NAME_APP
...
$ cf push worker --docker-image engineerbetter/worker-image --no-start --no-route
...
$ cf create-service-key $NAME_SVC $NAME_SVC_KEY
$ cf service-key $NAME_SVC $NAME_SVC_KEY
Recap
### Start PCF Dev $ cf dev start $ cf login -a api.local.pcfdev.io --skip-ssl-validation
### Deploy the Sample App $ git clone https://github.com/cloudfoundry-samples/spring-music $ cd .\spring-music $ .\gradlew.bat assemble
### Push App in Claoud $ cf push --hostname spring-music
### View the Logs $ cf logs spring-music --recent $ cf logs spring-music
### Connect a Database $ cf marketplace -s p-mysql $ cf create-service p-mysql 512mb my-spring-db $ cf bind-service spring-music my-spring-db $ cf restart spring-music $ cf services
### Scale the App $ cf app spring-music $ cf scale spring-music -i 2 # Increase the instances $ cf scale spring-music -m 1G # Increase the memory $ cf scale spring-music -k 512M # Increase the disk