Win a copy of Micro Frontends in Action this week in the Server-Side JavaScript and NodeJS forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Ron McLeod
  • Paul Clapham
  • Bear Bibeault
  • Junilu Lacar
Sheriffs:
  • Jeanne Boyarsky
  • Tim Cooke
  • Henry Wong
Saloon Keepers:
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • salvin francis
  • Frits Walraven
Bartenders:
  • Scott Selikoff
  • Piet Souris
  • Carey Brown

Easiest way to deploy client and server in automated way?

 
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I am beginner~intermediate level in Java.
I created a simple chat client and server in Java as an assignment.
I have an additional assignment to deploy these in automated way using any scripts or tools.

What would be the easiest way to accomplish this? Can this be done using Chef or Puppet?
Please suggest something simple for someone without much knowledge in this area.
Thanks!
 
Marshal
Posts: 15896
265
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
It /probably/ can be done with Chef or Puppet but there are whole books devoted to teaching how to use those tools so I'm not sure how "simple" that's going to be for you.

It kind of depends on your configuration. Are the client and server on the same network? What OS will the client be running on? What OS for the server? There are a bunch of other questions that can be asked from there.
 
james choi
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Junilu Lacar wrote:It /probably/ can be done with Chef or Puppet but there are whole books devoted to teaching how to use those tools so I'm not sure how "simple" that's going to be for you.

It kind of depends on your configuration. Are the client and server on the same network? What OS will the client be running on? What OS for the server? There are a bunch of other questions that can be asked from there.



Thanks, you are right- my question was too vague. I found using Apache Ant would be the simplest solution for me after researching
 
Junilu Lacar
Marshal
Posts: 15896
265
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

james choi wrote:I found using Apache Ant would be the simplest solution for me after researching


Hmmm... I wouldn't really consider Ant as the easiest thing to use but if you think it will work for you, that's fine. There are other tools that you might want to look at too, like Maven, Gradle, and Buildr.
 
Junilu Lacar
Marshal
Posts: 15896
265
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
And Welcome to the Ranch!
 
Saloon Keeper
Posts: 22520
151
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
There are all sorts of ways.

In production, I created OS-level packages and had the operations staff deploy them Depending on the OS, I'd use dpkg (Solaris), RPM (Red Hat), or .deb (Debian/Ubuntu). I didn't deploy production to Windows, but that would have been MSI. Well actually I did, long before MSI, using InstallShield, but that was another era.

OS packages have the advantage that they can not only deploy the application (war, jar, or whatever), but also install any run scripts you might need and create any necessary data directories. Both Maven and Ant have the ability to construct OS packages for Java programs, and I have several such projects I work with daily.

Actually running the deployment as an automated process has many possibilities. You can set up an installation repository to pull packages from and use Ansible to "push" installation onto the target system(s) using Secure Shell (ssh). You can use Puppet, Chef, or one of several similar apps that rely on a target-side agent. You can use Ant or Maven to transfer and install them. Or brute force.

For example:


Would manually do what Ansible does, fetching the installable package from the web server "app-repo" and installing it on the target machine "clientsystem".

Deployments and installers are a specialty of mine. I've been setting them up for a LONG time, including processes for IBM mainframes and commercial packages for mass-distribution.
 
james choi
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Tim Holloway wrote:There are all sorts of ways.

Actually running the deployment as an automated process has many possibilities. You can set up an installation repository to pull packages from and use Ansible to "push" installation onto the target system(s) using Secure Shell (ssh). You can use Puppet, Chef, or one of several similar apps that rely on a target-side agent. You can use Ant or Maven to transfer and install them. Or brute force.



Thanks for in-depth information! My instructor wants me to try Chef/Puppet deploy my application up and running. I am new to both- will try to read about Chef from Safari tonight. But could you please provide some information on what Chef/Puppet do? I know they are configuration management tools... but in order to have Java application up and running... how does it work?
reply
    Bookmark Topic Watch Topic
  • New Topic