Migrating to Cloud - Native Architectures Using Microservices: An Experience Report

Similar documents
Red Hat Open Shift Container Platform

Combine Microservices Framework for Flexible, Scalable, High Availability Big Data Analytics

SOA, Microservices and Service Orientation:

Doing Microservices on Bluemix

Microservices with integration, containers and APIs: what s

OPENSHIFT CONTAINER PLATFORM

JOURNEY TO AS A SERVICE

Multi-Containers Orchestration with Live Migration and High-Availability for Microservices

Deploying Microservices and Containers with Azure Container Service and DC/OS

Customer Challenges SOLUTION BENEFITS

Simplify Private Cloud Deployments PRESENTED BY:

Understanding The Value of Containers in a World of DevOps. Advice that empowers. Technology that enables.

Architecting Microsoft Azure Solutions

Microservices: Embracing the Unix mantra Do one thing and do it well

Continuous Delivery of Microservices: Patterns and Processes

Containers and

Container Native Application Development

Fly high with Microservices Architecture Splitting the Monolith

The Fast (Developer) and the Furious (Ops Team)

DEVOPS AUTOMATION USING DOCKER, KUBERNETES AND OPENSHIFT. Siamak Sadeghianfar Sr Technical Marketing Manager, OpenShift June 2016

MELBOURNE March DEVOPS TALKS CONFERENCE

OpenShift Dedicated: An Inmarsat Story

DevOps: Driving Organizational Change and Agility with PaaS

How to Download, Install, and Run Consent2Share

A Design Approach to Bridge DevOps and Business Automation

IBM Cloud White Paper. How to get the benefits of cloud behind your firewall: IBM Cloud Private

DevOps Solution for today and tomorrow!

FROM SHORE TO SHIP: USING MESOSPHERE ENTERPRISE DC/OS TO DELIVER REAL TIME MICROSERVICES TO A GLOBAL FLEET OF SHIPS

Modernizing Legacy Applications With Microservices

An End-to-End Platform for Global DevOps

INTRODUCTION AUX APPLICATIONS CLOUD NATIVE AVEC PIVOTAL READY SYSTEM

DevOps KANOKWATT SHIANGJEN COMPUTER SCIENCE SCHOOL OF INFORMATION AND COMMUNICATION TECHNOLOGY UNIVERSITY OF PHAYAO

Understanding the Business Value of Docker Enterprise Edition

Hybrid Container Orchestration for a UK based Insurance Solutions Software Provider Company ATTENTION. ALWAYS.

Dynamic App Services in Containers PRESENTED BY:

Microservices-based Business Process Model Automation. Agnes Koschmider

CONTINUOUS INTEGRATION & CONTINUOUS DELIVERY

Azure Stack. Unified Application Management on Azure and Beyond

Top six performance challenges in managing microservices in a hybrid cloud

REPLY & GRENZEBACH DIGITALE TRANSFORMATION IM MASCHINENBAU

CONTAINERS: DON'T SKEU THEM UP

Mitchell CI/CD Journey Continues. Richard Fong (Raj) Rajwinder Singh Makkar

DevOps 2.0. Using Modern Tools and Practices to Develop, Maintain, and Manage Scalable Microservices. Joe McCormick, Architect Boeing

Composite Cloud Applications and Portable Topologies

MICROSERVICES. Prabavathy Arumugam Software AG. All rights reserved. For internal use only

Multi-tenant SaaS Marketplace Streamlines Business for a Top Insurance Solutions Provider ATTENTION. ALWAYS.

Jenkins. The coded business. open source

DEVELOPMENT TOOLCHAIN ON STEROIDS MICHAEL KOLB


Agile Integration. The Three Pillars That Solve Your Integration Problems In An Agile Way. Manfred Bortenschlager

The Oracle DevOps Portfolio

The role of Containerization in the Ent erprise Content Management Roadmap

Cloud Practice Overview August

xpaas Track Menny Tsarfaty Solution Architect, Manager Red Hat

How Container Schedulers and Software-Defined Storage will Change the Cloud

GUIDE The Enterprise Buyer s Guide to Public Cloud Computing

Dell IT Proven: Cloud Native Applications at Your Service

Modernize Application Development to Succeed as a Digital Business

Microservices: A Flexible Architecture for the Digital Age

Containers and Microservices Create New Performance Challenges

DRAFT ENTERPRISE TECHNICAL REFERENCE FRAMEWORK ETRF WHITE PAPER

Cloud Platforms. Various types and their properties. Prof. Balwinder Sodhi. 1 Computer Science and Engineering, IIT Ropar

Course 20535A: Architecting Microsoft Azure Solutions

PLATFORM CAPABILITIES OF THE DIGITAL BUSINESS PLATFORM

EMERGENCE OF MICROSERVICE ARCHITECTURE. Let's start something.

Transforming large scale Software portfolio with Containers and Microservices at the speed of DevOps

Micro Service Architecture

Microservices + DevOps + Oracle Cloud = A Bright Future. Sai Janakiram Penumuru Chief Technologist & Oracle ACE Director

INTEGRATING SECURITY WITH DEVOPS TOOLCHAINS

FOR THE LOVE OF DEVOPS

Solutions Brief: The Need for Speed

IBM Hybrid Cloud OPEN Labs

ApiOmat. Case Study. Challenge

Foundations of Software Engineering

Application & Data Modernization enabling your Digital Transformation. Dennis Lauwers European Technical Leader Hybrid Cloud

Akana, All Rights Reserved Contact Us Privacy Policy. Microservices: What, Why and How

A Reference Architecture for Hybrid Integration. Peter Broadhurst Senior Technical Staff Member for IBM App Connect

Applicazioni Cloud native

A CONTAINER-PLATFORM APPROACH TO DIGITAL TRANSFORMATION AND DEVOPS. Diógenes Rettor Principal Product Manager, OpenShift

Architecting Microsoft Azure Solutions

TRANSPORTATION RESEARCH BOARD. Development and Management of Sustainable Information Portals. Wednesday, May 2, :00-2:30 PM ET

Agile & DevOps Security & Audit

DevOps E m p o w e r Q u a l i t y A s s u r a n c e b e n e f i t s f o r y o u r p r o j e c t s

DevOps E m p o w e r Q u a l i t y A s s u r a n c e b e n e f i t s f o r y o u r p r o j e c t s

Apache Mesos. Delivering mixed batch & real-time data infrastructure , Galway, Ireland

"Web Age Speaks!" Webinar Series. Introduction to DevOps

CI/CD and transition to the cloud for a medical app

Making the most of your SRE Toolbox

Product Overview. Dan Goerdt Flexagon

HyperCloud. IT s Cloud Dilemma

MITOSIS: distributed autonomic management Of ServIce compositions. Giovanni Toffetti

Transforming Telecom BSS/OSS with MicroServices for Greater Agility

SAN DIEGO Oct BREAKOUT SESSIONS

ENTANDO PRODUCT GUIDE

Enterprise cloud control plane planning

7 reasons why your business should invest in container technology

Hybrid Cloud Adoption: Transforming to Hybrid Cloud with DevOps, Microservices, Containers and APIs

ACHIEVING A SERVERLESS DEVELOPMENT EXPERIENCE

MODERNIZATION PLATFORM AS A SERVICE (MODPAAS)

User Virtualization. What if you could truly manage users and not desktops?

Transcription:

Migrating to Cloud - Native Architectures Using Microservices: An Experience Report Armin Balalaie, Abbas Heydarnoori, and Pooyan Jamshidi Sharif University of Technology, Tehran, Iran - 2015 Sonam Gupta Srinidhi Ramadurai Smruthi Sridhar

Agenda Paper overview Introduction Background/Related Work Summary of New Technology Benchmark Key Contributions Authors Evaluations Conclusions Critique: Strength Critique: Weakness Critique: Evaluation Future Work 2

Paper overview Migration of an application named SSaaS (Server Side as a Service) in PegahTech Co. Specific to this project Lessons Learnt Challenges Sections Background behind Microservice Architecture SSaaS existing architecture & Target Architecture after Migration Migration plan & steps followed Lessons Learnt Conclusion 3

Introduction Microservices:- Continuous Delivery & DevOps Continuous Delivery:- Continuous Integration & Continuous Deployment DevOps - Collaboration between Developers and Operations team Microservices Architecture Components: Configuration Server Service Discovery Load Balancer Circuit Breaker Edge Server 4

Background SSaaS - server side programming part of their applications without knowing any server side languages First functionality - RDBMS as a service Future - Chat as a Service, Indexing as a Service, NoSQL as a Service Technology stack Java using spring framework Oracle -11 dependencies-maven Deployment-Jetty plugin Repositories -Git. 5

Existing Architecture Common Lib DeveloperData DeveloperServices ContentServices DeveloperWebsite 6

Reasons to Migrate to Microservices Requirement for Chat as a service: On demand capability Need for reusability Need for decentralized data governance Need for automated deployment Need for built-in scalability 7

Summary of New technology Stack Components of New Technology Stack: Java Spring Boot Netflix OSS-Microservice specific components Eureka for ServiceDiscovery Ribbon for Load Balancer(Internal Load balancer) Hystrix -Circuit Breaker Zuul-Edge Server. 8

Monolith to MicroService -Related Concepts Domain Driven Design Bounded Context Domain Driven Design Supports the structuring of larger systems according to domains Each microservice is meant to constitute a domain only one microservice has to be changed in order to implement changes or to introduce new features. Example-Promotion service from Monolith e-commerce System 9

Bounded Context Divides the large models into different Bounded Contexts explicit about their interrelationships. 10

Re Architecting Logic Existing system is less Complex Re Architected system based on domain of Developer Data Put every set of cohesive entities into a service, such that the only one which can create and update that entity would be that service Example: Chat Services service could update or create the chat metadata entities. 11

Features of Target Architecture Chat Services service handle its metadata by itself,not inside Developers Data. Introduce a new Resource Manager service in order to reserve resources-oracle is moved from Devlopersdata to this service A new service to handle developer's information and its registered services. Transforming Developer Data from a library to a service. 12

Steps involved in Migration: Step 1: Preparing the Continuous Integration Pipeline Allows developers to integrate their work with the others' early and often,and helps to prevent future conflicts As no of services increase while shifting to microservice architecture.no of instances running and deploying increases Virtualisation-less effective and costly Containerisation -deploy with low overhead and in isolation Deploy anywhere where containers are supported without changes to code or images 13

Docker Tool for containers. Pool of ready to use images in DockerHub Can be pulled and customised based on users needs Docker Registry -let organizations to have a private docker image repository Jenkins 9 - CI server. self-hosted Gitlab -code repository. Artifactory 11 as the artifact repository. Step 2-Transforming Developer Data to a Service 14

Introducing Continuous Delivery STEP-3: Separate source code, configuration, the environment specification to evolve independently Ability to change configuration without redeploying the source code. Docker removed the need for specifying environments since the Docker images produce the same behavior in different environments. separated services' code repositories to have a clearer change history and to separate the build life-cycle of each service. Automated deployment on a single server. 15

Introducing Edge Server STEP 4: To minimize the impact of internal changes on end-users 16

Introducing Dynamic Service Collaboration Addition of Service Discovery, Load Balancer and Circuit Breaker to the system 17

Introducing Resource Manager 18

Introducing Chat Services & Developer Info Services Developer InfoServices- factoring out developer related entities (e.g., Developer) from Developer Data. Chat Services for persisting chat service instances metadata and handling chat service instance creations. 19

Clusterization containerization-low overhead. Increase efficiency by introducing lightweight operating systems, like Core-OS 15 and Project Atomic Google Kubernetes 16,has a good integration with the CoreOS, is a tool for easy deployments of containers on a cluster. Using Kubernetes, a container can be easily fetched from a private repository and deployed to a cluster with different policies. 20

Final Delivery Pipeline We set up a cluster of CoreOS instances with Kubernetes agents installed We deployed our services on this cluster instead of a single server. 21

Author s Evaluation and Challenges Faced Deployment in the development environment is difficult Service contracts are double important Distributed system development needs skilled developers Creating service development templates is important 22

Conclusions This paper explained the experiences which the author faced during the migration of an on-premise application to the microservices architectural style. This paper helped us understand the architecture of our system before and after the migration Steps that were followed during this migration process. Importance of Continuous Delivery in the process of adopting microservices 23

Critique: Strengths Services are loosely coupled and more modular Improves Scalability and Flexibility in a efficient manner Services can be scaled independently based on heavy load instead of scaling the entirety of a monolithic app. Fault Isolation Freedom of Technology Stack Polyglot Programming/ Persistence Leverage mix of programming language /frameworks to take advantage based on business requirement 24

Critique: Strengths Containerization helps in lower overheads than the virtualization and in isolation Decentralized data governance Automated Deployment with the help of Continuous Delivery pipeline 25

Critique: Challenges Refactoring the design of a system before migration Operational Management : Deployment in the development environment is difficult Service Versioning is not a recommended solution. Tolerant Reader : Service Consumer Consumer Driven Contracts (Pact.io) : Service Developer Knowledge of Distributed System Development Security and Firewall 26

Critique: Evaluation IEEE Journal 2016 Migration in Incremental steps. Re-architecting the current system Introducing new supporting services Enabling Continuous Delivery in the system Importance of Continuous Delivery Integration :on-demand software deployment Technology Stack Experience Report 27

Gaps Worthiness of the migration. Performance Compared to the on-premise Cost effectiveness of the migration 28

Future Work DevOps Pattern for on-premise to Cloud migration Reusable Generic 29

Thank you