I have a web application developed with Struts2, JSP, JPA, Spring and MySql. I want to move this application to Amazon Cloud. I have not done a cloud deployment before or know how to do it.
Can anyone help me on a step by step process or a procedure to follow or a document that will guide me in doing this. Thanks for your help.
Upload your project's .war in elastic bean stalk and deploy project.
The steps to create a new application in beanstalk is -
1) Create a new application say "test app" in Elastic beanstalk, chose the region which best suits your requirement.
2) Create a new environment in the application "test app", select the application server you like to have i.e, tomcat 6 32/64 or tomcat732/64.
3) upload the .war in the newly created environment.
4) You can provide a custom Cname through which you can access you webapplication from browser.
5) Finally based on your requirements you can set the healthcheck status time interval, scaling unit
Got it... thanks for the detailed description.
You can make it in two ways
Create a singleBeanstalk application.
create different environments for each company within the created application, and in every environment deploy the .war file and provide the resources as per your requirement such as tomcat 6/7, minimum number of instances & maximum number of instances for Auto scaling. Health check monitor interval, no. of times to check before timeout etc.,. and finally assign the cname (i.e, the url by which you access the application) associated with the company name, like if the webapp is for xyz company then provide cname as xyz.elasticbeanstalk.com.
2 . Create multiple Beanstalk applications i.e., one for every company and in each application you can create multiple environments like Development, Beta, Staging and live - based on your requirement.
And coming to DB
Go for RDS if your DB is relational DB. Two ways to plan for multiple company's is
1) Create a single RDS and create multiple schema's in it i.e., one schema for one organization.
2) Create separate RDS for every organization - recommended if DB records are more
Let me know if you have any queries.
Happy to help...:)
please find me inline comments in bold.
Currently, the application is installed on a company's server, and users from the company that will use the application are created.
How is the installation done, and what is the architecture(x86/x64) and platform(windows
server/linux) of the server
The application knows how to manage its users. So every company that needs this application, buys a server and the application is deployed on the server.
Buys a server in the sense - you guys are providing the application and they are
launching in their server, i mean in their own infrastructure.
The facts i understood from your reply is, that you guys provide a web application to
different company's. And those company's deploy your webapplication in their
application server and DB in their DB server.
Correct me if am wrong
Related
We are running a B2B business and we have a Laravel (v8) app running on AWS.
Before, I created different environments for different customer companies.
One subdomain for each customer company and running on different environment as the configuration described here:
AWS: Pointing sub-domains to different elastic beanstalk environments
In the beginning it seemed perfect. But then, managing git branches, merges and then deployments on several machines proved to be too difficult to maintain, furthermore, too expensive.
So, I decided to point all the subdomains to the same environment for production.
BUT, ALSO I don't want that data of customer companies get mixed together; I want to keep them separate, even if on the same database server.
SO, FINALLY I want that my laravel app uses a different database (on the same RDS instance) according to subdomain.
1. Does it make sense?
2. How can I do it?
I am developing a project in spring. In this project I have written a cron job as well. I am going to deploy this on 4 AWS servers, but I want my cron job to run on only a single server (let's name that as admin server).
So here my question is how can I identify admin server uniquely. I was thinking to use the IP as identification but as far as I know IP is not static for AWS servers. is there any other way for identification so that I can put that check in my cron job code so that it will run only on admin server?
You can always start the admin instance with some user data as metadata or add a tag to your instance.
The metadata solution might be easier to integrate as you can just issue an unauthenticated HTTP request from within the instance to read the value. If that is a security concern for you, then you can go with the tag and use the API to retrieve the tag value.
I need to configure service accounts for connecting to some of the services and for that we are required to configure the details in a template file.
So basically that means, I want to configure service account at run time.
We are using oracle service bus 11g.
Since I've never worked on service accounts before, any suggestions will be helpful.
I checked that we can do that at run time by fn-bea:lookupBasicCredentials XQuery function. but this is not what we want. We want to generated dynamically through the template files.
I'm in the process of developping an application using JHipster that will be deployed as SaaS. I don't really know the path I need to take while generating and coding my project (monolithic/microservice+gateway/etc) i need you help.
Here is what I want :
Shared databases, differents schemas with multi-tenancy for each companies (already got this working on an monolithic project using this method : http://anakiou.blogspot.fr/2015/08/multi-tenant-application-with-spring.html)
Each companies have their own users
A web-page for the user of a company to log in and be redirected to the application wich will be using the correct schema corresponding to the company (the tenant is the company name, should i use a "master" schema in database to store all the users ?)
Use liquibase to update all schemas at once.
Thanks
For your login page you could use sub domain names: one per company name. If you own domain example.com you can assign company1.example.com to company1 and company2.example.com to company2. Wildcard DNS record could help.
Using nginx to define these virtual hosts, you could add an HTTP header to incoming requests to pass the company name to your app. This would enable you to adjust business logic and presentation to each company.
I want to move my magento site from AWS to Google and I want to make sure I'm doing it the right way as I am new with google cloud computing.
These are the steps I'm planning on doing:
create an instance and install redis and my magento store on it.
create sql for my DB
create a snapshop of this instance
create a template from this instance
create a group of instances with the template
create a load balancer and connect it with the instances group
is that the correct way to build a solid and fairly scalable magento site on GCC?
are there any services on google cloud I can use to make my store even more fast and scalable?
That's a fairly good way to deploy, but you can offload a few of those to managed services by GCP.
Use Click-To-Deploy solution for Magento (https://cloud.google.com/launcher/solution/bitnami-launchpad/magento?q=magento)
Launch another Click-To-Deploy solution for Redis (https://cloud.google.com/launcher/solution/bitnami-launchpad/redis?q=redis)
Launch a Cloud SQL instance (https://cloud.google.com/sql/)
Update your Magento instance with the configuration for these servers
Use this as a template to launch instances-group
Put this groups behind a load balancer
Why is this better?
You don't have to manage your SQL DB security and scaling
You get redis and magento using simple clicks, saves a lot of time
All you need to manage are your settings. Even if you wanted to update your magento to newer upgrades on better servers
Bonus: You should also make use of a CDN for your static resources and Cloud CDN (https://cloud.google.com/cdn/) will be helpful there.
Further Read: Go through this to get a sense of what else can you do with GCP (https://cloud.google.com/solutions/commerce/)