0

I've been reading a lot about different servlets/application servers like Tomcat, WildFly, Jetty and GlassFish. However, I don't understand if they're only used for testing server-side code during development, or can you also use them for deploying the final production code to end users (commercially)?

My understanding was that once my app is ready for distribution, I then purchase a web server from some company (Google, AWS, RackSpace, etc.) and begin hosting my server-side code on their application servers. For instance, Google provides the Google App Engine which allows users to host web applications on their infrastructure.

Or can application server software be used even for distribution? I'm using WildFly right now but don't understand how I'd integrate it into a server that I purchased from Google for example. They also provide the Google Compute Engine which provides more flexibility. Is this where I could install my own (free, open source) app server instead? Or perhaps RackSpace for example would provide me with a server with Jetty pre-installed, or something like that?

Please clarify the intended scope of software like WildFly, or any advantages it has over using a provider's built-in app server. I'm eager to learn new concepts, so any reading is just a bonus!

1
  • It's not an answer to your question per se but I think you should look into 'embedded' app servers such as embedded Jetty or embedded Tomcat. These greatly simplify things in terms of deployment and administration. You build your app and deliver the binaries and run. Clean, simple, and lightweight.
    – JimmyJames
    Nov 16, 2016 at 18:34

2 Answers 2

3

In addition to Robert's answer, you can use any of the mentioned servers in production environments. We do it often. Tomcat is one of the most used.

The point of these servers is that they are OpenSource and free. This fact makes them suitable for development because there're no constraints due to licences. Plus they are lighter than others like JBoss, WebSphere, Weblogic. If you have to run the IDE, the server, browsers like Chrome, editors, etc, in local, you will appreciate their lightness.

Related to PaaS, Google's and Amazon's PaaS are not cheap. It makes customers decide to go to a self-hosting or private cloud.

Self-hosting and private clouds imply a lot of things to be taken into account: network configuration, security, maintenance, monitoring, etc. A lot of work apart from the application maintenance.

If you go cloud, PaaS providers already have solved many of these issues. They also provide you with web tools like consoles to manage your environment.

But you pay for it of course. Also, you pay for bandwidth consuming, storage space, etc.

In both scenarios, you are free to use the app server you want. OpenSource and free are not synonyms of "inadequate for production". What makes a server suitable for production are its capabilities and features. If they have those you need, they are totally suitable for you.

Once you have the stack of technologies that forms your whole system, you would rather choose the PaaS that gives you better conditions and facilities to deploy it.

5
  • Very helpful comment, thank you. My level of expertise regarding self-hosting is making me strongly consider the cloud PaaS route, starting small and monitoring costs. What do you mean by "the proper stack of your system"... what does "stack" refer to here? Also, do you have any recommendations for private cloud providers? I'm assuming there's also a middle ground between cloud & self-hosting, I'll do some reading.
    – Nova
    Nov 16, 2016 at 17:19
  • By stack I'm refering to the whole set of tools and technologies you need for setting your production env. For instance: OS, SDK (programming language), App Server, DB, NoSql DB, etc. You have to find the provider that allow you to deploy such stack. Here is important to know if provider is constraining disk space, bandwich, bandwich consuming, request per day, etc. This is what skyrocket the costs. Anyaways, as I have read here, start little. Scale up only if you need it. And the most important to me, the customer support. Pay attention to the conditions. Same goes for the billing
    – Laiv
    Nov 16, 2016 at 18:41
  • By private cloud I'm refering a tailored PaaS. Banks, large companies, governmental organizations that doesn't want to depend on 3th party infrastructures but wants to go cloud, they build their own PaaS. Being honest, these clouds are just a "fancy" way to say self-hosting. Their metals, their network, their security policies, their tools, .... But with some important advantages respecting the traditional CPD. I'm affraid this option wont be the proper one for you (atm, who knows...).
    – Laiv
    Nov 16, 2016 at 18:53
  • I would not dare to recommend any provider because I have so little experience. In my company, we have worked with several but the choices are made accordingly with the project needs and customer expectations. My advice is work first on your local env, read meanwhile all about PaaS providers (some of them also have interesting SaaS). Once you know very well your env and its needs, is going to be easier to make a choice.
    – Laiv
    Nov 16, 2016 at 19:11
  • Sounds good to me, I'll do just that. Thanks for clarifying those concepts, it'll help!
    – Nova
    Nov 16, 2016 at 19:50
2

In general, Google, Amazon and Rackspace provide the platform on which you can run your Application Server Software. "Platform" is defined as that hardware and software required to allow software like Wildfly to run, generally a "machine," an operating system and various support software and utilities. The machine can be either a virtual machine, or a real one.

So Amazon and their ilk are providing essentially what you are providing during testing: a suitable environment in which to run the software. "Suitable" in this context essentially means a virtual machine that you can tailor to your specifications, including such things as memory capacity, hard drive space, number of processor cores, and so forth. You also get facilities like DNS and MX record administration.

You would integrate the software the same way you would integrate it onto your own hardware platform or development environment. Typically you would use a remote desktop connection into the virtual server, and set it up like you would any other machine. Whether you would set up Tomcat, IIS, Node, etc. would depend on whether or not it is already installed on the target machine.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.