Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Station F - 1001 lives of containers in the cloud

Station F - 1001 lives of containers in the cloud

You're not using containers in your startup and you're wondering if you're missing something? Or maybe you are using it but running into challenges to running outside your dev machine? Wish you could experiment new technical stacks or architectures without hurting velocity precious at your stage? During this session, we'll see how containers can help you on the development, testing and production phases. We'll also see the different containers cloud hosting possibilities and how to choose the best option for you.

Christopher MANEU

February 28, 2019
Tweet

More Decks by Christopher MANEU

Other Decks in Technology

Transcript

  1. 1001 lives of containers
    in the cloud
    Christopher Maneu
    Azure Engineer & Advocate
    Microsoft R&D
    @cmaneu

    View Slide

  2. 1001 lives of containers in the cloud
    Dev teams challenges
    Technology changes as fast as a startup does
    Recruitment is hard
    - Finding great developers
    - Onboarding a dev is complex
    - Great candidates but not the right skillset?
    Security is hard
    Enterprise customer deployments are complex

    View Slide

  3. 1001 lives of containers in the cloud
    Agenda
    What is a container anyway?
    How containers can help developers?
    What a container can do for production environments?

    View Slide

  4. 1001 lives of containers in the cloud
    What is a container anyway?
    A way to create lightweit, portable and self-
    sufficent packages for your application.
    Docker is the most used containerization
    techology. It’s an open-source project.

    View Slide

  5. 1001 lives of containers in the cloud
    Seems almost like a VM, no?
    Infrastructure Infrastructure
    Host Operating System Operating System
    Hypervisor Docker engine
    Guest
    OS
    Bin/libs
    App 1
    Guest
    OS
    Bin/libs
    App 2
    Guest
    OS
    Bin/libs
    App 3
    Bin/libs
    App 1
    Bin/libs
    App 2
    Bin/libs
    App 3
    Virtual machine Containers
    A complete OS / stack
    (memory,disk,cpy) footprint for
    each of your VMs
    An OS-level isolation of your
    resources

    View Slide

  6. 1001 lives of containers in the cloud
    Demo
    My first container

    View Slide

  7. 1001 lives of containers in the cloud
    How containers can help developers?
    Start working on a project quickly
    Share an environment configuration with other developers
    Deploy apps more safely
    Test new framework versions with ease
    Unite dev & ops

    View Slide

  8. 1001 lives of containers in the cloud
    Demo
    Dev in a container

    View Slide

  9. 1001 lives of containers in the cloud | How containers can help developers?
    Start working on a project quickly
    Write and execute code quickly without having to install anything
    Debug my code as usual
    Use docker for CLI tools
    Create your own docker container
    Use Visual Studio Code to debug within a container

    View Slide

  10. 1001 lives of containers in the cloud | How containers can help developers?
    Share an environment configuration with other
    developers
    Use and share pre-build containers through registries
    Hub.docker.com
    Azure Container Registry
    Use containers as a way to build your code in a CD/CI env.
    Build container pattern ( multi-stage builds)
    Use volume mapping + run command
    docker run --rm -v "$PWD":/usr/src/myapp -w /usr/src/myapp golang:1.8
    go build -v

    View Slide

  11. 1001 lives of containers in the cloud | How containers can help developers?
    Deploy apps more safely
    Docker containers self-contain your app, eliminating any dependency issues
    Deploy on-demand apps for testing purposes
    Azure Container Instances
    Simplify A/B testing, carany deployments, etc…
    Azure Web Apps + Slots
    Deploy your apps anywhere!
    Your dev machine, all clouds, on customer’s infrastructure, on some IoT
    Devices (Azure IoT Hub), etc…

    View Slide

  12. 1001 lives of containers in the cloud | How containers can help developers?
    Test new framework versions with ease
    FROM node:8
    WORKDIR /usr/src/app
    COPY package*.json ./
    FROM node:8.15.0-jessie
    WORKDIR /usr/src/app
    COPY package*.json ./
    Tags allows you to specifiy a specific version to
    use.
    Your own (base) images can have a tag.
    You can use latest to get the most recent
    version, this can be used in your CD/CI
    environment to test your code nightly against the
    latest/nightly version of your stack.

    View Slide

  13. 1001 lives of containers in the cloud
    Containers for production: some challenges
    How do you manage persisted state?
    How do you scale your service to several nodes?
    How do you implement a self-healing infrastructure?
    How do compose services using different containers?
    How do you aggregate logs from all containers & hosts ?
    You need an orchestrator & some
    cloud services!

    View Slide

  14. 1001 lives of containers in the cloud
    What is Kubernetes?
    Open source project started by Google in 2014
    container-centric vs. host-centric
    schedules and runs application containers across a cluster of
    machines
    portable: public, private, hybrid, multi-cloud
    extensible: modular, pluggable, hookable, composable
    self-healing: auto-placement, auto-restart, auto-replication, auto-
    scaling
    Provides resource monitoring, load balancing, naming & discovery,
    horizontal auto-scaling
    Has cloud provider integration (Eg - Azure networking, Azure disks)

    View Slide

  15. 1001 lives of containers in the cloud
    Demo
    Containers in production

    View Slide

  16. 1001 lives of containers in the cloud
    You didn’t talked about microservices, right?
    CONTAINERIZE EXISTING APPLICATIONS
    Containerize for portability, efficiency and reliability
    TRANSFORM MONOLITHS TO MICROSERVICES
    New code and transforming existing code
    ACCELERATE NEW APPLICATIONS
    Agile cloud native app development

    View Slide

  17. 1001 lives of containers in the cloud
    You may need more than 1 cloud service
    https://aka.ms/1001SF-archi

    View Slide

  18. 1001 lives of containers in the cloud
    Tools used

    View Slide

  19. 1001 lives of containers in the cloud
    Next steps
    http://aka.ms/1001SF-slides
    http://aka.ms/1001SF-demo
    http://aka.ms/1001SF-runcloud
    http://aka.ms/1001SF-registry

    View Slide

  20. @cmaneu

    View Slide