Twelve Factor applications were popularised by developers building large scale software-as-a-service applications on platforms such as Heroku. In recent years, the 12 Factor Manifesto has been considered a source of best practices for both developers and operations engineers regardless of the application’s use-case and at nearly any scale.
In this Dev Lounge session we will take a look at:
How many of the 12 Factor guidelines align directly with best practices for serverless applications
How to address those 12 Factor guidelines that don’t directly align or are interpreted very differently
Implementation examples using AWS Lambda, Amazon API Gateway, and the AWS Code services as well as the Serverless Application Model (SAM) and associated tooling
유용하(indy.jones) / kakao corp.(톡메시징파트)
---
JVM 기반 언어의 코틀린은 자바의 생태계와 완전히 호환되면서도 간결하고 안전한 코드를 위한 문법을 가진 언어다. 이런 장점으로 최근 안드로이드를 중심으로 점차 자바를 대체해 가고 있지만, 아직 안정성과 성능에 보수적인 서버 분야에서 자바의 지위는 견고해 보인다. 하지만 기존의 자바 기반 프레임웍과도 완벽히 호환되는 코틀린은 서버사이드에서도 도입하지 않을 이유가 없으며 성공적인 도입 사례가 늘어날수록 그 추세는 가속화될 것이다. 현재 카카오톡의 일부 서버들도 코틀린으로 개발되어 대량의 요청을 안정적으로 서비스하고 있고 그 영역은 점점 늘어나고 있다. 이 세션에서는 다양한 서버 분야의 코틀린 도입에 도움이 될 만한 카카오톡 서버의 코틀린 적용 경험을 공유한다.
롯데이커머스의 마이크로 서비스 아키텍처 진화와 비용 관점의 운영 노하우-나현길, 롯데이커머스 클라우드플랫폼 팀장::AWS 마이그레이션 A ...Amazon Web Services Korea
2015 년부터 진행한 실험적 퍼블릭클라우드 운영에 대한 최근 결과를 공유하며 그간 경험한 MSA Architecture 환경, Cost optimization, Operation 관련 내용을 공유합니다. 특히 대규모 운영 환경에서 경험한 다양한 관점의 경험과 비용절감에 대해 인사이트를 제공 예정입니다.
The document provides tips and best practices for configuring multiple farms in AEM Dispatcher. Key points include:
- Splitting the Dispatcher configuration into multiple farms based on different caching needs, such as separate farms for DAM assets and pages.
- Configuring different caching parameters and cache folders for each farm to optimize caching behavior.
- Handling cache invalidation requests and vanity URLs across multiple farms.
- Different approaches for flushing caches from Author and multiple Publishers to Dispatchers, and avoiding race conditions.
- Bypassing the Dispatcher cache for select clients by rewriting URLs to include parameters checked by the Dispatcher configuration.
La informática sin servidor le permite crear y ejecutar aplicaciones y servicios sin preocuparse de los servidores. Las aplicaciones sin servidor no requieren que aprovisione, escale ni administre ningún servidor. Puede crearlas para prácticamente cualquier tipo de aplicación o servicio backend. Además, usted administra todo lo necesario para ejecutar y escalar la aplicación con alta disponibilidad.
https://aws.amazon.com/es/serverless
The document discusses the JavaScript ecosystem, including its use for front-end development, command line applications, desktop applications, mobile applications, and back-end development. It outlines popular frameworks for each type of application like React, Angular, and Node.js. The document also recommends resources for learning JavaScript like Codecademy, NodeSchool, and You Don't Know JS.
유용하(indy.jones) / kakao corp.(톡메시징파트)
---
JVM 기반 언어의 코틀린은 자바의 생태계와 완전히 호환되면서도 간결하고 안전한 코드를 위한 문법을 가진 언어다. 이런 장점으로 최근 안드로이드를 중심으로 점차 자바를 대체해 가고 있지만, 아직 안정성과 성능에 보수적인 서버 분야에서 자바의 지위는 견고해 보인다. 하지만 기존의 자바 기반 프레임웍과도 완벽히 호환되는 코틀린은 서버사이드에서도 도입하지 않을 이유가 없으며 성공적인 도입 사례가 늘어날수록 그 추세는 가속화될 것이다. 현재 카카오톡의 일부 서버들도 코틀린으로 개발되어 대량의 요청을 안정적으로 서비스하고 있고 그 영역은 점점 늘어나고 있다. 이 세션에서는 다양한 서버 분야의 코틀린 도입에 도움이 될 만한 카카오톡 서버의 코틀린 적용 경험을 공유한다.
롯데이커머스의 마이크로 서비스 아키텍처 진화와 비용 관점의 운영 노하우-나현길, 롯데이커머스 클라우드플랫폼 팀장::AWS 마이그레이션 A ...Amazon Web Services Korea
2015 년부터 진행한 실험적 퍼블릭클라우드 운영에 대한 최근 결과를 공유하며 그간 경험한 MSA Architecture 환경, Cost optimization, Operation 관련 내용을 공유합니다. 특히 대규모 운영 환경에서 경험한 다양한 관점의 경험과 비용절감에 대해 인사이트를 제공 예정입니다.
The document provides tips and best practices for configuring multiple farms in AEM Dispatcher. Key points include:
- Splitting the Dispatcher configuration into multiple farms based on different caching needs, such as separate farms for DAM assets and pages.
- Configuring different caching parameters and cache folders for each farm to optimize caching behavior.
- Handling cache invalidation requests and vanity URLs across multiple farms.
- Different approaches for flushing caches from Author and multiple Publishers to Dispatchers, and avoiding race conditions.
- Bypassing the Dispatcher cache for select clients by rewriting URLs to include parameters checked by the Dispatcher configuration.
La informática sin servidor le permite crear y ejecutar aplicaciones y servicios sin preocuparse de los servidores. Las aplicaciones sin servidor no requieren que aprovisione, escale ni administre ningún servidor. Puede crearlas para prácticamente cualquier tipo de aplicación o servicio backend. Además, usted administra todo lo necesario para ejecutar y escalar la aplicación con alta disponibilidad.
https://aws.amazon.com/es/serverless
The document discusses the JavaScript ecosystem, including its use for front-end development, command line applications, desktop applications, mobile applications, and back-end development. It outlines popular frameworks for each type of application like React, Angular, and Node.js. The document also recommends resources for learning JavaScript like Codecademy, NodeSchool, and You Don't Know JS.
마이크로서비스 스타일로 만들어진 시스템을 모노리틱 스타일로 이관한 사례와 함께 스프링을 이용해 모듈형 모노리스(modular monoliths)를 만든 경험을 바탕으로 모노리틱/마이크로서비스 보다 본질적인 문제를 제기하고, 문제 해결을 위한 생각을 공유합니다.
https://github.com/arawn/building-modular-monoliths-using-spring
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SAAmazon Web Services Korea
발표자료 다시보기: https://youtu.be/A77sIwSPCsE
AWS 에서는 클라우드 환경에서의 권한 관리를 위하여 IAM( Identity & Access Management ) 서비스를 제공하고 있습니다. 이 웨비나는AWS 의 다양한 자원들에 대한 이용 권한을 효율적으로 제어하고 관리하기 위하여 사용될 수 있는 IAM 의 다양한 옵션들을 살펴보고 IAM 의 권한이 할당되는 원리들을 설명합니다.
Maven is a build tool and project management tool that can be used for the OHIM project. It provides features like project portability, simple dependency management, and extensibility through plugins. Maven uses a project object model (POM) to manage a project's build configuration and dependencies. It defines a standard directory structure for projects and supports features like profiles, dependencies, plugins and a build lifecycle.
AWS CodeDeploy is a fully managed deployment service that automates software deployments to compute services such as Amazon EC2, AWS Lambda, and your on-premises servers.
AWS CodeDeploy makes it easier for you to rapidly release new features, helps you avoid downtime during application deployment, and handles the complexity of updating your applications.
This document discusses AWS Step Functions and how it can be used to orchestrate serverless applications and functions. It provides examples of how Step Functions allows developers to sequence functions, select functions based on data, retry functions, implement try/catch/finally blocks, run functions in parallel, and coordinate long-running code. It also discusses how Step Functions is scalable, maintains state, handles errors/timeouts, is easy to build and operate, and provides auditable workflows. The document contains examples of JSON state machine definitions and demonstrates how Step Functions integrates with other AWS services.
Speaker: Alex Komyagin
MongoDB replica sets allow you to make the database highly available so that you can keep your applications running even when some of the database nodes are down. In a distributed system, local durability of writes with journaling is no longer enough to guarantee system-wide durability, as the node might go down just before any other node replicates new write operations from it. As such, we need a new concept of cluster-wide durability.
How do you make sure that your write operations are durable within a replica set? How do you make sure that your read operations do not see those writes that are not yet durable? This talk will cover the mechanics of ensuring durability of writes via write concern and how to prevent reading of stale data in MongoDB using read concern. We will discuss the decision flow for selecting an appropriate level of write concern, as well as associated tradeoffs and several practical use cases and examples."
This document provides an overview of the architectures and internals of Amazon DocumentDB and MongoDB. It discusses how DocumentDB separates computing and storage layers for improved scalability compared to MongoDB, which couples these layers. It also explains key differences in how each handles data reads/writes, replication, sharding, and other functions. The goal is to help users understand the pros and cons of each for their use cases and needs around performance, scalability and management.
AWS for Games - 게임만을 위한 AWS 서비스 길라잡이 (레벨 200) - 진교선, 솔루션즈 아키텍트, AWS ::: Game...Amazon Web Services Korea
AWS Gamekit은 인증, 상태저장과 같은 API 서비스를 손쉽게 구축할 수 있는 서비스입니다. AWS GameSparks는 클라이언트에 손쉽게 서버 로직을 추가하고 게임에 필수적인 컴포넌트들을 바로 사용할 수 있게 제공하는 서비스입니다. AWS Gamelift는 세션형 게임에 필요한 데디케이티드 서버를 관리해주는 강력한 서비스입니다. 본 서비스들의 소개 및 최신 업데이트를 전달해드립니다.
※다운로드하시면 더 선명한 자료를 보실 수 있습니다.
PAYCO 쇼핑의 아키텍처를 MSA로 변경하면서 겪은 삽질을 공유합니다.
레거시 서비스에서 서비스를 분리해내는 방법과 순서, 이후 고려해야 할 사항을 공유하고자 합니다.
목차
1. PAYCO 쇼핑?
2. 프로젝트 진행 과정
3. 아키텍처 공유
대상
- MSA, Spring cloud, Docker, Ansible 등을 실무에 적용하는 방법에 관심이 있는 분
- Spring Cloud를 써서 MSA로 개발하고 싶은데 어디서부터 손대야 할지 모르는 분
■관련 동영상: https://youtu.be/l195D5WT_tE
Palestra explicando o porque o time de Apps da globo.com adotou o React Native como sua solução.
Eu também mostro exemplos de códigos em React Native e explico como a sua arquitetura funciona.
This document discusses Sling Models, which provide a simplified way to adapt Sling resources into domain objects in AEM. Some key points:
- Sling Models allow resources to be adapted to POJOs with minimal code using annotations like @Model and @Inject. This is cleaner than previous "adapter factory" approaches.
- Common use cases like injecting resource properties, child resources, services and more are supported out of the box via standard injectors.
- Sling Models are pluggable, so custom injectors can be added to inject non-standard dependencies.
- They allow resources and requests to be adapted to either classes or interfaces, keeping domain objects simple POJOs.
A Java Microservices Spring Boot and Docker case study.Subramanyam Vemala
This document provides steps to create a Java microservices project using Spring Boot and deploy it on Docker. It involves creating a Spring Boot project, adding dependencies, generating a JAR file, creating a Dockerfile, building a Docker image, and running the Docker container. The key steps are:
1. Create a Spring Boot project and add dependencies
2. Generate a JAR file
3. Create a Dockerfile
4. Build a Docker image and run the Docker container
5. Verify the application runs correctly by checking the browser output
Difference BW Frontend and Backend DevelopmentFunctionUp
Both Frontend and backend development are important to learn, but do you know the actual difference? Here we showcase the main difference between frontend and backend development.
The frontend is the part the user interacts with through a graphical user interface (GUI) however the backend part of the website remains inaccessible to the user.
The visual aspects of the website are the front end and the way the website functions is determined by the backend.
The front end uses languages like HTML, CSS, and JavaScript while the backend uses backend including Express, Ruby, Laravel, etc.
Clearly, the frontend and backend development are quite different from each other both in their functions, frameworks, and programming language.
We are a team of IIT / ISB alumni who are passionate about solving the key problem of starting a career in tech. A lot of smart and hardworking graduates find it difficult to crack high paying tech jobs either because of their background and their college not being able to help them get interviews. Hence, we started this pay after placement boot camp that hand holds people from skilling till employment.
DynamoDB is a NoSQL database service built for fast, scalable, consistent performance. This presentation introduces DynamoDB and discusses how to get started, provision throughput, design for the DynamoDB data model, query and scan tables and scale reads and writes without downtime.
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...Amazon Web Services Korea
발표영상 다시보기: https://youtu.be/il8wpd7gxe8
CI/CD 기술을 통해 팀은 민첩성을 높이고 고품질 제품을 신속하게 출시 할 수 있습니다. 이 강의에서는 컨테이너화 된 응용 프로그램을 관리 할 수 있도록 CI/CD 워크 플로우 작성을위한 모범 사례를 안내합니다. AWS Cloud Development Kit를 사용하여 코드 애플리케이션 모델로 인프라를 다루고 AWS CodePipeline 및 AWS CodeBuild를 사용하여 CI/CD 릴리스 파이프 라인을 설정하는 방법을 보여줍니다. 마지막으로 AWS CodeDeploy를 사용한 안전한 배포 자동화에 대해 설명합니다.
CJ프레시웨이 All-in 클라우드 전환 사례를 통해서 알아보는 Modernization성공 사례-오동규, 메가존 인프라 모더나이제이션 그...Amazon Web Services Korea
CJ프레시웨이는 경영환경과 업무체제의 변화에 발 빠르게 대응하고 비용 절감 효과를 극대화하기 위해 Infra, Application, DataBase 의 Modernization 을 수행하였습니다. 실제 프로젝트 전환 담당자를 통해 ROI 극대화 및 IT 환경 Modernization 에 대한 사례를 자세히 알아보도록 하겠습니다.
클라우드에서 보안은 매우 중요한 요소로서 클라우드 내에서 실행중인 애플리케이션에 대한 보안 인증 정책과 접근 제어 및 변경 사항 추적 및 알림 등의 기능이 필수적입니다. 본 온라인 세미나에서는 AWS 클라우드의 보안에 대한 기초 지식과 아울러 서비스 규모의 확장에 따른 AWS 아키텍처 변화에 맞는 보안 서비스 활용 방법과 모범 사례 등을 소개합니다.
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019AWS Summits
The document discusses how the principles of the Twelve-Factor App methodology apply to serverless applications. It reviews each of the twelve factors and how they relate to concepts like AWS Lambda, API Gateway, code packaging and deployment, logging, and the Serverless Application Model. While many factors align well with serverless apps or serverless services, some require different interpretations. The takeaway is that the methodology can help design modern apps and serverless focuses on core business needs.
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019Amazon Web Services
The Twelve-Factor App Methodology introduces best practices for building modern, cloud-native applications. In this session you'll learn how to directly apply the Twelve-Factor methodology to modern application development with Lambda and Amazon API Gateway. As you'll see, many of these factors are not only directly applicable to serverless applications and can be applied to various architectures and solutions.
마이크로서비스 스타일로 만들어진 시스템을 모노리틱 스타일로 이관한 사례와 함께 스프링을 이용해 모듈형 모노리스(modular monoliths)를 만든 경험을 바탕으로 모노리틱/마이크로서비스 보다 본질적인 문제를 제기하고, 문제 해결을 위한 생각을 공유합니다.
https://github.com/arawn/building-modular-monoliths-using-spring
[AWS Builders] AWS IAM 을 통한 클라우드에서의 권한 관리 - 신은수, AWS Security Specialist SAAmazon Web Services Korea
발표자료 다시보기: https://youtu.be/A77sIwSPCsE
AWS 에서는 클라우드 환경에서의 권한 관리를 위하여 IAM( Identity & Access Management ) 서비스를 제공하고 있습니다. 이 웨비나는AWS 의 다양한 자원들에 대한 이용 권한을 효율적으로 제어하고 관리하기 위하여 사용될 수 있는 IAM 의 다양한 옵션들을 살펴보고 IAM 의 권한이 할당되는 원리들을 설명합니다.
Maven is a build tool and project management tool that can be used for the OHIM project. It provides features like project portability, simple dependency management, and extensibility through plugins. Maven uses a project object model (POM) to manage a project's build configuration and dependencies. It defines a standard directory structure for projects and supports features like profiles, dependencies, plugins and a build lifecycle.
AWS CodeDeploy is a fully managed deployment service that automates software deployments to compute services such as Amazon EC2, AWS Lambda, and your on-premises servers.
AWS CodeDeploy makes it easier for you to rapidly release new features, helps you avoid downtime during application deployment, and handles the complexity of updating your applications.
This document discusses AWS Step Functions and how it can be used to orchestrate serverless applications and functions. It provides examples of how Step Functions allows developers to sequence functions, select functions based on data, retry functions, implement try/catch/finally blocks, run functions in parallel, and coordinate long-running code. It also discusses how Step Functions is scalable, maintains state, handles errors/timeouts, is easy to build and operate, and provides auditable workflows. The document contains examples of JSON state machine definitions and demonstrates how Step Functions integrates with other AWS services.
Speaker: Alex Komyagin
MongoDB replica sets allow you to make the database highly available so that you can keep your applications running even when some of the database nodes are down. In a distributed system, local durability of writes with journaling is no longer enough to guarantee system-wide durability, as the node might go down just before any other node replicates new write operations from it. As such, we need a new concept of cluster-wide durability.
How do you make sure that your write operations are durable within a replica set? How do you make sure that your read operations do not see those writes that are not yet durable? This talk will cover the mechanics of ensuring durability of writes via write concern and how to prevent reading of stale data in MongoDB using read concern. We will discuss the decision flow for selecting an appropriate level of write concern, as well as associated tradeoffs and several practical use cases and examples."
This document provides an overview of the architectures and internals of Amazon DocumentDB and MongoDB. It discusses how DocumentDB separates computing and storage layers for improved scalability compared to MongoDB, which couples these layers. It also explains key differences in how each handles data reads/writes, replication, sharding, and other functions. The goal is to help users understand the pros and cons of each for their use cases and needs around performance, scalability and management.
AWS for Games - 게임만을 위한 AWS 서비스 길라잡이 (레벨 200) - 진교선, 솔루션즈 아키텍트, AWS ::: Game...Amazon Web Services Korea
AWS Gamekit은 인증, 상태저장과 같은 API 서비스를 손쉽게 구축할 수 있는 서비스입니다. AWS GameSparks는 클라이언트에 손쉽게 서버 로직을 추가하고 게임에 필수적인 컴포넌트들을 바로 사용할 수 있게 제공하는 서비스입니다. AWS Gamelift는 세션형 게임에 필요한 데디케이티드 서버를 관리해주는 강력한 서비스입니다. 본 서비스들의 소개 및 최신 업데이트를 전달해드립니다.
※다운로드하시면 더 선명한 자료를 보실 수 있습니다.
PAYCO 쇼핑의 아키텍처를 MSA로 변경하면서 겪은 삽질을 공유합니다.
레거시 서비스에서 서비스를 분리해내는 방법과 순서, 이후 고려해야 할 사항을 공유하고자 합니다.
목차
1. PAYCO 쇼핑?
2. 프로젝트 진행 과정
3. 아키텍처 공유
대상
- MSA, Spring cloud, Docker, Ansible 등을 실무에 적용하는 방법에 관심이 있는 분
- Spring Cloud를 써서 MSA로 개발하고 싶은데 어디서부터 손대야 할지 모르는 분
■관련 동영상: https://youtu.be/l195D5WT_tE
Palestra explicando o porque o time de Apps da globo.com adotou o React Native como sua solução.
Eu também mostro exemplos de códigos em React Native e explico como a sua arquitetura funciona.
This document discusses Sling Models, which provide a simplified way to adapt Sling resources into domain objects in AEM. Some key points:
- Sling Models allow resources to be adapted to POJOs with minimal code using annotations like @Model and @Inject. This is cleaner than previous "adapter factory" approaches.
- Common use cases like injecting resource properties, child resources, services and more are supported out of the box via standard injectors.
- Sling Models are pluggable, so custom injectors can be added to inject non-standard dependencies.
- They allow resources and requests to be adapted to either classes or interfaces, keeping domain objects simple POJOs.
A Java Microservices Spring Boot and Docker case study.Subramanyam Vemala
This document provides steps to create a Java microservices project using Spring Boot and deploy it on Docker. It involves creating a Spring Boot project, adding dependencies, generating a JAR file, creating a Dockerfile, building a Docker image, and running the Docker container. The key steps are:
1. Create a Spring Boot project and add dependencies
2. Generate a JAR file
3. Create a Dockerfile
4. Build a Docker image and run the Docker container
5. Verify the application runs correctly by checking the browser output
Difference BW Frontend and Backend DevelopmentFunctionUp
Both Frontend and backend development are important to learn, but do you know the actual difference? Here we showcase the main difference between frontend and backend development.
The frontend is the part the user interacts with through a graphical user interface (GUI) however the backend part of the website remains inaccessible to the user.
The visual aspects of the website are the front end and the way the website functions is determined by the backend.
The front end uses languages like HTML, CSS, and JavaScript while the backend uses backend including Express, Ruby, Laravel, etc.
Clearly, the frontend and backend development are quite different from each other both in their functions, frameworks, and programming language.
We are a team of IIT / ISB alumni who are passionate about solving the key problem of starting a career in tech. A lot of smart and hardworking graduates find it difficult to crack high paying tech jobs either because of their background and their college not being able to help them get interviews. Hence, we started this pay after placement boot camp that hand holds people from skilling till employment.
DynamoDB is a NoSQL database service built for fast, scalable, consistent performance. This presentation introduces DynamoDB and discusses how to get started, provision throughput, design for the DynamoDB data model, query and scan tables and scale reads and writes without downtime.
AWS Fargate와 Amazon ECS를 사용한 CI/CD 베스트 프랙티스 - 유재석, AWS 솔루션즈 아키텍트 :: AWS Build...Amazon Web Services Korea
발표영상 다시보기: https://youtu.be/il8wpd7gxe8
CI/CD 기술을 통해 팀은 민첩성을 높이고 고품질 제품을 신속하게 출시 할 수 있습니다. 이 강의에서는 컨테이너화 된 응용 프로그램을 관리 할 수 있도록 CI/CD 워크 플로우 작성을위한 모범 사례를 안내합니다. AWS Cloud Development Kit를 사용하여 코드 애플리케이션 모델로 인프라를 다루고 AWS CodePipeline 및 AWS CodeBuild를 사용하여 CI/CD 릴리스 파이프 라인을 설정하는 방법을 보여줍니다. 마지막으로 AWS CodeDeploy를 사용한 안전한 배포 자동화에 대해 설명합니다.
CJ프레시웨이 All-in 클라우드 전환 사례를 통해서 알아보는 Modernization성공 사례-오동규, 메가존 인프라 모더나이제이션 그...Amazon Web Services Korea
CJ프레시웨이는 경영환경과 업무체제의 변화에 발 빠르게 대응하고 비용 절감 효과를 극대화하기 위해 Infra, Application, DataBase 의 Modernization 을 수행하였습니다. 실제 프로젝트 전환 담당자를 통해 ROI 극대화 및 IT 환경 Modernization 에 대한 사례를 자세히 알아보도록 하겠습니다.
클라우드에서 보안은 매우 중요한 요소로서 클라우드 내에서 실행중인 애플리케이션에 대한 보안 인증 정책과 접근 제어 및 변경 사항 추적 및 알림 등의 기능이 필수적입니다. 본 온라인 세미나에서는 AWS 클라우드의 보안에 대한 기초 지식과 아울러 서비스 규모의 확장에 따른 AWS 아키텍처 변화에 맞는 보안 서비스 활용 방법과 모범 사례 등을 소개합니다.
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019AWS Summits
The document discusses how the principles of the Twelve-Factor App methodology apply to serverless applications. It reviews each of the twelve factors and how they relate to concepts like AWS Lambda, API Gateway, code packaging and deployment, logging, and the Serverless Application Model. While many factors align well with serverless apps or serverless services, some require different interpretations. The takeaway is that the methodology can help design modern apps and serverless focuses on core business needs.
Twelve-Factor App Methodology and Modern Applications | AWS Summit Tel Aviv 2019Amazon Web Services
The Twelve-Factor App Methodology introduces best practices for building modern, cloud-native applications. In this session you'll learn how to directly apply the Twelve-Factor methodology to modern application development with Lambda and Amazon API Gateway. As you'll see, many of these factors are not only directly applicable to serverless applications and can be applied to various architectures and solutions.
12 Factor Serverless Applications - Mike Morain, AWS - Cloud Native Day Tel A...Cloud Native Day Tel Aviv
The “Twelve-Factor” application model has come to represent twelve best practices for building modern, cloud-native applications. With guidance on things like configuration, deployment, runtime, and multiple service communication, the Twelve-Factor model prescribes best practices that apply to everything from web applications to APIs to data processing applications. Although Serverless computing and AWS Lambda have changed how application development is done, the “Twelve-Factor” best practices remain relevant and applicable in a Serverless world. In this talk, we’ll apply the “Twelve-Factor” model to Serverless application development with AWS Lambda and Amazon API Gateway and show you how these services enable you to build scalable, low cost, and low administration applications.
The “Twelve-Factor” application model has come to represent twelve best practices for building modern, cloud-native applications. With guidance on things like configuration, deployment, runtime, and multiple service communication, the Twelve-Factor model prescribes best practices that apply to everything from web applications to APIs to data processing applications. Although serverless computing and AWS Lambda have changed how application development is done, the “Twelve-Factor” best practices remain relevant and applicable in a serverless world. In this talk, we’ll apply the “Twelve-Factor” model to serverless application development with AWS Lambda and Amazon API Gateway and show you how these services enable you to build scalable, low cost, and low administration applications.
The “Twelve-Factor” application model has come to represent twelve best practices for building modern, cloud-native applications. With guidance on things like configuration, deployment, runtime, and multiple service communication, the Twelve-Factor model prescribes best practices that apply to everything from web applications to APIs to data processing applications.
Although serverless computing and AWS Lambda have changed how application development is done, the “Twelve-Factor” best practices remain relevant and applicable in a serverless world. In this talk, Chris will share with you how to apply the “Twelve-Factor” model to serverless application development with AWS Lambda and Amazon API Gateway and show you how these services enable you to build scalable, low cost, and low administration applications.
Twelve-factor serverless applications - MAD302 - Santa Clara AWS SummitAmazon Web Services
The twelve-factor application model represents 12 best practices for building modern, cloud-native applications. With guidance on factors like configuration, deployment, runtime, and multiple-service communication, the twelve-factor model prescribes best practices that apply to everything from web applications to APIs to data processing applications. Although serverless computing and AWS Lambda have changed application development, the twelve-factor best practices remain relevant and applicable in a serverless world. In this talk, we apply the twelve-factor model to serverless application development with AWS Lambda and Amazon API Gateway, and we show you how these services enable you to build scalable, well-built, low-administration applications.
Twelve-Factor serverless applications - MAD307 - New York AWS SummitAmazon Web Services
The document discusses how the principles of the Twelve-Factor App methodology apply to serverless applications. It reviews each of the twelve factors and explains how they are the same, different, or improved upon in serverless applications that utilize AWS Lambda and other serverless computing services. Key points include that serverless applications are inherently stateless, scaling is automatic rather than through processes, and deployment parity across environments is easier to achieve with tools like AWS SAM.
Twelve-Factor serverless applications - MAD311 - Chicago AWS SummitAmazon Web Services
The Twelve-Factor application model represents 12 best practices for building modern, cloud-native applications. With guidance on factors like configuration, deployment, runtime, and multiple-service communication, the Twelve-Factor model prescribes practices that apply to everything from web applications to APIs to data-processing applications. Although serverless computing and AWS Lambda have changed application development, the Twelve-Factor methodology remains relevant and applicable in a serverless world. In this talk, we apply the Twelve-Factor model to serverless application development with Lambda and Amazon API Gateway, and we demonstrate how these services enable you to build scalable, well-built, low-administration applications.
The “Twelve-Factor” application model has come to represent twelve best practices for building modern, cloud-native applications. With guidance on things like configuration, deployment, run time, and multiple service communication, the Twelve-Factor model prescribes best practices that apply to everything from web applications to APIs to data processing applications. Although serverless computing and AWS Lambda have changed how application development is done, the “Twelve-Factor” best practices remain relevant and applicable in a serverless world. In this talk, we’ll apply the “Twelve-Factor” model to serverless application development with AWS Lambda and Amazon API Gateway and show you how these services enable you to build scalable, well built, and low administration applications.
The twelve-factor application model represents 12 best practices for building modern, cloud-native applications. With guidance on factors like configuration, deployment, runtime, and multiple-service communication, the twelve-factor model prescribes best practices that apply to everything from web applications to APIs to data processing applications. Although serverless computing and AWS Lambda have changed application development, the twelve-factor best practices remain relevant and applicable in a serverless world. In this talk, we apply the twelve-factor model to serverless application development with AWS Lambda and Amazon API Gateway, and we show you how these services enable you to build scalable, well-built, low-administration applications.
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Amazon Web Services
Building and deploying serverless applications introduces new challenges for developers whose development workflows are optimized for traditional VM-based applications. In this session, we discuss a method for automating the deployment of serverless applications running on AWS Lambda. We first cover how you can model and express serverless applications using the open-source AWS Serverless Application Model (AWS SAM). Then, we discuss how you can use CI/CD tooling from AWS CodePipeline and AWS CodeBuild, and how to bootstrap the entire toolset using AWS CodeStar. We will also cover best practices to embed in your deployment workflow specific to serverless applications.
You will also hear from iRobot about its approach to serverless deployment. iRobot will share how it achieves coordinated deployments of microservices, maintains long-lived and/or separately-managed resources (like databases), and red/black deployments.
How we got to where we are?
What's Serverless
Serverless Principles
Pros and cons
Serverless architectures
Lambda Anatomy
Demos
AWS SAM
Demo
By : Ahmed Samir
Cloud-native Data: Every Microservice Needs a Cachecornelia davis
Presented at the Pivotal Toronto Users Group, March 2017
Cloud-native applications form the foundation for modern, cloud-scale digital solutions, and the patterns and practices for cloud-native at the app tier are becoming widely understood – statelessness, service discovery, circuit breakers and more. But little has changed in the data tier. Our modern apps are often connected to monolithic shared databases that have monolithic practices wrapped around them. As a result, the autonomy promised by moving to a microservices application architecture is compromised.
With lessons from the application tier to guide us, the industry is now figuring out what the cloud-native architectural patterns are at the data tier. Join us to explore some of these with Cornelia Davis, a five year Cloud Foundry veteran who is now focused on cloud-native data. As it happens, every microservice needs a cache and this evening will drill deep on that topic. She’ll cover a variety of caching patterns and use cases, and demonstrate how their use helps preserve the autonomy that is driving agile software delivery practices today.
Serverless computing is an emerging cloud computing model where the cloud provider manages resources and scales applications automatically in response to demand. With serverless, developers focus on writing code for independent, stateless functions rather than worrying about servers. Serverless platforms support automatic scaling, pay-per-use pricing, and event-driven computing using functions as the basic unit. While serverless offers benefits like reduced costs and management overhead, it also presents drawbacks like vendor lock-in and lack of debugging access.
What serverless means for enterprise appsSumit Sarkar
There’s a new approach to app development ripe with misconceptions and more buzzwords to translate to business sponsors. Industry analysts call it serverless, but it’s also known as backend as a service (BaaS), function as a service (FaaS), cloud-native architectures, or microservices—just to name a few. Whatever you call it, this approach is giving developers new freedom to focus on frontend functionality and deliver better, more innovative user experiences and ultimately establish value faster. Let’s discuss the pros and cons of serverless in enterprise architectures.
Introduction to angular | Concepts and Environment setupAnsley Rodrigues
Presentation explaining the concepts and theory of Angular2 framework for front-end development of web applications(Compent, template, Dependency Injection, Services, Component interaction, Directives, Data Binding, etc).
A live demo example helps to understand the concepts better.
Build Modern Applications that Align with Twelve-Factor Methods (API303) - AW...Amazon Web Services
Twelve-Factor designs improve component reuse and resilience for developers building large-scale software-as-a-service (SaaS) applications. In recent years, the Twelve-Factor guidelines have become a source of best practices for both developers and operations engineers, regardless of the application’s use case and at nearly any scale. In this workshop, create a modern app to see how the Twelve-Factor Application guidelines align with serverless best practices. Learn how to address those Twelve-Factor guidelines that don’t directly align with serverless architectures or are interpreted differently, and practice by implementing examples using AWS Lambda, AWS Step Functions, Amazon API Gateway, and the AWS Code services. Bring a laptop (Windows/OSX/Linux all supported). Tablets are not appropriate. We also recommend installing the current version of Chrome or Firefox.
AWS Community Day - Amy Negrette - Gateways to GatewaysAWS Chicago
Amy Negrette - Gateways to Gateways: API Development with AWS
We will go over how to plan and migrate legacy APIs with API Gateway options in AWS such as EKS and Lambda. We will also compare a traditional web server API design with a serverless one.
AWS Community Day
aws community day | midwest 2019
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsVMware Tanzu
Digital transformation includes replatforming applications to streamline release cycles, improve availability, and manage apps and services at scale. But many enterprises are afraid to take the first step because they don’t know where to start. In this webinar, Rohit will provide a step-by-step guide that covers:
● How to find high-value modernization projects within your application portfolio
● Easy tools and techniques to minimally change applications in preparation for replatforming
● How to choose the platform with the right level of abstraction for your app
● Examples that show how Java EE Websphere applications can be deployed to Pivotal Cloud Foundry
Speaker: Rohit Kelapure, Pivotal Consulting Practice Lead
Real-world development Decomposing a serverless skills-based routing application on AWS
Presenter: Adam Larter, Principal Solutions Architect, Developer Specialist
Similar to AWS Dev Lounge: Applying the Twelve-Factor Application Manifesto to Developing Serverless Applications (20)
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
Il Forecasting è un processo importante per tantissime aziende e viene utilizzato in vari ambiti per cercare di prevedere in modo accurato la crescita e distribuzione di un prodotto, l’utilizzo delle risorse necessarie nelle linee produttive, presentazioni finanziarie e tanto altro. Amazon utilizza delle tecniche avanzate di forecasting, in parte questi servizi sono stati messi a disposizione di tutti i clienti AWS.
In questa sessione illustreremo come pre-processare i dati che contengono una componente temporale e successivamente utilizzare un algoritmo che a partire dal tipo di dato analizzato produce un forecasting accurato.
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
La varietà e la quantità di dati che si crea ogni giorno accelera sempre più velocemente e rappresenta una opportunità irripetibile per innovare e creare nuove startup.
Tuttavia gestire grandi quantità di dati può apparire complesso: creare cluster Big Data su larga scala sembra essere un investimento accessibile solo ad aziende consolidate. Ma l’elasticità del Cloud e, in particolare, i servizi Serverless ci permettono di rompere questi limiti.
Vediamo quindi come è possibile sviluppare applicazioni Big Data rapidamente, senza preoccuparci dell’infrastruttura, ma dedicando tutte le risorse allo sviluppo delle nostre le nostre idee per creare prodotti innovativi.
Ora puoi utilizzare Amazon Elastic Kubernetes Service (EKS) per eseguire pod Kubernetes su AWS Fargate, il motore di elaborazione serverless creato per container su AWS. Questo rende più semplice che mai costruire ed eseguire le tue applicazioni Kubernetes nel cloud AWS.In questa sessione presenteremo le caratteristiche principali del servizio e come distribuire la tua applicazione in pochi passaggi
Vent'anni fa Amazon ha attraversato una trasformazione radicale con l'obiettivo di aumentare il ritmo dell'innovazione. In questo periodo abbiamo imparato come cambiare il nostro approccio allo sviluppo delle applicazioni ci ha permesso di aumentare notevolmente l'agilità, la velocità di rilascio e, in definitiva, ci ha consentito di creare applicazioni più affidabili e scalabili. In questa sessione illustreremo come definiamo le applicazioni moderne e come la creazione di app moderne influisce non solo sull'architettura dell'applicazione, ma sulla struttura organizzativa, sulle pipeline di rilascio dello sviluppo e persino sul modello operativo. Descriveremo anche approcci comuni alla modernizzazione, compreso l'approccio utilizzato dalla stessa Amazon.com.
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
L’utilizzo dei container è in continua crescita.
Se correttamente disegnate, le applicazioni basate su Container sono molto spesso stateless e flessibili.
I servizi AWS ECS, EKS e Kubernetes su EC2 possono sfruttare le istanze Spot, portando ad un risparmio medio del 70% rispetto alle istanze On Demand. In questa sessione scopriremo insieme quali sono le caratteristiche delle istanze Spot e come possono essere utilizzate facilmente su AWS. Impareremo inoltre come Spreaker sfrutta le istanze spot per eseguire applicazioni di diverso tipo, in produzione, ad una frazione del costo on-demand!
In recent months, many customers have been asking us the question – how to monetise Open APIs, simplify Fintech integrations and accelerate adoption of various Open Banking business models. Therefore, AWS and FinConecta would like to invite you to Open Finance marketplace presentation on October 20th.
Event Agenda :
Open banking so far (short recap)
• PSD2, OB UK, OB Australia, OB LATAM, OB Israel
Intro to Open Finance marketplace
• Scope
• Features
• Tech overview and Demo
The role of the Cloud
The Future of APIs
• Complying with regulation
• Monetizing data / APIs
• Business models
• Time to market
One platform for all: a Strategic approach
Q&A
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Amazon Web Services
Per creare valore e costruire una propria offerta differenziante e riconoscibile, le startup di successo sanno come combinare tecnologie consolidate con componenti innovativi creati ad hoc.
AWS fornisce servizi pronti all'utilizzo e, allo stesso tempo, permette di personalizzare e creare gli elementi differenzianti della propria offerta.
Concentrandoci sulle tecnologie di Machine Learning, vedremo come selezionare i servizi di intelligenza artificiale offerti da AWS e, anche attraverso una demo, come costruire modelli di Machine Learning personalizzati utilizzando SageMaker Studio.
OpsWorks Configuration Management: automatizza la gestione e i deployment del...Amazon Web Services
Con l'approccio tradizionale al mondo IT per molti anni è stato difficile implementare tecniche di DevOps, che finora spesso hanno previsto attività manuali portando di tanto in tanto a dei downtime degli applicativi interrompendo l'operatività dell'utente. Con l'avvento del cloud, le tecniche di DevOps sono ormai a portata di tutti a basso costo per qualsiasi genere di workload, garantendo maggiore affidabilità del sistema e risultando in dei significativi miglioramenti della business continuity.
AWS mette a disposizione AWS OpsWork come strumento di Configuration Management che mira ad automatizzare e semplificare la gestione e i deployment delle istanze EC2 per mezzo di workload Chef e Puppet.
Scopri come sfruttare AWS OpsWork a garanzia e affidabilità del tuo applicativo installato su Instanze EC2.
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsAmazon Web Services
Vuoi conoscere le opzioni per eseguire Microsoft Active Directory su AWS? Quando si spostano carichi di lavoro Microsoft in AWS, è importante considerare come distribuire Microsoft Active Directory per supportare la gestione, l'autenticazione e l'autorizzazione dei criteri di gruppo. In questa sessione, discuteremo le opzioni per la distribuzione di Microsoft Active Directory su AWS, incluso AWS Directory Service per Microsoft Active Directory e la distribuzione di Active Directory su Windows su Amazon Elastic Compute Cloud (Amazon EC2). Trattiamo argomenti quali l'integrazione del tuo ambiente Microsoft Active Directory locale nel cloud e l'utilizzo di applicazioni SaaS, come Office 365, con AWS Single Sign-On.
Dal riconoscimento facciale al riconoscimento di frodi o difetti di fabbricazione, l'analisi di immagini e video che sfruttano tecniche di intelligenza artificiale, si stanno evolvendo e raffinando a ritmi elevati. In questo webinar esploreremo le possibilità messe a disposizione dai servizi AWS per applicare lo stato dell'arte delle tecniche di computer vision a scenari reali.
Amazon Web Services e VMware organizzano un evento virtuale gratuito il prossimo mercoledì 14 Ottobre dalle 12:00 alle 13:00 dedicato a VMware Cloud ™ on AWS, il servizio on demand che consente di eseguire applicazioni in ambienti cloud basati su VMware vSphere® e di accedere ad una vasta gamma di servizi AWS, sfruttando a pieno le potenzialità del cloud AWS e tutelando gli investimenti VMware esistenti.
Molte organizzazioni sfruttano i vantaggi del cloud migrando i propri carichi di lavoro Oracle e assicurandosi notevoli vantaggi in termini di agilità ed efficienza dei costi.
La migrazione di questi carichi di lavoro, può creare complessità durante la modernizzazione e il refactoring delle applicazioni e a questo si possono aggiungere rischi di prestazione che possono essere introdotti quando si spostano le applicazioni dai data center locali.
Crea la tua prima serverless ledger-based app con QLDB e NodeJSAmazon Web Services
Molte aziende oggi, costruiscono applicazioni con funzionalità di tipo ledger ad esempio per verificare lo storico di accrediti o addebiti nelle transazioni bancarie o ancora per tenere traccia del flusso supply chain dei propri prodotti.
Alla base di queste soluzioni ci sono i database ledger che permettono di avere un log delle transazioni trasparente, immutabile e crittograficamente verificabile, ma sono strumenti complessi e onerosi da gestire.
Amazon QLDB elimina la necessità di costruire sistemi personalizzati e complessi fornendo un database ledger serverless completamente gestito.
In questa sessione scopriremo come realizzare un'applicazione serverless completa che utilizzi le funzionalità di QLDB.
Con l’ascesa delle architetture di microservizi e delle ricche applicazioni mobili e Web, le API sono più importanti che mai per offrire agli utenti finali una user experience eccezionale. In questa sessione impareremo come affrontare le moderne sfide di progettazione delle API con GraphQL, un linguaggio di query API open source utilizzato da Facebook, Amazon e altro e come utilizzare AWS AppSync, un servizio GraphQL serverless gestito su AWS. Approfondiremo diversi scenari, comprendendo come AppSync può aiutare a risolvere questi casi d’uso creando API moderne con funzionalità di aggiornamento dati in tempo reale e offline.
Inoltre, impareremo come Sky Italia utilizza AWS AppSync per fornire aggiornamenti sportivi in tempo reale agli utenti del proprio portale web.
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareAmazon Web Services
Molte organizzazioni sfruttano i vantaggi del cloud migrando i propri carichi di lavoro Oracle e assicurandosi notevoli vantaggi in termini di agilità ed efficienza dei costi.
La migrazione di questi carichi di lavoro, può creare complessità durante la modernizzazione e il refactoring delle applicazioni e a questo si possono aggiungere rischi di prestazione che possono essere introdotti quando si spostano le applicazioni dai data center locali.
In queste slide, gli esperti AWS e VMware presentano semplici e pratici accorgimenti per facilitare e semplificare la migrazione dei carichi di lavoro Oracle accelerando la trasformazione verso il cloud, approfondiranno l’architettura e dimostreranno come sfruttare a pieno le potenzialità di VMware Cloud ™ on AWS.
1) The document discusses building a minimum viable product (MVP) using Amazon Web Services (AWS).
2) It provides an example of an MVP for an omni-channel messenger platform that was built from 2017 to connect ecommerce stores to customers via web chat, Facebook Messenger, WhatsApp, and other channels.
3) The founder discusses how they started with an MVP in 2017 with 200 ecommerce stores in Hong Kong and Taiwan, and have since expanded to over 5000 clients across Southeast Asia using AWS for scaling.
This document discusses pitch decks and fundraising materials. It explains that venture capitalists will typically spend only 3 minutes and 44 seconds reviewing a pitch deck. Therefore, the deck needs to tell a compelling story to grab their attention. It also provides tips on tailoring different types of decks for different purposes, such as creating a concise 1-2 page teaser, a presentation deck for pitching in-person, and a more detailed read-only or fundraising deck. The document stresses the importance of including key information like the problem, solution, product, traction, market size, plans, team, and ask.
This document discusses building serverless web applications using AWS services like API Gateway, Lambda, DynamoDB, S3 and Amplify. It provides an overview of each service and how they can work together to create a scalable, secure and cost-effective serverless application stack without having to manage servers or infrastructure. Key services covered include API Gateway for hosting APIs, Lambda for backend logic, DynamoDB for database needs, S3 for static content, and Amplify for frontend hosting and continuous deployment.
This document provides tips for fundraising from startup founders Roland Yau and Sze Lok Chan. It discusses generating competition to create urgency for investors, fundraising in parallel rather than sequentially, having a clear fundraising narrative focused on what you do and why it's compelling, and prioritizing relationships with people over firms. It also notes how the pandemic has changed fundraising, with examples of deals done virtually during this time. The tips emphasize being fully prepared before fundraising and cultivating connections with investors in advance.
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...Amazon Web Services
This document discusses Amazon's machine learning services for building conversational interfaces and extracting insights from unstructured text and audio. It describes Amazon Lex for creating chatbots, Amazon Comprehend for natural language processing tasks like entity extraction and sentiment analysis, and how they can be used together for applications like intelligent call centers and content analysis. Pre-trained APIs simplify adding machine learning to apps without requiring ML expertise.
Amazon Elastic Container Service (Amazon ECS) è un servizio di gestione dei container altamente scalabile, che semplifica la gestione dei contenitori Docker attraverso un layer di orchestrazione per il controllo del deployment e del relativo lifecycle. In questa sessione presenteremo le principali caratteristiche del servizio, le architetture di riferimento per i differenti carichi di lavoro e i semplici passi necessari per poter velocemente migrare uno o più dei tuo container.
AWS Dev Lounge: Applying the Twelve-Factor Application Manifesto to Developing Serverless Applications
1. Adam Larter
Principal Solutions Architect, Developer Specialist, AWS AU/NZ
2018
D
LOUNGE
EV
Applying the 12-Factor Application Manifesto
to Developing Serverless Applications
2018
alarter@amazon.com | www.linkedin.com/in/adamlarter
3. D
LOUNGE
EV
The “12 Factor” manifesto & serverless applications
• 12 Factor applications were popularized by developers building
large scale applications on platforms such as Heroku
• In recent years the 12 Factor guidelines have been considered best
practices for both developers and operations engineers regardless
of the application’s use-case and at nearly any scale
• Many of the 12 Factor guidelines align directly with best practices
for serverless applications and are improved upon given the
nature of AWS Lambda, Amazon API Gateway, and other AWS
services
• However, some of the 12 Factor guidelines don’t directly align
with serverless applications or are interpreted differently
5. D
LOUNGE
EV
The “12 Factor” App - Goals
• Minimise the effort of getting a new developer set up
• Minimise dependencies on the underlying platform
running the application
• Maximise the portability of the application between
different runtime environments
• Make deploying your application to modern cloud
platforms easy
• Focuses on environment parity between dev/prod
• Allows applications to embrace horizontal scaling
6. D
LOUNGE
EV
No servers to provision
or manage
Scales with usage
Never pay for idle Availability and fault
tolerance built in
Serverless means…
8. D
LOUNGE
EV
Common Lambda use cases
Web
Applications
• Static
websites
• Complex web
apps
• Packages for
Flask and
Express
Data
Processing
• Real time
• MapReduce
• Batch
Chatbots
• Powering
chatbot logic
Backends
• Apps &
services
• Mobile
• IoT
</></>
Amazon
Alexa
• Powering
voice-enabled
apps
• Alexa Skills
Kit
IT
Automation
• Policy engines
• Extending
AWS services
• Infrastructure
management
</></>
9. D
LOUNGE
EV
The 12 Factors
Let’s explore how the 12 Factors
apply to a serverless application:
1. Codebase
2. Dependencies
3. Config
4. Backing services
9. Disposability
10. Dev/prod parity
11. Logs
12. Admin processes
5. Build, release, run
6. Process
7. Port Binding
8. Concurrency
10. D
LOUNGE
EV
We want to extract vehicle number
plates from images of cars passing
through a toll gantry. The system should
charge drivers in real-time. If the driver
has insufficient funds or there is a
problem reading the number plate, the
system should cater for manual tasks
‘
Toll Road Gantry – Problem Statement
11. D
LOUNGE
EV
Toll Road Gantry - Overview
• Images captured at gantry using motion-detection camera
• Captured images uploaded to S3
• S3 trigger calls Lambda function to pass image to
Amazon Rekogniton to extract text from the image
• If the text ‘looks like’ a number plate,
we look-up the plate in our database and charge the driver
• If the driver has insufficient funds, we prompt for an account top-up
• If the number plate is not registered, we
request manual intervention from an administrator
• If we are not confident that we can ‘see’ a number plate, we request
manual intervention from an administrator
14. D
LOUNGE
EV
Am azon
CloudW atch
AW S
Lam bda
AW S Step
Functions
Am azon
SES Am azon API
Gatew ay
M anual Inspection via Em ail Notification
Scheduled
event getActivityTask()
sendTaskSuccess()
Num ber Plate
{
...
numberPlate: "SOB640"
...
}
AW S
Lam bda
Toll Road Gantry - Architecture
AGENT
16. D
LOUNGE
EV
1. Codebase
• A twelve-factor app is always tracked in a
version control system – in a repo
• A codebase is any single repo
• There is always a one-to-one correlation between the codebase
and the app:
• If there are multiple codebases, it’s not an app –
it’s a distributed system.
• Multiple apps sharing the same code is a
violation of 12-factor – factor the code into a library
• There is only one codebase per app, but there will be
many deploys of the app
One codebase tracked in revision control, many deploys
17. D
LOUNGE
EV
1. Codebase
All code should be stored in revision control (a development best
practice). The same repository should be used for all environments
deployed to.
The bounds of an “application” differ in serverless terms:
• If events are shared (eg: a common Amazon API Gateway) then
Lambda function code for those events should be put
in the same repository
• Otherwise break “services” along event source
into their own repositories
One codebase tracked in revision control, many deploys
18. D
LOUNGE
EV
2. Dependencies
• A 12-Factor app never relies on implicit existence of
system-wide packages. It declares all dependencies,
completely and exactly, via a dependency declaration manifest
• It uses a dependency isolation tool to prevent dependency leak from
other and does not depend on the existence of system tools
• Simplifies getting a new developer up and running (all dependencies
are in the source control system – or referenced using dependency
management)
Explicitly declare and isolate dependencies
19. D
LOUNGE
EV
2. Dependencies
Code that needs to be used by multiple functions should be packaged
into its own library. Include those packages inside of your deployment
package. Every language Lambda supports has a model for this:
Explicitly declare and isolate dependencies
Node.js & Python
• .zip file consisting of
your code and any
dependencies
• Can use npm/pip
• All dependencies must
be at root level
Java
• Either .zip file with all
code/dependencies, or
standalone .jar with
compiled class &
resource files at root
level, required jars in
/lib directory
• Maven / Gradle for
dependency
management
C# (.NET Core)
• Either .zip file with all
code/dependencies, or a
standalone .dll
• Can use Nuget
• All assemblies (.dll) at
root level
20. D
LOUNGE
EV
3. Config
Store config in the environment
A 12-Factor App has strict separation of config from code, including:
• Resource handles to database, cache and other backing services
• Credentials
• Per-deploy values
• An app's config is everything that is likely to vary between deploys
(staging, production, developer environments, etc)
• Does not include ‘internal’ configs such as
routes or framework settings
• Store configuration in environment variables
and not in source control
21. D
LOUNGE
EV
3. Config
Lambda Environment Variables
• Key-value pairs available via standard environment variable APIs
such as process.env for Node.js or os.environ for Python
• Support KMS encryption
Store config in the environment
API Gateway Stages
• Key-value pairs available for configuring API Gateway functionality or
to pass on to HTTP endpoints as URI parameters or configuration
parameters to a Lambda invocation
AWS Systems Manager Parameter Store and AWS Secrets Manager
Many ways to do this in serverless applications
22. from __future__ import print_function
import json
import boto3
ssm = boto3.client('ssm', 'us-east-1')
def get_parameters():
response = ssm.get_parameters(
Names=['LambdaSecureString’],
WithDecryption=True
)
for parameter in response['Parameters']:
return parameter['Value']
def lambda_handler(event, context):
value = get_parameters()
print("value1 = " + value)
return value # Echo back first key/val
Centralized store to manage your
configuration data
• supports hierarchies
• plain-text or encrypted with KMS
• Can send notifications of changes
to Amazon SNS/ AWS Lambda
• Can be secured with IAM
• Calls recorded in CloudTrail
• Can be tagged
• Available via API/SDK
Useful for centralized environment
variables, secrets control, feature flags
AWS Systems Manager – Parameter Store
23. D
LOUNGE
EV
Access secrets in the Parameter Store
from CloudFormation
• Create Parameters in your
CFN/SAM template
• Set the Type to
AWS::SSM::Parameter::Value<String>
• Use the Default property to
define the path in Parameter Store
• Use references ( Ref: ) in your
template to make use of the values
AWS Systems Manager – Parameter Store
24. D
LOUNGE
EV
Service features:
• Securely encrypt, store, and
retrieve credentials for your
databases and other services
• Scheduled rotation with control
over rotation logic via Lambda
function
• Connection strings, key/value
pairs, JSON blobs… anything!
AWS Secrets Manager
25. D
LOUNGE
EV
4. Backing services
Treat backing services as attached resources
The code for a 12-Factor app makes no distinction between
local and third party services.
• A backing service is any service the app consumes
over the network as part of its normal operation
• Databases, cache, etc
• API-accessible services
• Mail
• 12-Factor treats backing services as attached resources
• Backing services should be able to be switched out –
attached/detached at will
26. D
LOUNGE
EV
4. Backing services
No differences for serverless applications
Resources that Lambda functions connect to, such as databases,
should have their endpoints and access credentials made available
via config resources and IAM policies
!
Treat backing services as attached resources
27. D
LOUNGE
EV
5. Build, release, run
Strictly separate build and run stages
A 12-Factor App codebase is transformed into a deploy through:
• Build stage – takes the source from the repo and builds an
immutable deployment artefact bundle
• Release stage – takes the deployment artefact and combines it
with the environment’s configuration
• Run stage – runs the app in the target environment, executing
processes against the selected release
Code becomes a build, which is combined with the target
environment’s configuration to create a release then executed in
the run space - each stage is strictly separated
28. D
LOUNGE
EV
5. Build, release, run
AWS
CodeBuild
AWS
CodePipeline
Strictly separate build and run stages
No differences for serverless applications
Development best practices such as Continuous Integration and
Continuous Delivery should be followed.
Use AWS CodeBuild and AWS CodePipeline to support this
29. version: 0.1
environment_variables:
plaintext:
"INPUT_FILE": "saml.yaml”
"S3_BUCKET": ""
phases:
install:
commands:
- npm install
pre_build:
commands:
- eslint *.js
build:
commands:
- npm test
post_build:
commands:
- aws cloudformation package --template $INPUT_FILE --s3-
bucket $S3_BUCKET --output-template post-saml.yaml
artifacts:
type: zip
files:
- post-saml.yaml
- beta.json
• Variables to be used by phases of
build
• Examples for what you can do in
the phases of a build:
• You can install packages or run
commands to prepare your
environment in ”install”.
• Run syntax checking, commands
in “pre_build”.
• Execute your build/test tools or
commands in “build”
• Execute the CloudFormation
“package” command to package
your serverless application with
SAM in “post_build”
• Create and store an artifact in S3
Serverless App buildspec.yml Example
30. D
LOUNGE
EV
Delivery via CodePipeline
Pipeline flow:
1. Commit your code to a source code repository
2. Package/Test in AWS CodeBuild
3. Use CloudFormation actions in CodePipeline to
create or update stacks via SAM templates
Optional:
• Make use of ChangeSets
• Make use of Safe Lambda Deployment
4. Make use of specific stage/environment parameter
files to pass in Lambda variables
5. Test our application between stages/environments
Optional: Make use of Manual Approvals
32. D
LOUNGE
EV
AWS Serverless Application Model (SAM)
CloudFormation extension optimized for
serverless
New serverless resource types:
functions, APIs, and tables
Supports anything CloudFormation supports
Open specification (Apache 2.0)
https://github.com/awslabs/serverless-application-model
33. D
LOUNGE
EV
AWSTemplateFormatVersion: '2010-09-09’
Transform: AWS::Serverless-2016-10-31
Resources:
GetHtmlFunction:
Type: AWS::Serverless::Function
Properties:
CodeUri: s3://sam-demo-bucket/todo_list.zip
Handler: index.gethtml
Runtime: nodejs4.3
Policies: AmazonDynamoDBReadOnlyAccess
Events:
GetHtml:
Type: Api
Properties:
Path: /{proxy+}
Method: ANY
ListTable:
Type: AWS::Serverless::SimpleTable
SAM template
Tells CloudFormation this is a SAM
template it needs to “transform”
Creates a Lambda function with the
referenced managed IAM policy,
runtime, code at the referenced zip
location, and handler as defined.
Also creates an API Gateway and
takes care of all
mapping/permissions necessary
Creates a
DynamoDB table
34. Gradual Code Deployment – Canaries
SAM usually uses CloudFormation to
deploy new/updates to Lambda functions
If you enable Safe Lambda Deployments,
SAM will instead use AWS CodeDeploy for
automated gradual deployment
Automatically & gradually shift traffic
to the new version and roll back if a problem
is encountered (based on canaries/alarms)
Serverless has new ways to do familiar things
35.
36.
37.
38. D
LOUNGE
EV
An example minimal Developer’s pipeline:
MyBranch-Source
Source
AWS CodeCommit
MyApplication
Build
test-build-source
AWS CodeBuild
MyDev-Deploy
create-changeset
AWS CloudFormation
execute-changeset
AWS CloudFormation
Run-stubs
AWS Lambda
This pipeline:
• Three Stages
• Builds code artifact
• One Development environment
• Uses SAM/CloudFormation to deploy
artifact and other AWS resources
• Has Lambda custom actions for running
my own testing functions
39. D
LOUNGE
EV
Source
Source
AWSCodeCommit
MyApplication
An example minimal production pipeline:
Build
test-build-source
AWSCodeBuild
Deploy Testing
create-changeset
AWS
CloudFormation
execute-changeset
AWS
CloudFormation
Run-stubs
AWSLambda
Deploy Staging
create-changeset
AWS
CloudFormation
execute-changeset
AWS
CloudFormation
Run-API-test
Runscope
QA-Sign-off
Manual Approval
Review
Deploy Prod
create-changeset
AWS
CloudFormation
execute-changeset
AWS
CloudFormation
Post-Deploy-Slack
AWSLambda
This pipeline:
• Five Stages
• Builds code artifact
• Three deployed to “Environments”
• Uses SAM/CloudFormation to deploy
artifact and other AWS resources
• Has Lambda custom actions for running
my own testing functions
• Integrates with a 3rd party tool/service
• Has a manual approval before deploying
to production
40. D
LOUNGE
EV
6. Process
A 12-Factor App has processes that are stateless and share nothing
• Any data that needs to persist must be stored in a
stateful backing service, typically a database
• Never assume any data from a previous transaction
will be cached in memory or on local storage
• “Sticky sessions” are a violation of 12-factor
• Session state should be persisted to Memcached or database
Execute the app as one or more stateless processes
41. D
LOUNGE
EV
6. Process
This is inherent in how Lambda is designed already
• Lambda Functions should be treated as stateless despite the
potential to store some state in-between container re-use
• There is no promise of container re-use
between function invocations
• Data that needs to be kept should be stored off Lambda in a
stateful service such as DynamoDB or ElastiCache
Execute the app as one or more stateless processes
42. D
LOUNGE
EV
7. Port Binding
A 12-Factor App is completely self-contained and exposes
Protocol-as-a-Service by binding to a network port
• For example – web application binding an HTTP listener
to port 80/443
• The app itself should be able to run/host the HTTP endpoint
(Go, Python, DotNet, Java support this)
• Languages like PHP break this guideline because
they need a web server to host the process
• Allows the app to become a backing service for other apps
• Provides a common interface to all your apps
Export services via port binding
43. D
LOUNGE
EV
7. Port Binding
In Lambda/serverless applications this factor doesn’t apply in the
same way due to a difference in how Lambda Functions are accessed:
• Instead of a “port” Lambda functions are invoked via one or more
triggering services or AWS’s APIs for Lambda
• When it comes to Lambda functions there are 3 models for how they can
be invoked; synchronously, asynchronously, and via stream
• Instead of having one function support multiple invocation sources,
create independent functions and make use of shared code via
dependencies (shared packages) to support shared capabilities
Export services via port binding
44. Lambda execution model
Synchronous Stream-based
Amazon
API Gateway
AWSLambda
function
Amazon
DynamoDBAmazon
SNS
/order
AWSLambda
function
Amazon
S3
reqs
Amazon
Kinesis
changes
AWSLambda
service
AWSLambda
function
Asynchronous
46. D
LOUNGE
EV
8. Concurrency
Scale out via the process model
In a 12-Factor App, processes are a first-class citizen
• Processes & threads – taking inspiration from Unix process model
for daemons
• Keep individual tasks bound to individual processes
• Web requests handled by dedicated processes
• Worker processes for long-running background tasks
• Small independent processes for specific tasks in a distributed workload
• Very important for scaling your application out horizontally
47. D
LOUNGE
EV
8. Concurrency
!
Doesn’t apply to Serverless
Lambda functions will scale automatically based on load.
You can fork threads inside of your function execution but there are
practical limits due to the memory and CPU/network constraints of
your functions based on how you configure them.
Scale out via the process model
48. D
LOUNGE
EV
• <1.8GB is still single core
• CPU bound workloads won’t see gains –
processes share same resources
• >1.8GB is multi-core
• CPU bound workloads will gains,
but need to multi-thread
• I/O bound workloads WILL likely see gains
• e.g. parallel calculations to return
Multi-threading?
49. Scaling out a workflow with Step Functions
Scale out via the process model
Amazon
S3
AWS
Lambda
Trigger on
upload
Amazon
Rekognition
Start
End
8. Concurrency
50. D
LOUNGE
EV
9. Disposability
Maximize robustness with fast startup and graceful shutdown
A 12-Factor App’s resources are disposable, meaning they can be
started and stopped at a moment’s notice
• Facilitates fast, elastic scaling, rapid deployment of code or config
changes and robust deployment
• Processes should minimise startup time
• Processes should terminate gracefully
• Processes should be robust against sudden death and be designed
to handle unexpected termination
51. D
LOUNGE
EV
9. Disposability
!
Some application to Serverless
Shutdown doesn’t apply as Lambda functions and their invocation
are tied directly to incoming events.
Speed at startup does matter though and is a factor of deployment
package size + language used + VPC (or not) + pre-handler code calls.
Maximize robustness with fast startup and graceful shutdown
52. D
LOUNGE
EV
Anatomy of a Lambda function
Your
function
Language
runtime
Function
container
Compute
substrate
57. D
LOUNGE
EV
10. Dev/prod parity
Keep development, staging, and production as similar as possible
A 12-Factor App is designed for continuous deployment by keeping
the gap between development and production small
Environments get out of sync due to:
• Time gap – move code between dev and staging as soon as possible
• Personnel gap – no handover of code (DevOps)
• Tools gap – don’t allow the environment tools and services to differ
58. D
LOUNGE
EV
10. Dev/prod parity
This can be made incredibly easy with serverless applications by:
• Making use of environment/stage variables, Parameter Store or
Secrets Manager for configuration information, backend resources etc
• Using Serverless Application Models (SAM) to deploy your application
• Can pass environment/stage variables via Parameters, Mappings, Imports
• Having a CI/CD process and tooling that supports multiple
environments or accounts
• Using SAM CLI for testing Lambda functions and API Gateway
Keep development, staging, and production as similar as possible
59. D
LOUNGE
EV
SAM CLI
https://github.com/awslabs/aws-sam-local
CLI tool for local testing of serverless apps
Works with Lambda functions and
“proxy-style” APIs
Response object and function logs available
on your local machine
Uses open source docker-lambda images to
mimic Lambda’s execution environment
Emulates timeout, memory limits, runtimes
60. D
LOUNGE
EV
11. Logs
A 12-Factor App never concerns itself with routing
or storage of its output stream
Treat logs as event streams
• Logs provide visibility into the behavior of a running app
• Logs are the stream of aggregated, time-ordered events collected
from all running processes
• Logs should be captured by the runtime environment and routed to
an appropriate destination for viewing or long-term archival
• Apps themselves should not attempt to write to or manage logfiles
(use a log router eg Fluent)
61. D
LOUNGE
EV
11. Logs
Logging (as well as Metric collection) are considered
a “universal right” in AWS Lambda:
• ‘Console’ output automatically collected and sent to
Amazon CloudWatch Logs
• Logs can be turned into Metrics – Active Alerting
• Logs can be sent to Amazon S3 or Amazon ElasticSearch
Service easily for further inspection and trending
• Metrics for Lambda and API Gateway for several key stats
are automatically collected and sent to CloudWatch
• You can easily send more using the CloudWatch SDK
Treat logs as event streams
62. D
LOUNGE
EV
12. Admin processes
Run admin/management tasks as one-off processes
A 12-Factor App has one-off tasks for admin/management
• Tasks should operate in the same environment as the target
environment (so not from the administrator’s laptop)
• Admin code must be part of the release, not managed
separately as an external script
• Follows the dependency guidelines as the rest of the app
• Administrators must be able to remote into the
running environment
63. D
LOUNGE
EV
12. Admin processes
!
Run admin/management tasks as one-off processes
Doesn’t apply to Serverless
You already limit your functions based on use case.
True administrative tasks would occur via their own Lambda Functions
or via tools such as Amazon EC2 Run Command.
64. D
LOUNGE
EV
1. Codebase
2. Dependencies
3. Config
4. Backing services
9. Disposability
10. Dev/prod parity
11. Logs
12. Admin processes
As we’ve seen, 12 Factor application design can still be applied to
serverless applications taking into account some small differences!
= Works similarly = Not relevant to serverless
The 12 Factors & Serverless Applications
5. Build, release, run
6. Process
7. Port Binding
8. Concurrency
= Some relevance
66. D
LOUNGE
EV
• Use the right amount of compute for your
workload, and test your assumptions
• Review Lambda function resource usage in
CloudWatch Logs after execution
• Consider startup-latency and execution time as
well as RAM usage
• Match resource allocation (up to 3 GB) to logic
A. Right-size your serverless compute
Choose the right compute for the task
67. D
LOUNGE
EV
Example: Stats for a Lambda function that calculates
1,000 times all prime numbers <= 1,000,000
128 MB 11.722965sec $0.024628
256 MB 6.678945sec $0.028035
512 MB 3.194954sec $0.026830
1024 MB 1.465984sec $0.024638
A. Right-size your serverless compute
Impact of memory allocation on execution duration
68. D
LOUNGE
EV
50% increase
in memory
95th
percentile
changes from
3s to 2.1s
https://blog.newrelic.com/2017/06/20/lambda-functions-xray-traces-custom-serverless-metrics/
A. Right-size your serverless compute
Impact of memory allocation on startup latency
69. D
LOUNGE
EV
B. Avoid fat / monolithic functions
• Implement concise function logic
• Don’t move from monoliths to miniliths!
• Decouple your applications using messaging services
such as SNS/SQS/Kinesis/AmazonMQ
• Embrace asynchronous calls and eventual consistency
Functions should do one thing and do it well
70. D
LOUNGE
EV
C. Use functions to transform not transport
Read only the data you need
200 seconds and 11.2 cents
for key in src_keys:
response =
s3_client.get_object(Bucket=src_bucket,
Key=key)
contents = response['Body'].read()
for line in contents.split('n')[:-1]:
data = line.split(',’)
srcIp = data[0][:8]
….
95 seconds and costs 2.8 cents
for key in src_keys:
response =
s3_client.select_object_content
(Bucket=src_bucket, Key=key,
expression =
SELECT SUBSTR(obj._1, 1, 8), obj._2
FROM s3object as obj)
contents = response['Body'].read()
for line in contents:
….
Using S3Select:Retrieving entire object:
71. D
LOUNGE
EV
D. Do not orchestrate in code
• Orchestrating workflow logic in code makes it more difficult to
modify, maintain and debug distributed complexity
• Tasks may be long-running
• Tasks may need manual intervention
• Tasks may need to be retried
• Use AWS Step Functions to handle orchestration externally
Orchestrate distributed complexity in the environment
74. D
LOUNGE
EV
1. Codebase
2. Dependencies
3. Config
4. Backing services
9. Disposability
10. Dev/prod parity
11. Logs
12. No orchestration
in code
As we’ve seen, 12 Factor application design can still be applied to
serverless applications taking into account some small differences!
The 12 Factors & Serverless Applications
5. Build, release, run
6. Right-sizing
7. Avoid miniliths
8. Transform not
transport
75. D
LOUNGE
EV
In closing
The 12-Factor methodology has factors that
do and do not apply the same for serverless applications:
• Thinking about code reusability and how to scope your functions
to the smallest size necessary provides many benefits
• Factors related to underlying process management, network ports,
concurrency, and admin processes are largely not an issue in
serverless applications due to AWS Lambda’s design and features
• Best practices for serverless align pretty closely with 12-Factor
guidance already, so you might be really close to meeting the
“12 Factor bar” already!
78. Adam Larter
Principal Solutions Architect, Developer Specialist, AWS AU/NZ
2018
D
LOUNGE
EV
Thank you!
2018
alarter@amazon.com | www.linkedin.com/in/adamlarter