Hosting, deploying and running web applications in the cloud [closed] - hosting

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
So far I've read some blog articles about cloud computing and services for hosting applications in the grid.
If I'd wanted to have a web application running in the cloud for as little cost as possible, what would be the best solution?
Let's assume the following configuration:
J2EE web application
Any free database (MySQL, PostgreSQL)
Any web container to deploy the web application to
What application stack would you suggest to be the best combination of services to
host
deploy
run
web applications?
As an additional requirement, the services chosen shouldn't require a lot about server management like firewall settings etc.

This space is changing very quickly right now so I think you will find a lot of different good answers. If I where to do something on the cheap right now I would probably pick the following stack:
Web server: apache
App server: tomcat - use the clustering support if you need to grow or split at the apache level or even introduce a load balancer box at the very front
DB server: MySql - mainly because it is easy to cluster
Platform: scalr - The cloud setup is simple and cheap. It uses Amazon's cloud on the backend and that gets you a lot of extras like putting servers in different datacenters for redundancy.
Now you can add in or remove parts of this. You may not need a web tier out there and can just expose tomcat directly. You may need EJBs and in that case you can just fire up more nodes for that and create another tier. You may want to add a tier for load balancing in front of apache. You may want to use the Amazon cloudfront service to push static files to their edge network.

I have investigated Amazon's ec2 solution recently. It is quite good and there are many pre-built boxes that you can use if you find one that suits your need. I think there will still be some server management involved...you cannot get away from that. But the pre built boxes will make it easier.
The cost is reasonable as you only pay for what you use.
[EDIT] The pre-built boxes are called Amazon Machine Images (AMIs).

I think you can get no where closer to Jelastic. It has all the stuffs that #carson mentioned. Specially I will mention their unique web console and they do not have any dependency for any API or console to be installed. I use their platform for many of the clients for my startup. Also additionally you get a nginx support for load balancing and configuring it right away from the console.

Related

Which cloud system to choose for spring-mvc project deployment [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
In my company we are working on a spring-mvc based product. We currently deploy projects .war file in tomcat 7 on a server machine (which has its own static ip) to access it globally while the database ( oracle ) is on a different machine.This server machine and db machine are currently in my office.
So basically when we need to access the project outside of our office we access the static ip of serve machine.
Now I have been told by my project manager to find a way to deploy .war of the spring-mvc project on a cloud based system.I don't have the slightest clue where to begin.
What I need is any guidance / document / tutorial which can help on getting started.
Which cloud based system will be best for me to do so? Should I use Convrgd or AWS [Elastic Beanstalk Or EC2] or any other service?
[ Note: I know this is a opinion based question but what I want is opinion on which I could begin to get a clean idea of which path should choose. ]
Let me know if you need any additional information. Any help is appreciated.
Definitely it is a good idea to move your application to the cloud.
There are many cloud service provider(s) are offering the cloud services now a days which you can make use of. like AWS, Azure, Rackspace etc.
Rightnow, AWS is in the leader position in the cloud space. Definitely, you can give a try in Amazon Web Services.
Elastic Beanstalk is a container service where you can easily deploy your application (war) file. Just upload a war file, AWS will launch Load balancer, Auto Scaling on your behalf.
For the database, for now you can launch a Amazon RDS (with Oracle). Transfer the data copy from your existing database to the Amazon RDS.
Hope this helps.
Note:
AWS costs you based on the type of the instance, database per hour basis.

Migrate from monolith to Micro service architecture [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed 3 years ago.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Improve this question
We are on the initial stages of designing a micro service for my client from their standard monolith app that is sitting on 4 JBOSS servers in their own data center. Is micro service architecture target at only cloud based deployment? Can i deploy a micro service on premise production ready tomcat /JBOSS? Is that a good fit?
Sure you can.
Microservice architecture is a concept of having many small interracting components, where each of them performing well defined part of work, but good.
It's extention of the Linux way and the concept of decoupling components.
In your case you can split your service to several smaller services. Each one with own development and deployment cycles, each one with well defined API.
Is micro service architecture target at only cloud based deployment?
no it's is an architecture for application development. basic idea of micro services is separate complex application function to small functions to reduce complexity and get high performance.
there are few reasons you need to consider before moving micro services.
1.scale of you application.
if your application contain high number of complex functions its better go with micro services. and separate them and deploy separate, then easy to do changes and maintains.
2.performance of application
if some application function need high computing power. you can allocate separate hardware resources. if you implement it as micro services.
3.deploy and maintain
if you use micro services you can deploy and maintain service separate without effect other services.
4.data migration
if your databases contain high data table relation it will little bit difficult remove for function databases(each micro services need each DB) so as a first step keep DB as monolithic and separate function to services. then start to reactor DB
5.call each services
fronted end application keep clean and logic free. and wrap your micro services using API gate way and publish all the services as one service.
6.application security
each and every services running in separate no need to session tracking use JWT (oAuth2) API security.
7.multiple services & transnational
if you need to handle one business function but with more than one service you need to check each and every services function work correctly**(ex db operations ,rollbacks)** so need to developed transnational handler
implementing micro services
there is no specific technology stack for it but there are free more technology available
ex :
java spring boot for micro services (with inbuilt tom cat server )
zuul , eureka for API gate way
oAuth 2 and JWT for security
*Note
there is not fix way to implementation for micro services , use correct technology stack to get performance and implement small business function. and doesn't matter hosting in cloud or local servers.
strong text
There is definitely no limitations whether you deploy your microservices on local, physical servers or in the cloud. Both approaches are valid, but they impose different advantages and disadvantages.
With local/physical servers, you will have:
bigger operations overhead (it is better you have good DevOps in your team)
manual scaling (when you experience bigger traffic, you need to manually fire up new instances, or use some management tool for this)
manual fault detection - if a server goes down (this depends on your/company's server enviorenment) someone will need to fix this "manually"
it is cheaper (a friend is buying old server instances on Amazon and running their semi-microservice architecture on them, he calculated they achieve quite big savings this way)
With cloud infrastructure, you get some of the below advantages (in contrary to above disadvantages):
less operations overhead (the cloud will take care of most of operations)
flexible scaling (when your traffic goes up, cloud can automatically fire up new instances, when it goes down, it will shutdown instances)
error/fault handling - if there occurs a problem in the cloud, you do not need to worry
I did not mention all the advantages and disadvantages of given approaches, as it also depends on the project (will it receive different traffic on different times of day, does it need to keep data locally or can it be in a foreign country in a cloud, ...).

PaaS/hosted PaaS without restrictions [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 5 years ago.
Improve this question
I'm looking for nice PaaS that could run applicatons which:
Listens to non-80 external port (25th, its a SMTP server)
Writes to the persisting filesystem
(its 2 different applications, so PaaS I'm looking for dont have to have both features)
I tried different PaaS and IaaS:
Heroku: no/no
OpenShift: no/yes
AppFog: apparently no/no
AWS: yes/yes - but its IaaS
I understand, that listening to 25th port is not really popular feature, so I'm open to host some PaaS without strict restrictions on say AWS. Is there is such?
I don't think OpenShift is going to give you exactly what you are looking for however as you have denoted you will have persistent storage.
As you have denoted port 25 is not one of the external ports that your application can bind to with OpenShift. The reason for this is because in too many situation the use of port 25 leads to accounts not complying with the Acceptable Use Policy.
However there are mail alternatives for SMTP such as the use of mailgun, this service works over port 80 and service as an SMTP service.
In this way OpenShif can meet both of your requirements (kinda).
If you are open to hosting the PaaS yourself, you can try out Cloudify. It's open-source, and your application not limited in what it can do on your instance.
Disclaimer: I work for Gigaspaces, which develops Cloudify,
You may check out http://paasify.it. It's a comparative list of current PaaS vendors that I have compiled.
As for persistent storage select 'Filesystem' under Services. Possible PaaS include Clever Cloud, HP Cloud Application Platform as a Service, Stackato and Static.
I'm not aware which do allow listening on port 25. I suggest using a addon service (e.g. mailgun), like SFERICH suggested.
Cheers Stefan
I just got into the following article and your question. I hope it can solve your demand for flexibility:
Dokku on Digital Ocean

Clearing up misconceptions about amazon(EC2) and rackspace [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
I'm friends with an owner of a small creative business (with multiple departments) and until now they have been using a dedicated server (via a 3rd party) for a lot of internal projects and they've been known to iframe a few small dev projects (like photo galleries, one page sites etc...) off and on for some of their clients (some with hi traffic sites).
They're looking to switch from the dedicated server to a cloud environment. The owner is enamored with amazon's cloud services, but still wanted some alternative options they also want the new environment to mirror the current one as much as possible (linux/centOS, PHP 5.3, mysql databases) but with the ability to scale when desired.
So the misconceptions I need cleared up and questions I have are:
1) I always assumed amazon's cloud service was more suitable for high end high traffic complex web application (Netflix, pinterest, instagram etc...) rather than the typical server use listed above. Is this correct?
2) Is it possible to mirror their current setup on amazon?
3) If number 1 is not true, but they instead chose rackspace, could they run heavy web apps like Netflix, pinterest, instagram on a rackspace cloud server if they ever decided to do something that advanced (is rackspace scaleable in the same way ec2 is)?
1) Amazon AWS is also suitable for this environment, or even smaller ones (they offer instances as small as "Micro", which are far less capable than what you are describing all the way up to GPU compute clusters).
2) Yes. That is a very common setup for an AWS-based solution. In fact, I recently migrated something similar from Rackspace to AWS.
3) #1 is true. However, you can certainly mix what runs on Rackspace and in the AWS cloud. Keep in mind latency and security issues if the two component solutions need to communicate with each other. Rackspace also has a cloud offering, but it is not as mature as Amazons.

web service client in GAE production is too slow [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 8 days ago.
Improve this question
I have a Java based web application that is hosted in google app engine. There is a simple web service call to the Amazon Product and Advertising API to look up for books when the user inputs a title. Everything runs fine on my local development environment. However, the web service call is annoyingly slow on production.
E.g. When I invoke the web service call in my dev environment, it takes about 3-4 seconds to get the response back. In production, the same call to the same API would take 15-16 seconds. There is no datastore activity involved at this moment, just a web service call and display the results.
I am pretty sure that this is not the initial load issues others are talking about regarding GAE in production. It has been consistently slow no matter if the load is warmed up. I have tried to search everywhere but nobody seems to be complaining about the same issue. Does anyone have any clue what this might be? Is there any good tool to tackle this kind of performance issue? Thank you!
Here is my update as of 01/23/2012:
I have identified the bottleneck - it takes about 10 seconds to get the port from Amazon Service (I was using SOAP based web service client). My solution is to use RESTful client and the performance is greatly improved. Now it only takes 1 sec to get the information back from Amazon.
The speed of response of Amazon APIs has nothing to do with the performance of GAE.
It's more likelly that Amazon throttles access to their APIs per IP. Since GAE is a shared service, having a set of common IPs, it might be that there are other apps on GAE calling Amazon contributing to delay. If this continues to be a problem then you might want to setup a proxy server somewhere (Amazon EC2?).

Resources