Since many apps are not about just a single container, this talk discusses the ability and benefits of creating an hybrid Docker cluster capacity leveraging on Linux+Windows OS and x86+ARM architectures.
Moreover, the docker nodes composing this cloud will be hosted across several providers (local DC, cloud vendors such as Azure or AWS), in order to face various scenarios (cloud migration, elasticity...).
2. @adrienblind @lpiotPlease twit us on #experiences !
On-demand & pay-per-use
DevOps compliant : easy automation,
Infra-as-code, versionnable, reproductible
Leads to new usecases: elastic
applications, ephemeral environments…
The cloud is sexy
3. @adrienblind @lpiotPlease twit us on #experiences !
Versatile resources
Fail-over through distributed architecture
Rebuild vs. restore
Frequency of reinstall
Pay per-use but… low perf/cost ratio
load-balancing
network-based architecture : asynchronous
architecture
A cloudy picture
4. @adrienblind @lpiotPlease twit us on #experiences !
Security
No network peripheral security
New organisation-based security model
Managed services
very appealing
but… vendor lock-in
consequences on project/prod collaboration
Keep a decent ROI on recent on-premise
assets
A cloudy picture
5. @adrienblind @lpiotPlease twit us on #experiences !
Docker benefits
‘’A universal, self-sufficient and standard artifact embedding an app module,
and its subsequent infrastructure configuration’’
Docker provides both the artifact and the ecosystem to handle it!
Immutable
Portable Lightweight
Incremental
Versionned/tagged
Disposable
6. @adrienblind @lpiotPlease twit us on #experiences !
Topology & orchestration
App 3
App 2
App 1
X64/WIN X64/LINUX ARM/LINUX
An app is made of several atomic
containers
Compose, Stack & Service enable to
manage topologies of containers accross
a logical cluster of nodes
Docker supports ARM & Windows
Third-part assets may be handled
artificially through abassador containers
7. @adrienblind @lpiotPlease twit us on #experiences !
Span a cluster over providers
Directly over Internet ;)
Swarm mode secures interactions between its nodes (TLS mutual auth, authz, & encryption)
Overlay network trafic may be encrypted across nodes too (use switch --opt encrypted at creation time, enabling
use of IPSEC tunnels / 12h rotating keys)
However, you may wish to interconnect your DC and cloud nodes through dedicated
network connections (ex. Intercloud) , VPNs…
8. @adrienblind @lpiotPlease twit us on #experiences !
Scale the application
through docker service
replicas
Scale the swarm cluster
capacity leveraging on
docker-machine
Scale up, scale down
BEWARE OF
APP ARCHI !
10. @adrienblind @lpiotPlease twit us on #experiences !
Demo’s architecture
Raspberry
(ARM)
Win 2016
SWARM
CLUSTER
Load injector (Apache AB) IIS Website MySQL Backend Overlay network
Linux
X86_64
Linux
X86_64
Linux
X86_64
Linux
X86_64
Linux
X86_64
INTERNET
REDIS
11. @adrienblind @lpiotPlease twit us on #experiences !
A real, hybrid cluster
ARM/Linux
x86_64/Linux
x86_64/Win
x86_64/Linux
15. @adrienblind @lpiotPlease twit us on #experiences !
Docker offers a nice opportunity to create
an abstraction layer to facilitate transition
to the cloud
Hybridation facilitates composite
orchestration when it’ll be fully
operational
Conclusion
16. @adrienblind @lpiotPlease twit us on #experiences !
Step 1
Shift to docker packaging pardigmes
Start deploying your apps through docker (trough CD pipelines
for instance)
Step 2
Shift to dynamic orchestration: swarm cluster handles container
deployments over the cluster, ensures desired instances are up,
etc.
Step 3
Extend your local own cluster to third-part vendors
Step 4
Shift to self-healing clusters (autoscaling nodes for instance)
Plan your migration