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

Managing and operating Micro-Services on Micros...

Managing and operating Micro-Services on Microsoft Azure - Idan Yona, Gal Hutman

Avatar for Sela Developer Meetup

Sela Developer Meetup

June 27, 2018
Tweet

More Decks by Sela Developer Meetup

Other Decks in Technology

Transcript

  1. Copyright © SELA Software & Education Labs, Ltd. | 14-18

    Baruch Hirsch St., Bnei Brak51202, Israel | www.selagroup.com Idan Yona Gal Hutman Modernizing .Net Applications A Real World Example
  2. How life was like Solution size was huge Compilation took

    forever Scaling had a big cost Minor bug fixes led to a full-fledged deployment Releases were in the form of "all or nothing" Hard times when it comes to choosing the right tech stack for a given problem High TCO
  3. To monolith or to Microservice? One platform to support them

    all New or transformed microservices app 5 Parts of existing monolith extracted 4 Existing Monolith + new microservices 3 Monolith Hosted as guest executable or container 2 Traditional app 1 5 stages in a continuum…
  4. Network Access: Basic Node 3 Node 2 Node 1 Azure

    load balancer Secondary Primary Secondary Service Fabric cluster
  5. Network Access: API Management Azure API Management Node 3 Node

    2 Node 1 Secondary Primary Secondary Naming Service Service Fabric cluster
  6. Network Access: Traefik fabric:/AppA/ServiceA Azure load balancer Service Fabric cluster

    Application Gateway Naming Service fabric:/AppA/ServiceB fabric:/AppB/ServiceA
  7. What is a container image? - Templates for containers -

    Read-only - File based - The Docker Implementation > Metadata > Layers Creation - Manually - Automated with a dockerfile - Pulled from a registry Container Image Layer metadata (json) Layer payload (tar) Layer metadata (json) Layer payload (tar) Layer metadata (json) Layer payload (tar)
  8. Docker Multi-Stage Builds microsoft/aspnetcore-build COPY .sln COPY .csproj nuget restore

    copy source dotnet build publish dotnet publish microsoft/aspnetcore final COPY --from=publish /app ENTRYPOINT ["dotnet", "HelloWorld.dll"] FROM microsoft/aspnetcore:2.0 AS base WORKDIR /app FROM microsoft/aspnetcore-build:2.0 AS build WORKDIR /src COPY HelloWorld.sln ./ COPY HelloWorld/HelloWorld.csproj HelloWorld/ RUN dotnet restore -nowarn:msb3202,nu1503 COPY . . WORKDIR /src/HelloWorld RUN dotnet build -c Release -o /app FROM build AS publish RUN dotnet publish -c Release -o /app FROM base AS final WORKDIR /app COPY --from=publish /app . ENTRYPOINT ["dotnet", "HelloWorld.dll"]
  9. Deployment ü ARM Template ü Startup Script ü Code CI\CD

    ü Certificate Injection ü Network Security Group ü Environment Parameters ü The Dev Machine
  10. Monitoring ü Azure Services ü Service Fabric ü Fabric Events

    ü Processes ü Containers ü Application Flow Distributed Logging