Originally presented at Swansea Con 2016
http://swanseacon.co.uk
If someone had said to you a few years back that they could build an app, 'push' to the cloud and even scale it in a matter of minutes with a few simple commands, you'd have most likely responded; 'You've got your head in the clouds'.
Times do change. This talk explains this phenomenon called Platform as a Service and how it can benefit you while demonstrating a real live deployment of an application with a blue green deployment and scale-up operation thrown in for fun.
The session will outline,
What is PaaS?
What options do I have?
How do I develop locally?
Dynamic Scaling of applications based on load
How do I build my application to be fault tolerant so I can dynamically scale?
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Get your head in the clouds! - Swansea Con 2016
1. Get your head in the Clouds!
@GregSimons84 @ChrisCundill
2. About Greg
• Platform Architect (I choose this word carefully)
• Build & design applications/platforms for banking systems
• “Code Club Volunteer”
• Enthusiastic software dev with over ten years experience
3. About Chris
• Experienced developer of highly scalable and performant systems
across a variety of sectors.
• Develops with Java & Scala; automates with Ansible.
• Active in local development community and has spoken and exhibited
at various events in South Wales.
• Volunteers for Code Club in a Swansea Primary School
• Currently building & designing reactive, fault tolerant systems in
modern day cloud environments.
5. Contents
• Why?
• The "Cloud” distilled
• IaaS, PaaS, SaaS – what is all this pizzazz?
• Cloud Naïve or Cloud Native?
• Demo: Play app deployment
• Cloud Foundry
• Q&A
7. The "Cloud” distilled
Cloud computing is a model for enabling ubiquitous, convenient, on-demand
network access to a shared pool of configurable computing resources (e.g.,
networks, servers, storage, applications, and services) that can be rapidly
provisioned and released with minimal management effort or service
provider interaction. This cloud model is composed of five essential
characteristics, three service models, and four deployment models.
- The NIST Definition of Cloud Computing
- Source
http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-
145.pdf
12. Cloud Naïve or Cloud Native?
• Naïve means…
• Monolithic
• Build per environment
• Sequential app startup order
• File-only logs
• Single-threaded background jobs
https://12factor.net/
13. What is Cloud Native? Is it this…?
• Elastic infrastructure?
• API Provisioning?
• Scalable?
• Cheaper?
• Containers, Virtualisation?
14. What is “Cloud Native”?
• Building an application that is specifically designed to run in a cloud
environment.
15. Why do we need to be “Cloud Native”?
• Speed
• Safety
• Scale
• Client Diversity
16. Speed
• Fast Provisioning
• Fast delivery
• How do I know if we are already fast?
• How long would it take for you to get a single line of code in to a production
environment?
18. Safety
• Speedy, and safe…
• Building a Production ready application architecture that’s:
• Highly available (100%) not the 5 9’s approach
• So how do we do this?
26. Cloud Foundry - The Vision!
We see a world of cloud computing that is
• UBIQUITOUS and FLEXIBLE
• supporting public, private, and hybrid application environments.
• PORTABLE and INTEROPERABLE
• enabling users to move their applications wherever they need to go.
• VIBRANT and GROWING
• underlying a massive ecosystem of applications and developers based on an
efficient marketplace.
29. Cloud Foundry
• Cloud Foundry is optimized to deliver…
• Fast application development and deployment
• Highly scalable and available architecture
• DevOps-friendly workflows
• Reduced chance of human error
• Multi-tenant compute efficiencies
32. References
http://12factor.net (Wiggins)
Migrating to Cloud-Native Application Architectures (Stine)
Microservices (Fowler)
https://www.cloudfoundry.org/
Stormy Peters @storming
Technology Evangelist Cloud Foundry
Images
“Head in the Clouds”
http://www.midcitiesworship.org
“Distillation”
https://commons.wikimedia.org/wiki/File:Distillation_by_Retort.png
“Separation of Responsibilities”
https://blogs.technet.microsoft.com/kevinremde/2011/04/03/saas-paas-and-iaas-oh-my-cloudy-april-part-3/
Notas do Editor
Chris intro
If someone had said to you a few years back that they could build an app, 'push' to the cloud and even scale it in a matter of minutes with a few simple commands, you'd have most likely responded; 'You've got your head in the clouds'.
Greg
Chris
Greg then Chris
Chris
Chris
Chris
Chris
Greg
Greg
Chris
Chris
Greg
Greg: Look for peoples opinions - agree with that statement?
Greg
Greg
Chris
I have worked in an organization that would need two full days to get a one line code change to a test environment not even production
This already had test automation, ci, cd processes in place.
Greg
Visibility - ability to monitor environments actively – and see failures (metrics, normal operating behaviour profiles) its not just about gathering the data, its how we interpret it.
Fault isolation and tolerance, circuit breaker, micro services.
Automated recovery – chaos monkey at netflix
We scale?
Greg
Scale intelligently
We used to scale horizontally and plan for the peak loads.
Normal operational loads were well below capacity.
If we build for this type of load in the cloud – your organisation is going to take a big hit on costs
Chris
Greg
Who has heard of 12 factor?
Cloud providers like aws beanstalk, cloudfoundry are optimised for this type of deployment
From the 12 factor.net web site
“Any developer building applications which run as a service. Ops engineers who deploy or manage such applications.”
Greg
Build teams around capability- isolates code changes from other system parts
What about dependencies? Versioning strategies for APIs and components?
DevOps (API Provisioning – Application release automation (ARA – IBM Urban Code Deploy)
Self Contained Systems –
Decentralised governance
Waterscrumfall
Chris
Chris
Greg
Greg - UBIQUITOUS and FLEXIBLE
Chris - PORTABLE and INTEROPERABLE – HP Helion, IBM Bluemix, Pivotal PWS (AWS)
Greg - VIBRANT and GROWING
Rabbit represents a community of dedicated contributors, continuously honing their skills not only for the sake of the platform, but for personal growth. The Foundry Rabbit personifies the speed and agility of the Cloud Foundry community. Focused and wise, the rabbit meditates and carefully chooses its path, dressed for action and ready to get its hands dirty.
The Molten mark represents the amalgamation of two concepts: creation and movement. The free flow of ideas is the foundation upon which the open source community is built. This fluidity is represented by the molten liquid being poured into the gear. The gear represents continuous innovation, creation and craftsmanship
Foundation