Container technology, Microservices, and DevOps

Slides:



Advertisements
Similar presentations
Tableau Software Australia
Advertisements

Installing software on personal computer
11 SERVER CLUSTERING Chapter 6. Chapter 6: SERVER CLUSTERING2 OVERVIEW  List the types of server clusters.  Determine which type of cluster to use for.
Adaptive Server Farms for the Data Center Contact: Ron Sheen Fujitsu Siemens Computers, Inc Sever Blade Summit, Getting the.
Installing and Setting up mongoDB replica set PREPARED BY SUDHEER KONDLA SOLUTIONS ARCHITECT.
Talend 5.4 Architecture Adam Pemble Talend Professional Services.
 Cloud computing  Workflow  Workflow lifecycle  Workflow design  Workflow tools : xcp, eucalyptus, open nebula.
Oracle10g RAC Service Architecture Overview of Real Application Cluster Ready Services, Nodeapps, and User Defined Services.
INSTALLING MICROSOFT EXCHANGE SERVER 2003 CLUSTERS AND FRONT-END AND BACK ‑ END SERVERS Chapter 4.
608D CloudStack 3.0 Omer Palo Readiness Specialist, WW Tech Support Readiness May 8, 2012.
Module 11: Implementing ISA Server 2004 Enterprise Edition.
Oracle Data Integrator Agents. 8-2 Understanding Agents.
Mark E. Fuller Senior Principal Instructor Oracle University Oracle Corporation.
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 12: Planning and Implementing Server Availability and Scalability.
VMware vSphere Configuration and Management v6
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
Data Communications and Networks Chapter 9 – Distributed Systems ICT-BVF8.1- Data Communications and Network Trainer: Dr. Abbes Sebihi.
Replication Store it in multiple places.... Literature Colouris, Dollimore, Kindberg, 2000 –Gets deep into the details of reliable communication, byzantine.
Alfresco on AWS Provisioning and deploying Alfresco solutions on Amazon Web Services.
Docker for Ops: Operationalize Your Apps in Production Vivek Saraswat Sr. Product Evan Hazlett Sr. Software
1 Remote Installation Service Windows 2003 Server Prof. Abdul Hameed.
If it’s not automated, it’s broken!
Shaopeng, Ho Architect of Chinac Group
Progress Apama Fundamentals
Understanding and Improving Server Performance
70-293: MCSE Guide to Planning a Microsoft Windows Server 2003 Network, Enhanced Chapter 12: Planning and Implementing Server Availability and Scalability.
Containers as a Service with Docker to Extend an Open Platform
Fundamentals Sunny Sharma Microsoft
Dockerize OpenEdge Srinivasa Rao Nalla.
Scalability: Load Balancing
Docker and Azure Container Service
StratusLab Final Periodic Review
StratusLab Final Periodic Review
In-Depth Introduction to Docker
Securing the Network Perimeter with ISA 2004
Deploying Dockerized Apps to the Azure Container Service
VIDIZMO Deployment Options
Dmytro Mykhailov How HashiCorp platform tools can make the difference in development and deployment Target and goal of HashiCorp.
Deploy OpenStack with Ubuntu Autopilot
OpenStack Ani Bicaku 18/04/ © (SG)² Konsortium.
2018 Valid Microsoft Exam Dumps IT-Dumps
Kubernetes Container Orchestration
Microservices and Docker
Introduction to Docker
Using docker containers
Azure Container Instances
Oracle DB and Docker Get Your Dockerized Oracle Sandbox Running in the Cloud or On- Premises Martin Knazovicky Dbvisit Software.
Dev Test on Windows Azure Solution in a Box
Kubernetes intro.
Intro to Docker Containers and Orchestration in the Cloud
20409A 7: Installing and Configuring System Center 2012 R2 Virtual Machine Manager Module 7 Installing and Configuring System Center 2012 R2 Virtual.
Developing for the cloud with Visual Studio
Intro about Contanier and Docker Technology
Orchestration & Container Management in EGI FedCloud
Container cluster management solutions
OpenShift vs. Vanilla k8s on OpenStack IaaS
Configuration management suite
CloudOpting - Hackathon
Introduction to Docker
OpenShift as a cloud for Data Science
Kubernetes.
Container technology, Microservices, and DevOps
OpenStack Summit Berlin – November 14, 2018
Azure Container Service
Container technology, Microservices, and DevOps
Container technology, Microservices, and DevOps
Software Engineering and Architecture
Containers and DevOps.
Setting up PostgreSQL for Production in AWS
Containers on Azure Peter Lasne Sr. Software Development Engineer
Presentation transcript:

Container technology, Microservices, and DevOps Digital Innovation Workshop April 2019 Henrik Bærbak Christensen

Henrik Bærbak Christensen From One to Many Container technologies like Docker moves the start-up time of ‘a server’ from hours to seconds Consider installing separate machines/VMs for SkyCave, Memcached, registration service, MongoDB, … However, we have to make quite a few manual steps as we focused on each individual container Create networks, run each container, … And worse – it was still tied to one piece of hardware Which sort of defeats the whole purpose of scaling... CS@AU Henrik Bærbak Christensen

From One to Many Orchestration tools That is, a ‘dashboard’ of sets of servers/hardware that allows automatic distribution and scaling of containers... Sam Newman: deployment interface One command line that deploys the architecture https://thenewstack.io/containers-container-orchestration/ CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Key Properties An orchestration tool must Automate deployment, monitoring, updating a set of services Through Declarative configuration What I want, not how Rules and Constraints Specify characteristics of the physical env, that a service requires Provisioning Allocating services to physical env Discovery Services need to find each other Health monitoring In order to relocate or launch replacements CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Candidates Kubernetes Google Oldest, proven in war  Steep learning curve  I have heard  CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Candidates Apache Mesos High availability focus... CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Candidates Rancher A docker container having a Web gui ‘click-deploy’ your containers, add build in load balancer And off you go... CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Candidates Swarm Highly integrated with Docker Infrastructure-as-code Shallow learning curve If you know ‘compose’ CS@AU Henrik Bærbak Christensen

Shallow learning curve once you master Docker Docker Swarm Shallow learning curve once you master Docker

Henrik Bærbak Christensen Docker Swarm ” A swarm consists of multiple Docker hosts which run in swarm mode and act as managers (to manage membership and delegation) and workers (which run swarm services).” Swarm manager: You can execute docker commands Worker: Slaves that can only accept services from the manager Node: Physical or virtual machine In production, a physical machine makes most sense, but in the cloud, well… CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Service and Task Service = the definition of a task to execute That is, the image to use, and the commands to execute in the running container Replicated service A service can be replicated, that is you define how many instances of it to run Task ‘container + commands to run it’ assigned to a node; will never leave it, only fail CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Cluster Creation On my ESXi hypervisor, I created Headless Ubuntu 18.04 LTS machines Malkia00 and three Nyuki’es ‘docker swarm init’ Creates a join token 3 x ‘docker swarm join’ Using the join token CS@AU Henrik Bærbak Christensen

Stack You can manipulate services directly using docker engine commands That is – manual interaction  Infrastructure-as-code Automate through scripting Stack: Group of interrelated services that share dependencies, and are orchestrated and scaled together. Compose-file: IaC for defining how containers behave in production. Writting in a specific YAML format. Or is it a ‘stack file’? Shooting a moving target  CS@AU Henrik Bærbak Christensen

Anatomy of Compose-file A typical Compose-file Hierarchy by indentation (use spaces!!!) State Services to deploy Networks to create (Volumes to create) … CS@AU Henrik Bærbak Christensen

Anatomy of Compose-file Service definition Docker image that holds task Only docker hub images (or in local image cache) Properties Ports to expose Network to use (Volume to use) Etc. CS@AU Henrik Bærbak Christensen

Anatomy of Compose-file Instructing the service/task Command: Overrules CMD in image Depends_on: States service dependencies and order of service starts But swarm does not respect ‘is-up’ by services even if there is a depends_on If the ‘db’ is slow to start, the client service may try to connect before it will accept connections  Only ‘image:’ tag possible in stacks CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Orchestration Services need to communicate with each other... Each container on the network is assigned the ‘service name’ as hostname That is, there will be a node named ‘db’ and one named ‘web’ on this network! So, you have to configure your ‘manage.py’ to connect to ‘db:5432’ (postgres port). CS@AU Henrik Bærbak Christensen

Anatomy of Compose-file Format 3.x of compose-file allows deployment to be specified! Here: 5 instances, limit use of CPU and mem (max 10% cpu/50MB), and set restart policy CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Five Instances??? The default network of swarm is a ingress routing mesh: CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen “Load Balancing” Ingress routing mesh: Each node in swarm accepts connections on published ports for any service in the swarm CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Routing ”The swarm makes the service accessible at the target port on every swarm node. If an external host connects to that port on any swarm node, the routing mesh routes it to a task. The external host does not need to know the IP addresses or internally-used ports of the service tasks to interact with the service. When a user or process connects to a service, any worker node running a service task may respond.” Note: It states ‘swarm load balancer’ on the previous figure, but – it does not . It “routes incoming requests to published ports on available nodes.” Which may be hitting the same node again and again… CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Stack Manipulation Docker commands for manipulating a stack: ‘docker stack deploy –c (composefile) (stackname)’ ‘docker stack ls’ List running stacks ‘docker stack ps (n) List tasks in stack ‘n’ ‘docker stack services (n)’ List services in ‘n’ ‘docker stack rm (n)’ Remove stack ‘n’ Only works on a manager node Tech note: deploy with ‘--with-registry-auth’ if your image is only available in a private repository... CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Example I made a full SkyCave system (Stack ‘dilab’) Subscription service with associated MongoDB, 2x SkyCave daemons with shared Memcached db and a Docker visualizer CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Deployment One node has More RAM More Disk ‘type=database’ I can state that the MongoDB must be deployed on such a node. CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen And Visually CS@AU Henrik Bærbak Christensen

Henrik Bærbak Christensen Updating the Stack Two central operations I need to adjust the stack’s configuration Edit the compose/stack file Issue the ‘docker stack deploy’ again Easy for stateless services For instance change the replication factor of ‘daemon’ Not so easy for statefull services Do not move a db service away from its volume  Solution: Use architecture for that – redundancy! I need to do maintenance of node X Docker node drain X CS@AU Henrik Bærbak Christensen

Summary

Swarm and Key Properties An orchestration tool must Automate deployment, monitoring, updating a set of services Through Declarative configuration What I want, not how Rules and Constraints Specify characteristics of the physical env, that a service requires Provisioning Allocating services to physical env Discovery Services need to find each other Health monitoring In order to relocate or launch replacements docker-compose file docker swarm docker networks Well, some… CS@AU Henrik Bærbak Christensen