SlideShare une entreprise Scribd logo
1  sur  37
Maksim Zhylinski
ALTOROS
@altoros
Who Lives in Our Garden
@uzzable
What containers are?
Infrastructure
Operating system
Container manager
Bins/Libs
App1
Bins/Libs
App3
Bins/Libs
App2
VM
Network
Container
Container
Container
Operating system
VM
Container
Container
Container
Operating system
VM
Container
Container
Container
Operating system
History of containers in
Cloud Foundry
Warden (2011)
• namespaces
• PID
• IPC
• Network
• UTS (hostname)
• cgroups
• cpu
• memory
• devices
• pivot_root
Warden architecture
Warden
client
(DEA)
container
Warden
server
Container
manager
wshd
app
Warden
by Glyn Normington
Protocol
DEA + Warden
(2011)
Diego + Garden
(2014)
Garden
(2014)
Implemented in Go
(Garden = Go warden)
Modular architecture:
supports different back ends
Garden architecture
Garden
client
(Diego)
container
Garden
server wshd
app
Garden
by Glyn Normington
Protocol
Container
manager
Back end
Garden-linux
Back ends
Guardian Greenhouse
Garden-linux
back end
/var/vcap/packages/cflinuxfs2/rootfs
/var/vcap/data/garden/aufs_graph/aufs/diff/…
Rootfs (readonly)
Container file system (read-write)
/var/vcap/data/garden/aufs_graph/aufs/mnt/… Union mount point
Garden filesystem
Docker image
training/webapp
ubuntu:14.04
scratch
Docker image with garden
/var/vcap/data/garden/aufs_graph/aufs/mnt/… Union mount point
training/webapp
ubuntu:14.04 /var/vcap/data/garden/aufs_graph/aufs/diff/…
/var/vcap/data/garden/aufs_graph/aufs/diff/…
/var/vcap/data/garden/aufs_graph/aufs/diff/… Container file system
Docker image layers
Caveats
Only v2 Docker registry API
Does not support private repositories
Source registry should be available on instance create
https://github.com/cloudfoundry-incubator/diego-docker-cache-release
Greenhouse
back end
Files ystem isolation – unique user per
container
Disk usage – NTFS quotas
CPU, Memory usage – Windows Job objects
Network isolation – bind apps directly to
external IP
Guardian
back end
Docker
LXC
lmctfy
OpenVZ
Garden
…more
The Open Containers Initiative
Runtime specification
Image specification
OCI:
Debugging tips
cf ssh <app name>
https://github.com/contraband/gaol
Security
Cloud Foundry
Concourse CI
Garden users
BOSH lite
your app?..
www.altoros.com
blog.altoros.com
37
@uzzable @altoros
Thank you!

Contenu connexe

Tendances

Tendances (20)

Openstack and Reddwarf Overview
Openstack and Reddwarf OverviewOpenstack and Reddwarf Overview
Openstack and Reddwarf Overview
 
WSO2Con ASIA 2016: WSO2 Cloud Strategy Update
WSO2Con ASIA 2016: WSO2 Cloud Strategy UpdateWSO2Con ASIA 2016: WSO2 Cloud Strategy Update
WSO2Con ASIA 2016: WSO2 Cloud Strategy Update
 
Deploying WSO2 Middleware on Kubernetes
Deploying WSO2 Middleware on KubernetesDeploying WSO2 Middleware on Kubernetes
Deploying WSO2 Middleware on Kubernetes
 
Microservices: AutoScaling in Hyper-Microservice Architecture | Nguyễn Trung ...
Microservices: AutoScaling in Hyper-Microservice Architecture | Nguyễn Trung ...Microservices: AutoScaling in Hyper-Microservice Architecture | Nguyễn Trung ...
Microservices: AutoScaling in Hyper-Microservice Architecture | Nguyễn Trung ...
 
Kubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best PracticesKubernetes Monitoring & Best Practices
Kubernetes Monitoring & Best Practices
 
Running and Managing Kubernetes on OpenStack
Running and Managing Kubernetes on OpenStackRunning and Managing Kubernetes on OpenStack
Running and Managing Kubernetes on OpenStack
 
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShiftKubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
Kubernetes 101 - an Introduction to Containers, Kubernetes, and OpenShift
 
Google Cloud Container Security Quick Overview
Google Cloud Container Security Quick OverviewGoogle Cloud Container Security Quick Overview
Google Cloud Container Security Quick Overview
 
OSDC 2018 | From batch to pipelines – why Apache Mesos and DC/OS are a soluti...
OSDC 2018 | From batch to pipelines – why Apache Mesos and DC/OS are a soluti...OSDC 2018 | From batch to pipelines – why Apache Mesos and DC/OS are a soluti...
OSDC 2018 | From batch to pipelines – why Apache Mesos and DC/OS are a soluti...
 
Getting started with OpenStack
Getting started with OpenStackGetting started with OpenStack
Getting started with OpenStack
 
Container security within Cisco Container Platform
Container security within Cisco Container PlatformContainer security within Cisco Container Platform
Container security within Cisco Container Platform
 
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
Architecture of Cisco Container Platform: A new Enterprise Multi-Cloud Kubern...
 
VOID19 Cloud Transformation at Viettel accelerate faster with open infrastru...
VOID19 Cloud Transformation at Viettel  accelerate faster with open infrastru...VOID19 Cloud Transformation at Viettel  accelerate faster with open infrastru...
VOID19 Cloud Transformation at Viettel accelerate faster with open infrastru...
 
AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...
AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...
AWS Summit Singapore 2019 | Latest Trends for Cloud-Native Application Develo...
 
Keystone at openstack multi sites
Keystone at openstack multi sitesKeystone at openstack multi sites
Keystone at openstack multi sites
 
Enhancing Kubernetes with Autoscaling & Hybrid Cloud IaaS
Enhancing Kubernetes with Autoscaling & Hybrid Cloud IaaSEnhancing Kubernetes with Autoscaling & Hybrid Cloud IaaS
Enhancing Kubernetes with Autoscaling & Hybrid Cloud IaaS
 
Neutron high availability open stack architecture openstack israel event 2015
Neutron high availability  open stack architecture   openstack israel event 2015Neutron high availability  open stack architecture   openstack israel event 2015
Neutron high availability open stack architecture openstack israel event 2015
 
Introducing LinuxKit
Introducing LinuxKitIntroducing LinuxKit
Introducing LinuxKit
 
Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...
Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...
Kuryr-Kubernetes: The perfect match for networking cloud native workloads - I...
 
VietOpenStack meetup 7th Kilo overview
VietOpenStack meetup 7th Kilo overviewVietOpenStack meetup 7th Kilo overview
VietOpenStack meetup 7th Kilo overview
 

Similaire à Who Lives in Our Garden?

Similaire à Who Lives in Our Garden? (20)

Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
Bare-metal, Docker Containers, and Virtualization: The Growing Choices for Cl...
 
Containers and Nutanix - Acropolis Container Services
Containers and Nutanix - Acropolis Container ServicesContainers and Nutanix - Acropolis Container Services
Containers and Nutanix - Acropolis Container Services
 
WSO2Con USA 2015: Revolutionizing WSO2 PaaS with Kubernetes & App Factory
WSO2Con USA 2015: Revolutionizing WSO2 PaaS with Kubernetes & App FactoryWSO2Con USA 2015: Revolutionizing WSO2 PaaS with Kubernetes & App Factory
WSO2Con USA 2015: Revolutionizing WSO2 PaaS with Kubernetes & App Factory
 
Docker Introduction
Docker IntroductionDocker Introduction
Docker Introduction
 
Container Security
Container SecurityContainer Security
Container Security
 
Revolutionizing WSO2 PaaS with Kubernetes & App Factory
Revolutionizing WSO2 PaaS with Kubernetes & App FactoryRevolutionizing WSO2 PaaS with Kubernetes & App Factory
Revolutionizing WSO2 PaaS with Kubernetes & App Factory
 
Inside Triton, July 2015
Inside Triton, July 2015Inside Triton, July 2015
Inside Triton, July 2015
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
Docker
DockerDocker
Docker
 
Windows container security
Windows container securityWindows container security
Windows container security
 
Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_Dev opsec dockerimage_patch_n_lifecyclemanagement_
Dev opsec dockerimage_patch_n_lifecyclemanagement_
 
Rooting Out Root: User namespaces in Docker
Rooting Out Root: User namespaces in DockerRooting Out Root: User namespaces in Docker
Rooting Out Root: User namespaces in Docker
 
Andriod - Technical Review
Andriod - Technical ReviewAndriod - Technical Review
Andriod - Technical Review
 
Hands on kubernetes_container_orchestration
Hands on kubernetes_container_orchestrationHands on kubernetes_container_orchestration
Hands on kubernetes_container_orchestration
 
DevOps Braga #11: Docker Anatomy
DevOps Braga #11: Docker AnatomyDevOps Braga #11: Docker Anatomy
DevOps Braga #11: Docker Anatomy
 
Docker Dojo
Docker DojoDocker Dojo
Docker Dojo
 
OpenStack Summit
OpenStack SummitOpenStack Summit
OpenStack Summit
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
State of the Container Ecosystem
State of the Container EcosystemState of the Container Ecosystem
State of the Container Ecosystem
 
WSO2 Container Strategy
WSO2 Container StrategyWSO2 Container Strategy
WSO2 Container Strategy
 

Plus de Altoros

Plus de Altoros (20)

Maturing with Kubernetes
Maturing with KubernetesMaturing with Kubernetes
Maturing with Kubernetes
 
Kubernetes Platform Readiness and Maturity Assessment
Kubernetes Platform Readiness and Maturity AssessmentKubernetes Platform Readiness and Maturity Assessment
Kubernetes Platform Readiness and Maturity Assessment
 
Journey Through Four Stages of Kubernetes Deployment Maturity
Journey Through Four Stages of Kubernetes Deployment MaturityJourney Through Four Stages of Kubernetes Deployment Maturity
Journey Through Four Stages of Kubernetes Deployment Maturity
 
SGX: Improving Privacy, Security, and Trust Across Blockchain Networks
SGX: Improving Privacy, Security, and Trust Across Blockchain NetworksSGX: Improving Privacy, Security, and Trust Across Blockchain Networks
SGX: Improving Privacy, Security, and Trust Across Blockchain Networks
 
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...
Using the Cloud Foundry and Kubernetes Stack as a Part of a Blockchain CI/CD ...
 
A Zero-Knowledge Proof: Improving Privacy on a Blockchain
A Zero-Knowledge Proof:  Improving Privacy on a BlockchainA Zero-Knowledge Proof:  Improving Privacy on a Blockchain
A Zero-Knowledge Proof: Improving Privacy on a Blockchain
 
Crap. Your Big Data Kitchen Is Broken.
Crap. Your Big Data Kitchen Is Broken.Crap. Your Big Data Kitchen Is Broken.
Crap. Your Big Data Kitchen Is Broken.
 
Containers and Kubernetes
Containers and KubernetesContainers and Kubernetes
Containers and Kubernetes
 
Distributed Ledger Technology for Over-the-Counter Trading
Distributed Ledger Technology for Over-the-Counter TradingDistributed Ledger Technology for Over-the-Counter Trading
Distributed Ledger Technology for Over-the-Counter Trading
 
5-Step Deployment of Hyperledger Fabric on Multiple Nodes
5-Step Deployment of Hyperledger Fabric on Multiple Nodes5-Step Deployment of Hyperledger Fabric on Multiple Nodes
5-Step Deployment of Hyperledger Fabric on Multiple Nodes
 
Deploying Kubernetes on GCP with Kubespray
Deploying Kubernetes on GCP with KubesprayDeploying Kubernetes on GCP with Kubespray
Deploying Kubernetes on GCP with Kubespray
 
UAA for Kubernetes
UAA for KubernetesUAA for Kubernetes
UAA for Kubernetes
 
Troubleshooting .NET Applications on Cloud Foundry
Troubleshooting .NET Applications on Cloud FoundryTroubleshooting .NET Applications on Cloud Foundry
Troubleshooting .NET Applications on Cloud Foundry
 
Continuous Integration and Deployment with Jenkins for PCF
Continuous Integration and Deployment with Jenkins for PCFContinuous Integration and Deployment with Jenkins for PCF
Continuous Integration and Deployment with Jenkins for PCF
 
How to Never Leave Your Deployment Unattended
How to Never Leave Your Deployment UnattendedHow to Never Leave Your Deployment Unattended
How to Never Leave Your Deployment Unattended
 
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs
Cloud Foundry Monitoring How-To: Collecting Metrics and LogsCloud Foundry Monitoring How-To: Collecting Metrics and Logs
Cloud Foundry Monitoring How-To: Collecting Metrics and Logs
 
Smart Baggage Tracking: End-to-End Sensor-Based Solution
Smart Baggage Tracking: End-to-End Sensor-Based SolutionSmart Baggage Tracking: End-to-End Sensor-Based Solution
Smart Baggage Tracking: End-to-End Sensor-Based Solution
 
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
Navigating the Ecosystem of Pivotal Cloud Foundry TilesNavigating the Ecosystem of Pivotal Cloud Foundry Tiles
Navigating the Ecosystem of Pivotal Cloud Foundry Tiles
 
AI as a Catalyst for IoT
AI as a Catalyst for IoTAI as a Catalyst for IoT
AI as a Catalyst for IoT
 
Over-Engineering: Causes, Symptoms, and Treatment
Over-Engineering: Causes, Symptoms, and TreatmentOver-Engineering: Causes, Symptoms, and Treatment
Over-Engineering: Causes, Symptoms, and Treatment
 

Dernier

IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
Enterprise Knowledge
 

Dernier (20)

Evaluating the top large language models.pdf
Evaluating the top large language models.pdfEvaluating the top large language models.pdf
Evaluating the top large language models.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 

Who Lives in Our Garden?

Notes de l'éditeur

  1. Hello everyone, I’m happy and proud to be here today. Thank you for coming. My name is Maksim Zhylinski, I work as an engineer in Altoros. My talk is called “Who lives in garden?” and it’s about containers and precisely CloudFoundry containers.
  2. So what containers actually are? Container is a combination of operating system primitives that allows separate out set of processes and make them pretend like they are in own operating system. Add: 6-7 years?
  3. Containers offer higher-level isolation, with many applications running under the host operating system, all of them sharing certain operating system libraries and the operating system's kernel.
  4. Since a container doesn't have to load up an operating system and providers almost no overhead, you can create containers in a split-second, rather than minutes for a virtual machine. That makes containers perfect technology to use in different solutions, like running applications in Platform as a service.
  5. Let’s talk about history of containers in CloudFoundry. Containers was first-class citizens from the very beginning of the Cloud Foundry existence.
  6. First implementation of containers in CloudFoundry was called Warden and it was introduced in 2011. It was written mostly in Ruby with bits of C code.
  7. In order to provide processes isolation from host operating system and other processes was used linux namespaces feature, cgroups for resources limiting and management, pivot_root for filesystem isolation.
  8. Let’s see on warden architecture. It was quite monolithic – warden server, which was providing service to the warden clients (DEA) talking to warden by protobuf-based protocol was coupled in a single application with the container manager, which was responsible for container lifecycle routines.
  9. So, in 2014 brand new CloudFoundry runtime was introduced called Diego instead of good old DEA. It has a lot of cool features, but I will not go into details as far as it’s out of scope of my topic. And as a part of new Diego runtime new container manager was introduced – Garden.
  10. What has changed? Garden was rewritten on Go programming language, as many other components of CloudFoundry. Basically, garden stands for “Go warden”. But, what most important garden was designed in a modular way. What does it mean?
  11. Let’s see garden’s architecture. Still, garden clients (Diego cells) talks to Garden server by protocol (protocol is based on protobuf, but garden server also provides HTTP protocol for debugging purpose). But in order to provide flexibility garden server was decoupled from container manager (which now lives in component called “backend”), so that garden server provides unified contract that does not depend on underlying containers implementation.
  12. What backends are available today? It’s a Garden linux – at the moment default linux containers backend, greenhouse – windows containers backend, and one more linux backend called Guardian.
  13. Garden linux is a successor of warden’s containers implementation, it uses same features to provide process isolation: linux namespaces, cgroups, layered filesystems. But there’s killer-feature was added to garden-linux backend in addition to default buildpack-centric lifecycle is a…
  14. ability to run Docker containers! How does it work?
  15. First of all let’s dig a bit how garden works. Garden (as well as Warden was) uses layered filesystems. During the default for CloudFoundry buildpack lifecycle manager takes rootfs – basically linux root filesystem, and mounts it together with the another layer with application bits using aufs (by default) or overlayfs – to create a single filesystem to pivot_root to.
  16. So how docker images are run with garden? Docker images themselves are consist out of layers each containing diff applied on top of the previous layer.
  17. In order to run docker image garden just mount docker image layers instead of built-in rootfs keeping the rest pretty much the same. Garden uses libraries from Docker so contents of container exactly match the contents of the associated Docker image.
  18. So what’s the caveats? You can use only docker registry of version 2 You can use only public repositories Diego does caches pulled image globally, so garden needs access to Docker registry even when scaling up already running application. Using standard buildpack lifecycle during staging process CloudFoundry creates droplet, which can be reused later, so you can scale up your application and get exactly the same container. With Docker images – if registry is down, or someone deleted or modified image – you’re in trouble. Last item actually not strictly related to the topic of my talk, as far as it’s a business of whole runtime, but not a container manager. I took this three items from a pivotal’s official documentation, but I have to argue points 2 & 3.
  19. There’s a Diego docker cache BOSH release that helps to deal with them. Diego docker cache basically, caches pulled docker images from Docker hub. This helps to break dependency on docker registry availability or images change. But also this cache provides ability to set your credentials during first ‘cf push’. Bad part is that this project is in cloudfoundry-incubator and the feature not yet supported by CloudFoundry CLI, so providing credentials is a bit tricky.
  20. While the Linux is most popular operating system to deploy applications to nowadays, still, it’s not the only one. Dot NET applications are widely spread in enterprise area and it’s mandatory to support them in modern Platform-as-a-Service. Tricky part is that Windows does not support containers, as Linux does. But CloudFoundry runtime team managed to create Greenhouse backend using couple of tricks and techniques.
  21. Filesystem isolation – unique user created per container to utilize native Windows Access Control Lists Disk usage – NTFS quotas To manage memory limits Windows Kernel Job Objects are used … and to isolate network applications launched inside a container bind directly to the external IP of the VM
  22. And the last backend available is called “Guardian”. Why need for another one Linux container backend?
  23. There are plenty of containers implementation novadays: Famous known Docker LXC, that has been for a years already lmctfy made in google OpenVZ …and of course Garden … and many more Which are…
  24. …not compatible with each other.
  25. So in 2015 Open Containers Initiative appeared to create…
  26. industry standards around containers to build open, portable, platform-, cloud- and hardware-independent containers and runtime format.
  27. The OCI currently provides two specifications: the container Image Specification (runtime-spec) and the container Runtime Specification (image-spec).
  28. Main players of containers market has joined this initiative, so I tend to believe in future of unified containers.
  29. For example less than two weeks ago Kelsey Hightower announced native support for OCI containers in Kubernetes. So back to CloudFoundry. Garden already supports OCI containers for a while via it’s runc backend called Guardian. It’s not yet default backend for CloudFoundry. Current version is 0.9. And when it will hit 1.0 it’ll become a default backend for CloudFoundry.
  30. Ok, now some debugging tips for those of you who having troubles with your applications in CloudFoundry containers. Sometimes logs aren’t enough – your application works not as it was supposed to do. You want to get into container to see what’s inside. Maybe some mandatory file is missing, or something with permissions or whatever.
  31. Easiest way is to use CloudFoundry CLI’s built-in SSH command. Each garden container in CF comes with built-in SSH server, which makes it extremely easy.
  32. And you application bit is under root “app” directory.
  33. For those of you who wants to debug container manager itself I recommend to take a look at this tool. It’s basically CLI for garden – you can create and delete containers, shell into it and many other things like Diego does.
  34. And couple of words about security. How secure containers are? If we’re talking about linux-based containers provided by garden-linux and guardian backends… they are based on namespaces and cgroups—core Linux kernel features that have been around for years and used as the basis for many popular projects. So, I believe that you can trust CF containers as much as you can trust the Linux kernel itself. But if we talk about Greenhouse backend, windows containers implementation that it is impossible to create completely isolated filesystem, as linux pivot_root does, so greenhouse containers share Program files folder, so you’d better not to keep any secrets there.
  35. firewall
  36. And finally, what projects do use Garden now? Obviously it’s CloudFoundry Concourse CI – it’s a Continuos Integration and Continuos Delivery modern tool that support pipelining And BOSH lite – BOSH deployed in single VM and uses Garden containers to create jobs.