This document discusses a vision for programming the cloud as a single unit by linking heterogeneous components across different cloud providers, technologies, and data models. It proposes that containers can act as the "glue" to enable cloud programming by providing a universal compute element. Key elements needed include:
1) A universal application description format like CNAB to describe and deliver cloud applications.
2) A global services directory like an evolved Docker Hub to make existing components discoverable and support billing/security.
3) Ensuring execution trust through identity, monitoring, and analyzing applications' actual behavior to ensure they function as expected.
4. Let’s state one vision about the short term future…
A programmable Internet would be the ultimate tool of mass innovation
Tomorrow we will program the Cloud as one single unit
5. What do we need to achieve this goal ?
API Access Application Description
App Components Catalog Execution Trust
6. The application logic is executed in containers
We must link heterogeneous components
• PaaS services from Cloud providers
• Different technologies
• Various data models
• Multiple programming technics
Containers are the solution
• Containers are ubiquitous
• they are agile, meta-morphic
• You can execute whatever you want in them
• They are the glue that allows Cloud Programming
API
API
API
7. A Universal Application Description
• The container is a Universal compute element
• Cloud Apps need to be described
• This description needs to support Build and Use
Introducing CNAB (Cloud Native Application Bundle)
• Designed by Docker & Microsoft
• Cloud Agnostic
• Deliverable Apps
• Signed & Secure
https://cnab.io/
8. The need of a global application components directory
• How to be aware about existing components ?
• Should we link at Build and/or at RunTime ?
• What about security and billing ?
Is the Docker Hub able to implement this ?
• The Docker Hub delivers images
• It will evolve to something bigger
• It needs to support service APIs
Docker Hub
?
GSD
9. Trust in execution is key to enable Cloud Programming
• Trust is about 2 subjects:
1) I need to trust you to execute your code
2) Does my App do what is expected ?
• Local security / Global behavior analysis
• Digital identity to ensure Trust
• WW Wallet / Invoicing / Charge Back
• Global independent cloud monitoring
• Service based performance analysis
• In Code Logging/Monitoring to trace business logic
10. Putting it all together
1. API Access
2. Business Logic in Containers
3. Universal Application Description
4. Global Services Directory
5. Execution Trust & Monitoring
6. Deviancy Protection
CNAB
API
API
GSD
Dev.
API
API
11. How to Start Programing the Cloud
• Understand CNAB at: https://cnab.io/
• Start experimenting CNAB for containers
with Docker Apps:
https://github.com/docker/app
• Deploy your first hybrid app with Duffle:
https://github.com/deislabs/duffle
• Experiment the CNAB integration with
developer environments using Docker
Desktop Enterprise at:
https://goto.docker.com/Docker-Desktop-
Enterprise.html
CNAB
DUFFLE