SlideShare a Scribd company logo
1 of 35
Download to read offline
AWS in SW Project
Industry case: Microservices Deployment into AWS
Anna Ruokonen / anna.ruokonen@gofore.com / 11.10.2019
11.10.2019
We change the world for the be1er through
digitalisa5on and by renewing ways of working
Gofore Oyj
Established 2001
Strongly growing company:
• Turnover 2018 n. 50 M€ (+49%)
• 558 professioanls (6/2019)
• 170+ clients
• Four acquisition (Leadin, Solinor,
Silver Planet, Mangodesign)
• Listed in First North 2017
2007-2014
We build the change with you
C LO U D
– ensure agile
development and light
maintenance.
L EA D
the digital change.
D ES I G N
new, user-oriented
digital services.
B U I L D
digital services and
service architecture of
the future .
Gofore infrastucture
Helsinki, Jyväskylä, München, Swansea, Tampere, Turku, Tallinn
Javascript/N
ode.js
29%
Java
23 %
C#
13 %
Python
13 %
Other
9 %
PHP
6 %
Scala
4 %
Kotlin
3 %
Clojure
1 %
BACKEND
React
46%
Other
24 %
Angular
13 %
Vue.js
8 %
Angular js
4 %
React
Native
3 %jQuery
3 %
React.js
1 %
JSP
1 %
FRONTEND
USEDTECHNOLOGIES MOBILEDEVELOPMENT PROJECTLENGTH
44% 33% 22%
11
%
11
%
React NaPve PWA Android Flutter iOS
DEVELOPERSPERTEAM
13%
52%
19%
16%
<3months
3 – 12m onths
1 – 3years
> 3years
27%
10%
46%
18%
LOCATIONOFWORK
At Gofore’s office &
rem otely
At client prem ises Com bination of
both
61% 19% 20%
LANGUAGEUSEDINPROJECT
FI EN
Finnish
68%
English
32%
CI /CDPLATFORMSINPROJECTS ABSTRACTIONLEVELFORINFRASTRUCTURE ORCHESTRATIONTECHNOLOGIESINPROJECTS
DEPLOYMENTFREQUENCY
44%
29%
13%
14%
3 – 12months > 3years
41% 33% 17% 9%
NOOFPROJECTSPERDEVELOPER
47% 25%
Jenkins VSTS
Circle
13%15% 3%
Travis
Bamboo
LOCATIONOFINFRAINPROJECTS
46% 33%
AWS Data
center
Azure
4%23% 1%
Google
cloud
Heroku
54%
50%
22%
8%
V i r t u a l M a c h i n e s
C o n t a i n e r s
S e r v e r l e s s
P h y s i c a l h a r d w a r e
Infrequently
Every few weeks
Weekly
Daily
29% 16%
Customscripts ECS
Kubernetes
11% 3%
Marathon
Docker
swarm
3%
Agenda
● AWS Cloud infrastructure and core services
● Microservices
● How to manage your cloud infrastructure?
● Industry case: Microservices Deployment into AWS
Regions and availability zones
The AWS Cloud spans 69 Availability Zones within 22 geographic Regions around the
world
● Performance
● Availability
● Security
● Reliability
● Scalability
● Low-Cost
hEps://aws.amazon.com/about-aws/global-infrastructure/
Simple Storage Service - S3
● Object storage
● Amazon S3 automatically scales to high request rates.
● Used to store and retrieve any amount of data (files)
● Data is stored as objects within resources called “buckets”, and a single object can
be up to 5 terabytes in size.
● Static website hosting
Other storages EBS, databases,..
Elas%c Compute Cloud - EC2
● Virtual machines
● Prizing: On-Demand, Reserved, and Spot
● Host type: Shared HW, Dedicated Host, and Dedicated Instance
● Amazon Machine Image
● Security Groups act as instance level firewall
Elastic Load Balancer - ELB
Application Load Balancer
● HTTP and HTTP
● Distributes incoming application traffic multiple targets
○ EC2 instance, container, IP, and Lambda
● Path-based routing
● SSL termination
● Authentication
● AWS WAF
Network Load Balancer
● TCP
Virtual Private Cloud - VPC
● Enables you to launch AWS resources into a virtual network that you've defined. Your
data center in the cloud.
● A subnet is a range of IP addresses in your VPC
● You define internet connecCvity: Private or Public subnet
● Network Access Control Lists (ACLs)
Use cases:
● Separate dev/test/prod: mulCple VPCs
● N-Cer architecture (mulCple subnets)
Databases
● Relational Databases
○ RDS - (MySQL, MariaDB, PostgreSQL, Oracle, and Microsoft SQL Server DB)
○ Aurora - serverless
● NoSQL
○ DynamoDB - serverless
○ DocumentDB
Microservices
● Applications composed of independent services that communicate over well-defined
APIs
● Autonomous
● Specialized
Containers
● Repeatable
● Self-contained execution environments
● Lightweight
Elastic Container Service (ECS)
● Orchestrates the execution of containers
● Maintains and scales the fleet of nodes running your containers
● Removes the complexity of standing up the infrastructure
Fargate
● Fully managed container service
● Provisioning and managing clusters
● Management of runtime environment
● Scaling
Elas%c Container Service (ECS)
Elas%c Kubernetes Service (EKS)
● Kubernetes is an open-source system for automa%ng deployment, scaling, and
management of containerized applica%ons
● Makes it easy to deploy, manage, and scale containerized applica%ons
● Amazon EKS runs the Kubernetes management infrastructure for you
● Amazon ECR for container images
● Elas%c Load Balancing for load distribu%on
Elastic Kubernetes Service (EKS)
Lambda
● Fully managed compute service
● Runs stateless code
● Supports Node.js, Java, Python, C# , Go, and Ruby
● Runs your code on a schedule or in response to events
● You are charged based on the number of requests for your functions and the
duration
● You can build Serverless microservices with Lambda
● Integrated with API Gateway: Serverless APIs
● Integrated with ALB
Infrastructure as a Code (IaaC)
Versioning, Code review
Cloudformation
● AWS solution
● manages the state for you
● JSON or YAML
Terraform
● 3rd party
● complex logic
● flexible
IaaC: Cloudforma-on example
Resources:
Ec2Instance:
Type: 'AWS::EC2::Instance'
Properties:
SecurityGroups:
- !Ref InstanceSecurityGroup
- MyExistingSecurityGroup
KeyName: mykey
ImageId: ami-7a11e213
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
CI/CD pipelines
AWS Tools
● Code Commit
● Code Build
● Code Deploy
● Elastic Container Registry (ECR)
Other tools
● GitLab CI/CD (https://docs.gitlab.com/ee/ci/README.html)
● Jenkins
Case: IIoT pla,orm - (Apps and Microservices)
API Gateway
Monitoring
Analytics Process
/devices /metadata
/processes
/performance
/customers
AWS Application Load Balancer
/users
/signalData
Case: IIoT pla,orm - (Apps and Microservices)
● GitLab CI/CD pipelines
● Microservices are deployed as Docker containers into Kubernetes cluster (EKS + EC2)
● Front-end applicaHons are deployed into S3 bucket
● Build pipeline and Deploy pipeline
● Dev/test deployment is automaHc
● ProducHon deployment needs manual trigger
● DownHme close to zero
Build
Review
Dev
Staging
Production
Deploy
Gitlab
Gitlab
CI/CD
S3/k8s
git
push
npm
registry
(nexus)
Docker
registry
(Gitlab)
automatic
manual
Pipeline Overview
GitLab CI/CD
● GitLab CI/CD is configured by a file called .gitlab-ci.yml placed at the
repository’s root
● The scripts set in this file are executed by the GitLab Runner
● GitLab CI/CD builds, tests, and deploys your applications to any AWS
infrastructure whether you are using EC2, ECS, or EKS.
CI/CD Pipeline Structure
CI/CD Pipeline Structure
analytics deploy_analy
tics
Front-end applica/ons - Serverless
● React and Angular applica/ons are deployed into S3 bucket
● Copy compiled bundle in S3 bucket
● Kubernetes handles incoming traffic
variables:
S3_BUCKET_NAME: "yourbucket"
build:
..
deploy:
image: python:latest
script:
- pip install awscli
- aws s3 cp ./dist s3://$S3_BUCKET_NAME/ --recursive
only:
- master
Microservices - EKS
● Microservices are deployed on EKS cluster
● Gitlab Pipeline: Build - Publish - Deploy
● Deployment.yaml
○ Replicas
○ Strategy (e.g. rolling, recreate, blue/green, canary)
○ Containers
○ Probes: readiness, healthy
● kubectl: kubectl apply -f deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-world
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 33%
deployment.yaml
template:
spec:
containers:
- name: hello
image: hello-world:<VERSION>
ports:
- containerPort: 8080
readinessProbe:
httpGet:
path: /healthy
port: 8080
initialDelaySeconds: 2
periodSeconds: 2
build:
...
publish:
...
deploy:
stage: deploy
image: helm-kubectl
script:
- kubectl config set-cluster k8s --server="${SERVER}"
- kubectl config set clusters.k8s.certificate-authority-data ${CERTIFICATE_AUTHORITY_DATA}
- kubectl config set-credentials gitlab --token="${USER_TOKEN}"
- kubectl config set-context default --cluster=k8s --user=gitlab
- kubectl config use-context default
- sed -i "s/<VERSION>/${CI_COMMIT_SHORT_SHA}/g" deployment.yaml
- kubectl apply -f deployment.yaml
.gitlab-ci.yml
Pipeline Philosophy
● Separation of concerns (build, deploy)
● Reusability (shared pipeline code)
● Build/Generate only once
● Aim for "internal open-source model" (e.g. shared npm packages)
● Aim for best practices and standard conventions used by open-source communities
(Javascript/Typescript)
(Aki Mäkinen, Gofore)
Thank You
Anna Ruokonen anna.ruokonen@gofore.com

More Related Content

What's hot

AWS re:Invent 2016: NEW LAUNCH! Lambda Everywhere (IOT309)
AWS re:Invent 2016: NEW LAUNCH! Lambda Everywhere (IOT309)AWS re:Invent 2016: NEW LAUNCH! Lambda Everywhere (IOT309)
AWS re:Invent 2016: NEW LAUNCH! Lambda Everywhere (IOT309)Amazon Web Services
 
(NET307) Pinterest: The road from EC2-Classic To EC2-VPC
(NET307) Pinterest: The road from EC2-Classic To EC2-VPC(NET307) Pinterest: The road from EC2-Classic To EC2-VPC
(NET307) Pinterest: The road from EC2-Classic To EC2-VPCAmazon Web Services
 
Greetings from AWS User Group Taiwan
Greetings from AWS User Group TaiwanGreetings from AWS User Group Taiwan
Greetings from AWS User Group TaiwanCliff Chao-kuan Lu
 
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013Amazon Web Services
 
Nested Beanstalk Deployment - Brett Sutter, Minneapolis
 Nested Beanstalk Deployment - Brett Sutter, Minneapolis Nested Beanstalk Deployment - Brett Sutter, Minneapolis
Nested Beanstalk Deployment - Brett Sutter, MinneapolisAWS Chicago
 
AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...
AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...
AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...Amazon Web Services
 
Kubernetes on AWS gone wild
Kubernetes on AWS gone wildKubernetes on AWS gone wild
Kubernetes on AWS gone wildChristian Jantz
 
DevOps – Culture of continuous delivery & collaboration
DevOps – Culture of continuous delivery & collaborationDevOps – Culture of continuous delivery & collaboration
DevOps – Culture of continuous delivery & collaborationVinothini Raju
 
Azure Labs: Confluent on Azure Container Services & Real-time Search with Red...
Azure Labs: Confluent on Azure Container Services & Real-time Search with Red...Azure Labs: Confluent on Azure Container Services & Real-time Search with Red...
Azure Labs: Confluent on Azure Container Services & Real-time Search with Red...HostedbyConfluent
 
Intro to Batch Processing on AWS - DevDay Los Angeles 2017
Intro to Batch Processing on AWS - DevDay Los Angeles 2017Intro to Batch Processing on AWS - DevDay Los Angeles 2017
Intro to Batch Processing on AWS - DevDay Los Angeles 2017Amazon Web Services
 
Building a PaaS with Docker and AWS
Building a PaaS with Docker and AWSBuilding a PaaS with Docker and AWS
Building a PaaS with Docker and AWSAmazon Web Services
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSAWS Vietnam Community
 
E301 Elastic Beanstalk PaaS
E301 Elastic Beanstalk PaaSE301 Elastic Beanstalk PaaS
E301 Elastic Beanstalk PaaSThanh Nguyen
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud PlatformOpsta
 
Cloudsolutionday 2016: Getting Started with Severless Architecture
Cloudsolutionday 2016: Getting Started with Severless ArchitectureCloudsolutionday 2016: Getting Started with Severless Architecture
Cloudsolutionday 2016: Getting Started with Severless ArchitectureAWS Vietnam Community
 

What's hot (20)

AWS re:Invent 2016: NEW LAUNCH! Lambda Everywhere (IOT309)
AWS re:Invent 2016: NEW LAUNCH! Lambda Everywhere (IOT309)AWS re:Invent 2016: NEW LAUNCH! Lambda Everywhere (IOT309)
AWS re:Invent 2016: NEW LAUNCH! Lambda Everywhere (IOT309)
 
(NET307) Pinterest: The road from EC2-Classic To EC2-VPC
(NET307) Pinterest: The road from EC2-Classic To EC2-VPC(NET307) Pinterest: The road from EC2-Classic To EC2-VPC
(NET307) Pinterest: The road from EC2-Classic To EC2-VPC
 
Greetings from AWS User Group Taiwan
Greetings from AWS User Group TaiwanGreetings from AWS User Group Taiwan
Greetings from AWS User Group Taiwan
 
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
Scalable Media Processing in the Cloud (MED302) | AWS re:Invent 2013
 
Nested Beanstalk Deployment - Brett Sutter, Minneapolis
 Nested Beanstalk Deployment - Brett Sutter, Minneapolis Nested Beanstalk Deployment - Brett Sutter, Minneapolis
Nested Beanstalk Deployment - Brett Sutter, Minneapolis
 
AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...
AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...
AWS re:Invent 2016: How Thermo Fisher Is Reducing Mass Spectrometry Experimen...
 
Intro to Serverless
Intro to ServerlessIntro to Serverless
Intro to Serverless
 
Infrastructure as Code on AWS
Infrastructure as Code on AWSInfrastructure as Code on AWS
Infrastructure as Code on AWS
 
104 meets cloud
104 meets cloud104 meets cloud
104 meets cloud
 
Kubernetes on AWS gone wild
Kubernetes on AWS gone wildKubernetes on AWS gone wild
Kubernetes on AWS gone wild
 
DevOps – Culture of continuous delivery & collaboration
DevOps – Culture of continuous delivery & collaborationDevOps – Culture of continuous delivery & collaboration
DevOps – Culture of continuous delivery & collaboration
 
Azure Labs: Confluent on Azure Container Services & Real-time Search with Red...
Azure Labs: Confluent on Azure Container Services & Real-time Search with Red...Azure Labs: Confluent on Azure Container Services & Real-time Search with Red...
Azure Labs: Confluent on Azure Container Services & Real-time Search with Red...
 
Intro to Batch Processing on AWS - DevDay Los Angeles 2017
Intro to Batch Processing on AWS - DevDay Los Angeles 2017Intro to Batch Processing on AWS - DevDay Los Angeles 2017
Intro to Batch Processing on AWS - DevDay Los Angeles 2017
 
Sundog Media Toolkit
Sundog Media Toolkit Sundog Media Toolkit
Sundog Media Toolkit
 
Building a PaaS with Docker and AWS
Building a PaaS with Docker and AWSBuilding a PaaS with Docker and AWS
Building a PaaS with Docker and AWS
 
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWSCloudsolutionday 2016: DevOps workflow with Docker on AWS
Cloudsolutionday 2016: DevOps workflow with Docker on AWS
 
E301 Elastic Beanstalk PaaS
E301 Elastic Beanstalk PaaSE301 Elastic Beanstalk PaaS
E301 Elastic Beanstalk PaaS
 
Serverless
ServerlessServerless
Serverless
 
Introduction to Google Cloud Platform
Introduction to Google Cloud PlatformIntroduction to Google Cloud Platform
Introduction to Google Cloud Platform
 
Cloudsolutionday 2016: Getting Started with Severless Architecture
Cloudsolutionday 2016: Getting Started with Severless ArchitectureCloudsolutionday 2016: Getting Started with Severless Architecture
Cloudsolutionday 2016: Getting Started with Severless Architecture
 

Similar to AWS in Practice

Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kuberneteskloia
 
Ghost Environment
Ghost EnvironmentGhost Environment
Ghost EnvironmentPratipD
 
Deep Dive on Microservices and Docker
Deep Dive on Microservices and DockerDeep Dive on Microservices and Docker
Deep Dive on Microservices and DockerKristana Kane
 
ACDKOCHI19 - Journey from a traditional on-prem Datacenter to AWS: Challenges...
ACDKOCHI19 - Journey from a traditional on-prem Datacenter to AWS: Challenges...ACDKOCHI19 - Journey from a traditional on-prem Datacenter to AWS: Challenges...
ACDKOCHI19 - Journey from a traditional on-prem Datacenter to AWS: Challenges...AWS User Group Kochi
 
Introduction to AWS & Cloud Services
Introduction to AWS & Cloud ServicesIntroduction to AWS & Cloud Services
Introduction to AWS & Cloud ServicesAnn Venkataraman
 
SRV409 Deep Dive on Microservices and Docker
SRV409 Deep Dive on Microservices and DockerSRV409 Deep Dive on Microservices and Docker
SRV409 Deep Dive on Microservices and DockerAmazon Web Services
 
AWS Summit Benelux 2013 - Media and Online Advertising on AWS
AWS Summit Benelux 2013 - Media and Online Advertising on AWSAWS Summit Benelux 2013 - Media and Online Advertising on AWS
AWS Summit Benelux 2013 - Media and Online Advertising on AWSAmazon Web Services
 
Lightening the burden of cloud resources administration: from VMs to Functions
Lightening the burden of cloud resources administration: from VMs to FunctionsLightening the burden of cloud resources administration: from VMs to Functions
Lightening the burden of cloud resources administration: from VMs to FunctionsEUBrasilCloudFORUM .
 
Google Cloud Fundamentals by CloudZone
Google Cloud Fundamentals by CloudZoneGoogle Cloud Fundamentals by CloudZone
Google Cloud Fundamentals by CloudZoneIdan Tohami
 
reInvent 2021 Recap and k9s review
reInvent 2021 Recap and k9s reviewreInvent 2021 Recap and k9s review
reInvent 2021 Recap and k9s reviewFaheem Memon
 
Monitoring kubernetes across data center and cloud
Monitoring kubernetes across data center and cloudMonitoring kubernetes across data center and cloud
Monitoring kubernetes across data center and cloudDatadog
 
Aws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaAws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaHelen Rogers
 
Neev cloud services with AWS
Neev cloud services with AWSNeev cloud services with AWS
Neev cloud services with AWSNeev Technologies
 
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul MaddoxAWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul MaddoxAWS Riyadh User Group
 
Convergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency WooConvergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency WooTriNimbus
 
Application Lifecycle Management on AWS
Application Lifecycle Management on AWSApplication Lifecycle Management on AWS
Application Lifecycle Management on AWSDavid Mat
 
Drilett aws vpc_presentation_shared
Drilett aws vpc_presentation_sharedDrilett aws vpc_presentation_shared
Drilett aws vpc_presentation_sharedDavid Rilett
 
Making Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with NovaMaking Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with NovaGregor Heine
 

Similar to AWS in Practice (20)

Managing Your Cloud Assets
Managing Your Cloud AssetsManaging Your Cloud Assets
Managing Your Cloud Assets
 
Self-Service Supercomputing
Self-Service SupercomputingSelf-Service Supercomputing
Self-Service Supercomputing
 
Ultimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on KubernetesUltimate Guide to Microservice Architecture on Kubernetes
Ultimate Guide to Microservice Architecture on Kubernetes
 
Ghost Environment
Ghost EnvironmentGhost Environment
Ghost Environment
 
Deep Dive on Microservices and Docker
Deep Dive on Microservices and DockerDeep Dive on Microservices and Docker
Deep Dive on Microservices and Docker
 
ACDKOCHI19 - Journey from a traditional on-prem Datacenter to AWS: Challenges...
ACDKOCHI19 - Journey from a traditional on-prem Datacenter to AWS: Challenges...ACDKOCHI19 - Journey from a traditional on-prem Datacenter to AWS: Challenges...
ACDKOCHI19 - Journey from a traditional on-prem Datacenter to AWS: Challenges...
 
Introduction to AWS & Cloud Services
Introduction to AWS & Cloud ServicesIntroduction to AWS & Cloud Services
Introduction to AWS & Cloud Services
 
SRV409 Deep Dive on Microservices and Docker
SRV409 Deep Dive on Microservices and DockerSRV409 Deep Dive on Microservices and Docker
SRV409 Deep Dive on Microservices and Docker
 
AWS Summit Benelux 2013 - Media and Online Advertising on AWS
AWS Summit Benelux 2013 - Media and Online Advertising on AWSAWS Summit Benelux 2013 - Media and Online Advertising on AWS
AWS Summit Benelux 2013 - Media and Online Advertising on AWS
 
Lightening the burden of cloud resources administration: from VMs to Functions
Lightening the burden of cloud resources administration: from VMs to FunctionsLightening the burden of cloud resources administration: from VMs to Functions
Lightening the burden of cloud resources administration: from VMs to Functions
 
Google Cloud Fundamentals by CloudZone
Google Cloud Fundamentals by CloudZoneGoogle Cloud Fundamentals by CloudZone
Google Cloud Fundamentals by CloudZone
 
reInvent 2021 Recap and k9s review
reInvent 2021 Recap and k9s reviewreInvent 2021 Recap and k9s review
reInvent 2021 Recap and k9s review
 
Monitoring kubernetes across data center and cloud
Monitoring kubernetes across data center and cloudMonitoring kubernetes across data center and cloud
Monitoring kubernetes across data center and cloud
 
Aws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon ElishaAws-What You Need to Know_Simon Elisha
Aws-What You Need to Know_Simon Elisha
 
Neev cloud services with AWS
Neev cloud services with AWSNeev cloud services with AWS
Neev cloud services with AWS
 
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul MaddoxAWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
AWS reinvent 2019 recap - Riyadh - Containers and Serverless - Paul Maddox
 
Convergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency WooConvergence of Containers and Serverless by Mency Woo
Convergence of Containers and Serverless by Mency Woo
 
Application Lifecycle Management on AWS
Application Lifecycle Management on AWSApplication Lifecycle Management on AWS
Application Lifecycle Management on AWS
 
Drilett aws vpc_presentation_shared
Drilett aws vpc_presentation_sharedDrilett aws vpc_presentation_shared
Drilett aws vpc_presentation_shared
 
Making Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with NovaMaking Service Deployments to AWS a breeze with Nova
Making Service Deployments to AWS a breeze with Nova
 

Recently uploaded

Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012rehmti665
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Deliverybabeytanya
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsThierry TROUIN ☁
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Servicesexy call girls service in goa
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts servicevipmodelshub1
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)Damian Radcliffe
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsstephieert
 
Gram Darshan PPT cyber rural in villages of india
Gram Darshan PPT cyber rural  in villages of indiaGram Darshan PPT cyber rural  in villages of india
Gram Darshan PPT cyber rural in villages of indiaimessage0108
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607dollysharma2066
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Sheetaleventcompany
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Roomgirls4nights
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Roomishabajaj13
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkataanamikaraghav4
 

Recently uploaded (20)

Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
Call Girls South Delhi Delhi reach out to us at ☎ 9711199012
 
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on DeliveryCall Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
Call Girls In Mumbai Central Mumbai ❤️ 9920874524 👈 Cash on Delivery
 
AlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with FlowsAlbaniaDreamin24 - How to easily use an API with Flows
AlbaniaDreamin24 - How to easily use an API with Flows
 
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine ServiceHot Service (+9316020077 ) Goa  Call Girls Real Photos and Genuine Service
Hot Service (+9316020077 ) Goa Call Girls Real Photos and Genuine Service
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts serviceChennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
Chennai Call Girls Alwarpet Phone 🍆 8250192130 👅 celebrity escorts service
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)How is AI changing journalism? (v. April 2024)
How is AI changing journalism? (v. April 2024)
 
Radiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girlsRadiant Call girls in Dubai O56338O268 Dubai Call girls
Radiant Call girls in Dubai O56338O268 Dubai Call girls
 
Gram Darshan PPT cyber rural in villages of india
Gram Darshan PPT cyber rural  in villages of indiaGram Darshan PPT cyber rural  in villages of india
Gram Darshan PPT cyber rural in villages of india
 
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
FULL ENJOY Call Girls In Mayur Vihar Delhi Contact Us 8377087607
 
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
Call Girls Service Chandigarh Lucky ❤️ 7710465962 Independent Call Girls In C...
 
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 6 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With RoomVIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
VIP Kolkata Call Girls Salt Lake 8250192130 Available With Room
 
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With RoomVIP Kolkata Call Girl Salt Lake 👉 8250192130  Available With Room
VIP Kolkata Call Girl Salt Lake 👉 8250192130 Available With Room
 
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls KolkataLow Rate Call Girls Kolkata Avani 🤌  8250192130 🚀 Vip Call Girls Kolkata
Low Rate Call Girls Kolkata Avani 🤌 8250192130 🚀 Vip Call Girls Kolkata
 
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Defence Colony Delhi 💯Call Us 🔝8264348440🔝
 
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in  Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Jamuna Vihar Delhi reach out to us at 🔝9953056974🔝
 
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls KolkataVIP Call Girls Kolkata Ananya 🤌  8250192130 🚀 Vip Call Girls Kolkata
VIP Call Girls Kolkata Ananya 🤌 8250192130 🚀 Vip Call Girls Kolkata
 

AWS in Practice

  • 1. AWS in SW Project Industry case: Microservices Deployment into AWS Anna Ruokonen / anna.ruokonen@gofore.com / 11.10.2019 11.10.2019
  • 2. We change the world for the be1er through digitalisa5on and by renewing ways of working
  • 3. Gofore Oyj Established 2001 Strongly growing company: • Turnover 2018 n. 50 M€ (+49%) • 558 professioanls (6/2019) • 170+ clients • Four acquisition (Leadin, Solinor, Silver Planet, Mangodesign) • Listed in First North 2017 2007-2014
  • 4. We build the change with you C LO U D – ensure agile development and light maintenance. L EA D the digital change. D ES I G N new, user-oriented digital services. B U I L D digital services and service architecture of the future .
  • 5. Gofore infrastucture Helsinki, Jyväskylä, München, Swansea, Tampere, Turku, Tallinn
  • 6. Javascript/N ode.js 29% Java 23 % C# 13 % Python 13 % Other 9 % PHP 6 % Scala 4 % Kotlin 3 % Clojure 1 % BACKEND React 46% Other 24 % Angular 13 % Vue.js 8 % Angular js 4 % React Native 3 %jQuery 3 % React.js 1 % JSP 1 % FRONTEND USEDTECHNOLOGIES MOBILEDEVELOPMENT PROJECTLENGTH 44% 33% 22% 11 % 11 % React NaPve PWA Android Flutter iOS DEVELOPERSPERTEAM 13% 52% 19% 16% <3months 3 – 12m onths 1 – 3years > 3years 27% 10% 46% 18% LOCATIONOFWORK At Gofore’s office & rem otely At client prem ises Com bination of both 61% 19% 20% LANGUAGEUSEDINPROJECT FI EN Finnish 68% English 32%
  • 7. CI /CDPLATFORMSINPROJECTS ABSTRACTIONLEVELFORINFRASTRUCTURE ORCHESTRATIONTECHNOLOGIESINPROJECTS DEPLOYMENTFREQUENCY 44% 29% 13% 14% 3 – 12months > 3years 41% 33% 17% 9% NOOFPROJECTSPERDEVELOPER 47% 25% Jenkins VSTS Circle 13%15% 3% Travis Bamboo LOCATIONOFINFRAINPROJECTS 46% 33% AWS Data center Azure 4%23% 1% Google cloud Heroku 54% 50% 22% 8% V i r t u a l M a c h i n e s C o n t a i n e r s S e r v e r l e s s P h y s i c a l h a r d w a r e Infrequently Every few weeks Weekly Daily 29% 16% Customscripts ECS Kubernetes 11% 3% Marathon Docker swarm 3%
  • 8. Agenda ● AWS Cloud infrastructure and core services ● Microservices ● How to manage your cloud infrastructure? ● Industry case: Microservices Deployment into AWS
  • 9. Regions and availability zones The AWS Cloud spans 69 Availability Zones within 22 geographic Regions around the world ● Performance ● Availability ● Security ● Reliability ● Scalability ● Low-Cost hEps://aws.amazon.com/about-aws/global-infrastructure/
  • 10. Simple Storage Service - S3 ● Object storage ● Amazon S3 automatically scales to high request rates. ● Used to store and retrieve any amount of data (files) ● Data is stored as objects within resources called “buckets”, and a single object can be up to 5 terabytes in size. ● Static website hosting Other storages EBS, databases,..
  • 11. Elas%c Compute Cloud - EC2 ● Virtual machines ● Prizing: On-Demand, Reserved, and Spot ● Host type: Shared HW, Dedicated Host, and Dedicated Instance ● Amazon Machine Image ● Security Groups act as instance level firewall
  • 12. Elastic Load Balancer - ELB Application Load Balancer ● HTTP and HTTP ● Distributes incoming application traffic multiple targets ○ EC2 instance, container, IP, and Lambda ● Path-based routing ● SSL termination ● Authentication ● AWS WAF Network Load Balancer ● TCP
  • 13. Virtual Private Cloud - VPC ● Enables you to launch AWS resources into a virtual network that you've defined. Your data center in the cloud. ● A subnet is a range of IP addresses in your VPC ● You define internet connecCvity: Private or Public subnet ● Network Access Control Lists (ACLs) Use cases: ● Separate dev/test/prod: mulCple VPCs ● N-Cer architecture (mulCple subnets)
  • 14. Databases ● Relational Databases ○ RDS - (MySQL, MariaDB, PostgreSQL, Oracle, and Microsoft SQL Server DB) ○ Aurora - serverless ● NoSQL ○ DynamoDB - serverless ○ DocumentDB
  • 15. Microservices ● Applications composed of independent services that communicate over well-defined APIs ● Autonomous ● Specialized Containers ● Repeatable ● Self-contained execution environments ● Lightweight
  • 16. Elastic Container Service (ECS) ● Orchestrates the execution of containers ● Maintains and scales the fleet of nodes running your containers ● Removes the complexity of standing up the infrastructure Fargate ● Fully managed container service ● Provisioning and managing clusters ● Management of runtime environment ● Scaling
  • 18. Elas%c Kubernetes Service (EKS) ● Kubernetes is an open-source system for automa%ng deployment, scaling, and management of containerized applica%ons ● Makes it easy to deploy, manage, and scale containerized applica%ons ● Amazon EKS runs the Kubernetes management infrastructure for you ● Amazon ECR for container images ● Elas%c Load Balancing for load distribu%on
  • 20. Lambda ● Fully managed compute service ● Runs stateless code ● Supports Node.js, Java, Python, C# , Go, and Ruby ● Runs your code on a schedule or in response to events ● You are charged based on the number of requests for your functions and the duration ● You can build Serverless microservices with Lambda ● Integrated with API Gateway: Serverless APIs ● Integrated with ALB
  • 21. Infrastructure as a Code (IaaC) Versioning, Code review Cloudformation ● AWS solution ● manages the state for you ● JSON or YAML Terraform ● 3rd party ● complex logic ● flexible
  • 22. IaaC: Cloudforma-on example Resources: Ec2Instance: Type: 'AWS::EC2::Instance' Properties: SecurityGroups: - !Ref InstanceSecurityGroup - MyExistingSecurityGroup KeyName: mykey ImageId: ami-7a11e213 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
  • 23. CI/CD pipelines AWS Tools ● Code Commit ● Code Build ● Code Deploy ● Elastic Container Registry (ECR) Other tools ● GitLab CI/CD (https://docs.gitlab.com/ee/ci/README.html) ● Jenkins
  • 24. Case: IIoT pla,orm - (Apps and Microservices) API Gateway Monitoring Analytics Process /devices /metadata /processes /performance /customers AWS Application Load Balancer /users /signalData
  • 25. Case: IIoT pla,orm - (Apps and Microservices) ● GitLab CI/CD pipelines ● Microservices are deployed as Docker containers into Kubernetes cluster (EKS + EC2) ● Front-end applicaHons are deployed into S3 bucket ● Build pipeline and Deploy pipeline ● Dev/test deployment is automaHc ● ProducHon deployment needs manual trigger ● DownHme close to zero
  • 27. GitLab CI/CD ● GitLab CI/CD is configured by a file called .gitlab-ci.yml placed at the repository’s root ● The scripts set in this file are executed by the GitLab Runner ● GitLab CI/CD builds, tests, and deploys your applications to any AWS infrastructure whether you are using EC2, ECS, or EKS.
  • 30. Front-end applica/ons - Serverless ● React and Angular applica/ons are deployed into S3 bucket ● Copy compiled bundle in S3 bucket ● Kubernetes handles incoming traffic variables: S3_BUCKET_NAME: "yourbucket" build: .. deploy: image: python:latest script: - pip install awscli - aws s3 cp ./dist s3://$S3_BUCKET_NAME/ --recursive only: - master
  • 31. Microservices - EKS ● Microservices are deployed on EKS cluster ● Gitlab Pipeline: Build - Publish - Deploy ● Deployment.yaml ○ Replicas ○ Strategy (e.g. rolling, recreate, blue/green, canary) ○ Containers ○ Probes: readiness, healthy ● kubectl: kubectl apply -f deployment.yaml
  • 32. apiVersion: apps/v1 kind: Deployment metadata: name: hello-world spec: replicas: 3 strategy: type: RollingUpdate rollingUpdate: maxSurge: 1 maxUnavailable: 33% deployment.yaml template: spec: containers: - name: hello image: hello-world:<VERSION> ports: - containerPort: 8080 readinessProbe: httpGet: path: /healthy port: 8080 initialDelaySeconds: 2 periodSeconds: 2
  • 33. build: ... publish: ... deploy: stage: deploy image: helm-kubectl script: - kubectl config set-cluster k8s --server="${SERVER}" - kubectl config set clusters.k8s.certificate-authority-data ${CERTIFICATE_AUTHORITY_DATA} - kubectl config set-credentials gitlab --token="${USER_TOKEN}" - kubectl config set-context default --cluster=k8s --user=gitlab - kubectl config use-context default - sed -i "s/<VERSION>/${CI_COMMIT_SHORT_SHA}/g" deployment.yaml - kubectl apply -f deployment.yaml .gitlab-ci.yml
  • 34. Pipeline Philosophy ● Separation of concerns (build, deploy) ● Reusability (shared pipeline code) ● Build/Generate only once ● Aim for "internal open-source model" (e.g. shared npm packages) ● Aim for best practices and standard conventions used by open-source communities (Javascript/Typescript) (Aki Mäkinen, Gofore)
  • 35. Thank You Anna Ruokonen anna.ruokonen@gofore.com