Presentations given at eZ Conference 2016 in Paris by Björn Dieding, CEO xrow GmbH.
After redesigning our IT infrastructure and all its processes, we came up with a container management software called Kubernetes which can be used in public and private clouds. Why do you need it to use Docker, what is the architecture and what does a continuous delivery pipeline look like?
RMD24 | Retail media: hoe zet je dit in als je geen AH of Unilever bent? Heid...
Running eZ Platform on Kubernetes (presented by Björn Dieding at eZ Conference 2016)
1. eZ Platform on Kubernetes
Managing services running in Linux containers known as Docker
technology
2. Björn Dieding (about me)
Degree in computer science
Working for over 13 years for my own company
Doing technical and strategic advisory
Believes open source is often the better choice.
3. xrow GmbH (about us)
We plan and deliver content & commerce solutions
and digital processes.
We deploy applications in business critical
environments and make them scale.
We select, aggregate and integrate open source
technology and combine them for the benefit of the
client.
Located in Hannover Germany
Photo: Axel Hindemith
5. Containers: Advantages for the developer
• Save, clean and portable runtime for applications
• Puts all the dependencies inside the container
• Hassle-free deployments
• Each application is an isolated and versioned container
„Once it is build – it will run anywhere“
6. Container: Advantages for the administrator
• There are no inconsistencies between test and production
environments
• Fast deployments (continuous deployment / continuous integration)
• A standard format for developers to ship applications
• Containers have better performance
„Once configured – it runs everywhere“
9. What is it Kubernetes?
• is a cluster management software
• donated by Google and released as open source in 2014
• supported by Red Hat
• it’s used as the base of Google’s Cloud Platform and Red Hat’s
Open Shift
• It`s users are SAP, EBAY, Wikimedia, New York Times
“A platform for automating deployment, scaling, and operations of
application containers across clusters of hosts"
13. Features of Kubernetes
• enabling composite
applications and preserving
the one-application-per-
container model
• mounting storage systems
• distributing secrets
• application health checking
• replicating application
instances
• horizontal auto-scaling
• naming and discovery
• load balancing
• rolling updates
• resource monitoring
• log access
• support for introspection and
debugging
• identity and authorization
15. Kubernetes Dictionary
POD
Logical grouping of one or more containers
Replication Controller
Takes care that containers are properly distributed
Namespace
Grouping of PODs. Security barrier between
applications.
Node
Physical or virtual maschine
Service
Is the loadblanced endpoint of one application.
Master
DevOps go there to bring change to the cluster.
Label
You can tag pods and services. Common labels are
the version number, the project name or the
application name.
Scheduler
The component that decides to which node a pod is
bound.
API Server
The one and only Kubernetes API to which all parts of
the software talk to it.
Proxy
The proxy knows how to route traffic, if users and
services request data from services.
Job
A task that is executed also in paralell on many
nodes.
16. Rolling update
Service eZ Studio
eZ Studio
1.5.0
eZ Studio
1.5.0
eZ Studio
1.5.0
eZ Studio
1.5.1
eZ Studio
1.5.1
eZ Studio
1.5.1
Node Node Node
18. Failover Node Crash
Service eZ Studio
eZ Studio
1.5.0
eZ Studio
1.5.0
Node
eZ Studio
1.5.0
Node Node
eZ Studio
1.5.0
19. Autodiscovery of services
$url = "https://10.254.0.1:443/api/v1/namespaces/project123-prod/services";
$json = json_decode(file_get_contents($url));
$ip = $this->services->items["mariadb"]->spec->clusterIP;
$container->setParameter("database_server", $ip );
• Read all services from the API
• Set the proper parameters in your symfony application
20. PODs / Containers for a eZ platform
• Mariadb
• Memcached
• SOLR
• Postfix / SMTP
• eZ platform webserver
• eZ platform cron
• Varnish (Optional)
21. Perils of Kubernetes / Docker
• Filesystem wisely. They all have different features.
• RENAME function is limited in AUFS and OverlayFS
• Make sure the NFS is fast enough
• Take your time to get used to all a new software pieces
• Beware of kernels. Newer kernels have more features, but might be not as
secure.
• Clean up your systems regulary. Rotating containers leaves a lot of junk on
disk.
• Warm your caches before taking containers online.
• Some apps still need to get configured per customer.
22. Recommended Rollout Scenarios
PAAS Provider
7 GB RAM
5 GB Storage
Kubernetes on AWS
90 GB RAM
12 Cores
200 GB Storage
Kubernetes on bare metal
384 GB RAM
36 Cores
2000 GB Storage