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 Slide

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

    View Slide

  3. Introduction

    View 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 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 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 Slide

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

    View 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 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 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 Slide

  11. CloudCity

    View Slide

  12. 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 Slide

  13. 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 Slide

  14. 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 Slide

  15. 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 Slide

  16. 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 Slide

  17. Experiments & Results

    View Slide

  18. 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 Slide

  19. Experiment A: Web Server

    View Slide

  20. 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 Slide

  21. Final Remarks

    View Slide

  22. 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 Slide

  23. 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 Slide

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

    View Slide