MicroServices sur AWS

27
Micro-Services sur AWS Cédric DUPUI Solutions Architect [email protected] @aws_actus

Transcript of MicroServices sur AWS

Micro-Services sur AWSCédric DUPUI – Solutions Architect

[email protected]

@aws_actus

Micro

Services

Source: Pixabay

#1 Componentization

via Services

Source: littlevisuals.co

#2 Organized around

Business Capabilities

Source: http://moicani.over-blog.com/2014/03/hey-monsieur-l-homme-orchestre.html

#3 Products

not Projects

Source: lyzadanger via Wikimedia Commons

#4 Smart endpoints

and dumb pipes

Source: David Shankbone via Wikimedia Commons

#5 Decentralization

Source: Ishift via Wikimedia Commons

#6 Infrastructure

Automation

Source: Vincent Diamante via Wikimedia Commons

#7 Design

for failure

Source: Robert Lawton via Wikimedia Commons

#8 Evolutionary

Design

Source: http://themetapicture.com/evolution-of-a-gamer/

AldebaranCloudServices

Aldebaran Technological Context

• Small team of Cloud folks developing« Cloud oriented » applications

• Embedded software developers– Not familiar with Web/Cloud

specific constraints• Scalability ?• Exploitation?• Many languages / technologies

to learn

– Need tools and methods to easilybuild and run new services

Source: nDevilTV via Wikimedia Commons

Limitations

• Monolithic services

• Hard to evolve (“/api/1” only)

• Strongly coupled one with another and withclients code

• Each service encompasses features thatmay be spreaded across the wholearchitecture

• Services may provide illegitimate featureswith respect to their business concerns

Source: CATHERINE PRIOR via Wikimedia Commons

Towards a Modular ArchitectureS3 DynamoDB SQS

EC2DynamoDB

µService Model Pros & Cons

• Time to market: Lifecycle releases

of services are “independant”

• Increased evolutivity and new

services creation enabler

• Better control over QoS properties

• Increased workload to set up and

manage multiple environments

• Architecture rationalization

• Services Governance

DevOps Approach

✓ ✗

DevOps Methodology & Tooling

Tools of the Trade:

Jenkins, GIT, RedMine, Chef, CloudFormation,

Elastic Beanstalk, Docker (!), etc.

Challenges and Enablers

• Too many resources: O( NbOfServices x Versions x Environments )

Finer grained resource mutualisation is required

• high workload to setup & manage all these environments

Better integration of DevOps tooling

• Development / Production environments descrepancies

Container technology can help

DevOps dream is to allow logic to be easily executed

upon events within a specific infrastructure context

that has controlable QoS properties

Ideal World …

Introducing Amazon EC2 Container Service

http://aws.amazon.com/ecs/

A fully Docker-compatible, fully managed, Linux container service

Why Containers ?

Benefits for micro-services

• Speed

• Consistency

• Density / Resource Efficiency

• Flexibility

Source: Pixabay

Key Components

• Container-Enabled AMIs

• ECS Agent

• Cluster Manager

• Container Scheduler

• Tasks/Task Definitions

• Repositories / Storage / Networking

Source: Morio via Wikimedia Commons

Introducing AWS Lambda

http://aws.amazon.com/lambda/

“A PaaS for event-driven micro-services”

Werner Voegels.

AWS Lambda

Respond quickly to new information

Build back-end services that perform at scale

Run your code without managing infrastructure

Cost-effective and efficient

NodeJS module

Event Handler

IAM Role for lamda

execution

Resource limits

Triggering Events

Lambda function to invoke

Invoking IAM role

Inscrivez-vous gratuitement à l’adresse :

aws.amazon.com/summits/paris

Thank You