Are there any cloud libraries that takes EC2 inputs? - amazon-web-services

This might seem like a somewhat strange question, but are there any cloud libraries (jClouds, libclouds etc) that can take EC2 commands and port them to other clouds?
The idea is basically to enable a company with a native EC2 integration to move to a different cloud provider without having to rewrite the provisioning code.

Not exactly what you're looking for, but you can use a service such as Ravello, which supports multiple public clouds for deployment.
The user interacts with the Ravello API/UI, and Ravello handles the interaction with the various cloud APIs.

Related

What is the difference between AWS lightsail vs codeStar

I am exploring options to quickly deploy and start a project on AWS stack. And I came across above two services, "LightSail" and "CodeStar".
I could not find any comparison of these two services from internet. Hence would like to know more about these two services compared to each other ?
Amazon LightSail is a Virtual Private Server (VPS) that can be launched with a number of pre-built images such as WordPress. Think of it as a simpler version of EC2 with flat-rate pricing.
AWS CodeStar is a central hub for managing various interconnected services relating to software development, from writing code to deploying code.
The reason you couldn't find a comparison is that they are rather different services.
Basically, if you already have your code and just want to run it somewhere, then use EC2 or LightSail.
If you want to develop code using lots of AWS tools, use CodeStar.

Spring boot/cloud microservices on AWS

I have created a Spring cloud microservices based application with netflix APIs (Eureka, config, zuul etc). can some one explain me how to deploy that on AWS? I am very new to AWS. I have to deploy development instance of my application.
Do I need to integrate docker before that or I can go ahead without docker as well.
As long as your application is self-contained and you have externalised your configurations, you should not have any issue.
Go through this link which discusses what it takes to deploy an App to Cloud Beyond 15 factor
Use AWS BeanStalk to deploy and Manage your application. Dockerizing your app is not a predicament inorder to deploy your app to AWS.
If you use an EC2 instance then it's configuration is no different to what you do on your local machine/server. It's just a virtual machine. No need to dockerize or anything like that. And if you're new to AWS, I'd rather suggest to to just that. Once you get your head around, you can explore other options.
For example, AWS Beanstalk seems like a popular option. It provides a very secure and reliable configuration out of the box with no effort on your part. And yes, it does use docker under the hood, but you won't need to deal with it directly unless you choose to. Well, at least in most common cases. It supports few different ways of deployment which amazon calls "Application Environments". See here for details. Just choose the one you like and follow instructions. I'd like to warn you though that whilst Beanstalk is usually easier then EC2 to setup and use when dealing with a typical web application, your mileage might vary depending on your application's actual needs.
Amazon Elastic container Service / Elastic Kubernetes Service is also a good option to look into.
These services depend on the Docker Images of your application. Auto Scaling, Availability cross region replication will be taken care by the Cloud provider.
Hope this helps.

Can someone give an overview of the various choices on GCloud?

I'm a bit confused as to understanding the various offerings that google cloud has.
Is it basically like this:
Google app engine is fully managed servers, you push the code and it runs.
They have a servers that you manage yourself, you choose the sizes and spin them up and push code manually
Servers that run docker containers for you.
Is that a high level offering of google cloud in terms of the application servers? (excluding their managed services for db, caching etc).
Have a look at this:
https://cloud.google.com/docs/choosing-a-compute-option
There are also cloud functions that belong to the compute group of GCP:
https://cloud.google.com/functions/docs/

Communication between instances in Cloud Foundry

Is there a possibility to communicate between multiple instances of an application deployed to Cloud Foundry?
I checked the Cloud Foundry API but I couldn't find any mention of this subject.
I already tried Hazelcast but unfortunately, my Cloud Foundry provider doesn't support Multicasting, so I would have to know the IP addresses of every other instance in order to connect.
I think I can't be the only one interested in this.
I recommend you use a messaging service (like RabbitMQ) to communicate between instances of applications. You can also store shared information in a database service or any remote location outside the file system.
It is generally not a good practice to build applications that require this type of communication in the cloud. Each instance should ideally be able to run independently and be stateless.
If you can programmatically access the ip addresses, you can build up the Hazelcast Config object and use that to setup your cluster. You can then rely on tcp-ip discovery.
pseudo code:
List<String> ipAddresses = cloudfoundry.getIps()
Config config = new Config();
config.getJoinConfig().getIpDiscovery().addMembers(ipAddresses)
HazelcastInstance hz = Hazelcast.newHazelcastInstance(config);
You can even load your existing Hazelcast XML configuration and enhance it on the fly using the XmlConfigBuilder.
There might be occasions where the instances need to communicate amongst themselves instead of using an external component to gain efficiency or avoid dependency. One possibility is to use gorouter itself with specific instance id in http with below header.
X-Cf-App-Instance=app-uuid:instanceno-integer
Other option which I am yet to explore is explained in this link
https://ict.swisscom.ch/2018/05/container-networking-with-cloud-foundry/

Amazon service for internet of things?

Does amazon AWS have decent service for internet-of-things type applications (e.g. NEST thermostat, Wifi controlled appliances)? We would like to connect up to 2 million devices through the cloud. I can see how you might be able to do this with Amazon SQS and the Elastic Beanstalk, however I was hoping that there might be a better way that is less custom. For example, is there a good rules engine for SQS messaging?
I know that the NEST thermostat has solved a similar problem.
Thanks,
Mike
Try Temboo. Temboo offers a platform containing methods for 100+ APIs, databases, and code utilities, the Library and the Temboo platform are accessible via the Temboo SDK in seven programming languages, the Temboo REST API, and the Arduino Yún.