Bringing Containers to Production

Slides:



Advertisements
Similar presentations
Implementing Tableau Server in an Enterprise Environment
Advertisements

Amazon RDS (MySQL and Oracle) and SQL Azure Emil Tabakov Telerik Software Academy academy.telerik.com.
METAARCHIVE & CLOUD COMPUTING Central Server Functions Bill Robbins System Administrator MetaArchive Cooperative.
Google AppEngine. Google App Engine enables you to build and host web apps on the same systems that power Google applications. App Engine offers fast.
VAP What is a Virtual Application ? A virtual application is an application that has been optimized to run on virtual infrastructure. The application software.
A Brief Overview by Aditya Dutt March 18 th ’ Aditya Inc.
Cloud Computing for the Enterprise November 18th, This work is licensed under a Creative Commons.
Cloud computing is the use of computing resources (hardware and software) that are delivered as a service over the Internet. Cloud is the metaphor for.
Starting a New Project at IPAC Lee Bennett IPAC Systems Engineering Team Lead June
Promoting Open Source Software Through Cloud Deployment: Library à la Carte, Heroku, and OSU Michael B. Klein Digital Applications Librarian
Introduction to Cloud Computing
Keeping Things Simple Is Harder Than You Think Brad Hannah – Manager, Systems and Storage ITServices - Queen’s University April 28 th 2014
Stairway to the cloud or can we take the highway? Taivo Liik.
Structured Container Delivery Oscar Renalias Accenture Container Lead (NOTE: PASTE IN PORTRAIT AND SEND BEHIND FOREGROUND GRAPHIC FOR CROP)
Deploying Docker Datacenter on AWS © 2016, Amazon Web Services, Inc. or its affiliates. All rights reserved.
Project Cumulus Overview March 15, End Goal Unified Public & Private PaaS for GlassFish/Java EE Simplify deployment of Java EE Apps on top of.
Agenda  What is Cloud Computing?  Milestone of Cloud Computing  Common Attributes of Cloud Computing  Cloud Service Layers  Cloud Implementation.
Architecting Enterprise Workloads on AWS Mike Pfeiffer.
Pulling the Galaxy’s Strings
Unit 3 Virtualization.
Chapter 6: Securing the Cloud
Let's talk about Linux and Virtualization in 'vLAMP'
Dockerize OpenEdge Srinivasa Rao Nalla.
Docker and Azure Container Service
Secrets to Fast, Easy High Availability for SQL Server in AWS
Deploy, Manage, and Scale Your Apps with OpsWorks, Elastic Beanstalk, and CodeDeploy Part 1 – Elastic Beanstalk © 2017 Amazon Web Services, Inc. and.
Infrastructure Orchestration to Optimize Testing
Prepared by: Assistant prof. Aslamzai
Docker Birthday #3.
Building a Virtual Infrastructure
In-Depth Introduction to Docker
Deploying Dockerized Apps to the Azure Container Service
Platform as a Service.
Logo here Module 3 Microsoft Azure Web App. Logo here Module Overview Introduction to App Service Overview of Web Apps Hosting Web Applications in Azure.
Cloud Computing Platform as a Service
4th Forum How to easily offer your application as a self-service template by using OpenShift and GitLab-CI 4th Forum Alberto.
Dmytro Mykhailov How HashiCorp platform tools can make the difference in development and deployment Target and goal of HashiCorp.
Drupal VM and Docker4Drupal For Drupal Development Platform
Using External Persistent Volumes to Reduce Recovery Times and Achieve High Availability Dinesh Israni, Senior Software Engineer, Portworx Inc.
AWS. Introduction AWS launched in 2006 from the internal infrastructure that Amazon.com built to handle its online retail operations. AWS was one of the.
OpenNebula Offers an Enterprise-Ready, Fully Open Management Solution for Private and Public Clouds – Try It Easily with an Azure Marketplace Sandbox MICROSOFT.
Drupal VM and Docker4Drupal as Consistent Drupal Development Platform
AWS Administrator overview  SV Trainings AWS Training –provides real time and placement oriented Amazon Web Services (AWS) Online Training. Our AWS Course.
Kubernetes Container Orchestration
Using docker containers
Azure Container Instances
High Performance Data Scientist
Java in the cloud PaaS Platform in Comparison
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.
INFO 344 Web Tools And Development
NAV In The Cloud: Exploring Options for a Cloud-based Deployment
Orchestration & Container Management in EGI FedCloud
Container cluster management solutions
Bringing Containers to Production
Copyright © JanBask Training. All rights reserved Become AWS Certified & Get Amazing Job Opportunities.
OpenShift vs. Vanilla k8s on OpenStack IaaS
Business Intelligence
DevOps in action The next level of virtualization
Introduction to Docker
OpenStack Summit Berlin – November 14, 2018
What is Cloud Computing Advantages Disadvantages Why is cloud computing CONFIDENTIAL© Copyright 2019 Brilliant Infosys Pvt. Ltd.
SQL Server on Amazon Web Services
Containers and DevOps.
Setting up PostgreSQL for Production in AWS
Containers on Azure Peter Lasne Sr. Software Development Engineer
SQL Server on Amazon Web Services
SQL Server on Containers
The Database World of Azure
Presentation transcript:

Bringing Containers to Production Richard Allen August 20, 2018

Bringing Containers to Production A brief overview of orchestration technologies.

Introductions Richard Allen Lead Systems Developer & Continuous Integration Engineer. Got started with Drupal in 2009. Started transitioning to ‘Ops’ in 2013-ish.

Introductions Bixal Digital agency supporting mostly federal projects across the board from HHS to .mil. We also do a bit of for-profit and non-profit work as well. Currently we work in Php, Ruby, Node, and in general whatever is a good tool for the job. We are creating internal projects in Python and Go. The majority of our projects include Drupal as a CMS. Application development, lots of Drupal, lots of react and angular.

Topics Architecting a solution appropriate for the problem at hand. Staffing and support. The use case for containers: Pre-packaged Platforms, Docker run + compose, Elastic Beanstalk, Nomad , Docker swarm, ECS + EC2, Opinionated Orchestration Packages (Rancher, Openshift, CoreOS, etc.), EKS/GKE/AKS aka Kubernetes (k8s) as a service, AWS Fargate, k8s/Mesos on virtualized servers and bare metal

So on to production?!! Not quite yet…

Before You Go Live Containers solve many issues. They also require maintenance and support. Is our company proficient enough in docker? How do I import a backup database in case of emergency? cat /path/to/mysql.sql | docker exec -i <CONTAINER_NAME> drush sqlc Have we come up with a logging strategy? Are we building lightweight images that are quick to deploy? Are we running security and vulnerability scans on our base images?

Last Questions and Using Platforms Does my application have needs outside of a pre-packaged platform? In general, when a platform is available and fits your need, it’s going to be more cost effective. Typical Drupal applications DON’T warrant custom infrastructure. Platforms typically provide out of the box: High availability Logging Workflows Backup and restoration

Docker Run and Compose This is a really great simple solution. Low complexity, not a high barrier to entry. Easy to troubleshoot. It lacks features needed for more complex applications. Not high availably (although it can be with a lot of work or service). More limited of resource management. Not very manageable after a few containers. Lots of manual or very specialized automation. Note: New feature in newest version of docker for k8s.

AWS Elastic Beanstalk More like an EC2 and Load Balancer service than a cloud native solution. Many pre-packaged solutions or flavors. The docker components still remain simple. Supporting services (such as container registries, cloud watch, and RDS) are easily available for your application. High availability, rolling deployments, and autoscaling are all available but must be configured and may lack flexibility depending on need. Vendor lock in. The process of configuring EC2 instances and the service is more challenging than managing your containers.

Hashicorp Nomad (+ Consul + Vault) Similar to docker compose. Uses Hashicorp Configuration Language (HCL) which is very similar to JSON HCL IMHO, is a bit easier to work with in practice than yaml. Great for simple applications, also great for complex ones (kinda). Nomad is ONLY container a container runtime. It does not include service discovery, or secrets management. In order to support any moderately complex application, you’ll immediately need to add Consul and probably need Vault. At which point you are running a service similar to k8s.

Docker Swarm Docker Inc.’s version of container orchestration. Administration and CLI is very similar to docker and docker-compose. Nice control panel out of the box. Outside of cloud.docker.com, there are not a lot of providers offering docker swarm clusters. Vendor lock-in. So much vendor lock-in.

Elastic Container Service + EC2 Commonly called docker as a service. Supporting services (such as container registries, cloud watch, and RDS) are easily available for your application. Less EC2 configuration, but you configure instance types, tied to tasks. Wait times on EC2 provisioning. Vendor lock in. ECS is tightly coupled with amazon services and lacks service discovery features. It’s a lot of extra work to utilize other services outside of amazon.

Opinionated Orchestration Packages Rancher, Openshift, and CoreOS are popular examples. Kubernettes based services, discovery, and tools. Provide opinionated workflows, services, and build processes so you don’t have to. Takes care of a lot of things that you will have with most applications. Database backups and persistence, centralized logging and monitoring, and cluster resource management.

Opinionated Orchestration Packages Advanced, albeit opinionated, deployments. Canary, blue-green deployments are available with a few commands. Openshift, if you are using RHEL based systems is a really good option. You are on your own or have to configure services outside of your cluster, for supporting services. No Elastic Search, no RDS, no S3 no Cloud Watch. Little vendor lock-in.

Kubernetes as a Service Big 3 are AWS EKS, GCP GKE, and Azure AKS GKE is the most stable, and feature complete implementation. AKS and EKS are fairly new, and just out of GA. Lots of flexibility. You can build just about any type of service or application you can imagine on these services. There are very few edge cases where KaaS can not be considered as an option. Supporting services (such as container registries, cloud watch, and RDS) are easily available for your application.

Kubernetes as a Service You could run your own persistent services (mysql, networked file system, etc), but it’s probably not worth your time. Less cluster management. Choose the total amount of resources you’ll need and clusters are managed for you. Unless you rely on services offered by cloud providers, your application is fairly cloud agnostic. You can run multi-cloud applications offering highly fault tolerant applications for when those .999’s start to matter.

AWS Fargate tldr; Fargate = ECS + EKS - Cluster Resource Management No cluster management Clusters still exist as a logical separation, however they are resource-less. Tasks request cpu and memory. No need to define and manage cluster resources. Used wisely (keyword wisely), this can reduce costs by reducing under-utilized compute resources. If you have a very expensive or bursty type app, this may be a strong option. No EC2 management, or wait times for new EC2 instances.

Running Your Own Kubernetes or Apache Mesos Why? Most companies do not need and can’t support this. It requires a very skilled and specialized team. Seriously have a very good reason for doing this. Cost at very high scale. When pennies will turn into significant cost advantages. Compliance. You need to avoid downtime even when major cloud platforms are having outages.move resources. Either virtualized or hot swapping on racks.

Running Your Own Kubernetes or Apache Mesos You add a need to have dedicated admins who are experienced in running the k8s service, rather than using it. And using it is complex enough. Apache Mesos is another, often overlooked orchestrator. Still a complex service to manage. A good option if you can’t containerize, or have to containerize over a long period of time.

Running Your Own Kubernetes or Apache Mesos Bare Metal vs Virtualized Dependent on needs but running k8s on your own hardware is clearly a task for organizations with the capability to add/remove resources. Either virtualized or hot swapping on racks.

Thank You! rich.allen@bixal.com https://bixal.com