SlideShare a Scribd company logo
1 of 11
S
AWS Serverless
Concept
ORÇUN ÜLGEN
BBS #246 - 27.09.2017
Agenda
S What is serverless concept ?
S What is serverless framework ?
S AWS serverless concept
S Lambda Functions
S Demo
S Questions
What is serverless concept ?
What is serverless concept ?
What is serverless concept ?
What is serverless framework
?
AWS Serverless Concept
Lambda Functions
Lambda Functions
Lambda Functions
Demo
Questions

More Related Content

What's hot

Deploying computer vision model as api using aws lambda and api gateway
Deploying computer vision model as api using aws lambda and api gatewayDeploying computer vision model as api using aws lambda and api gateway
Deploying computer vision model as api using aws lambda and api gateway
Shirish Gupta
 

What's hot (20)

WAF_ACTechMeetup_V1-00.pdf
WAF_ACTechMeetup_V1-00.pdfWAF_ACTechMeetup_V1-00.pdf
WAF_ACTechMeetup_V1-00.pdf
 
ACK_ACTechMeetup_V1-01.pdf
ACK_ACTechMeetup_V1-01.pdfACK_ACTechMeetup_V1-01.pdf
ACK_ACTechMeetup_V1-01.pdf
 
6 AWS Services / Serverless CI CD
6 AWS Services / Serverless CI CD6 AWS Services / Serverless CI CD
6 AWS Services / Serverless CI CD
 
Building Voice Enabled Apps with AWS AppSync, GraphQL, & Amazon Alexa: Mobile...
Building Voice Enabled Apps with AWS AppSync, GraphQL, & Amazon Alexa: Mobile...Building Voice Enabled Apps with AWS AppSync, GraphQL, & Amazon Alexa: Mobile...
Building Voice Enabled Apps with AWS AppSync, GraphQL, & Amazon Alexa: Mobile...
 
Voice Applications (Alexa Skills) Cloud Native on Kubernetes with Terraform
Voice Applications (Alexa Skills) Cloud Native on Kubernetes with TerraformVoice Applications (Alexa Skills) Cloud Native on Kubernetes with Terraform
Voice Applications (Alexa Skills) Cloud Native on Kubernetes with Terraform
 
Cluster SQL - TIAD Camp Microsoft Cloud Readiness
Cluster SQL - TIAD Camp Microsoft Cloud ReadinessCluster SQL - TIAD Camp Microsoft Cloud Readiness
Cluster SQL - TIAD Camp Microsoft Cloud Readiness
 
Build with Serverless Applications with azure functions By usama wahab Khan
Build with Serverless Applications with azure functions By usama wahab KhanBuild with Serverless Applications with azure functions By usama wahab Khan
Build with Serverless Applications with azure functions By usama wahab Khan
 
ActiveCampaign API Developer Talks - Motivating Sales with Code
ActiveCampaign API Developer Talks - Motivating Sales with CodeActiveCampaign API Developer Talks - Motivating Sales with Code
ActiveCampaign API Developer Talks - Motivating Sales with Code
 
The great migration embracing serverless first
The great migration  embracing serverless first The great migration  embracing serverless first
The great migration embracing serverless first
 
Jaws tokyo 2014 winter with_jeff barr
Jaws tokyo 2014 winter with_jeff barrJaws tokyo 2014 winter with_jeff barr
Jaws tokyo 2014 winter with_jeff barr
 
Introduction to the Serverless paradigm
Introduction to the Serverless paradigmIntroduction to the Serverless paradigm
Introduction to the Serverless paradigm
 
C sharp annual conference 15-apr-18 - delhi
C sharp annual conference   15-apr-18 - delhiC sharp annual conference   15-apr-18 - delhi
C sharp annual conference 15-apr-18 - delhi
 
GAB 2017 - Logic Apps and Azure Functions
GAB 2017 - Logic Apps and Azure FunctionsGAB 2017 - Logic Apps and Azure Functions
GAB 2017 - Logic Apps and Azure Functions
 
How to Leverage Serverless to Optimize for Cost and Performance
How to Leverage Serverless to Optimize for Cost and PerformanceHow to Leverage Serverless to Optimize for Cost and Performance
How to Leverage Serverless to Optimize for Cost and Performance
 
[さるる勉強会] AWS初心者のIoTサービス作成奮闘記
[さるる勉強会] AWS初心者のIoTサービス作成奮闘記[さるる勉強会] AWS初心者のIoTサービス作成奮闘記
[さるる勉強会] AWS初心者のIoTサービス作成奮闘記
 
Deploying computer vision model as api using aws lambda and api gateway
Deploying computer vision model as api using aws lambda and api gatewayDeploying computer vision model as api using aws lambda and api gateway
Deploying computer vision model as api using aws lambda and api gateway
 
WebDriver Lamda - Next Gen Scalable Test
WebDriver Lamda - Next Gen Scalable TestWebDriver Lamda - Next Gen Scalable Test
WebDriver Lamda - Next Gen Scalable Test
 
Microservices in action: How to actually build them
Microservices in action: How to actually build themMicroservices in action: How to actually build them
Microservices in action: How to actually build them
 
Colorado Cloud Foundry Meeting
Colorado Cloud Foundry Meeting Colorado Cloud Foundry Meeting
Colorado Cloud Foundry Meeting
 
Training Offerings - CodeOps Technologies
Training Offerings - CodeOps TechnologiesTraining Offerings - CodeOps Technologies
Training Offerings - CodeOps Technologies
 

Recently uploaded

Revolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial IntelligenceRevolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial Intelligence
Precisely
 

Recently uploaded (20)

How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024Extensible Python: Robustness through Addition - PyCon 2024
Extensible Python: Robustness through Addition - PyCon 2024
 
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdfFrisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
Frisco Automating Purchase Orders with MuleSoft IDP- May 10th, 2024.pptx.pdf
 
Working together SRE & Platform Engineering
Working together SRE & Platform EngineeringWorking together SRE & Platform Engineering
Working together SRE & Platform Engineering
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Google I/O Extended 2024 Warsaw
Google I/O Extended 2024 WarsawGoogle I/O Extended 2024 Warsaw
Google I/O Extended 2024 Warsaw
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
2024 May Patch Tuesday
2024 May Patch Tuesday2024 May Patch Tuesday
2024 May Patch Tuesday
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
Top 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development CompaniesTop 10 CodeIgniter Development Companies
Top 10 CodeIgniter Development Companies
 
ADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptxADP Passwordless Journey Case Study.pptx
ADP Passwordless Journey Case Study.pptx
 
Design Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptxDesign Guidelines for Passkeys 2024.pptx
Design Guidelines for Passkeys 2024.pptx
 
UiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overviewUiPath manufacturing technology benefits and AI overview
UiPath manufacturing technology benefits and AI overview
 
Revolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial IntelligenceRevolutionizing SAP® Processes with Automation and Artificial Intelligence
Revolutionizing SAP® Processes with Automation and Artificial Intelligence
 
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
Observability Concepts EVERY Developer Should Know (DevOpsDays Seattle)
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 

Aws serverlessconcept

Editor's Notes

  1. Bir çoğumuz yukarıda geçen layer ların ne anlama geldiğini biliyoruz. Zamanla bu katmanların maintenance şekli değişebiliyor. Ve her bir farklılaşma kendine has başka kavramları ortaya çıkarıyor. IaaS PaaS SaaS gibi developerlar veya şirketler proje ihtiyaçları doğrultusunda bu modellerden birini veya birkaçını seçerek implementasyon yapıyor Uygun model ile sadece üretmek istedikleri işin detaylarına odaklanmış oluyorlar. Bazı katmanların yönetimini başka vendorlara,şirketlere,platformlara ya da yazılımlara bırakarak ve zamansal kısıtları lehine çevirecek şekilde üretim yaparak yazılım geliştirme process lerini daha verimli hale getirebiliyorlar. Nedir bu kavramlar ve bu kavramlar arasında serverless nereye oturmaktadır.
  2. Şekilde de gördüğünüz üzere serverless kavramı PaaS ile SaaS arasında bir yere oturmaktadır. Geliştirilen ürünün frontend client managementı size kalmakta ancak backend management ı paylaşılmış durumda. Bu ne demek? IaaS de ya da PaaS de olduğu gibi bazı katmanların yönetimini vendorlara bırakarak çalıştığımız durumlarda yazılım geliştirme süreci nasıl olmaktadır? Düşünelim???? İlgili network tasarımını yapıp üzerine makineleri provize ediyoruz. Sonrasında ürettiğiniz yazılımın ihtiyacı olan konfigürasyonları tamamlayıp yardımcı yazılımları kuruyoruz. Yazılımın kullanacağı datanın giriş yöntemini belirliyoruz datayı biryerlerde saklıyoruz ve ordan alıp bu datayı kullanan başka bir yazılıma,platform a ya da data source a işlenmiş şekilde aktarıyoruz. NOT: Backend yazılımlarından hahsediyoruz şimdilik. Her ne kadar bu anlattığımız olayların bir çoğunu sanallaştırılmış da olsak, cloud nimetlerinden faydalanıyor da olsak kurduğumuz makinelerin yönetim sorumluluğunun bir kısmı halen daha bizim elimizde. Build ve Deployment süreçlerinin bir çok kısmı da bizim yönetimimize bırakılmış durumda.
  3. Ancak Serverless concept inde build ve deployment süreçlerinin daha da hafifletildiğini söylememiz gerekiyor. Sadece gerekli kodu yazmak ve belli başlı temel configurasyonları tamamlamak yeterli oluyor. İlgili Cloud çözümü sizin yerinize bu süreçlerin ve kavramların birçoğuna müdahale ediyor ve yönetiyor. Böylece siz sadece kodunuzu yazıyor ve kendi iş değerinize daha fazla katkı sağlayacak vakti bulabilir hale geliyorsunuz. Yukarıdaki şemada bu kavramları ve onların karşılığındaki implementasyonları görüyorsunuz
  4. Serverless framework ü bir node projesi. Temel hedefi bir çok cloud çözümüne ve onların serverless concepti için oluşturdukları altyapıya rahat bir geçiş yapabilmek adına bütün konfigürasyonları implementasyondan biraz olsun soyutlamak ve kolaylaştırmaktır. Cloud çözümlerinin yayınladıkları API ler aracılığıyla da bu konsept e geçiş yapılabilir ancak daha da uğraştırıcı bir hal alacaktır bu durum. Bütün kullanacağınız servislerin API lerini iyi bilip onlara uygun temel kodları yazmak gerekecektir. API lerin kullandığı iletişim yöntemini ve structure ını iyi bilmek gerekecek ki bu herbir cloud çözümünde çok farklılaşabilmektedir. Ancak serverless framework ü bu kodları yazmaktan sizi kurtarıyor ve concept e hızlı adapte olmanıza yardımcı oluyor. Aynı zamanda Cloud çözümleri arasındaki geçişi de kolaylaştırabilir bu proje( ama belirli noktalarda tabiki.) Nasıl bir yapısı var peki bu framework ün. Sağ tarafta gördüğünüz serverless.yml dosyasında aslında bazı tanımları yapıp bütün deployment ı framework e bırakıyoruz. ( bu örnekte ne var anlat , dealer locator kodlarını aç) AWS için konuşursam eğer ki özellikle ondan bahsedeceğim, kullanmak istediğiniz dili de farklılaştırabilirsiniz. En çok kullanılan dil Javascript ve python ama java c# da destekliyor.. Deployable bir folder oluşturmak gerekiyor. Standalone bir project gibi düşünelim bu folder ı. Framework deployment komutları ile serverless.yml file ı kullanarak proje dosyasını zipleyip yüklüyor ve ihtiyac duyulan servisleri kaldırıyor. Bunun için uygun AWS profilini de tanımlamak gerekli Serverless user ı açmak gerekiyor IAM üzerinden .Belli haklara sahip olan bir user kullanarak bu işi yapıyor framework. Oluşturduğumuz functiondan ve onun haklarından bağımsız düşünmek gerek. Birisi deployment hakları diğeri ise genelde okuma yazma üzerine haklar. Bazı detaylara demo da gireceğim için çok üzerinde durmayacağım.
  5. Şimdi en basit hali ile lambda function ların kullanımında yukarıdaki eşitliği aklımızda canlandırabiliriz. Frontend den bir api gateway call yapılarak arkadaki lambda function ları çağırılabilir ve backend application ları implemente edebiliriz. Sol taraftaki frontend applicationlarının maintenance ı bize ait ancak backend de AWS bize yardımcı olacak. İlk slaytlardaki layerları hatırlayalım. Ürününü, web sayfasını vs. tamamen bu sistem üzerine kuran şirketler var. Örnek ? Ancak Lambda functionların triggerlarını elbette sadece API gateway olarak düşünmemek lazım.
  6. Burada lambda functionları tetikleyebilecek servislerin listesi var. Buradaki servisler den sadece 1 tanesi API Gateway. Daha farklı servisler de var. Örneğin s3 ye yüklenen bir image olduğunda function tetiklenip image ı resize edip farklı bir yere taşıyabilir ve bunu asenkron ve yüksek bir concurrency başarısı ile yapıyor. EC2 ile bu işlemleri yapıyor olsak bu concurrency I biz yönetmek zorunda kalıyoruz. Load yönetimini biz yapmak zorunda kalıyoruz ve bu maliyetleri yükseltiyor. Pricing karşılaştırmalarını yapan bir çok blog var ama genel olarak lambda daha ucuz. Tabiki function ın execution süresine göre bu ücretler değişiyor. SQS desteklenmiyor henüz. Orada queue lar arasındaki concurrent execution problemleri olduğu için henüz destek veremediklerini biliyorum. Ama cloud watch üzerinde alarmlar kurarak custom şekilde sqs kullanmaya çalışan 1-2 plugin var ama tam olarak SQS altyapısına destek vermiyor. SQS yerine biraz daha gelişmiş bir alt yapı kinesis var. SQS de hatalı mesajları farklı bir queue ya aktarabilmek gibi otomatik feature lar var iken kinesis de hatalı mesaj saklanıyor. Aynı stream içinde index I kaydırarak hatalı mesajları bulup yeniden execution yapılabiliyor. Kinesis oldukça fazla miktarda event i üzerinde tutabiliyor 24 saat gibi bir süre. O yüzden SQS yerine kinesis tercihi yapmak gerekebiliyor.
  7. Aslında yapmaya çalıştığınız servisin ya da application ın ihtiyacına göre lambda function bir tercih sebebi olabiliyor ama bazen de tam olarak istediğiniz şeyleri lambda ile yapamıyorsunuz Maksimum execution time sınırlaması birazcık elinizi kolunuzu bağlayabiliyor. 5 dk içerisinde sonuçlanmayan bir lambda function execution ı var ise bu noktada yapılacak iş kesintiye uğruyor. Çözüm olarak yapılacak işi küçük parçalara bölerek maksimum concurrent limitleri içerisinde o işleri parça parça hızlandırarak yapmak. Burada da az önce konuştuğumuz SNS,SQS veya kinesis gibi servisler devreye giriyor. Deployable tek bir folder oluşturmak bazen problem olabiliyor.Node ve python da bu oldukça kolay ancak diğer dillerde biraz daha zor. Ayrıca Folder ın size ı noktasında da limitlisiniz. Source code size ınız belli bir limit içerisinde büyütülebiliyor. Bu limitationların tüm detaylarını kendi dökümantasyonunda bulunmaktadır.