Pivotal Cloud Foundry: Cloud Native Architecture. A presentation by Adam Zwickey (Cloud Foundry) at Apigee's Adapt or Die, San Francisco 2016. See events.apigee.com
29. SO, WHY AGAIN IS CF
IS THE BEST ^ PLACE
TO RUN
MICROSERVICES?
cloud native platform
30. INFRASTRUCTURE AS A SERVICE
BOSH
CLOUDFOUNDRY RUNTIME
MICROSERVICES
CONCOURS
E
CLOUD PROVIDER INTERFACE (CPI)
BOSH RELEASE/DEPLOYMENT MANIFEST
TWELVE FACTOR APP PATTERNS
EXPLICIT CONTRACTS
CLOUDPORTABILITY
31. CONTRACTS PAY IT
UPWARD• Environment Provisioning
• On-Demand/Automatic Scaling
• Failover/Resilience
• Routing/Load Balancing
• Data Service Operations
• Monitoring
LAYER 1
COMPLIANCE
LAYER 2
PROMISES
Adrian Cockcroft - Speed winds in the marketplaceReactive Manifesto - The system stays responsive in the face of failure.
Reactive Manifesto - The system stays responsive under varying workload.
IT investments change…
Move legacy to CN patterns… spend decreases to run same legacy
not just 1.5x increase in innovation as cost of CN is drastically less
- Big positive/negative hype cycle blogosphere/twittersphere, flame wars, pitchfork battles
- It’s not going to *fix* anything, just like *agile* never was going to fix anything.
- I don’t even like the term “microservices” because it immediately implies something about size, which immediately starts us talking about lines of code, etc….which is horrible for so many reasons.
Building Microservices - Designing Fine-Grained Systems
Interesting - Published October 30, 1999
In the US, Eli Whitney saw the significant optimization of developing "interchangeable parts" for the firearms of the United States military. In July 1801 he built ten guns, all containing the same exact parts and mechanisms, then disassembled them before the United States Congress. He placed the parts in a mixed pile and, with help, reassembled all of the firearms right in front of Congress, much like Blanc had done some years before.
The principles of assembly are these:
(1) Place the tools and the men in the sequence of the operation so that each component part shall travel the least possible distance while in the process of finishing.
(2) Use work slides or some other form of carrier so that when a workman completes his operation, he drops the part always in the same place—which place must always be the most convenient place to his hand—and if possible have gravity carry the part to the next workman for his own.
(3) Use sliding assembling lines by which the parts to be assembled are delivered at convenient distances.
Electrification enabled modern mass production, as with Thomas Edison’s iron ore processing plant (about 1893) that could process 20,000 tons of ore per day with two shifts of five men each. At that time it was still common to handle bulk materials with shovels, wheelbarrows and small narrow gauge rail cars, and for comparison, a canal digger in previous decades typically handled 5 tons per 12-hour day.
the production of large amounts of standardized products
economies of scale, reduction of nonproductive effort, reduction of error and variation, lower costs, higher margins, etc.
Culture, LEAN????
Cloud Native describes the patterns of high performing organizations delivering software faster, consistently and reliably at scale
Assembly Line fair analogy… moving unit of work through pipeline
But as we discuss distributed systems… another analogy fits well because each dependent part of system has own independent pipeline…
a pit stop is choreographed chaos. — Mike Lepp, Joe Gibbs Racing
7 people
73 unique maneuvers
12 seconds
Circa 2009 - current performance is as low as 8 seconds!
Consistency is key… 5, 6, 7 times…
Distributed system… gone are days of - code, test, checkin, int test, deploy prod
Maybe dependencies that must be choreographed…
Concourse
Declarative way…
Spring Boot makes it easy to create Spring-powered, production-grade applications and services with absolute minimum fuss. It takes an opinionated view of the Spring platform so that new and existing users can quickly get to the bits they need.
It's basically a suite, pre-configured, pre-sugared, production-ready set of frameworks/technologies to reduce boiler plate configuration providing you the shortest way to have a Spring web application up and running with smallest line of code/configuration out-of-the-box.
CLOUD NATIVE —
Software built as interchangeable parts (microservices)
Well-choreographed pipelines to ensure contracts and promise are not broken
Taking advantage of modern cloud platforms to ensure cloud portability