I am wondering how I can deploy artifacts to Pivotal Cloud Foundry through a Jenkins pipeline. I was wondering if I could use something like a artifact-deployer-plugin, or if there is something else that will allow me to do this?
Thanks,
Brian
You can try the Cloud Foundry plugin - https://wiki.jenkins.io/display/JENKINS/Cloud+Foundry+Plugin
Other option is write your own shell script. That should be last option.
Related
I'm asking this question because of the long feedback loop when committing, pushing, building, deploying, waiting... in order to check certain changes.
Using devtools locally you can get quick feedback on changes.
For Kubernetes I believe you can use skaffold and telepresence to directly sync to a running environment.
But is there something similar for Azure Spring Cloud?
A way to hot swap code to a deployed running application?
We have a pipeline that runs on gitlab, it builds and deploys code to App Engine, so far, so good. Recently we encoutered the need to route requests to internal hosts, which we found could be solved using a Serverless VPC Connector.
We created the connector, referenced it on app.yaml as per gcp docs, deployed the code using gcloud deploy in order to test, this worked perfectly. But, the same code, when deployed using mvn deploy from the gitlab pipeline, doesn't talk to the internal hosts. I suspect mvn deploy doesn't parse the app.yaml file correctly or at all.
Has anyone encountered this situation before?
I am new to the world of Cloud, CloudFoundry, Saas, PaaS, IaaS, etc.
So I have few very fundamental questions.
Who is better Spring boot or war file in terms of deploying an application or a service to a cloud using cloud foundry?
WHY ?
If I want to deploy my war file on a PaaS cloud then who kicks it off?
As in where is the server?
How will I know which server my war file is deployed to?
Is using Spring-boot with embeded tomcat for PaaS mandatory?
What if my application does not use spring-boot (no spring reference in pom as well) then can I deploy my application war file on cloud? How?
There is nothing like better in war or Spring boot jar. They both are underhood same things, where Spring boot jar manages the server embedded in it and war does not have that.
Cloud Foundry has something like BuildPacks. You need to define a buildpack when you do a cf push. If you select a java build pack it has the things required to run a war on server. It gets the Java, Tomcat Server and all other dependencies needed to run the war.
https://github.com/cloudfoundry/java-buildpack
Cloud foundry creates a droplet, which is basically the execution context with all required dependencies. This is used to run the actual VM on the cloud.
You need not know which server your war is deployed to. That is the basic idea behind the cloud deployment. It may be on a single/multiple VMs under the hood. So what you need to know is something called routes. Routes are the actual addresses to your apps. You need to create routes and bind them to your application, and later app can be accessed using the routes.
https://docs.cloudfoundry.org/devguide/deploy-apps/routes-domains.html#routes
No using embedded servers is not mandatory in Any Cloud PAAS. War can be directly deployed. All PAAS platforms has support for this. Cloud foundry way of doing this is through build packs.
CF : https://docs.cloudfoundry.org/buildpacks/
Heroku : https://devcenter.heroku.com/articles/java-webapp-runner
Any application/ non spring apps which is plain war or jar can be used to run on PAAS platforms.
Has anyone successfully used Jmeter to upload an app to the Cloud Foundry endpoint /v2/apps/${appguid}/bits ? If so, please would you be so kind as to share the configuration that you used. Thanks in advance.
Is there a straightforward way to run WSO2 API Manager on Heroku? I've been through the basic Heroku docs on how to deploy Java applications and understand that process but it seems like jumping through hoops that maybe aren't needed.
I'd like to be able to simply upload the installed application (binary version of application) and a procfile that defines the bootstrap class file as the starting point.
Is this possible? Is there another way to get Java apps to run in Heroku without defining a pom.xml and having it build the application prior to deployment?
Thanks,
Dave
WSO2 offers the hybrid API model to deploy your WSO2 API gateway on Heroku and use WSO2 API Cloud to manage your APIs.
You can use WSO2 WSO2 Heroku Add-on which can be used as WSO2 API publisher and Store. Then use Heroku Button to deploy WSO2 API Gateway on Heroku.
More info: https://devcenter.heroku.com/articles/wso2apicloud
It looks like there is no straightforward way to run WSO2 API Manager on Heroku. I looked at how Java programs are run on Heroku and it seems your requirement cannot be achieved currently. Heroku seems to be depending on Maven projects.
WSO2 API Manager product is built from WSO2 Carbon platform, which is not a simple Maven Java project.
Heroku also runs the Java application on OpenJDK, which is not supported by WSO2 API Manager. Only Oracle JDK is supported as mentioned in Installation Prerequisites.
I hope this helps.