Software Engineering
In The Cloud
Dhaval Nagar
● Founder @ AppGambit
● AWS Serverless Hero - 2020
● 12x Amazon Web Service Certified
● 2x Google Cloud Certified
● Certified Kuberneted Application Developer
● Certified Docker Associate
● Author @ ServerlessFAQs.com
● Organizer @ Surat AWS User Group
Dhaval Nagar
COVID-19 and Cloud Computing
Businesses and individuals are finding a workaround the required quarantine and
social distancing practices through technology, the recent advances of which have
probably prevented the world from coming to a complete standstill. While the cloud
may have been a frivolous expense for many companies a decade or two ago, its
necessity today is indisputable.
https://timesofindia.indiatimes.com/spotlight/the-impact-of-covid-19-on-the-cloud-computing-industry/articleshow/75574962.cms
Growing number of Connected Devices
Professor Ramnath Chellappa is often credited
with being the person who coined the term “cloud
computing” in its modern context, at a lecture he
delivered in 1997.
https://goizueta.emory.edu/faculty/profiles/ramnath-k-chellappa
Above the Clouds:
A Berkeley view of Cloud Computing
This paper was published in Feb, 2009
https://www2.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf
● Infinite computing resources available on demand, thereby eliminating the need for
Cloud Computing users to plan far ahead for provisioning
● The elimination of an up-front commitment by Cloud users, thereby allowing companies
to start small and increase hardware resources only when there is an increase in their
needs.
● The ability to pay for use of computing resources on a short-term basis as needed (e.g.,
processors by the hour and storage by the day) and release them as needed, thereby
rewarding conservation by letting machines and storage go when they are no longer
useful.
A physical machine has a number of attached components
like Disk, Power, Networking, Peer-Connectivity. Display,
Access components like Keyboard and Mouse are optional.
Different types of Cloud Computing
● Infrastructure as a Service (Iaas)
○ AWS, Google Cloud, IBM, Microsoft Azure
● Platform as a Service (PaaS)
○ Heroku, App Engine, Beanstalk
● Software as a Service (SaaS)
○ Slack, Dropbox, Google Apps, etc
● Public Cloud
○ AWS, Google Cloud, IBM, Microsoft Azure, etc
● Private Cloud
● Hybrid Cloud
○ VMware, Kubernetes, AWS Outposts, etc
Building blocks of Cloud Computing
Security in an inherent part of any form of cloud environment. It is one of the most primary requirement to
have secure and controlled environment, before any business takes decision to move to the cloud.
In most contexts, it is defined as a Shared Responsibility Model, where some part is managed by the
Cloud Provider and other is managed by the Cloud Users.
Pillars of Cloud Computing
2018 2019 2020 2021 2022
Cloud Business Process Services (BPaaS) 41.7 43.7 46.9 50.2 53.8
Cloud Application Infrastructure Services
(PaaS)
26.4 32.2 39.7 48.3 58.0
Cloud Application Services (SaaS) 85.7 99.5 116.0 133.0 151.1
Cloud Management and Security Services 10.5 12.0 13.8 15.7 17.6
Cloud System Infrastructure Services (IaaS) 32.4 40.3 50.0 61.3 74.1
Total Market 196.7 227.8 266.4 308.5 354.6
Worldwide Public Cloud Service Revenue Forecast
(Billions of U.S. Dollars)
Brief look at Amazon Web Services
● First launched in early 2002 with minimum services
● Official re-launched in 2006 with S3 and EC2
● S3 is Simple Storage Service to store practically unlimited “objects” in the
cloud
● EC2 is Elastic Compute Cloud to create virtual machines
● In 2020, they have 20+ regions across the world
● Netflix, NASA were early users of AWS
● Popular India customers include Hotstar, BYJU’s, Zerodha, OYO, RedBus
and many more...
Interactive AWS Infrastructure https://infrastructure.aws/
In 2020, Amazon Web Services comprised more than 212
services including computing, storage, networking, database,
analytics, application services, deployment, management, mobile,
developer tools, and tools for the Internet of Things.
AWS Categories of Services
AWS for Students and Educators
AWS Educate Program
AWS Educate is used in more than 200 countries and territories. It
connects 2,400 institutions, over 10,000 educators, and hundreds of
thousands of students.
Through AWS Educate, students and educators have access to content
and programs developed to skill up for cloud careers in growing fields.
AWS Educate also connects companies hiring for cloud skills to qualified
student job seekers with the AWS Educate Job Board.
AWS Student Ambassador
The AWS Educate Student Ambassador Program gives AWS Educate student
members recognition, access to career development opportunities, and other
benefits for helping their peers learn about AWS Educate. The program is
available to AWS Educate student members globally ages 18+ who are enrolled at
a public or private school, college, or university.
The application period for the 2020 cohort of the AWS Educate Student
Ambassador Program is now closed. Stay tuned for updates and check the AWS
Educate student portal regularly for more details on next year’s application cycle.
https://aws.amazon.com/startups/NowGoBuild/
AWS for Developers
● CodeCommit - Private git repository to host source code
● CodeBuild, CodePipeline, CodeDeploy - Developer tools to package and
deploy changes
● CloudFormation - Infrastructure as a Code service
● S3 - Elastic durable storage at global scale
● EC2 - Virtual machine
● Lambda - Running code without managing servers
● ECS, EKS - Running (Docker) containers in the cloud
● SageMaker - Machine Learning environment in the cloud
● RDS - Popular database services
● DynamoDB - Serverless database
● Route53 - Advanced DNS service
● SQS/SNS - Messaging services for app-level communication and notifications
Cloud Appliation Architecture
● Geo-proxy to route the requests to the nearest regions
● Load balancers to route the requests to Web Servers
● Load balancers to route the requests to the Application Servers
● Highly available and fault-tolerant Database
● Messaging Services for decoupling the logic
● Performance metrics for continuous assessment of the application
● Using right service for the right use case
○ Store static contents into CDN or Cloud Storage
○ RDS vs Self Hosted Database
○ Load Balancer vs Self Hosted Proxy Servers
○ Queuing Service, Email Service, Notification Service
Monolithic vs SOA vs Microservice
VM vs Containers vs Serverless
Cloud Programming Simplified: A Berkeley View on
Serverless Computing
Published on Feb, 2019 - 10 years after the original Cloud Computing paper
https://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/EECS-2019-3.pdf
Kubernetes Era
Kubernetes derives a lot of concepts and learning from Google’s internal tool,
Borg. In a nutshell, Kubernetes is a “simplified” framework to manage some of
the most “complicated” infrastructure like Google’s.
https://en.wikipedia.org/wiki/Kubernetes
Eventually most of the softwares will be either running in
Containers or Serverless Functions
Quick look at AWS Console
Demo 1 - NodeJS App on EC2 in 10 Minutes
Demo 1 - Serverless NodeJS API in 10 Minutes
Key points
● Post COVID19 World will be somewhat difficult
● Focus on the fundamentals
● Know your preferred programming language well
● Don’t work on “fancy” AI/ML solutions without core competencies
● Develop Full-Stack mindset, most engineering teams are lean
● Adapt based on the time and situation
● What you know today, may not be relavent after few years
● There is always something new to learn
Software engineering was complex and opinionated in 90s,
it’s still the same situation today.
Upcoming Online Events
● AWS India Summit - May 2020
● Serverless-First Function - May 2020
● HashiConf Digital - June 2020
● AWS User Group India
Thank you!
● LinkedIn @ https://www.linkedin.com/in/dhavaln/
● Twitter @ dhavaln
● Medium @ https://medium.com/appgambit

Software Engineering in the (AWS) Cloud

  • 1.
    Software Engineering In TheCloud Dhaval Nagar
  • 2.
    ● Founder @AppGambit ● AWS Serverless Hero - 2020 ● 12x Amazon Web Service Certified ● 2x Google Cloud Certified ● Certified Kuberneted Application Developer ● Certified Docker Associate ● Author @ ServerlessFAQs.com ● Organizer @ Surat AWS User Group Dhaval Nagar
  • 4.
    COVID-19 and CloudComputing Businesses and individuals are finding a workaround the required quarantine and social distancing practices through technology, the recent advances of which have probably prevented the world from coming to a complete standstill. While the cloud may have been a frivolous expense for many companies a decade or two ago, its necessity today is indisputable. https://timesofindia.indiatimes.com/spotlight/the-impact-of-covid-19-on-the-cloud-computing-industry/articleshow/75574962.cms
  • 5.
    Growing number ofConnected Devices
  • 6.
    Professor Ramnath Chellappais often credited with being the person who coined the term “cloud computing” in its modern context, at a lecture he delivered in 1997. https://goizueta.emory.edu/faculty/profiles/ramnath-k-chellappa
  • 7.
    Above the Clouds: ABerkeley view of Cloud Computing This paper was published in Feb, 2009 https://www2.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf ● Infinite computing resources available on demand, thereby eliminating the need for Cloud Computing users to plan far ahead for provisioning ● The elimination of an up-front commitment by Cloud users, thereby allowing companies to start small and increase hardware resources only when there is an increase in their needs. ● The ability to pay for use of computing resources on a short-term basis as needed (e.g., processors by the hour and storage by the day) and release them as needed, thereby rewarding conservation by letting machines and storage go when they are no longer useful.
  • 9.
    A physical machinehas a number of attached components like Disk, Power, Networking, Peer-Connectivity. Display, Access components like Keyboard and Mouse are optional.
  • 11.
    Different types ofCloud Computing ● Infrastructure as a Service (Iaas) ○ AWS, Google Cloud, IBM, Microsoft Azure ● Platform as a Service (PaaS) ○ Heroku, App Engine, Beanstalk ● Software as a Service (SaaS) ○ Slack, Dropbox, Google Apps, etc ● Public Cloud ○ AWS, Google Cloud, IBM, Microsoft Azure, etc ● Private Cloud ● Hybrid Cloud ○ VMware, Kubernetes, AWS Outposts, etc
  • 13.
    Building blocks ofCloud Computing Security in an inherent part of any form of cloud environment. It is one of the most primary requirement to have secure and controlled environment, before any business takes decision to move to the cloud. In most contexts, it is defined as a Shared Responsibility Model, where some part is managed by the Cloud Provider and other is managed by the Cloud Users.
  • 14.
  • 16.
    2018 2019 20202021 2022 Cloud Business Process Services (BPaaS) 41.7 43.7 46.9 50.2 53.8 Cloud Application Infrastructure Services (PaaS) 26.4 32.2 39.7 48.3 58.0 Cloud Application Services (SaaS) 85.7 99.5 116.0 133.0 151.1 Cloud Management and Security Services 10.5 12.0 13.8 15.7 17.6 Cloud System Infrastructure Services (IaaS) 32.4 40.3 50.0 61.3 74.1 Total Market 196.7 227.8 266.4 308.5 354.6 Worldwide Public Cloud Service Revenue Forecast (Billions of U.S. Dollars)
  • 17.
    Brief look atAmazon Web Services
  • 18.
    ● First launchedin early 2002 with minimum services ● Official re-launched in 2006 with S3 and EC2 ● S3 is Simple Storage Service to store practically unlimited “objects” in the cloud ● EC2 is Elastic Compute Cloud to create virtual machines ● In 2020, they have 20+ regions across the world ● Netflix, NASA were early users of AWS ● Popular India customers include Hotstar, BYJU’s, Zerodha, OYO, RedBus and many more...
  • 19.
    Interactive AWS Infrastructurehttps://infrastructure.aws/
  • 20.
    In 2020, AmazonWeb Services comprised more than 212 services including computing, storage, networking, database, analytics, application services, deployment, management, mobile, developer tools, and tools for the Internet of Things.
  • 21.
  • 22.
    AWS for Studentsand Educators
  • 23.
    AWS Educate Program AWSEducate is used in more than 200 countries and territories. It connects 2,400 institutions, over 10,000 educators, and hundreds of thousands of students. Through AWS Educate, students and educators have access to content and programs developed to skill up for cloud careers in growing fields. AWS Educate also connects companies hiring for cloud skills to qualified student job seekers with the AWS Educate Job Board.
  • 24.
    AWS Student Ambassador TheAWS Educate Student Ambassador Program gives AWS Educate student members recognition, access to career development opportunities, and other benefits for helping their peers learn about AWS Educate. The program is available to AWS Educate student members globally ages 18+ who are enrolled at a public or private school, college, or university. The application period for the 2020 cohort of the AWS Educate Student Ambassador Program is now closed. Stay tuned for updates and check the AWS Educate student portal regularly for more details on next year’s application cycle.
  • 25.
  • 26.
    AWS for Developers ●CodeCommit - Private git repository to host source code ● CodeBuild, CodePipeline, CodeDeploy - Developer tools to package and deploy changes ● CloudFormation - Infrastructure as a Code service ● S3 - Elastic durable storage at global scale ● EC2 - Virtual machine ● Lambda - Running code without managing servers ● ECS, EKS - Running (Docker) containers in the cloud ● SageMaker - Machine Learning environment in the cloud ● RDS - Popular database services ● DynamoDB - Serverless database ● Route53 - Advanced DNS service ● SQS/SNS - Messaging services for app-level communication and notifications
  • 27.
    Cloud Appliation Architecture ●Geo-proxy to route the requests to the nearest regions ● Load balancers to route the requests to Web Servers ● Load balancers to route the requests to the Application Servers ● Highly available and fault-tolerant Database ● Messaging Services for decoupling the logic ● Performance metrics for continuous assessment of the application ● Using right service for the right use case ○ Store static contents into CDN or Cloud Storage ○ RDS vs Self Hosted Database ○ Load Balancer vs Self Hosted Proxy Servers ○ Queuing Service, Email Service, Notification Service
  • 30.
    Monolithic vs SOAvs Microservice
  • 31.
    VM vs Containersvs Serverless
  • 32.
    Cloud Programming Simplified:A Berkeley View on Serverless Computing Published on Feb, 2019 - 10 years after the original Cloud Computing paper https://www2.eecs.berkeley.edu/Pubs/TechRpts/2019/EECS-2019-3.pdf
  • 33.
    Kubernetes Era Kubernetes derivesa lot of concepts and learning from Google’s internal tool, Borg. In a nutshell, Kubernetes is a “simplified” framework to manage some of the most “complicated” infrastructure like Google’s. https://en.wikipedia.org/wiki/Kubernetes Eventually most of the softwares will be either running in Containers or Serverless Functions
  • 34.
    Quick look atAWS Console
  • 35.
    Demo 1 -NodeJS App on EC2 in 10 Minutes
  • 36.
    Demo 1 -Serverless NodeJS API in 10 Minutes
  • 37.
    Key points ● PostCOVID19 World will be somewhat difficult ● Focus on the fundamentals ● Know your preferred programming language well ● Don’t work on “fancy” AI/ML solutions without core competencies ● Develop Full-Stack mindset, most engineering teams are lean ● Adapt based on the time and situation ● What you know today, may not be relavent after few years ● There is always something new to learn Software engineering was complex and opinionated in 90s, it’s still the same situation today.
  • 38.
    Upcoming Online Events ●AWS India Summit - May 2020 ● Serverless-First Function - May 2020 ● HashiConf Digital - June 2020 ● AWS User Group India
  • 39.
    Thank you! ● LinkedIn@ https://www.linkedin.com/in/dhavaln/ ● Twitter @ dhavaln ● Medium @ https://medium.com/appgambit