aws re:invent 2016: workshop: deploy a swift web application on amazon ecs (con315)

29
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. December 1, 2016 CON315 Workshop: Deploy a Swift Web Application on Amazon ECS Asif Khan, Solutions Architect, AWS

Upload: amazon-web-services

Post on 08-Jan-2017

147 views

Category:

Technology


0 download

TRANSCRIPT

© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.

December 1, 2016

CON315

Workshop: Deploy a Swift Web Application

on Amazon ECS

Asif Khan, Solutions Architect, AWS

What to Expect from the Session

• Four intensive labs which takes you from zero

code to running a complete Swift stack (mobile

client, API, back end) on AWS

• Hands-on experience of AWS services such as

EC2, ECS, ECR, RDS, Mobile Hub, Device

Farm, CloudFormation, CodePipeline,

CodeCommit, etc.

Amazon

ECR

Bastion

HostAmazon ECS Amazon

RDSAmazon Cognito

AWS Device Farm

AWS Mobile HubCodeCommit

CodePipeline

Jenkins

mobile client

Swift is a general-purpose

programming language built using a

modern approach to safety,

performance, and software design

patterns.

www.swift.org

Vapor is a Web Framework for

Swift that works on iOS, macOS,

and Ubuntu.

www.vapor.codes

Docker is the world’s leading software

containerization platform

Amazon EC2 Container Service is a

container management service for deploying and scaling

Docker containers in production.

Amazon ECS makes it easy to securely run containerized

applications at high levels of scale and fault tolerance. You

just add the server capacity you need to your cluster and

upload your container images. Amazon ECS takes care of the

rest. It deploys your containers across a cluster of servers,

and it takes care of load balancing and scaling your

containers. There is no container management software to

install and operate because it is all provided to you as a

service, making it great for production applications.

Amazon EC2 Container Registry (ECR) is a

fully-managed Docker container registry

that makes it easy for developers to store,

manage, and deploy Docker container

images

Amazon Relational Database Service

(Amazon RDS) makes it easy to set up,

operate, and scale a relational database

in the cloud.

AWS Mobile Services are a range of services

to help you develop mobile apps that can

scale to hundreds of millions of users, and

reach global audiences. With AWS, you can

quickly and easily add mobile features to

your app, including user authentication,

data storage, content delivery, backend

logic, analytics dashboards, and push

notifications - all from a single, integrated

console.

AWS Device Farm is an app testing

service that lets you test and interact with

your Android, iOS, and web apps on many

devices at once, or reproduce issues on a

device in real time.

Amazon Cognito lets you easily add user

sign-up and sign-in to your mobile and

web apps.

AWS CodeCommit is a fully-managed

source control service that makes it easy

for companies to host secure and highly

scalable private Git repositories.

AWS CodePipeline is a continuous

delivery service that enables you to model,

visualize, and automate the steps required

to release your software.

https://github.com/awslabs/swift-ecs-workshop

Lab1

Goal: develop a simple products API

using Swift and Vapor, a web framework for

Swift, and deployed it on Amazon ECS

Amazon

ECR

Bastion

Host

Amazon ECS Amazon

RDS

Amazon Cognito

AWS Device Farm

AWS Mobile Hub

CodeCommit

CodePipeline

Jenkins

mobile client

Lab2

Goal: develop a Swift Mobile App using

AWS Mobile Hub and Amazon Cognito and

integrate it to the API you developed in lab 1

Amazon

ECR

Bastion

Host

Amazon ECS Amazon RDS

Amazon Cognito

AWS Mobile Hub

CodeCommit

CodePipeline

Jenkins

mobile client

Lab 3

Goal: test the mobile App developed in

Lab 2 using Amazon Device Farm

Amazon

ECR

Bastion

Host

Amazon

ECSAmazon

RDS

AWS Device Farm

CodeCommit

CodePipeline

Jenkins

mobile client

Lab 4 (Optional)

Goal: Create an automated workflow that

will provision, configure and orchestrate a

pipeline triggering deployment of any

changes to your Swift package. Commit

your changes to AWS CodeCommit and

deploy it on Amazon ECS using AWS

CodePipeline, Jenkins, and AWS

CloudFormation

Amazon

ECR

Bastion

Host

Amazon ECS Amazon

RDS

AmazonCognito

AWS Device Farm

AWS Mobile Hub CodeCommit

CodePipeline

Jenkins

mobile client

Thank you!

Remember to complete

your evaluations!