Automated deploys JBoss/Tomcat - deployment

i'm looking for a tool to make remote automatic deployments in JBoss/Tomcat(under linux/unix) where a component is updated and version is incremented in my Artifactory.
For example.
I have an instance called 'A' under tomcat/jboss with the deployed component "my-plugin-1.0.jar" . Then I upload the component "my-plugin-1.1.jar" in artifactory, and after that, i need the automatic update of this new component in my application server.
Does anyone know any tool that can do this?
Thanks in advance
Kind regards

If you are into serious DevOps development, Chef or Puppet are your tools.
If you don't feel like writing Ruby scripts, ZeroTurnaround's LiveRebel is a way to go.

Related

Automatically Combine/Bundle EF Migration(s)

I'm wondering if it is possible to run some automated tasks either on a Release (web deploy) action, or Branch Merge (TFS) action?
Ideally I would like to set up a process that will automatically combine EF migrations since the last release. I'm still looking into how I would automate this, but I think the first step is hooking into a suitable event.
I haven't setup a build server yet, but I'm guessing if the above isn't possible then this would be an option for attaching a custom procedure to the MSBuild task?
Alternatively, if anyone has experience in automating things like this I would be happy to hear it. I am the head of development at a web development company and I would like to facilitate our current processes by automating some of our standard procedures, and this is something we do over any over again for each development!
I appreciate your time looking at my question, thanks.
VSTS and TFS2015 both support a CI/CD process via their new build and release system. Very flexible and powerful. Check it out!
https://msdn.microsoft.com/Library/vs/alm/Release/getting-started/understand-rm
VS/WebDeploy does support deploying EF migrations with a web application:
https://msdn.microsoft.com/en-us/library/dd394698?f=255&MSPPError=-2147217396#efcfmigrations
This works fine for deploying a small application/system but when you want to deploy a larger system with many components it doesn't work as well. We create MSDeploy packages for each component of the system. For example, this is how we deploy SQL databases:
http://dotnetcatch.chief7.space/2016/02/10/deploying-a-database-project-with-msdeploy/

Create azure website programatically in C#

I want to create/update the websites/cloud services in Azure in C#. My objective is to deploy the website/cloud service in Azure without any user intervention.
Can anyone please help me to resolve below queries?
Can we manage Azure websites/cloud services using C# code? If yes then how (any library/api/nuget package)?
If it is not possible in C#, then what are other options to achieve this? I read WebDeploy(MsDeploy), powershell can do this work but I am not sure which one is best in this scenario and how to use them.
This completely depends on your scenario. If you have got a system to run your powershell script from, this might be a good option (https://azure.microsoft.com/en-us/documentation/articles/powershell-install-configure/) You could also use the cross platform command line tools to script your deployment / web app creation. There are different other options, especially for continous deployment to a web app. You can for example connect your github repo to an existing web app and deploy from that repository.
The C# library you were looking for should be this one:
https://github.com/Azure/azure-sdk-for-net/tree/master/src/ResourceManagement/WebSite

A deployment tool for PHP

Hi guys I have a PHP project and I need a tool for make deployment and I foud Deployer, a deployment tool for PHP, which is your opinion and experience about it?
Regards
Deployer is good choose: it's has simple api, a lot of recipes for popular frameworks and apps, and can run parallel deploy. Also it requires only for PHP.
deployer.org
github.com/deployphp/deployer
Here is an example of little task:
task('my_task', function () {
// Your tasks code...
});
Deployer has a good quality code:
I use deployer. It works as advertised, or better. That is my experience and opinion, to answer your question. Let me give some more information:
You get parallel deployment on remote servers and going forward/back is very simple. Your release and rollback procedures become documented in code and repeatable by anyone on your team with permissions.
Your directory structure looks like this:
./releases/yyyymmddhhmmss/
./current -> ./releases/currentrelease/
./shared/
The releases folder contains each release that has been made. You should tag these on git yourself too because deployer will clean them up for you when they get old (you configure that.) current is a symlink that points at a current, ready to go, release. You can move it forward and back to release and roll-back. Deployer manages it all for you.
You setup and configure deployer by creating your Deployerfile (deploy.php) in your project root. Use composer to install deployer.
Then to deploy on all staging servers simply run:
vendor/bin/dep deploy stage
And when happy you can send to all production servers in parallel with:
vendor/bin/dep deploy production
The only really "difficult" task was figuring out how to integrate with our database migrations, deployer gives you many tools but migrations are of course left up to your database layer. I would also love to see some more resources from deployer about suggestions for permissions and thoughts on using a deploy user on the remote hosts.
It will be worth your time to automate your release and rollback procedures so that anyone on your team can handle them. Deployer is a great tool set for doing that.

Is it possible to deploy code to an Azure Cloud Service without a build step?

We've got some legacy on-premise apps that we're evaluating moving off-site, and we are evaluating all our options. I understand that Azure Web Sites would be a lot easier to setup, but at this point it looks like may need some of the additional control that Cloud Services gives us.
However, everything I've read about Cloud Services so far demonstrates how you build an app and then deploy the build to the cloud. Similarly, you can connect to a Visual Studio Online repository, define builds in VSO, and after a commit, a build is performed and the build is deployed to the cloud.
However, in our case some of our pages are Classic ASP pages. In the event that one of these pages changes, I have not been able to figure out a workflow that allows us to deploy the updated files. Remember, classic ASP files do not have a "build" process; it's like a powershell script that is interpreted at runtime.
There is no Visual Studio solution or project involved with these apps. It's just a package of files we want to upload. For a "proof of concept" I decided to start with the simplest possible "app," a simple "hello.txt" file, and I have not been able to figure out a way to deploy this without "wrapping" it in a Visual Studio solution.
I was hoping that I could use, e.g., Publish-AzureServiceProject, however this appears to need a ServiceDefinition.csdef file, and again, I'm not sure how to do this without setting up solution in Visual Studio--a solution that wouldn't be used for anything.
I have a feeling I'm missing something and just need to find the appropriate publish settings file, or proper use of an Azure cmdlet. Is there a straightforward way to publish a package of files to an Azure Cloud Service?
Josh, you will need to package the files into a deployable package. This can be achieved using the cspack commandline tool and a hand-crafted definition file. Your ASP files would be treated as 'content' in this case.
The easiest way would be just to create stub Visual Studio Solution and include a 'Cloud Service' project to which you add all the ASP files. This way all your files will be redeployed in the event that your Web Roles require recycling by the Azure fabric.
While this might seem like a big overhead if you need to tweak just a single file, it is the correct way to manage PaaS deployments in Azure. If this process doesn't work for you then you should consider moving to an IaaS VM you fully manage yourself.
One thing that may be helpful is to realize that the web role in Cloud Services are just VM's using IIS. For that reason, you can connect to them just like any other server, via RDP, FTP, etc. Our team often bypasses the overhead of simple things, like deploying a new CSS file, an image, etc. by simply copying it in the old school way.
Again, not sure if this helps you, but old school techniques work just as well. :-)

Build RPM to deploy

I would like to know what is the best method to deploy applications like Django, Flask etc.. is by building RPM files or by using a tool like fabric which more or less does the same thing.. I'm trying to figure out the best approach to handle deployment and automation.
After considering the requirements I believe in my situation fabric will work best for basic deployments to multiple servers. While rpms can do similar things every time there is a change in source a new RPM must be created which for my environment will not work since the source code changes frequently. Any input from anyone is welcome. But I feel at least for me this will work best in the current situation.