Resize an Image in AWS S3 Using a Lambda Function

Overview

AWS Lambda is a compute service that runs your code in response to events and automatically manages the compute resources for you, making it easy to build applications that respond quickly to new information.

AWS Lambda starts running your code within milliseconds of an event such as an image upload, in-app activity, website click, or output from a connected device. You can also use AWS Lambda to create new back-end services where compute resources are automatically triggered based on custom requests. (more…)

Continue Reading Resize an Image in AWS S3 Using a Lambda Function

CI Tools comparison: CodeBuild vs Bitbucket Pipelines vs Jenkins

Multiple tools are available to do CI/CD. In the article, I’ll compare CodeBuild, Bitbucket Pipelines and a brief overview of Jenkins.

Notifications

Both offer notification options. On Bitbucket, you can add Slack notifications quickly by going to Chat Notifications > Settings > Add Subscription. CodeBuild integration is not that intuitive but offers a more significant deal of flexibility. You would have to subscribe build-notifications to SNS topic. From there you can add AWS ChatBots to push notifications to your Slack, or email, or Lambda, or HTTPS endpoint or even send SMS.

You could also add custom logic to your notifications. Bitbucket offers webhooks on pipeline events.

CodeBuild triggers existing Bitbucket webhooks too, which makes migration less painful.

(more…)

Continue Reading CI Tools comparison: CodeBuild vs Bitbucket Pipelines vs Jenkins

О понятии «бессерверные технологии» serverless

У многих бессерверные вычисления ассоциируются с существующими платформами, представляющими услуги в формате «функция как сервис» (function-as-a-servise, FaaS), что вполне понятно. Многих эти платформы разочаровывают, заставляют с подозрением смотреть на всё «бессерверное». Однако, это — слишком узкий взгляд на вещи.

Сегодня я расскажу о том, как развитие бессерверных платформ уже совсем скоро изменит наше отношение к ним. Я покажу три волны универсальных бессерверных технологий и продемонстрирую их взаимодействие, которое направлено на предоставление гораздо более широких возможностей, нежели FaaS-продукты.

О понятии «бессерверные технологии»

Бессерверные технологии — это всегда абстракция уровня сервиса, иллюзия, созданная ради удобств конечного пользователя. Аппаратное обеспечение при этом, естественно, никуда не девается. По сути, можно выделить две определяющие характеристики бессерверных технологий: невидимая инфраструктура вместо настраиваемых образов виртуальных машин? и схема оплаты, основанная на фактически потребляемых ресурсах вместо фиксированной почасовой ставки. (more…)

Continue Reading О понятии «бессерверные технологии» serverless

Serverless Best Practices

Within the community we’ve been debating the best practices for many years, but there are a few that have been relatively accepted for most of that time.

Most serverless practitioners who subscribe to these practices work at scale. The promise of serverless plays out mostly at both high scale and bursty workloads rather than at a relatively low level, so a lot of these best practices come from the scale angle e.g. Nordstrom in retail and iRobot in IoT. If you’re not aiming to scale that far, then you can probably get away without following these best practices anyway.

And remember that best practices are not “the only practices”. Best practices rely on a set of underlying assumptions. If those assumptions don’t fit your use case, then those best practices may not fit.

My main assumption is that everybody is building their application to be able to run at scale (even if it never ends up being run at scale).

So these are my best practices as I see them. (more…)

Continue Reading Serverless Best Practices