SlideShare a Scribd company logo
(and AWS Lambda)
Immutable Deployments with AWS CloudFormation and AWS Lambda
& aoepeople!
E-Commerce:
Magento
CMS:
TYPO3
Portals:
ZF, Symfony,…
Mobile Searchperience:
ElasticSearch
250+ people
world-wide
(in 8 locations)
Global
Enterprise
Projects
Infrastructure:
AWS
CloudFormation Lambda “Immutable”
/i(m)ˈmyo͞ odəb(ə)l/
adjective
unchanging over time or unable to be changed.
“disposable”
“ephemeral”
Pet
Cattle
Immutable Deployments with AWS CloudFormation and AWS Lambda
Immutable Deployments with AWS CloudFormation and AWS Lambda
Immutable Deployments with AWS CloudFormation and AWS Lambda
Immutable Deployments with AWS CloudFormation and AWS Lambda
Immutable Deployments with AWS CloudFormation and AWS Lambda
not disposable disposable
disposable
not disposable
disposable
Static Resources BuildVPC Build
Immutable Deployments with AWS CloudFormation and AWS Lambda
Build Bucket
IAM Setup
VPC
Static Resources
Build
Manual Setup
separate
CloudFormation
Stacks
use resources
from underlying
stacks as input
parameters
Lambda functions,
Monitoring,…
Build Bucket
IAM Setup
Environment A (e.g. prod) Environment B (e.g. stage)
VPC VPC
Static Resources Static Resources
Build BuildBuild Build
Build X Build X+1 Build X Build X+1
Manual Setup
different scopes
(build, environment,
account, global…)
Build Bucket
IAM Setup
Environment A (e.g. prod) Environment B (e.g. stage) Environment C (e.g. qa) Environment D (e.g. dev)
IAM Setup
VPC VPC VPC VPC
Static Resources Static Resources Static Resources Static Resources
Build BuildBuild Build Build Build Build Build
Build X Build X+1 Build X Build X+1 Build X Build X+1 Build X Build X+1
Manual Setup Manual Setup
Build Bucket Access
Private subnets
Public subnets
ElastiCache (Redis)
with replication groups
for cache and sessions
RDS (multi-az) with
DB subnet group
Bastion
server
s3: media
storage*
Route 53: DNS
configuration
CloudFront
distribution
SSL
Certificates
Security group for Varnish servers
Security group for Magento servers
Security group for Load Balancer
Static Resources
Build
Auto Scaling group
Auto Scaling group
Elastic Load
Balancer
Auto-
Scaling
Group
Launch
Configurati
on
Scaling
Policy
Build
Auto Scaling group
Auto Scaling group
Elastic Load
Balancer
Auto-
Scaling
Group
Launch
Configurati
on
Scaling
Policy
Auto Scaling group Auto Scaling group
+1
Baking AMIs
“Chef vs. Puppet?”
http://fbrnc.net/blog/2015/11/
how-to-provision-an-ec2-instance
“…Ansible!”
“BASH!”
Keep it simple…!
✔ ✔ (✔)
the “last mile”
most
underestimated
CFN feature!
Immutable Deployments with AWS CloudFormation and AWS Lambda
var r = require('cfn-response');
exports.handler = function (event, context) {
[…]
var res = {};
if (event.RequestType == 'Create') {
res.Password = randomPassword(20);
}
r.send(event, context, r.SUCCESS, res);
};
"IndexerDb": {
"Type": "AWS::RDS::DBInstance",
"Properties": {
[...]
"MasterUserPassword": {"Fn::GetAtt": ["GenerateDbPassword", "Password"]},
[...]
}
},
"GenerateDbPassword": {
"Type": "Custom::PasswordGenerator",
"Properties": {
"ServiceToken": {"Ref": "PasswordGeneratorArn"}
}
},
Immutable Deployments with AWS CloudFormation and AWS Lambda
• launch some ASGs (set DesiredCapacity)
• create database passwords
• tag all resources (incl. ElastiCache!)
• restore database and media files
• (one-time) install scripts (db migrations,…)
• detect Varnish backends
• wait for healthy backends in the ELBs
• run infrastructure tests
• cache warming
• update Route53 records sets
• delete old stacks
• …
Immutable Deployments with AWS CloudFormation and AWS Lambda
DesiredCapacity =
Number of Instances in current ASG x 1.2
better safe
than sorry…
DesiredCapacity =
Number of Instances in current ASG x 1.2
DesiredCapacity =
Number of Instances in current ASG x 1.2
ScalingPolicy
takes care…
"CountInstances": {
"Type": "Custom::InstanceCounter",
"Properties": {
"ServiceToken": {"Ref": "InstanceCounter"},
"AutoScalingGroupTags": [
{"Key": "Environment", "Value": "prod"},
{"Key": "Type", "Value": "Frontend"}
],
"Min": 1, "Max": 10, "Factor": "1.5"
}
},
"FrontendAsg": {
"Type": "AWS::AutoScaling::AutoScalingGroup",
"Properties": {
[...]
"DesiredCapacity": {"Fn::GetAtt": ["CountInstances", "Count"]},
"Tags": [
{"Key": "Environment", "Value": "prod", "PropagateAtLaunch": true},
{"Key": "Type", "Value": “Frontend", "PropagateAtLaunch": true}
]
}
},
Update Route53 record set
Update Route53 record set
Delete old stacks
"UpdateR53": {
"DependsOn": [ "MagentoWaitCondition", "MagentoWorkerWaitCondition", "Elb"],
"Type": "Custom::Route53Update",
"Properties": {
"ServiceToken": {"Ref": "R53Updater"},
"Name": {"Fn::Join": ["", [ "www-", {"Ref": "EnvironmentName"} ]]},
"HostedZoneId": {"Ref": "HostedZoneId"},
"AliasTargetDNSName": {"Fn::GetAtt": ["Elb", "DNSName"]},
"AliasTargetHostedZoneId": {"Fn::GetAtt": ["Elb", "CanonicalHostedZoneNameID"]},
"Comment": "Updated via CloudFormation/Lambda"
}
},
"DeleteStacks": {
"Condition": "DeleteOldStacks",
"DependsOn": ["UpdateR53"],
"Type": "Custom::StackDeleter",
"Properties": {
"ServiceToken": {"Ref": "StackDeleter"},
"TagFilter": { "Environment": {"Ref": "EnvironmentName"}, "Type": "Deployment"},
"ExceptStackName": {"Ref": "AWS::StackName"}
}
}
Immutable Deployments with AWS CloudFormation and AWS Lambda
+1
Baking AMIs
Tools+CI
Have fun
filling out
47 form
fields! :)
aoepeople/stackformation
command-line tool
(Symfony console, uses
AWS SDK for PHP)
integrates nicely into
your CI (Jenknis,…)
pre-process
Userdata
Lambda JS
“Template”
superset of CFN
template (JSON)
Parameterslookup from other
stacks, env vars,…
Template
Parameter
Values
create/
update
Stack policies, Tags,…
Stack
magento-stage-build-5
Stack
magento-stage-build-6
Stack
magento-prod-build-6
Stack
magento-prod-build-5
CloudFormation
Template
merge &
pre-process
“CloudFormation+X”
Template(s)
+
Dynamic Parameters
+
Stack Policies
+
Behavior
+
Tags
…
Blueprint
magento-{env:ENVIRONMENT}-build-{env:BUILD}
Blueprint
magento-{env:ENVIRONMENT}-setup
Stack
magento-stage-setup
Stack
magento-prod-setup
blueprints:
- stackname: 'magento-{env:BUILD}'
template: 'magento.template'
stackPolicy: 'policy.json'
OnFailure: 'DO_NOTHING'
parameters:
Build: '{env:BUILD}'
KeyPair: '{var:KeyPair}'
VPC: '{resource:setupstack:VPC}'
Subnet: '{resource:setupstack:Subnet}'
InstanceSg: '{resource:setupstack:InstanceSg}'
InstanceProfile: '{output:setupstack:InstanceProfile}'
BootAmi: 'ami-06116566'
tags:
Environment: 'prod'
Build: '{env:BUILD}'
enforce
“immutability” by
denying updates!
aoepeople/cfn-vpc
aoepeople/cfn-lambdahelper
aoepeople/cfn-amibaker
via composer
so we can
integrate this into
our CI pipeline…
•
Immutable Deployments with AWS CloudFormation and AWS Lambda
aoepeople/awsinspector
command-line tool
(Symfony console, uses
AWS SDK for PHP)
Domain models for PHP
$repository = new AwsInspectorModelElbRepository();
$dns = $repository->findElbsByTags([
'Environment' => 'deploy',
'Build' => 554,
'Type' => 'Frontend’
])->getFirst()->getDNSName();
> bin/awsinspector.php ec2:ssh -t Environment:prod –c Type –c Build
filter by tag
Please select an instance
[0] i-1033ed9b (Type: Frontend; Environment: prod; Build: 477)
[1] i-4ff36ec8 (Type: Backend; Environment: prod ; Build: 477)
[2] i-5ab4322b (Type: Worker; Environment: prod; Build: 477)
[3] i-705ad42f (Type: Worker; Environment: prod; Build: 476)
>
• will take jump hosts into
account (ProxyCommand)
• auto-detects your local
(encrypted) private keys
• multiplexed ssh connections
• run commands directly
Immutable Deployments with AWS CloudFormation and AWS Lambda
logins,
orders,…
deployments,
scaling activity,…
JMeter
response time,
error rate,…
CPU, load,
network I/O,…
correlate
metrics from
various sources
GrafanaElasticSearch
(Service)
time-series
database
leftovers from
“disposed” resources
…
“Ready for testing”
(WaitCondition)
setup
terminate
instances
and wait
• Create Security
allowing access
to all IPs and
attach to UAT’s
ELB
environment
(incl. restoring db+media
snapshot from prod)
environment*
Delete self*
*via Lambda custom resource
Pushing samples in near real-time
via custom JMeter backend
listener
“Testing Completed”
(WaitCondition)
JMeter test
CloudFormation
Stack
GrafanaElasticSearch
(Service)
CloudWatch
Lambda
find relevant resources for the
current deployment (via tags),
collect metrics,
and push them to ElasticSearch
CloudFormation Stack
• Install JMeter
• Download
testcase from S3
• Signal “Ready”
and wait
• Create SG
allowing access
to all IPs and
attach to UAT’s
ELB
Auto-Scaling Group of Load Generator Instances
Run Stress Test2.
Time
timeout 3600 jmeter –n –t testcase.jmx
Delete test
environment*
Delete self*
3. 4.
*via Lambda custom resource
…
Spin up test
environment
(incl. restoring db+media
snapshot from prod)
1.
CloudFormation
Stack
setup
terminate
instances
JMeter test
Pushing samples in near real-time
via custom JMeter backend listener
“Ready for testing”
(WaitCondition)
“Testing Completed”
(WaitCondition)
Immutable Deployments with AWS CloudFormation and AWS Lambda
Immutable Deployments with AWS CloudFormation and AWS Lambda
Immutable Deployments with AWS CloudFormation and AWS Lambda
https://blogs.aws.amazon.com/application-
management/post/Tx38Z5CAM5WWRXW/Faster-Auto-Scaling-in-AWS-
CloudFormation-Stacks-with-Lambda-backed-Custom-Resou
Provisioning
“Ready for baking”
(WaitCondition)
EC2
AMI Baker
(Lambda) Node.js SDK
AWS CLI
“Baking Completed”
(WaitCondition)
shutdown
(-> terminate)
ec2.createImage
aws ec2 wait image-available
AMI Baker
(Lambda) Node.js SDK
ec2.deleteImage
Custom
CloudFormation
Resource
Time
Immutable Deployments with AWS CloudFormation and AWS Lambda
•
Follow me on twitter!
My blog

More Related Content

What's hot (20)

KEY
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Paulo Ragonha
 
PDF
Choosing a Javascript Framework
All Things Open
 
PDF
Integrating icinga2 and the HashiCorp suite
Bram Vogelaar
 
PDF
Future of Web Apps: Google Gears
dion
 
PDF
Asynchronous web apps with the Play Framework 2.0
Oscar Renalias
 
PPT
Ant
Manav Prasad
 
PPTX
Varnish Cache and its usage in the real world!
Ivan Chepurnyi
 
PDF
JWT - Sécurisez vos APIs
André Tapia
 
PDF
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Masahiro Nagano
 
PDF
Rails Security
Wen-Tien Chang
 
KEY
Building a real life application in node js
fakedarren
 
PDF
Play Framework: async I/O with Java and Scala
Yevgeniy Brikman
 
PDF
Plugin-based software design with Ruby and RubyGems
Sadayuki Furuhashi
 
PPTX
Creating Reusable Puppet Profiles
Bram Vogelaar
 
PPT
Intro to-ant
Manav Prasad
 
PDF
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Alexander Lisachenko
 
PDF
Getting Started with Ansible
ahamilton55
 
PPTX
Play + scala + reactive mongo
Max Kremer
 
PPTX
Java Play RESTful ebean
Faren faren
 
PPTX
Java Play Restful JPA
Faren faren
 
Single Page Web Applications with CoffeeScript, Backbone and Jasmine
Paulo Ragonha
 
Choosing a Javascript Framework
All Things Open
 
Integrating icinga2 and the HashiCorp suite
Bram Vogelaar
 
Future of Web Apps: Google Gears
dion
 
Asynchronous web apps with the Play Framework 2.0
Oscar Renalias
 
Varnish Cache and its usage in the real world!
Ivan Chepurnyi
 
JWT - Sécurisez vos APIs
André Tapia
 
Rhebok, High Performance Rack Handler / Rubykaigi 2015
Masahiro Nagano
 
Rails Security
Wen-Tien Chang
 
Building a real life application in node js
fakedarren
 
Play Framework: async I/O with Java and Scala
Yevgeniy Brikman
 
Plugin-based software design with Ruby and RubyGems
Sadayuki Furuhashi
 
Creating Reusable Puppet Profiles
Bram Vogelaar
 
Intro to-ant
Manav Prasad
 
Handling 10k requests per second with Symfony and Varnish - SymfonyCon Berlin...
Alexander Lisachenko
 
Getting Started with Ansible
ahamilton55
 
Play + scala + reactive mongo
Max Kremer
 
Java Play RESTful ebean
Faren faren
 
Java Play Restful JPA
Faren faren
 

Similar to Immutable Deployments with AWS CloudFormation and AWS Lambda (20)

PDF
Hands-On AWS: Java SDK + CLI for Cloud Developers
Meetu Maltiar
 
PDF
Just one-shade-of-openstack
Roberto Polli
 
PDF
Scalable and Fault-Tolerant Apps with AWS
Fernando Rodriguez
 
PDF
TIAD : Automating the modern datacenter
The Incredible Automation Day
 
PDF
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
NETWAYS
 
PDF
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Web Services Korea
 
PDF
A Hands-on Introduction on Terraform Best Concepts and Best Practices
Nebulaworks
 
PDF
Infrastructure as Code: Manage your Architecture with Git
Danilo Poccia
 
PPTX
Packer, where DevOps begins
Jeff Hung
 
PDF
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Danilo Poccia
 
ODP
Infrastructure as code with Puppet and Apache CloudStack
ke4qqq
 
ODP
Puppet and Apache CloudStack
Puppet
 
PDF
DevOps Enabling Your Team
GR8Conf
 
PDF
Logging for Production Systems in The Container Era
Sadayuki Furuhashi
 
PPTX
Automation with Packer and TerraForm
Wesley Charles Blake
 
PDF
Infrastructure-as-code: bridging the gap between Devs and Ops
Mykyta Protsenko
 
PPTX
Reusable, composable, battle-tested Terraform modules
Yevgeniy Brikman
 
PDF
Declarative & workflow based infrastructure with Terraform
Radek Simko
 
ODP
Puppet and CloudStack
ke4qqq
 
ODP
Puppetpreso
ke4qqq
 
Hands-On AWS: Java SDK + CLI for Cloud Developers
Meetu Maltiar
 
Just one-shade-of-openstack
Roberto Polli
 
Scalable and Fault-Tolerant Apps with AWS
Fernando Rodriguez
 
TIAD : Automating the modern datacenter
The Incredible Automation Day
 
OSDC 2015: Mitchell Hashimoto | Automating the Modern Datacenter, Development...
NETWAYS
 
대용량 데이타 쉽고 빠르게 분석하기 :: 김일호 솔루션즈 아키텍트 :: Gaming on AWS 2016
Amazon Web Services Korea
 
A Hands-on Introduction on Terraform Best Concepts and Best Practices
Nebulaworks
 
Infrastructure as Code: Manage your Architecture with Git
Danilo Poccia
 
Packer, where DevOps begins
Jeff Hung
 
Deployment and Management on AWS:
 A Deep Dive on Options and Tools
Danilo Poccia
 
Infrastructure as code with Puppet and Apache CloudStack
ke4qqq
 
Puppet and Apache CloudStack
Puppet
 
DevOps Enabling Your Team
GR8Conf
 
Logging for Production Systems in The Container Era
Sadayuki Furuhashi
 
Automation with Packer and TerraForm
Wesley Charles Blake
 
Infrastructure-as-code: bridging the gap between Devs and Ops
Mykyta Protsenko
 
Reusable, composable, battle-tested Terraform modules
Yevgeniy Brikman
 
Declarative & workflow based infrastructure with Terraform
Radek Simko
 
Puppet and CloudStack
ke4qqq
 
Puppetpreso
ke4qqq
 
Ad

More from AOE (20)

PDF
Re-inventing airport non-aeronautical revenue generation post COVID-19
AOE
 
PDF
Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019
AOE
 
PPTX
Flamingo presentation at code.talks commerce by Daniel Pötzinger
AOE
 
PDF
A bag full of trust - Christof Braun at AOE Conference 2018
AOE
 
PDF
Digitalizing the Global Travel Retail World - Kian Gould at Global Retailing ...
AOE
 
PDF
Frankfurt Airport Digitalization Case Study
AOE
 
PDF
This is what has to change for Travel Retail to survive - Manuel Heidler, AOE
AOE
 
PDF
AOEconf17: Application Security
AOE
 
PPTX
AOEconf17: AOE Tech Radar Insights
AOE
 
PDF
AOEconf17: A flight through our OM³ Systems
AOE
 
PDF
AOEconf17: AOE Tech Radar Insights
AOE
 
PDF
AOEconf17: Pets vs. Cattle - modern Application Infrastructure - by Fabrizio ...
AOE
 
PPTX
AOEconf17: Agile scaling concepts
AOE
 
PDF
AOEcon17: Searchperience - The journey from PHP and Solr to Scala and Elastic...
AOE
 
PDF
AOEconf17: UI challenges in a microservice world
AOE
 
PDF
AOEconf17: Application Security - Bastian Ike
AOE
 
PPTX
AOEconf17: Management 3.0 - the secret to happy, performing and motivated sel...
AOE
 
PDF
AOEconf17: How to eat an elePHPant, congstar style - Timo Fuchs & Stefan Rotsch
AOE
 
PDF
Joern Bock: The basic concept of an agile organisation
AOE
 
PPTX
Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...
AOE
 
Re-inventing airport non-aeronautical revenue generation post COVID-19
AOE
 
Flamingo - Inspiring Commerce Frontend made in Go - Meet Magento 2019
AOE
 
Flamingo presentation at code.talks commerce by Daniel Pötzinger
AOE
 
A bag full of trust - Christof Braun at AOE Conference 2018
AOE
 
Digitalizing the Global Travel Retail World - Kian Gould at Global Retailing ...
AOE
 
Frankfurt Airport Digitalization Case Study
AOE
 
This is what has to change for Travel Retail to survive - Manuel Heidler, AOE
AOE
 
AOEconf17: Application Security
AOE
 
AOEconf17: AOE Tech Radar Insights
AOE
 
AOEconf17: A flight through our OM³ Systems
AOE
 
AOEconf17: AOE Tech Radar Insights
AOE
 
AOEconf17: Pets vs. Cattle - modern Application Infrastructure - by Fabrizio ...
AOE
 
AOEconf17: Agile scaling concepts
AOE
 
AOEcon17: Searchperience - The journey from PHP and Solr to Scala and Elastic...
AOE
 
AOEconf17: UI challenges in a microservice world
AOE
 
AOEconf17: Application Security - Bastian Ike
AOE
 
AOEconf17: Management 3.0 - the secret to happy, performing and motivated sel...
AOE
 
AOEconf17: How to eat an elePHPant, congstar style - Timo Fuchs & Stefan Rotsch
AOE
 
Joern Bock: The basic concept of an agile organisation
AOE
 
Magento 2 Best Practice Workfow // David Lambauer // Meet Magento 2017 // Lei...
AOE
 
Ad

Recently uploaded (20)

PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
PDF
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
PPTX
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
PDF
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
PDF
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
PDF
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
PPTX
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
PDF
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
PDF
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
PDF
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
PPTX
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
PDF
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
DOCX
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
PPTX
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
PDF
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
PPTX
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
PPTX
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
PDF
Staying Human in a Machine- Accelerated World
Catalin Jora
 
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Safe Software
 
Newgen Beyond Frankenstein_Build vs Buy_Digital_version.pdf
darshakparmar
 
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
Edge AI and Vision Alliance
 
AI Penetration Testing Essentials: A Cybersecurity Guide for 2025
defencerabbit Team
 
“NPU IP Hardware Shaped Through Software and Use-case Analysis,” a Presentati...
Edge AI and Vision Alliance
 
Newgen 2022-Forrester Newgen TEI_13 05 2022-The-Total-Economic-Impact-Newgen-...
darshakparmar
 
“Squinting Vision Pipelines: Detecting and Correcting Errors in Vision Models...
Edge AI and Vision Alliance
 
Agentforce World Tour Toronto '25 - MCP with MuleSoft
Alexandra N. Martinez
 
UPDF - AI PDF Editor & Converter Key Features
DealFuel
 
Agentic AI lifecycle for Enterprise Hyper-Automation
Debmalya Biswas
 
UiPath DevConnect 2025: Agentic Automation Community User Group Meeting
DianaGray10
 
Transforming Utility Networks: Large-scale Data Migrations with FME
Safe Software
 
Mastering ODC + Okta Configuration - Chennai OSUG
HathiMaryA
 
CIFDAQ Market Wrap for the week of 4th July 2025
CIFDAQ
 
Python coding for beginners !! Start now!#
Rajni Bhardwaj Grover
 
The Project Compass - GDG on Campus MSIT
dscmsitkol
 
LOOPS in C Programming Language - Technology
RishabhDwivedi43
 
Seamless Tech Experiences Showcasing Cross-Platform App Design.pptx
presentifyai
 
From Sci-Fi to Reality: Exploring AI Evolution
Svetlana Meissner
 
Staying Human in a Machine- Accelerated World
Catalin Jora
 

Immutable Deployments with AWS CloudFormation and AWS Lambda