Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS vs Microsoft Azure

AWS vs Microsoft Azure

razvan.rusu

May 24, 2015
Tweet

Other Decks in Programming

Transcript

  1. • IT Consultant – ECKO Systems • P-TSP Azure –

    Microsoft RO • PowerShell enthusiast • Main background in Azure and system administration • MCT, MCSE, MCSA, CEH, IBM Specialist About me
  2. • Getting the basics out of the way – Cloud

    Offering – Billing – Management tools – Service vs Service, the big picture • How do I implement my cloud application ? – Network – Compute (PaaS / IaaS) – Storage – Database – High availability – Deploying a test environment • Q&A Agenda
  3. • Web & Worker Roles • SQL Azure • AppFabric

    38 services • EC2 • S3 • SQS 40 services 2010 2006 2013 Azure IaaS History Worker Tier 2013
  4. Geography Amazon: - Regions: 11 - Datacenters: 29 - Edge

    Locations: 53 Microsoft: - Regions: 17 - CDN Endpoints: 31
  5. Acquisition Models Trial + Azure Pass On Demand APN Free

    Tier + AWS Credits Authorized Resellers MOSP MPN / MSDN / DreamSpark Authorized Resellers Reserved Instance Dedicated Instance Enterprise Agreement Spot Instance
  6. Billing By the minute Online Calculator By the hour Billing

    Alerts Online Calculator Billing Alerts Billing Reports Billing Reports Change Payment Method Change Payment Method Spending Limit
  7. • Amazon Web Services is now a $5 billion business

    and had $1.56 billion in revenue in the first quarter of 2015 • Microsoft’s Commercial Cloud was at a run rate of $5.5 billion in Q2 FY 2015 and $6.3 billion in Q3. It’s aiming for a run rate of $20 billion by 2018. - Run rate = How the financial performance of a company would look if you were to extrapolate current results out over a certain period of time. - Commercial Cloud = Azure + Office 365 + Dynamics CRM Online Revenue
  8. Terminology Azure AWS Application Services Azure Search CloudSearch Cloud Service

    Elastic Beanstalk App Service API Management - Visual Studio Online - Azure Active Directory Identity and Access Management (IAM) Directory Service Service Bus Simple Queue Service (SQS) Azure AWS Compute VMs Elastic Compute Cloud (EC2) Docker extension EC2 Container service - AWS Lambda Cloud Service - Batch SWF Remote App WorkSpaces AppStream Azure AWS Analytics HDInsight EMR Machine Learning Machine Learning Stream Analytics Kinesis Data Factory Data Pipeline Event Hub - Azure AWS Data Services Storage Simple Storage (S3) StorSimple Storage Gateway Backup Glacier Site Recovery - Media Services Elastic Transcoder Mobile Analytics Cognito CDN CloudFront SQL Database Relational Database Service (RDS) Redshift DocumentDB Dynamo DB - WorkDocs RedisCache ElastiCache Azure AWS Networking Virtual Network VPC VPN Gateway ExpressRoute DirectConnect Traffic Manager Route 53 DNS Load Balancer Elastic Load Balancing Azure AWS Management / Deployment Autoscaling Autoscaling Azure Automation AWS OpsWorks Azure Scheduler - Azure VM Images Amazon Machine Images (AMI) - CodeDeploy Key Vault - - Trusted Advisor - Config Resource Manager CloudFormation Azure AWS Monitoring Operational Insights CloudTrail Application Insights CloudWatch Event Hubs - Notification Hubs Simple Notification Service (SNS) Billing Alerts - BizTalk SES Spending Limit -
  9. • Networking • Compute –IaaS VMs –PaaS VMs (Web /

    Worker Role) • Storage • Database • AutoScaling • Dev / Test – fast deploy Components
  10. Networking Azure DNS Route 53 Virtual Network VPC How to

    buy How to pay Networking Services VMs Dev/Test AutoScale
  11. VPCs and Virtual Networks Virtual Network 10.0.0.0/16 Subnet-1 10.0.1.0/24 Security

    Group NACL Subnet-2 10.0.2.0/24 Security Group NACL Security Group Routing Table 1 Routing Table 2 Internet Gateway Virtual Private Gateway Public IP
  12. Port Forwarding Input Endpoints Endpoint VM1 Public Port: 6510 Local

    Port: 3389 Protocol: TCP Name: Remote Desktop Endpoint VM2 Public Port: 6511 Local Port: 22 Protocol: TCP Name: SSH
  13. • VPC and Virtual Networks both look alike • In

    AWS, you can create subnets belonging to the same VPC in different datacenters from the same AZ • You cannot move a VM from a virtual network to another • But in Azure you can move VMs on different subnets, as opposed to AWS • Instead, in AWS you can detach NICs and move them around subnets • In AWS you can configure Routing Tables, DHCP Options and, also, public IPs are optional • Similar architecture for hosting domains in the cloud using either Azure DNS, or AWS Route 53 Highlights – the good
  14. Blob Storage Azure PersistentVM / EC2.Model.Reservation Server OS Disk Resource

    Disk Local Storage Distributed Switch NIC x NIC y CPU RAM Instance Size NIC 1 NIC 2 VM Images \ AMI Endpoints Security Groups IP Addressing Other settings: - Affinity Groups vs Placement Groups - Availability Set vs AutoScaling Group - Install Agent + VM Extensions (Azure only) - Choose if you want: - Disk Encryption - SSD Disk Virtual Network Data Disk Data Disk VM Images \ AMI VM Images \ AMI VM Resources Physical Resources Azure specific
  15. Gallery Images Available Operating Systems Docker on Ubuntu Server NGINX

    Plus IBM WebSphere Application Server JDK Oracle WebLogic Server SharePoint Server Farm IBM DB2 Advanced Workgroup Server Edition Oracle Database SQL Server SAP HANA Developer Edition Kaspersky Secure Mail Gateway KAV for Linux File Server TrendMicro DSA Barracuda Web Application Firewall Barracuda Message Archiver Barracuda NG Firewall KAV for Windows Servers Enterprise Edition Check Point Virtual Gateway Seagate Backup Service for Microsoft Azure Enterprise Random Password Manager Veeam Cloud Connect VNS3:vpn (Firewall/VPN) Application Infrastructure Security \ protection Management Database Servers CentOS openSUSE Oracle Linux Red Hat Enterprise Linux Ubuntu Server SUSE Linux Enterprise Server Windows Server Site Administrator for SharePoint Chef Server Puppet Enterprise
  16. VM Instance Sizes General Purpose General Purpose Optimized Compute Compute

    Optimized Performance Optimized Network Optimized Compute Intensive GPU Instances Memory Optimized Storage Optimized This is not a 1:1 comparison
  17. AWS Instances Family Type vCPUs Memory (GiB) Instance Storage (GB)

    EBS-Optimized Available Network Performance General purpose T2 t2.micro 1 1 EBS only Low to Moderate t2.small 1 2 EBS only - Low to Moderate t2.medium 2 4 EBS only - Low to Moderate M3 m3.medium 1 3.75 1 x 4 (SSD) - Moderate m3.large 2 7.5 1 x 32 (SSD) - Moderate m3.xlarge 4 15 2 x 40 (SSD) Yes High m3.2xlarge 8 30 2 x 80 (SSD) Yes High Compute optimized C4 c4.large 2 3.75 EBS only Yes Moderate c4.xlarge 4 7.5 EBS only Yes High c4.2xlarge 8 15 EBS only Yes High c4.4xlarge 16 30 EBS only Yes High c4.8xlarge 36 60 EBS only Yes 10 Gigabit C3 c3.large 2 3.75 2 x 16 (SSD) - Moderate c3.xlarge 4 7.5 2 x 40 (SSD) Yes Moderate c3.2xlarge 8 15 2 x 80 (SSD) Yes High c3.4xlarge 16 30 2 x 160 (SSD) Yes High c3.8xlarge 32 60 2 x 320 (SSD) - 10 Gigabit GPU instances G2 g2.2xlarge 8 15 1 x 60 (SSD) Yes High g2.8xlarge 32 60 2 x 120 (SSD) - 10 Gigabit Memory optimized R3 r3.large 2 15 1 x 32 (SSD) - Moderate r3.xlarge 4 30.5 1 x 80 (SSD) Yes Moderate r3.2xlarge 8 61 1 x 160 (SSD) Yes High r3.4xlarge 16 122 1 x 320 (SSD) Yes High r3.8xlarge 32 244 2 x 320 (SSD) - 10 Gigabit Storage optimized D2 d2.xlarge 4 30.5 3 x 2048 Yes Moderate d2.2xlarge 8 61 6 x 2048 Yes High d2.4xlarge 16 122 12 x 2048 Yes High d2.8xlarge 36 244 24 x 2048 Yes 10 Gigabit I2 i2.xlarge 4 30.5 1 x 800 (SSD) Yes Moderate i2.2xlarge 8 61 2 x 800 (SSD) Yes High i2.4xlarge 16 122 4 x 800 (SSD) Yes High i2.8xlarge 32 244 8 x 800 (SSD) - 10 Gigabit
  18. Azure Instances Family Type Cores Processor Memory Data Disk Count

    Resource Disk Resource Disk Type General purpose Standard A-Series ExtraSmall 1 0.75 1 20 HDD Small 1 1.75 2 70 Medium 2 3.5 4 135 Large 4 7 8 285 ExtraLarge 8 14 16 605 A5 2 14 4 135 A6 4 28 8 285 A7 8 56 16 605 Network optimized Standard A-Series A8 8 Intel® Xeon® E5-2670 56 16 382 HDD A9 16 112 16 382 Compute intensive Standard A-Series A10 8 Intel® Xeon® E5-2670 56 16 382 HDD A11 16 112 16 382 Optimized compute Standard D-Series Standard_D1 1 Intel Xeon E5-2660 3.5 2 50 SSD Standard_D2 2 7 4 100 Standard_D3 4 14 8 250 Standard_D4 8 28 16 500 Standard_D11 2 14 4 100 Standard_D12 4 28 8 250 Standard_D13 8 56 16 500 Standard_D14 16 112 32 1000 Performance optimized Standard G-Series Standard_G1 2 Intel Xeon E5 v3 28 4 384 SSD Standard_G2 4 56 8 768 Standard_G3 8 112 16 1536 Standard_G4 16 224 32 3072 Standard_G5 32 448 64 6144 - There is also a Basic version for the A0-A5 series. - There is also a DS-Series, which is the D-Series with support for Premium Storage (SSD)
  19. • Very similar architecture • No floppy and dvd drives

    in AWS • Domain join • Exclusive access Highlights
  20. PaaS Elastic Beanstalk Web Apps Cloud Service Service Bus Simple

    Queue Service Azure AD IAM Directory Services
  21. Cloud Service Architecture Cloud Service Frontend Availability Set Application Server

    1 Availability Set Application Server 2 Availability Set Frontend Availability Set Application Server 1_IN_0 Application Server 1_IN_1 Application Server 2_IN_0 Application Server 2_IN_1 Frontend_IN_0 Frontend_IN_1 Frontend_IN_2 Public IP (VIP 2) Port 80 Public IP (VIP 1) DNS Table prod.cloudapp.net VIP 1 {guid}.cloudapp.net VIP 2 DNS Table prod.cloudapp.net VIP 2 {guid}.cloudapp.net VIP 1
  22. Elastic Beanstalk architecture Route 53 DNS Table myFirstEBApp-prod.elasticbeanstalk.com EIP 1

    myFirstEBApp-staging.elasticbeanstalk.com EIP 2 … Elastic Beanstalk container AutoScaling group AutoScaling group Internet Gateway Tomcat 1 Tomcat 2 Server 1 Server 2 Internet Gateway IIS EIP 1 EIP 2
  23. • Similar architecture, in terms of web and worker roles

    • Easy to swap between environments • In AWS you can deploy other platforms than Windows Server with IIS, like you do in Azure • ElasticBeanstalk isn’t actually PaaS, it’s just a way of doing IaaS Highlights
  24. JSON Structure – AWS vs Azure { "Resources": { "HelloBucket":

    { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "PublicRead" } }, "Ec2Instance": { "Type": "AWS::EC2::Instance", "Properties": { "SecurityGroups": [ { "Ref": "InstanceSecurityGroup" } ], "KeyName": "mykey", "ImageId": "" } }, "InstanceSecurityGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "GroupDescription": "Enable SSH access via port 22", "SecurityGroupIngress": [ { "IpProtocol": "tcp", "FromPort": "22", "ToPort": "22", "CidrIp": "0.0.0.0/0" } ] } } } } { "resources": [ { "name": "mysqlserver", "type": "Microsoft.Sql/servers", "properties": { "administratorLogin": "admin", "administratorLoginPassword": "password$123" }, "resources": [ { "name": "mysqldatabase", "type": "databases", "dependsOn": ["[concat('Microsoft.Sql/servers/', 'mysqlserver')]"], "properties": { "edition": "Web", "maxSizeBytes": "1073741824" } }, { "type": "firewallrules", "name": "AllowAllWindowsAzureIps", "dependsOn": ["[concat('Microsoft.Sql/servers/', 'mysqlserver')]"], "properties": { "endIpAddress": "255.255.255.255", "startIpAddress": "0.0.0.0" } } ] } ] }
  25. Desired State Configuration Configuration MyWebConfig { Node "Server001" { WindowsFeature

    MyRoleExample { Ensure = "Present" Name = "Web-Server" } File MyFileExample { Ensure = "Present" Type = "Directory“ Recurse = $true SourcePath = "some_accesible_repository_path" DestinationPath = "C:\inetpub\wwwroot" DependsOn = "[WindowsFeature]MyRoleExample" } Service MyService { State = "Running" StartupType = "Auto" Name = "BITS" } } }
  26. AWS: • Prepare AMI • Create ELB • Implement AutoScaling:

    – Create AutoScaling Launch Config • AMI • EC2 Instance type – Create AutoScaling Group • AZ • EC2 Instance numbers – Create AutoScaling Policies AutoScaling - step by step Azure IaaS: • Prepare VM Template with sysprep • Deploy 2 VMs into Availability Set • Create multiple other VMs in same Availability Set • Enable NLB on the desired Endpoint of the VMs • Shut down the new VMs • Configure Policies [=the only step required for PaaS]
  27. • AWS can also spawn in other datacenters in the

    same AZ • Both platforms: nice, but what about code updates ? – Azure’s answer: • Upload changes/code into blobs • Set VMs to use a custom script at startup, which executes the new changes – Amazon’s answer: • Destroy the old Auto Scaling Launch Config • Create a new one with the updated AMI • Put the instances from the Auto Scaling Group into a Standby state • Assign the new Auto Scaling Launch Config to the existing Auto Scaling Group • Deploy new instances and remove the old ones in Standby state • What about automatic domain join ? • Azure can monitor CPU, while AWS can monitor: • CPU • Network Out • Memory Used, Memory Available • Swap Used • Disk Space Used, Disk Space Available etc, (but it also costs more) Conclusions
  28. Q&A