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

CloudCity: A Live Environment for the Management of Cloud Infrastructures

JP
May 03, 2019

CloudCity: A Live Environment for the Management of Cloud Infrastructures

CloudCity: A Live Environment for the Management of Cloud Infrastructures presented @ ENASE 2019, Crete, Greece

JP

May 03, 2019
Tweet

More Decks by JP

Other Decks in Research

Transcript

  1. CloudCity: A Live Environment for the
    Management of Cloud Infrastructures
    Pedro Lourenço, João Pedro Dias, Ademar Aguiar and Hugo Sereno
    Ferreira

    View full-size slide

  2. Outline
    1. Introduction
    2. Key Concepts and State-of-the-Art
    3. CloudCity
    4. Experiments & Results
    5. Final Remarks

    View full-size slide

  3. Introduction

    View full-size slide

  4. Cloud Computing
    • A paradigm for
    provisioning services over
    the Internet, in an on-
    demand self-service.
    • Advantages include: pay-
    as-you-go, elasticity,
    increased interoperability
    and versatility.

    View full-size slide

  5. Software Visualization
    • A key approach for reducing the software understanding
    complexity is the use of software visualizations techniques.
    CodeCity, Wettel et al.

    View full-size slide

  6. Objectives
    • Explore how cloud management can benefit from model-driven
    engineering and live programming.
    • Software visualization attempts to solve a similar problem as the one
    that live programming addresses - reducing programming complexity by
    making it easier to understand quickly what a program is doing or
    supposed to do.
    • By combining approaches from both areas we intend to provide a live
    visualization method that provides continuous feedback about a
    virtual cloud infrastructure.

    View full-size slide

  7. Key Concepts and State-of-the-Art

    View full-size slide

  8. Live Programming & Liveness
    • Fundamental notion of liveness
     Instead of having a traditional program development cycle involving four phases
    -- edit, compile, link, run -- there is only one phase with the program constantly
    running, even if various editing events occur.
    • Live programming, which embraces
    the concept of liveness, aims to ease
    the programming task by executing a
    program continuously during editing.
    • LISP machines, the Smalltalk
    language, and the Logo language

    View full-size slide

  9. Software Visualization
    • Mainly three approaches for software visualization:
     Static
     Dynamic
     3D-based visualizations
    • Several examples of visualizations:
     CodeCrawler: Software metric visualization from several reverse engineering tools.
     Jinsight: Runtime data analysis.
     Wettel et al. 3D representation of the architecture of software as a city.
    • Teyseyre et al. groups 3D representations in two: abstract visual or real-
    world representations.

    View full-size slide

  10. Cloud Management
    • Provisioning is defined as obtaining services from the cloud, such as
    spawning computers or virtual hosts and tailoring its software and
    configurations.
    • Management of Cloud Infraestrutures include tasks such as:
     Configuration Management
     Infrastructure Orchestration
    • There are already some solutions for simplyfing this process, namely:
     CloudFormation: AWS-based orchestration tool.
     Terraform is another orchestration tool for building, changing and versioning.
     Mastelic et al., in his work takes advantage of model-driven development for
    building and managing arbitrary cloud services in a cloud-agnostic manner.

    View full-size slide

  11. CloudCity
    • Cloud 3D visualization method based on a city metaphor.
    • The main concept is to allow the design and analysis of cloud compositions
    through an intuitive mapping between city metaphors and cloud
    resources.
    • Representing the cloud as a city intends to enable users to gradually
    become familiar with the represented architecture, due to the relationship
    with many similarities between the two domains.
    • The main difference from other model-driven approaches is that this
    environment doesn't reflect a static infrastructure mapping, but
    instead a live infrastructure which shows the real-time state of each
    component. A metaphor that we introduce as, the live city.

    View full-size slide

  12. Architecture
    • CloudCity follows the model-driven engineering principles.
    • It provides a set of tools:
     Cloud Service Providers API
     Connection to a specific cloud service provider.
     Importer
     Periodically pools the provider and detects changes in the infrastructure state.
     Resources
     A group of resources can either contain a resource or another resource group (Composite
    Pattern).

    View full-size slide

  13. Resource Mapping
    • One of the advantages of creating a visual map for the
    cloud is that there is a finite set of resources, with
    predictable properties, agnostic from the cloud
    provider.
    • Therefore, it allows us to create an alphabet with models
    for each of the instances we want to represent, rather
    than defining new metrics.
    • Alphabet includes:
     Security Group, Load Balancer, Listener, Target Group,
    Launch Configuration, Scaling Policy and Auto Scaling Group.

    View full-size slide

  14. Layout
    • Mechanism to lay out and update
    components as the architecture is
    expanded and modified.
     Support for laying out all the imported
    components of the infrastructure, with
    different dimensions, in an ordered
    manner
     Do not waste much of the cities’ real-
    estate.
     Support for grouping components
    according to a class.

    View full-size slide

  15. Updates & Interactions
    • Due to cloud providers limitations we
    forced to periodically poll it and
    manually detect the differences.
    • All things considered, to avoid abrupt
    changes in the layout, we prepared all
    components to change their position
    slowly (speed of 1 unit per second) to
    increase the response feedback (sliding
    in between positions).

    View full-size slide

  16. Experiments & Results

    View full-size slide

  17. Scenarios
    • Two different phases:
     Construction of a cloud infrastructure.
     Analysis of an existing cloud infrastructure.
    • A. Typical web-hosting reference architecture:
     An auto-scaling group with a minimum size of two instances
     A launch configuration for each new instance to be spawned inside the scaling group
     A security group
     A target group to route incoming requests to the targets in the scaling group
    • B. Inspecting an existing infrastructure:
     An auto-scaling group in two zones connected to the respective launch configuration
     Two scaling policies
     A load balancer with the respective listener, target group and security group
     A web server

    View full-size slide

  18. Experiment A: Web Server

    View full-size slide

  19. Experiment B: Existent Infrastructure
    • Simulate the occurrence of
    an unhealthy target, a
    common event in a cloud
    environment.
    • In most cases, the cause is
    derived from a
    failed/overloaded instance
    or security group
    misconfiguration.

    View full-size slide

  20. Final Remarks

    View full-size slide

  21. Main Contribution
    • An integrated development environment:
     to analyze, architect and configure cloud compositions with a higher
    level of abstraction. Enabling architects to focus their interests in specific
    areas, and track the changes as the infrastructure evolves and the
    complexity increases.
    • Approach combines the strengths of existing approaches,
    techniques and tools by introducing liveness to cloud
    management and providing a complete feedback loop which can
    help developers understand how the infrastructure reacts to
    change, working towards a Live Software Development.

    View full-size slide

  22. Future Work
    1. Provide a modifiable layout technique:
     A user’s ability to manually modify the position of a specific component.
    2. Explore other levels of liveness.
    3. Research the use of different metaphors.

    View full-size slide

  23. Thank you.
    Pedro Lourenço, João Pedro Dias, Ademar Aguiar and Hugo Sereno Ferreira
    [email protected]
    http://jpdias.me

    View full-size slide