First Steps in Native Cloud Application

22
First steps in Native Cloud Applications Mauricio “Maltron” Leal <[email protected] > LATAM Developer Experience Expert January/2017

Transcript of First Steps in Native Cloud Application

Page 1: First Steps in Native Cloud Application

First steps inNative Cloud ApplicationsMauricio “Maltron” Leal <[email protected]>LATAM Developer Experience ExpertJanuary/2017

Page 2: First Steps in Native Cloud Application

Is your application ready to scale out ?

Page 3: First Steps in Native Cloud Application

DEVELOPER’S PERSPECTIVE

Is this my problem ? I think it should

be handled by the infra guys

I will think about that later. Let’s focus on my code.

Yes. The sizing is well cover for the whole year

Page 4: First Steps in Native Cloud Application

MONOLITHIC CULTURE

Resources are Infinite and Cheap

Infrastructure is Immutable

Very specialized

and SiloLinear

Thinking

Little Monitoring

(or none)

No Production Feedback

Page 5: First Steps in Native Cloud Application

MONOLITHIC CULTURE

Change is HardChange is Expensive

Change is Labor intensive

Page 6: First Steps in Native Cloud Application

REASON FOR MONOLITH CULTURE

“Any organization that designs a system (defined broadly) will produce a design whose structure is a copy of the organization’s communication structure”

Melvyn Conway1967

Page 7: First Steps in Native Cloud Application

Web Design

Developers

DatabaseAdministration

CONWAY’S LAW IN ACTION

Development Department

DatabaseDepartment

DesignDepartment

Knowledge & ExperienceBorder

Page 8: First Steps in Native Cloud Application

KNOWLEDGE AND EXPERIENCE BORDER

No Experience

SharedNo Cross

Knowledge

Page 9: First Steps in Native Cloud Application

Cloud is a Solution ?Scale On Demand

Improve Time to Market

More Resilient Systems

Page 10: First Steps in Native Cloud Application

Low ProductivityHigh Control

High ProductivityLow Control

IaaSLegacyHosting

IaaS+Middleware

IaaS+Container

xPaaSSaaS

BPaaS

LegacyApplications

Cloud-BasedApplications

Native CloudApplications

EVOLUTION OF APPLICATIONS

Page 11: First Steps in Native Cloud Application

http://searchitoperations.techtarget.com/definition/native-cloud-application-NCA

NATIVE CLOUD APPLICATION

"A Native Cloud Application (NCA) is a program that is designed specifically for a Cloud Computing Architecture."

Page 12: First Steps in Native Cloud Application

NATIVE CLOUD APPLICATION

"NCAs are designed to take advantage of cloud computing frameworks, which are composed of loosely-coupled cloud services. That means that developers must break down tasks into a separate services that can run on several servers in different locations. Because the infrastructure that supports a Native Cloud App does not run locally, NCAs must be planned with redundancy in mind so the application can withstand equipment failure and be able to remap IP addresses automatically should hardware fail."

http://searchitoperations.techtarget.com/definition/native-cloud-application-NCA

Page 13: First Steps in Native Cloud Application

NATIVE CLOUD APPLICATION

http://searchitoperations.techtarget.com/definition/native-cloud-application-NCA

"NCAs are designed to take advantage of cloud computing frameworks, which are composed of loosely-coupled cloud services. That means that developers must break down tasks into a separate services that can run on several servers in different locations. Because the infrastructure that supports a Native Cloud App does not run locally, NCAs must be planned with redundancy in mind so the application can withstand equipment failure and be able to remap IP addresses automatically should hardware fail.”

Page 14: First Steps in Native Cloud Application

CLOUD’S ASSUMPTIONS

Resources are costly

It can change anytime

Page 15: First Steps in Native Cloud Application

Technology ProcessPeople

CLOUD CULTURE

Organic

Observable

PrioritizeFail Fast

Measurements

Cross Functional GroupEmpowerment

Small Pieces

Standards

Open

Manageable

Elastic Circular

Automation

Utility

Focus onProducts

Page 16: First Steps in Native Cloud Application

CreatingNative Cloud Applications

Page 17: First Steps in Native Cloud Application

Highly

observable

Modeled around business concepts

Culture of Automation

Autonomous

Small and Focused

Design forfailure

Products not Projects

MICROSERVICES

Page 18: First Steps in Native Cloud Application

CULTURE OF AUTOMATION

GIT

1.0

Page 19: First Steps in Native Cloud Application

COREOGRAPHY OVER ORCHESTRATION

Orchestration(Central brain to guide and drive

the process)

Choreography(Inform each part of the system of its job and let it work out the

details)

Page 20: First Steps in Native Cloud Application

EASE OF DEPLOYMENT

Deploy independently of

the rest of the system

Faster boot(Elasticity also faster)

Isolation quickly(in case of failure)

Page 21: First Steps in Native Cloud Application

AU

TOM

ATIO

N

MOBILE APPLICATION

WEB APPLICATION

PARTNER APPLICATION

API GATEWAY

LOAD BALANCER

MO

NIT

OR

ING

IAAS

PAAS

GENERAL ARCHITECTURE

AUTHENTICATIONINTEGRATIONCI/CDSERVICE XSERVICE Y

Page 22: First Steps in Native Cloud Application