What do you think of an AWS based architecture [closed] - ruby-on-rails

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
I was reading through this article:
http://aws.typepad.com/aws/2008/12/running-everything-on-aws-soocialcom.html
And I was wondering if this was good or bad. I am a fan of AWS myself, but I what to hear what the crowd thinks...

There is everything perfect in the Elastic World besides reliability. Obviously, the reliability and quality of service is dependent on the service provider and if the service provider is down you don't have anything to fallback on. I am a big proponent of AWS, but with the last two outages, I am now designing fallback on local data center servers in case of outages.

One of the main design decisions when designing a solution in AWS is to expect services to fail and implement mechanism to recover and if you need HA, then implement redundancy. Don't assume all the services to be reliable (Unless otherwise stated that they implement redundancy internally). Most of these problems are solved if you are using managed services such as Lambda, API Gateway, S3, Dynamodb & etc but if you are using services like EC2, then you have to design for HA, for example for EC2 using auto scaling and load balancing.
If you are interested to learn more refer AWS Well-Architecture Framework Whitepaper.

Related

Is k8s a good idea to run a simple application? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
I am tring to use Docker to hold my blog website. But before coding, I know the k8s from the web.
I am totally green with web, so it confused me that is it a good idea to hold my blog in k8s? The infometion from web tell me that k8s > Docker. I do not know is it a really a good idea or not? I have try to learn the k8s for 2 days, and know what is the cluster, services and pods and so on. But it sound not make my work easy...
Should I go on to learn the k8s or it is just a bad idea and I should turn around to just learn how to learn Docker?
Thanks.
It depends on your need for high availability and performance for your blog and how many machines you are willing to use to host your blog.
What I read from your "new-ness" to the web you do not need to go there yet. Docker is probably enough for.
First get familiar with docker / containers and then with K8S.
If you also want to learn Docker this might be a good resource (https://docker-from-scratch.ivonet.nl/) ... shameless plug 😄

Should I use Serverless or Kubernetes or Docker Swarm? [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 2 years ago.
Improve this question
We have a product that each device will report data to our server every minute, we've sold 10K and it'll be more than 100K within the next 2 years.
Now, we just use AWS EC2(8 CPUs) + Nginx + Koa2, there're 8 instances, according to the requirement increasing, it won't be appropriate anymore.
So, I'm confused about which one should I choose?
BTW, I've been using AWS Lambda for 2 years to develop IOT issues and I used Docker 5 years ago, I think all of these three ways can solve my issue.
Kubernetes is a great tool if you are not sure how your application is going to scale out. Using Amazon's Kubernetes engine or GCP equivalent Kubernetes engine can help you create and manage these clusters with click of few buttons and manage your application containers using Kubernetes's superior container orchestration framework.
Docker swarm , IMO , has lost to kubernetes because they did not seem to have jumped into this part of architecture soon enough and kubernetes has already created a very mature framework with great adoption in many production environments and lot of community support for any issues related to it.
Another advantage of using an Orchestration mechanism instead of AWS native services would be that you do not get into Vendor lock-in situations and you can move your stack to any other cloud platform hosting Kubernetes easily.
If you are also interested in continue to use your Serverless architecture , you might want to look at Open FAAS which can be leverage on top of your Kubernetes framework. Check this link for more details.

ActionCable vs Socket.Io is the most reliable and most scalable? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 6 years ago.
Improve this question
Which one is the most reliable and the most scalable?
ActionCable or Socket.io?
In order to avoid the opinion based answers please provide some real measured data which prove the hypothesis.
Are there any apps out there in production which were implemented using ActionCable, since ActionCable is out for a year?
Thx
If you are using Rails, ActionCable will be fine. It is currently used on Basecamp and powers their chat and notification features.
This is a large scale application with heaps of daily active users so really you shouldn't be worried about scale. However, if you are talking about millions and millions of active connections, then probably neither is your best option - with the better alternative being Elixir/Erlang (2Million Websocket connections in Phoenix) or even NodeJS.
However in your case if you are using a Rails application, then Actioncable is going to be much easier to implement as it is a feature of Rails and not an external party.

Should I add mid-tier (like Java or Node) when working with iOS and Parse (or any other cloud based SDK)? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I am pretty new to iOS and I am planning to start one iOS native application with Parse/AWS or any other cloud based DB handling. Is this a good practice or I should include mid-tier like Java and let my app talking to it instead of directly dealing with Cloud? My question is around security and scalability of my application. If I include a mid-tier then I think I can use that as an API with in Android version of my same app as well and which will make things easier for me to handle.Share your thoughts please.
First, great question. I am a long-time user of Amazon web services, where I call for the database without a middle tier. I find that the cloud balances the load well, spins up new resources well, and generally responds well.
As for the security element, you are really sending authenticated requests directly into the cloud, not to a given server. Hence, making a round trip to a specific server (linux + java) is no longer necessary. The cloud can accept datagrams with authentication information loaded.
I am not a parse person, so I may not get this answer voted, but AWS uses a security service called IAM (Identity and Access Management) which forces you to define a pool of permitted resources in your cloud. I imagine that Parse provides comparable services (if not, perhaps consider the AWS cloud), since this is how you are able to call for the database without a middle server tier.

Secure a Cocoa Touch Library with Remote Server, Local Script, and License-Key [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
Background
I want to create a Cocoa Touch library where others will be limited to a finite number deployment builds using said library. However, there should be no limitations on the number of development builds.
I was considering a remote server which generates license-keys each associated with the library and a number of permitted deployment builds on the library.
When the user of the library builds for deployment, I need to check against the keys on the remote server.
Question
Does this seem like a sound approach for what I want to accomplish? If so, how does one check only for deployment builds while preventing the user from tampering with the script/binary that does the checking? If not, what would make it a sound approach?
Imagine the joy and rapture if every library you used was making calls to some random server, affecting your customers, hurting their experience. Making your development of your product a living hell for testing and distribution. Yea, that'd be a hoot.
Get a lawyer, get a solid contract, reserve the right to audit their sales, etc. Companies have had such arrangements for years, and actually abide by them with little more than a piece of paper and couple of signatures.

Resources