wordpresscafe - deploying wordpress using kontena
TRANSCRIPT
The Developer FriendlyContainer & Micro Services
PlatformJussi Nummelin, Resident Wharfie
@JNummelin
The Past, Present and Future of Computing
© 2016 Kontena, Inc.
INFRA
HOST OS
APP
INFRA
HOST OS
APP
INFRA
HOST OS
APP
INFRA
HOST OS
HYPERVISOR
GUEST OS
GUEST OS
GUEST OS
APP APP APP
INFRA
HOST OS
CONTAINER ENGINE
APP APP APP
Legacy Virtualization ContainerizationYear 2014 à
What is Kontena?
© 2015 Kontena, Inc.
Open Source container & micro services platform built to maximize developer
happiness. Works on any cloud, easy to setup, simple to use.
How does it work?
Kontena GridA number of physical or virtual machines – Kontena Nodes– create a Kontena Grid. The nodes may be located anywhere; in single data center, different AZs or different cloud providers.
Overlay NetworkKontena will automatically create an overlay network powered by Weave and connect all nodes of a Grid. Overlay network enable services to communicate with each other in multi-host, multi-AZ environment.
Service DiscoveryKontena has a built-in service discovery powered by etcd. It is used to automatically assign DNS addresses for any services running in Kontena. It is also used by Kontena’s load balancer for zero-downtime operation.
OrchestrationKontena’s orchestrator is distributing, running and monitoring all Kontena Services in a Grid. Services may be stateless or stateful, and they are automatically distributed across Nodes in a Grid.
Containerized WorkloadsWith Kontena, all containerized workloads are described as Services. Kontena Service is composed of containers based on the same image file. Services may be scaled and linked together to create complex elastic apps.
OS
Docker
Kontena Nodes & AgentKontena Agent may be installed to
any machine capable of running Docker. It is running as a privileged
container in a machine.
Kontena MasterKontena Master is orchestrating the
entire Kontena system. It provides APIs used by Kontena CLI, Web UI and
third party integrations.
Kontena Master may be installed as high-availability setup if needed.
All Batteries Included!
Built-In Image RegistrySometimes projects can not use publicly
hosted container image registries like DockerHub. Kontena comes with built-in
container image registry providing private and secure solution.
Built-In VPN AccessAll containers are run inside a virtual private
network by default. Nothing is exposed to Internet unless explicitly defined. With
Kontena’s built-in VPN access developers can securely access those resources.
Built-In Load BalancerKontena comes with built-in load balancer.
Based on Haproxy. It features fully automatic, zero-downtime operation due to deep
integration with Kontena’s service discovery and orchestration technology.
Aggregated Stats & LogsKontena provides real-time log and statistics streams containers. The streams may be grouped and aggregated to produce service level streams. This allows easy viewing of logs and statistics for your application CPU, memory, disk and network usage.
User Management with Audit TrailAll events and actions performed through Kontena CLI or APIs are logged into audit trail. Combined with users and access control, the audit trail support makes Kontena a reliable and secure solution for any enterprise deployments.
Built-In Secrets ManagementWhen your application requires access to APIs or databases, you'll often need to use secrets such as passwords and access tokens for authenticating the access. Kontena Vault is a secure key/value storage that can be used to manage secrets in Kontena.
WordPress architectureLoad
balancingLoad balancingLoad
balancing
Load balancingLoad
balancingWP servers
Replicated filesystem
Replicated databaseReplicated
databaseReplicated filesystem
Setup Galera cluster
root@node1:/# docker run \--name galera-1 \-v /my/own/datadir:/var/lib/mysql\--add-host node1.example.com:${node1} \--add-host node2.example.com:${node2} \--add-host node3.example.com:${node3} \-p 13306:3306 –d galera:basic \--wsrep-cluster-name=test \--wsrep-cluster-address=gcomm://
root@node*:/# export node1=10.11.32.174root@node*:/# export node2=10.11.33.37root@node*:/# export node3=10.11.31.176
root@node2:/# docker run \--name galera-2 \-v /my/own/datadir:/var/lib/mysql\--add-host node1.example.com:${node1} \--add-host node2.example.com:${node2} \--add-host node3.example.com:${node3} \-p 13306:3306 –d galera:basic \--wsrep-cluster-name=test \--wsrep-cluster-address=gcomm://node1.example.com:13306
root@node3:/# docker run \--name galera-3 \-v /my/own/datadir:/var/lib/mysql\--add-host node1.example.com:${node1} \--add-host node2.example.com:${node2} \--add-host node3.example.com:${node3} \-p 13306:3306 –d galera:basic \--wsrep-cluster-name=test \--wsrep-cluster-address=gcomm://node1.example.com:13306
docker exec -ti node1 mysql -e 'show status like "wsrep_cluster_sizeà wsrep_cluster_size == 3
" @kontenainc
# slack.kontena.io
$ github.com/kontena/kontena
meetup.com/pro/kontena
% www.kontena.io
Stay up to date!