3 ms·
I figure the correct way is that you build for "the cloud" aka someone else's computer. This means that don't use their proprietary offerings to do so unless a
by singingfish 9y ago
I figure the correct way is that you build for "the cloud" aka someone else's computer. This means that don't use their proprietary offerings to do so unless absolutely necessary.
- scarface74 9y agoIf you don't use their proprietary offerings, you lose most of the benefit of going to the cloud over being on prem. If all you're doing is hosting a bunch of VMs on the cloud, what's the point? Yes, be mindful as a developer I do take a few common sense steps... 1. ElastiCache uses the Memcached protocol so you're really not tying yourself to anything. 2. Lambda - think the "ports and adapters" pattern. Treat your Lambda function as a controller and keep all of your business logic separate. 3. Logging - all of our logging that goes to CloudWatch goes through Serilog. We can switch out the sink easily enough to anything. 4. Simple Queueing System - don't have calls to SQS all over your code, have it in one central module (in our case a Nuget package). 5. Autoscaling - have a shutdown method and wrap the calls that check when your instance is being shut down as events. 6. AWS KMS - We use Hashicorp's Vault and use AWS as a "backend". 7. Cognito - authentication. It's just Middleware for .Net Core that creates a principal before every request. It would be quite easy to add another piece of middleware.