Podcast #128: We chat with Kent C Dodds about why he loves React and discuss what life was like in the dark days before Git. Listen now.

Hot answers tagged

19

One thing that will help you here is terminology. What you are describing here is called 'pessimistic locking'. The main alternative to this approach is 'optimistic locking'. In pessimistic locking, each actor must lock the record before updating it and release the lock when the update is complete. In optimistic locking, you assume that no one else is ...


5

However, let's say that I want to split a service into its own "microservice". Where would it store its data? If I have 5 microservices, spinning up 5 RDS instances, 5 redis clusters doesn't seem to be the most cost effective and seems to be a lot of management overhead. In order to a pure microservice, your services need to have autonomy over their data. ...


5

You are assuming that the physical host has dedicated all of it's hardware to a particular virtual host. If the physical server has 8 processors and 32 GB of ram, and it dedicates 2 processors and 8 GB of ram to a VM, adding an additional VM which has another 2 processors and 8 GB of ram associated to it would increase the overall resources dedicated from ...


5

AWS Organizations is the standard approach to managing a hierarchy of accounts. However, it does not allow billing to be consolidated at arbitrary points in the organization; it's a tree, not a graph. Given that, here is what I would recommend: Adopt an "infrastructure as code" tool to manage your users and permissions. This is the most important thing ...


4

There are several such projects. The most publicized system (but certainly not the first) is Diaspora, which is a social network made of many individually-operated servers, called "pods". Pods can be freely set up using the AGPL-licensed source code. An individual user can set up a personal pod, or can join a public pod. Regardless of what pod your account ...


4

"Cloud" is simply a trendy term for "on someone else's computer". (That, by the way, is also a great handy way of deciding whether or not it's a good idea to move something to the cloud or not.) If you run processes on computers owned by someone else who has a data center specifically for providing this service, that's the cloud. Virtualization is not ...


4

Taking your example of AWS, it can indeed manage the entire deployment process, including deploying the full environment from Cloud Formation config files through to the source code of the application. Code is pushed to git in Code Commit and then code pipelines will build the environment, compile the code, run integration tests and allow everything to be ...


4

Keys to the Kingdom Consider the cloud storage as if it were your house, and the access codes as the keys that open its front-door. Do you: Hand the keys over to your customer to go and collect their package from your house? Hand the keys to a trusted employee who will, on the clients request, retrieve the package from your house? If you answered option ...


3

You are trying to create a distributed eventually-consistent system. Those are inherently complicated. It's understandable that you are having difficulty coming up with a good solution because there isn't one. For example, consider a user with two devices “phone” and “tablet”, and the following sequence of events: The phone and tablet start with the same ...


3

There are a number of things that go into the term "cloud development". I'm focusing on AWS because it's the platform I know, but this should be generalizable. I include the AWS terminology to give you somewhere to start searching. There are three things that AWS or other cloud providers can provide: Infrastructure as a Service (IaaS): Here the cloud ...


3

You'd have to provide some local, client-side logic, as well as use local storage. Viewing cached content, offline. Taking commands that have effect when connected later. This is not trivial: there are a lot of considerations, as not only does that mean replicating some business logic on the client, which is bad enough; however, this cannot, in general, ...


3

tl;dr As other answers have said, it's an application that is designed to run in the cloud and not just adapted later to shoehorn into the cloud. It's mainly a marketing term, not so meaningful in technical terms. Product Manager Perspective As a commercial product manager, I find it occasionally a useful concept because the customer generally wants to ...


3

There is no one "correct" way to do anything in programming, even with a cloud-computing specific architecture such as Windows Azure. A cursory search of the MSDN documentation reveals that Azure does in fact have some useful functionality to help you separate your client's data. It appears as if you could decide to give each client their own SQL server ...


3

Cloud, put plainly, is a server for rent available online. As such, generally most of the types of hassles regarding setting up a server and making it accessible online while not putting the rest of your network at risk, is already handled for you. There are several types of clouds depending on what the cloud offers you: Storage clouds - They offer a ...


3

Option 1 vs Option 2 Any validation you do on your server is obviously completely pointless, if you then allow the user to upload the file directly to your cloud storage (Option 1). Going through your server (Option 2) may be a good approach at the beginning, if you don't expect to have large numbers of concurrent users right from the start. But your ...


3

The trick is to not keep any session state within the stuff you redeploy. Instead: keep state in a separate database that persists beyond a deployment, or keep state purely client-side. Where a web framework keeps state in-process or in tempfiles, a redeploy necessarily destroys that state. A subtle variant of this is if tokens or keys are generated during ...


2

Routers are very specialized and optimized to do just what they do very well. Why would you want to burden them with extraneous tasks, and why would the providers of network infrastructure be interested in adding this to their burden? I can't think of any general computational task that this kind of methodology would be useful for, but perhaps some kind of ...


2

Neither. As long as your system runs on a single machine, you're not doing cloud scaling. In the context of cloud computing, scalability means horizontal scaling. Thus, "cloud scalability" means that you can add more machines to your system to increase its capacity, and doing this should be relatively easy. Ideally, it would even happen automatically, but ...


2

"Cloud application" is mainly a commercial buzz word but is, as far as I know not stricly defined. General definition could be "an application with a client on the end-user device, using online servers to do some processing or store somes data". But as a buzz word, in fact nearly all applications nowaday could be called "cloud application" if they use a ...


2

As mentioned, only someone from Dropbox could clearly answer your questions in a 100% accurate way, but the overall concept is pretty easy to understand. First of all: "data de-duplication" is basically just a different term for "compression". 1. How does it work? Similar to how there are tons of different compression algorithms available, there are also ...


2

Many people will immediately jump to the idea of having one database per customer. In most cases thats unnecessary and creates additional problems of keeping the database structures in sync. Of course, if you specifically want them to have different database structures (different table & column definitions) or you want to give them direct access to the ...


2

This smells of homework or an interview question, especially the "10 GB of disk space" part. But here goes: Generate your IDs using a cryptographically-strong random number generator. Use your 10GB of disk space as a bitmapped Bloom filter: Hash the generated ID and mod 80G (8 bits per byte) Determine the status of the bit corresponds to this value. If the ...


1

I like your proposed solution, but I would add that maybe a serverless architecture would suit you well. Did you take a look at Azure Functions? They can be triggered by some events like the upload of file to Blob Storage. See here. The thing is that with a serverless architecture for your service, you will have a auto scalable solution, as well as less ...


1

No. Microsoft and Amazon (like every other provider) have limited sets of IP addresses assigned to them, they can only assign those to their customers.


1

It looks fine, but to evaluate it properly I would want to know more about the details of the problem you are trying to solve instead of just the engineering solution that seems to have been proposed. Why do you need to support entering data in to a local database just to push it out to the cloud based CRM (SFDC?). Can you not just get people to enter ...


1

SaaS is a business term for the delivery of software. "Service" here is being used in the business sense (plumbing service, roof repair service) rather than in the technical sense (HTTP service, SSH service). To directly answer your question, you could charge a fee for someone to access an X11 host (to which someone could connect to via ssh -X). You could ...


1

A cloud application can simply be an application that looks, feels and programs just like any other application you run on a dedicated server (After all, this might be responsible for a large part of why "cloud" seems to work at all). "The cloud" is entirely transparent to such applications. Developing such an application, I wouldn't consider "working on ...


1

If you rely solely on the username to find the correct customer, then usernames are forced to be unique across all customers, which may be problematic. I would suggest that the login form have a pull-down list of customers, in addition to the username and password. (You could then have a second select list of locations for that customer, if needed). You ...


Only top voted, non community-wiki answers of a minimum length are eligible