awareness of• languages: java, python, ruby, go, .net and node.js • web servers: iis, tomcat,...

25
Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP System Development Team Leader Oct 11, 2018 Awareness of

Upload: others

Post on 22-May-2020

16 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP

System Development Team LeaderOct 11, 2018

Awareness of

Page 2: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Outline

• Gartner Magic Quadrant

• Pace of Innovation

• Certification Path

• Global Infrastructure

• Shared Responsibility Model

• General Services

• Serverless Services

• CI/CD Services

• Monitoring Services

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 2

Page 3: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Gartner Magic Quadrant for IaaS

Oct 11, 2018 3Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP

OEM vs ODM

Page 4: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Pace of Innovation

10 24 61

159

516

1017

1430

0

200

400

600

800

1000

1200

1400

1600

2006 2008 2010 2012 2014 2016 2017

AWS has launched 1,430 new features and services in 2017 only, and over 3,000 features and services since 2006

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 4

Page 5: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Certification Path

5Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP

Page 6: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Global Infrastructure

6Oct 11, 2018

Region & Number of Availability Zones

New Region (coming soon)

Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP

Page 7: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Global Infrastructure

7Oct 11, 2018

Region

Edge Location

Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP

Page 8: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Shared Responsibility Model

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 8

Page 9: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

General Services

• Universal service

• Immediate effect

• Enable Access to AWS by Console, APIs or CLI

• Users, Groups, Roles and Policies

• Web identity federation

• Amazon Cognito

Identity and Access Management (IAM)

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 9

Page 10: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

General Services

• Pricing models• On demand instance

• Spot instance

• Reserved instance

• Dedicated instance

• Type of instances• General purpose

• Compute optimized

• Memory optimized

• Accelerated computing

• Storage optimized

• Auto scaling

• DB on instance

• Elastic IP address Elastic Compute Cloud (EC2)

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 10

Auto Scaling DB on instance Elastic IP

Page 11: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

General Services

• Object based storage “not bootable”

• 99.99% availability and 99.999999999% durability

• Unlimited 0 to 5 TB files stored in “Buckets”

• Universal unique namespace

• Can host a static website

• Encryption can be applied in• Server side (AES, KMS, Custom)

• In transit (SSL/TSL)

• Client side

Simple Storage Service (S3)

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 11

EBS Glacier Snowball

Page 12: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

• Relational SQL database service

• OLTP based

• Supports• SQL Server

• Oracle

• MySQL

• Aurora

• MariaDB

• Multi AZ

• Read replicas

Relational Database Service (RDS)

General Services

• Fast and scalable data warehouse service

• OLAP based

• Data warehousing

• BI and big data

Redshift

• Managed NoSQL database service

• Low latency

• Key-value data model

• Consistency• Strong

• Eventual

• Can be cached by DAX with a write through cache

DynamoDB

• Fully managed caching service

• Memcached

• Redis

• Caching strategies:• Lazy loading

• Write through

ElasticCache

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 12

Page 13: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

General Services

• Application load balancer• Works on OSI layer 7

• Best for HTTP/HTTPS traffic

• Can balance across web apps, web servers and containers

• Network load balancer• Works on OSI layer 4

• Best for TCP traffic

• High performance and costly solution

• VPC is service that enables the users to• logically isolate their IT infrastructure

• CloudFront• Caching and content delivery

• Represent the edge locations

• Route 53 is a DNS service that allows to map• Domain names to EC2, ELB or S3

• HTTP responses• (2xx) vs (3xx) vs (4xx) vs (5xx)

Elastic Load Balancing (ELB)

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 13

Virtual Private Cloud (VPC) CloudFront Route 53

Page 14: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

General Services

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 14

• Free service to automatically deploy and scale the web app

• Supported stacks and technologies• Languages: Java, Python, Ruby, Go, .NET and Node.js

• Web servers: IIS, Tomcat, Passenger and Puma

• Can fully manage the EC2 including • Updates, monitoring, metrics and health checks

• Deployment strategies• All at once

• Rolling

• Rolling with additional batch

• Immutable

• Blue/Green

Elastic Beanstalk

• Free service to describe and provision all AWS infrastructure components

• By using text files (JSON or YAML) you can template and code your cloud infrastructure

CloudFormation

Page 15: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Sample 3-Tier Auto-Scalable Web Application Architecture

Page 16: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Serverless Services

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 16

Data Centers

IaaS

PaaS

Containers

ServerlessEC2 Launched in 2006

History of Cloud Computing

Page 17: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Serverless Services

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 17

• Serverless computing service

• Running modes

• Triggered by another services (event-driven) e.g. Change in S3

• Respond to API calls

• Scales “out” not “up”

• 1 event = 1 function, 1 function can trigger other functions → 1 event = X functions

• Can do things globally (across regions)

• X-Ray used to debug lambda

• Some limits

• 300 sec maximum execution time

• 3008 MB maximum memory allocation

Lambda

• Fully managed serverless service to build APIs that can control and manage all AWS services

• Expose HTTPS endpoints to define RESTful API

• Can be custom exposed as SOAP API

• Use API stages to manage and optimize deployments

• Use API keys to track and control usage

• Can have a custom domain

• Response can be cached for TTL

• Can create a custom API by importing a swagger file

• Can be throttled to control traffic or prevent attacks

• Monitor API request by CLoudtrail

API Gateway

Page 18: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Serverless Services

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 18

• Serverless distributed message queueing service

• Enhance decoupling and independence

• Pull-Based queueing service

• Queue types

• Standard queue: do the best for ordering, message delivered at least once

• FIFO queue: strictly ordered, message delivered once, no duplication

• Short Polling VS Long Polling

• Limits

• Message size: max 256 KB (use S3 for larger messages)

• Visibility timeout: 30 sec and 12 hours max

• Retention period: 4 days default and 14 days max

• Dead letter queue for unprocessed messages

Simple Queue Service (SQS)

• Serverless, scalable and high available notification service allows you to send push notifications from the cloud

• Push-Based queueing service

• Supported formats

• SMS

• Email

• SQS

• HTTP

• Subscription based with pub-sub model where users can subscribe to

• One to one topic

• One to many topic

• Dead letter queue for unprocessed messages

Simple Notification Service (SNS)

Page 19: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Sample IOT by Serverless Architecture

Amazon Alexa API Gateway

Lambda Function

Lambda Function

SQS Queue SNS Topic

API Gateway Raspberry PI Robocar

Synchronous Path

Asynchronous Path

Page 20: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

CI/CD Services

• Do you know in the last few years AWS have seamlessly handed over 50 million deployments per year?

• And that equates to at least one deployment taking place every single second without any service outages

• So how do they do that?

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 20

By automating their software development process and software release process through well

implemented CI/CD practices!

Page 21: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

CI/CD Services

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 21

Code Build Test Release Deploy

Code Build Test

Code Build Test Release

Continuous Integration

Continuous Delivery

Continuous Deployment

Page 22: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

• Source control service based on Git

• Manage code versions

• Track code changes

• Enable collaboration

CodeCommit

CI/CD Services

• Fully managed build service

• Build code

• Run tests

• Produce packages

• Debug builds by

• CodeBuild logs

• CloudWatch

• Configued and customized by BuildSpec file (YAML)

CodeBuild

• Fully managed deployment service

• Deployment strategies

• In-Place or Rolling

• Blue/Green

• Configured and customized by AppSpec file (YAML or JSON)

CodeDeploy

• Service to automate end-to-end CI/CD process

• Based on user defined workflow

• Can be configured to auto trigger after commit

CodePipeline

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 22

Page 23: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Sample CI/CD Pipeline Architecture

Page 24: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

• Monitoring and management service

• Provides data and insights about AWS resources

• Collects data in the form of• Logs

• Metrics

• Events

• Alarms

• Can be integrated with on-premises servers

CloudWatch

Monitoring Services

• Governance and operational auditing service

• Logs requests and actions taken through

• AWS console

• AWS SDKs

• CLI tools

• Services’ APIs

CloudTrail

• BI service that helps to

• Reduce cost

• Increase performance

• Improve security

• Provides

• Insights

• Guides

• Best practices

Trusted Advisor

• Debugging and troubleshooting service

• Analyze development and production environments

• Track requests travelling across AWS services

• Able to troubleshoot from a simple 3-tier application to a complex microservices application

X-Ray

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 24

Page 25: Awareness of• Languages: Java, Python, Ruby, Go, .NET and Node.js • Web servers: IIS, Tomcat, Passenger and Puma • Can fully manage the EC2 including • Updates, monitoring,

Oct 11, 2018 Majd Aldeen Masriah AWS CDA, MCSD, PMI-ACP 25

Happy Weekend