Twitter | Search | |
Yan Cui
AWS Serverless Hero | Independent Consultant | Author | Trainer | Speaker | Developer Advocate at | Teacher of | Host of
7,884
Tweets
1,940
Following
9,750
Followers
Tweets
Yan Cui retweeted
Ajay Nair 7h
Replying to @ajaynairthinks
My point is - complexity and simplicity is contextual based on your goal + cost and time premium. All is well as long as you, and everyone else are getting more efficient in terms of time and money in dealing with chores. We all find our own paths :) /fin
Reply Retweet Like
Yan Cui 21h
Replying to @theburningmonk
The repro steps seems to be: 1. invoke function 2. remove stack 3. deploy stack (same func name & IAM role) 4. invoke function. Is it some internal caching thing where the new function is still pointing to the old internal ID for the IAM role?
Reply Retweet Like
Yan Cui 21h
hey, I've seen this weird error a few times in the last 24 hours: ".lambda.model.AWSLambdaException: The role defined for the function cannot be assumed by Lambda" but the entity trust relationship seems fine, any ideas?
Reply Retweet Like
Yan Cui 22h
Replying to @Kaztopia @jeremy_daly
How so? I find I don't have much need for unit tests since my code is mostly just talking to different services, so I write mostly integration and e2e tests, and not had much problems with them. What do you see as the difficulty? Maybe a few examples
Reply Retweet Like
Yan Cui May 24
Replying to @jeremy_daly
Maybe it was the wording in your original tweet, it read like you saying it's more complex (especially in the frame of the tweet you quoted). Which is different to "it's easier, but not completely void of complexity"
Reply Retweet Like
Yan Cui May 24
Replying to @jeremy_daly
I don't think we have been trivializing them, just that, it's easier. Complexity still exists, just in different places, if it wasn't the case I'd be out of a job!
Reply Retweet Like
Yan Cui May 24
Replying to @jeremy_daly
As in, how the Lambda SQS poller scales (as an example)? If that's the case, then it's just swapping out knowledge of how my SQS processor cluster scales (ASG configs, etc.) with how the Lambda SQS poller scales (you gotta read the doc, so sure, there's work there)
Reply Retweet Like
Yan Cui May 24
Replying to @jeremy_daly
Yes, and that happens because I'm able to do more with less. Because individual components introduce less complexity and cognitive overhead as I have less to worry about.
Reply Retweet Like
Yan Cui May 24
Replying to @jeremy_daly
There's a good chance that you still needed queues/streams before serverless, and if you were using SQS/Kinesis, etc. you still had all the failure modes associated with using those services, plus failure modes associated with your custom polling code & infra that runs them
Reply Retweet Like
Yan Cui May 24
Replying to @jeremy_daly
There are different failure modes, sure, not more - a lot of failures I used to worry about no longer exists - thread pooling, app process dying, machine failing, OutOfMemory, CPU starvation, etc. Replaced by (probably less) failure modes that are easier to handle
Reply Retweet Like
Yan Cui May 24
Replying to @ryan_sb @jeremy_daly
That's the law I was trying to find, thx! One thing I realised, is that understanding of the AWS services you work with has become more important, these knowledge are also more valuable and transferrable (and longer lasting) than knowledge about ur custom code
Reply Retweet Like
Yan Cui May 24
Replying to @jeremy_daly
It might look more complex, because before, everything's just hidden inside your code, now it's there for everyone to see. If anything, I find debugging a serverless app (once you've learnt your tools) is much easier and quicker as there's just less custom code involved
Reply Retweet Like
Yan Cui May 24
Replying to @jeremy_daly
I don't think you create new complexity, but rather, complexity gets moved out of your code and into the architecture which makes them more visible. In my mind, that's a good thing, the comm between components are explicit and can be reasoned with without digging into code
Reply Retweet Like
Yan Cui May 24
haha, sure, I know what I'd prefer too, but in a lot of orgs you only need to set it up once (or someone else already set it up as part of your landing zone) so the effort is amortized at the org level. Not when I'm doing a one-man shop though, not touching VPCs in that case!
Reply Retweet Like
Yan Cui May 24
Personally, I don't think you'd save a ton of effort compared to Fargate, which is already pretty easy to set up and get going with
Reply Retweet Like
Yan Cui May 24
I saw a post by on exactly this use case recently - if what you need is a lot of hardware resource and exec on a schedule (or a src push) then it's quite a clever solution
Reply Retweet Like
Yan Cui May 23
Replying to @Kaztopia @alexbdebrie
Most of my resolvers don't involve Lambda either, you don't need single-table for that. GraphQL's pretty good at dealing with rels. And honestly, if I have to write mad VTL then I'd rather stick a Lambda in there. I wouldn't wish my mad VTL code onto my worst enemy to maintain...
Reply Retweet Like
Yan Cui May 23
I did a 2 hr session on Patterns & Practices for building resilient applications this afternoon with the UG in Delhi, you can find the recording here and the slides here enjoy!
Reply Retweet Like
Yan Cui retweeted
Michael Chan May 11
🔔Listen in if you want details on the different ways you can access AWS with AWS SSO! This covers the differences between creating identities in AWS SSO, bringing in identities from Active Directory, using existing identities that are in your SAML 2.0 based IdP, and more.
Reply Retweet Like
Yan Cui May 22
ICYMI - I spoke with and recently about the state of adoption at LEGO and discussed various topics such as team topology and doing monorepos effectively. Have a listen on here:
Reply Retweet Like