As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I am looking for recommendations on tools for automatic deployment of Windows Service to several machines. The tool should be able to:
- Stop/Start service
- Copy files
- Modify configuration files on each destination server according to some CSV/Excel file
Advantages: Web interface, notification via email, compression/decompression
Here are the tools I heard of, and I am starting to evaluate, but I would like to hear from people who actually applied one of these (or some other tools) in their automatic deployment process.
Chef http://wiki.opscode.com/display/chef/Home
ayehu AKA eyeShare http://www.ayehu.com/
Puppet http://puppetlabs.com/
Nolio http://www.noliosoft.com/
Octopus Deploy http://octopusdeploy.com/
Kwatee http://www.kwatee.net/
P.S. There is a similar question on SO, but it does not answer my question:
WCF service deployment - tools
Answering
Q: How many servers do you plan to deploy to?
A: Currently 20 servers in 2 data centers. The numbers might grow in the future
Q: How many users will be involved in designing and executing the deployment?
A: One would design the deployment, and somebody else (a single person) will execute it
Q: Does your deployment require Cross-tier synchronization?
A: I need to deploy only a single Windows Service, no database changes, no IIS or any other web tier
Q: How important are auditing and reports to you?
A: I would like the tool to be able to report whether its succeeded or not. It would be also nice to see a complete dashboard of all the deployed servers with their versions and recent changes.
You can try Jenkins (http://jenkins-ci.org/)
This tool provides a nice UI to configure automatic build and deploy any project. Also it have rich set of plugins available on internet.
You could add kwatee to your list. It's lightweight with a web interface for configuration and CLI tools to automate the deployment process. You can handle your target-specific parameter with built-in deployment variables but there might also be a way for you to do your own parsing of CSV files and inject them. Note that you must enable either ssh or telnet/ftp on your target computers.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
We are evaluating CI environments, there are a number out there:
TeamCity, Go, CCnet, BuildForge, TeamBuild, FinalBuilder Pro, Visual Studio Team System.
I'm having the most difficulty evaluating CCnet vs. Go
What are the pros/cons of each against one another?
Lucas,
First, the word of warning - I work for a vendor in this space (Urbancode - the AnthillPro guys). [/disclaimer]
I think it depends on what you're really trying to get out of the tool and it's hard to guess based on your selected tools. You have free tools, cheap tools, moderate tools, and expensive ones in your list. If you're looking to create a build infrastructure for a big enterprise, the expensive guys are more appropriate whereas if you're setting up just a team level system, open source may be fine.
Aside from scalability, perhaps the biggest difference between tools like Go (and AnthillPro for the matter) and CC.Net is what you're looking to do with them when the build is done. If after the build, all you do is send an email, a basic, team level CI system can be a good fit. If instead, you want to deploy it to one test environment, either system may suffice. If you want to deploy a build through six test environments, get some approvals, and then deploy to production with full audit trails the whole way through, something like CC.Net just isn't going to cut it. You're looking at the Go's, BuildForges, and Anthill's of the world.
Things like integrations are a big deal as well - the tool has to work with the other tools you use.
Eric's answer is very interesting.
In our company, we use CC.net for CI and Deployment. BUT, cc.net is just a tool to manage every other tool that is used in our builds (mostly msbuild but also sql deployments, nunit, iis management...). Thus, we can't say that cc.net takes care of the deployment tasks, it just launch a msbuild script that does the job and aggregate logs to the user-friendly dashboard.
I would add that if you look for a global CI tool (CI + build scripts + deployments) you can forget about cc.net. But if you have knowledge in msbuild, NAnt or any build/scripting language you can use it. The latter's advantage is that your build are reusable, if you change your CI tool you can still use them, if you do a TFS build script, I'm not sure whether you can use it with another tool...
Things we do with CC.net + MsBuild :
basic builds
nightly builds
windows service deployments
huge website deployments
As for Go, I never tried it, sorry. You can think about Hudson (even for .Net) too.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
Background: I'm a windows developer at MegaCorp(tm) and I am getting new hardware soon.
Question: Are there best practices around setting up my developer software installs?
Details: I've got my main IDE (Visual Studio/SQL Management Studio), but there are also tools that I'm testing out, additional tools I can't live without, and future accomodations.
All my code is stored on a remote server in SourceSafe so I don't need to really accommodate for that, but I'll regularly jump into perl/python/php for separate/side tasks.
The only advice I can give you is set up your machine in a way you need it and you can work with and then save an image so that you can return to that state easily.
Also, don't forget to go and get all your SysInternals goodies. Oh, also remember to export your rss feeds before you upgrade.
You should also install the Windows SDK (which usually doesn't come with VS), as there are many useful tools there that can help during development.
If you plan to use .NET, look into Reflector and LINQPad.
If you plan to use ASP.NET or do any web development at all, look into Fiddler and Firebug
Use a VM image, then the project has a VM image that is version controlled.
Tools and OS are recoverable years later.
Your name will shine on asa voice of sanity and configuration management.
Get rid of SourceSafe
Seriously, don't store anything in SourceSafe. There are many other, better Version Management Systems out there. What's wrong with SourceSafe? I strongly urge you to consider reading the following posts:
http://www.codinghorror.com/blog/archives/000660.html
http://www.highprogrammer.com/alan/windev/sourcesafe.html
http://www.developsense.com/testing/VSSDefects.html
Especially the last one - it goes into lots of detail about the problems with VisualSourceSafe. What should you use instead? Wikipedia has a great comparison of many different Version Management Systems for you to compare. You can look here to find out which ones integrate nicely with Visual Studio.
vim - VI Improved
Beyond Compare - best diff tool.
If you use multiple machines (like
one for dev one for test)
Synergy is invaluable.
If you occasionally need to edit
icons Paint.NET is pretty good.
As everyone else says kill source safe.
I have to agree regarding SourceSafe, whether or not you have the ability to opt-out of using it or not will obviously affect your ability to addopt a new SCM tool but if you can I highly recommenf the free VisualSVN Server for managing subversion and / or hosting repositories.
If you are prepared to pay for the licence you can also buy the VisualSVN plugin for visual studio, as a student I can't afford that but I have used AnkhSVN which integrates with VS through the source control provider APIs providing a nice native looking interface in VS 08
Other tools I can't live without:
TestDriven.NET
DocProject for easy generation of MSDN-style code documentation. I believe it uses sandcastle to do the real work but sandcastle itself is difficult to use and this is the most sane UI over it I've seen and managed to get working without massive amounts of work.
Paint.NET for graphics work
TortoiseSVN is another really good SVN client that I use for doing things like merging to trunk because I am more familiar with the interface and I think it's nicer than AnkhSVN in some areas
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I'm looking to manage a system (or preferably multiple systems) of machines on EC2, and at present the only way I can see doing that in a reasonable way is to extend the Typica library and build a control panel that launches, configures, and checks in on machines for me.
I don't expect there to be any prefabricated solutions to exactly my problem out there, but I'm wondering if there are any good tools for managing EC2 instances out there? Preferably in Java, but it'll more than likely be easier to learn a new language than to implement a seriously powerful control panel.
And yes, I know about Elasticfox - it's a wonderful tool, but not nearly powerful enough for what I'm looking for.
I realize the question is from 2009, so I wanted to mention that since then Amazon released CloudFormation that allows you to orchestrate the launching and configuration of complex AWS environments. Additionally, we created BitNami Cloud Hosting for managing ec2 servers, but I don't think this is what you want because is more focused on applications.
Have a look at Rightscale's tools as well; their premium tools are for-money, but their free tools are fairly comprehensive too.
In addition, there's Cloud42, but while all of these tools, along with Amazon's new official Java API interface are quite nice, none of them (except Rightscale, which is awesome, but very incompatible with what I'm doing, sadly) have any sort of functionality remotely close to properly managing an application launch on the cloud.
I suspect that Nimbus and OpenNebula are actually tools closer to what I was asking about - proper automated system management, rather than just access for manual machine management, however I have not had a proper chance to investigate either of these.
For my purposes we developed our own in house tool using the Typica library and several other tools, that allowed us to give machines abstract names and launch, configure, and issue commands to them via their names rather than instance id's or private dns's. Might be released open source, but that's not my decision unfortunately. I'll update this if it is.
AWS Toolkit for Eclipse should prolly work for your needs. It is Java oriented.
http://developer.amazonwebservices.com/connect/kbcategory.jspa?categoryID=250
Checkout the new iPhone application ( iAWSManager ) to manage your AWS resources from your iPhone .
http://www.iawsmanager.com
It seemed you want to do several distinct tasks:
1) Launch and check-in on EC2 instances - seems to be the domain of the
AWS cloudwatch and autoscale services. Maybe you can say how & why
those do not fit your needs? You might look at Ylastic too though
they probably won't work for the same reasons that RightScale won't - but you don't say what those reasons are...
2) You mention Nimbus and OpenNebula, but I think Eucalyptus (http://open.eucalyptus.com/) is what
you are after? I found the "Grid" founded projects tended to miss
the mark quite badly.
3) For configuration of the machines I think you'll want to look at
[Chef][2] and Puppet. You'll want to ask a separate question about
(resource ordering) differences between these two.
You should have a look to the different cloud management softwares available in the market. They should be able to solve your problems.
RightScale
Scalr (disclaimer: I work there): it is open-source so I you can tweak it if it does not fit your needs.
enStratus
Kaavo
You can set up a Rundeck (Java Jetty) instance with a public IP for the web UI and add the rundeck server's public key to your EC2 nodes under whatever user account you want to execute tasks as for centralized management and orchestration. Once you have populated your logical environments with your server lists, user accounts or LDAP/AD authentication, and assigned permissions for users you will be free to execute commands on any number of nodes simultaneously or via regex match and create repeatable jobs from them.
The Python boto SDK is also very useful for performing all things EC2 and creating automations against their APIs.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
whether command line or GUI, I'd be interested in testing every of them.
Your question is very generic and all the answers above assumed various things. When it comes to BizTalk monitoring its means different things to different people. Your BizTalk administrator might monitor the overall health of the BizTalk environment by opening the BizTalk Administration console. BizTalk Admin console allows adminstrators to deploy and mange BizTalk applications, in addition it also allows to monitor the health of the running systems. He/She can query for things like running instances (Orchestration, Messaging), suspended instances (resumable/non-resumable), Failed routing messages, failed subscription messages etc etc. BizTalk admin console can also be accessed remotely from a different machine if you have installed BizTalk Admin bits while installation via a MMC snap in.
Apart from this you also have HAT (Health and Activity Tracking in 2006, not in 2009 onwards), which allows you to do certain monitoring. But to access HAT you need to be on any one of the BizTalk machines.
Next comes BAM, which will require some custome configuration or in some cases some custom coding based on your requirements to capture some runtime monitoring data.
Next you got various performance counters, which will give you lot of statitical information like number of orchestrations running inside the host instance, spool size, number of messages received/send, etc etc.
I didn't find any necessity to go for a third party software for any of my monitoring requirements.
HTP
Saravana Kumar
BizTalk Server MVP.
If you want to monitor what a BizTalk application is doing, you should use Business Activity Monitor (BAM). BAM allows you to track fields from messages or context, and track milestone shapes in orchestrations. There's a BAM training kit here: http://msdn.microsoft.com/en-us/library/cc963995.aspx
you can always use the smtp adapter to send failed messages to yourself.
also performence counter is a great way to monitor biztalk - there is a lot of very useful data there.
BizMon
There is an new BizTalk monitoring tool called BizMon. You can check that out here. I think it does what you like.
We use this for our three mid-sized BizTalk environments (~50 BizTalk application in each) and it works good for us. But you can try it for yourself. The tool is free up to 5 applications (if you're however monitoring more applications than that you'll need a license).
FRENDS Helium
Another tool that might be worth a test is FRENDS Helium. I haven't tried this myself but they have a beta one can request and try out. Don't know anything about pricing or things like that though.
Do you mean monitor the status of each app? The only monitoring tools I know of are the ones from Microsoft here
If you want to monitor what the Biztalk app is doing, you'll need to put logging code into the app itself and then monitor the log (database table, event viewer, etc).
If you want to monitor the number of orchestrations being executed per second bu an application, or the number of messages going through a port, you can use Performance Monitor (perfmon). When you install BizTalk Server, a large number of new performance counters are installed.
If you want to be notified when a BizTalk application starts and stops, you can use WMI. Check into the sample WMI scripts included in the documentation for more info.
For performance monitoring, you can use PAL (http://www.codeplex.com/PAL). You can also use the Message Box Viewer to analyse the health of your system. And one other tool that I found recently and seem quite coold is the BizTalk Documenter (http://www.codeplex.com/BizTalkDocumenter). It is a must have in the tool box of any BizTalk developer.
Minotaur has gained a lot of ground in the past year as an effective BizTalk monitoring tool. It is easy to install and setup and inexpensive. Visit Raging Bull Tech's web site to investigate Minotaur as a fresh alternative to some of the product in the market today.
Minotaur V2.0 is set for release end of January 2011 and if feedback from the BETA testing is anything to go by, it is set to take the market by storm.
If you wish to put an end to your monitoring problems, go with the best in BizTalk monitoring out there, Minotaur.
You can take a look at http://sourceforge.com/projects/biztalkmonitord <- opensource FREE biztalk monitor! Including SMS warnings, and live feed monitor, works great for us!
I've its not the easiest to setup (but when its down nothing can compare!)
The best is that its multi -environment firendly
Monitor includes:
Specific fileshares
Suspended and active message in an environment
Suspended and active messages in an application
Receive Ports, Send Ports and Hosts + built in powershell commands to restart them!
Free space on fileshares!
cheers, and good luck!
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I'm looking for some software to monitor a single server for performance alerts. Preferably free and with a reasonable default configuration.
Edit: To clarify, I would like to run this software on a Windows machine and monitor a remote Windows server for CPU/memory/etc. usage alerts (not a single application).
Edit: I suppose its not necessary that this software be run remotely, I would also settle for something that ran on the server and emailed me if there was an alert. It seems like Windows performance logs and alerts might be used for this purpose somehow but it was not immediately obvious to me.
Edit: Found a neat tool on the coding horror blog, not as useful for remote monitoring but very useful for things you would worry about as a server admin: http://www.winsupersite.com/showcase/winvista_ff_rmon.asp
For performance monitor - start it on the server (Win+R and enter
"perfmon"). Select "Performance Logs and Alerts" and expand. Select "Alerts". Select "Action" & then "New Alert". Give the alert a name, click "Add" to add a counter (there are hundres of counters, for example CPU %), then give it some limits.
Select the "Action" tab, and then decide what you want to do. You may need a third party program - for example Blat to send emails - but basiaclly any script can be run.
I've been experimenting with munin for monitoring around 8 Windows 2003 servers.
http://munin.projects.linpro.no/
Its a free linux-based system and the Windows agent works well & is easily extensible. Setup is simple if you have some minimal linux knowledge.
If you want something free, try Nagios.
http://www.nagios.org/
You can configure you perfmon to collect specific counters to "Trace Logs" files on your hard drive. We usually keep daily logs for important counters:
Vital signs (CPU, Memory, HDD space)
Application specific (ASP.Net counters / SQL Counters)
Custom counters if your applicaiton exposes such
You can add "Alerts" for specific counters / counters groups and define actions when these alerts fire.
A list of monitoring tools from the High Scalability blog
I kind of like Perfmon myself. It comes with windows out of the box and has support for a lot of different measurements.
MS's solutions used to be called MOM. It looks like it's been redesigned a bit since I last used it.