Upload
mauricio-maltron-leal
View
79
Download
2
Embed Size (px)
Citation preview
First steps inNative Cloud ApplicationsMauricio “Maltron” Leal <[email protected]>LATAM Developer Experience ExpertJanuary/2017
Is your application ready to scale out ?
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
MONOLITHIC CULTURE
Resources are Infinite and Cheap
Infrastructure is Immutable
Very specialized
and SiloLinear
Thinking
Little Monitoring
(or none)
No Production Feedback
MONOLITHIC CULTURE
Change is HardChange is Expensive
Change is Labor intensive
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
Web Design
Developers
DatabaseAdministration
CONWAY’S LAW IN ACTION
Development Department
DatabaseDepartment
DesignDepartment
Knowledge & ExperienceBorder
KNOWLEDGE AND EXPERIENCE BORDER
No Experience
SharedNo Cross
Knowledge
Cloud is a Solution ?Scale On Demand
Improve Time to Market
More Resilient Systems
Low ProductivityHigh Control
High ProductivityLow Control
IaaSLegacyHosting
IaaS+Middleware
IaaS+Container
xPaaSSaaS
BPaaS
LegacyApplications
Cloud-BasedApplications
Native CloudApplications
EVOLUTION OF APPLICATIONS
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."
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
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.”
CLOUD’S ASSUMPTIONS
Resources are costly
It can change anytime
Technology ProcessPeople
CLOUD CULTURE
Organic
Observable
PrioritizeFail Fast
Measurements
Cross Functional GroupEmpowerment
Small Pieces
Standards
Open
Manageable
Elastic Circular
Automation
Utility
Focus onProducts
CreatingNative Cloud Applications
Highly
observable
Modeled around business concepts
Culture of Automation
Autonomous
Small and Focused
Design forfailure
Products not Projects
MICROSERVICES
CULTURE OF AUTOMATION
GIT
1.0
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)
EASE OF DEPLOYMENT
Deploy independently of
the rest of the system
Faster boot(Elasticity also faster)
Isolation quickly(in case of failure)
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