SlideShare a Scribd company logo
Microservices on Azure
How to deliver a high-scalable, secure, decoupled and cross-platform
web application on Azure
Fabrício Sanchez
Sr. Technical Evangelist @ Microsoft
fabriciosanchez.com.br
Agenda
 Key requirements for modern applications
 Microservices architecture
 Arda (sample application)
 Software architecture
 Azure architectures
 Code view
 How we care about security
 Azure assets view
 How we deliver?
 Conclusions
 Q&A
Key requirements for modern applications
Highly concurrence Application must be scalable in a cost effective way
Highly complexity Application should be breakable (dividing to conquer)
3rd-party services integration Application should be pluggable
Mobile communication Application should share data through RESTFull APIs
Platform independency Application should run in every platform
Continous delivery Application should be constantly updated
Security Application should be secure
Monolithic architecture
Application architectural view
“Monolithic application has single code base with multiple modules. Modules are
divided as either for business features or technical features. It has single build system
which build entire application and/or dependency. It also has single executable or
deployable binary”
Common host environment
Microservices architecture
Application architectural view Common microservices environment
Microservice architecture is an approach of building large enterprise application with multiple
small unit called service, each service develop, deploy and test individually. Each service
intercommunicate with a common communication protocol like REST web service with JSON.
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team at .NET
Demo Arda – Application running in production
Arda – Microservices architecture
Dashboard
web
Power
BI
Others
IPR
IPR
Permissions / Security
Internet
Kanban
Reports
Authentication / Users
Arda – Azure architecture (web app based)
 Azure Active Directory
 Azure App Services
 Web App
 API App
 Azure SQL Database
 Azure Redis Cache
 Azure Storage (blob)
 SendGrid (free tier)
Demo Arda – Web Apps environment
Arda – Azure architecture (container based)
 Azure Active Directory
 VM or ACS
 Docker containers
 Azure SQL Database
 Azure Redis Cache
 Azure Storage (blob)
 SendGrid (free tier)
Arda – How we care about security
 Configuring SSL for entire services
 Using Azure Active Directory as identity provider (+info next slide)
 Enabling CORS to specific endpoints in each service
 Enabling SQL Firewall only for Azure Services in production
database
 All secrets informations (passwords, etc) is delivered only in DevOps
pipeline (release). Devs works with local secrets file
 Configuring Azure Redis Cache to work only with SSL (to do)
Arda APIs – Protection flow using Azure AD
Arda App (browser) Azure AD Authorization Endpoint Azure AD Token Endpoint Arda APIs
Request authorization code
Sign-in via browser
Return authorization code
Get authorization code and require (via POST) access token for Arda API resource
Return access token and refresh token
Return Http Response
Call Arda API using the access token (inside header)
https://login.microsoftonline.com/common/oauth2/authorize https://login.microsoftonline.com/common/oauth2/token
Layer1:LoginLayer2:APIaccess
Another options on Azure
 Azure Service Fabric
 Virtual Machines on the same VNet
 Web & Worker Roles
Arda – How we deliver?
Git Repositories
 Arda
 BugBot
 DevOps
Build & Deploy
 AspNetCore.ALL (Production)
 AspNetCore.ALL (Dev)
Load Testing
 Not implement yet
Release Management
 AspNetCore.ALL (Production)
 AspNetCore.ALL (Dev)
Arda – How we deliver?
Demo Arda – Visual Studio Team Services
Conclusions
 We tested Web Apps and Docker host. Another options could be ACS and Service
Fabric
 Azure Web App is robust and make microservices environment management easy
 Azure is a great platform to deliver microservices-based applications
 Azure AD is an excelent option in order to provide security in different levels
 Microservices can be a good architectural choice if:
 Application must scale in separatedly way
 Application is big and complex and break it will make things better
 Company has a senior development team
 Company has a mature DevOps process implemented
 You would like to have a cross-technologies application (optional)
 In other cases, monolithic layered architecture continues being a good option
 After release 1.0, ASP.NET Core is recommended to production development
 SQL Azure is strongly recommended to work with microservices
 Microsoft deliver one great solution to DevOps (VSTS)
Q&A
Thank you

More Related Content

PDF
7200bf5a 1bf1-4bb3-8430-904161845cce.presentation20934 ut209343d-modelingprac...
PPTX
C#.net, C Sharp.Net Online Training Course Content
PPTX
Cloud Lunch and Learn - Sobrevoando o Azure
PPTX
Visual Studio Software architecture
PPTX
ASP.NET Core 1.0: Understanding ASP.NET Core 1.0 (ASP.NET 5)
PDF
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
PPTX
Teched India Vijay Interop Track
PPTX
Vijay Oscon
7200bf5a 1bf1-4bb3-8430-904161845cce.presentation20934 ut209343d-modelingprac...
C#.net, C Sharp.Net Online Training Course Content
Cloud Lunch and Learn - Sobrevoando o Azure
Visual Studio Software architecture
ASP.NET Core 1.0: Understanding ASP.NET Core 1.0 (ASP.NET 5)
What’s new in Microsoft ALM 2013, hosted in Windows Azure, VISUAL STUDIO ONLI...
Teched India Vijay Interop Track
Vijay Oscon

What's hot (20)

PDF
What's new in python 3.8? | Python 3.8 New Features | Edureka
PDF
ID Android TechTalk Series #6 : Google Service and Gradle - Anton Nurdin Tuha...
PPTX
DevOps - Isso existe mesmo?
PPT
Visual Studio 2008 and .NET 3.5 Overview
DOCX
Nitin devops
PDF
AngularJS Vs NodeJs
PPTX
Deep Dive OpenShitt on Azure & .NET Core on OpenShift
PPT
GWT Introduction for Eclipse Day
PPTX
JS digest. November 2017
PDF
Connecting Spring Apps to Distributed SQL Clusters Running in Kubernetes
PPT
GROOVY ON GRAILS
PDF
New WSO2 Enterprise Integrator Focuses on Integration Developer Productivity
PDF
I/O Extended (GDG Bogor) - Andrew Kurniadi
PDF
Introducing Spring Framework 5.3
PPTX
Micronaut: A new way to build microservices
PDF
Javantura v4 - Security architecture of the Java platform - Martin Toshev
PDF
.NET Application Modernization with PAS and Azure DevOps
PDF
Full Steam Ahead, R2DBC!
PDF
Our move to Salesforce DX and Unlocked Packages
PDF
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
What's new in python 3.8? | Python 3.8 New Features | Edureka
ID Android TechTalk Series #6 : Google Service and Gradle - Anton Nurdin Tuha...
DevOps - Isso existe mesmo?
Visual Studio 2008 and .NET 3.5 Overview
Nitin devops
AngularJS Vs NodeJs
Deep Dive OpenShitt on Azure & .NET Core on OpenShift
GWT Introduction for Eclipse Day
JS digest. November 2017
Connecting Spring Apps to Distributed SQL Clusters Running in Kubernetes
GROOVY ON GRAILS
New WSO2 Enterprise Integrator Focuses on Integration Developer Productivity
I/O Extended (GDG Bogor) - Andrew Kurniadi
Introducing Spring Framework 5.3
Micronaut: A new way to build microservices
Javantura v4 - Security architecture of the Java platform - Martin Toshev
.NET Application Modernization with PAS and Azure DevOps
Full Steam Ahead, R2DBC!
Our move to Salesforce DX and Unlocked Packages
CSV and JSON Transformation in WSO2 Micro Integrator 4.0 - WSO2 APIM Communit...
Ad

Similar to TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team at .NET (20)

PPTX
Microserviços na vida real
PPTX
Microservices in Azure
PDF
Adobe nondisclosure-agreement-automation-solution-sb.pd
PPTX
Azure App Service - Customer Presentation v4.pptx
PPTX
10052016114313.pptx
PPTX
App Modernisation with Microsoft Azure
PPTX
PRESNETTION ON THE THE ARCHITECUTERE OF THE AWS
PDF
AZ900-AzureFundamentals-part-5.pdf
PPTX
PPTX
Microsoft Azure in der Praxis
PPTX
Return on Ignite 2019: Azure, .NET, A.I. & Data
PPTX
Introduction-to-Microsoft-Azure.pp TO learntx
PPTX
Designing Microservices
PDF
Azure from Rookie to DevStart
PPTX
Demystifying Azure Compute
PPTX
Microservices in Azure
PPTX
20170209 dev day-websites_vs_cloudservices_vsservicefabric_scenarios
PPTX
Serverless Application Development with Azure
PDF
Microsoft's modern technologies
PPTX
Azure IAAS.pptx
Microserviços na vida real
Microservices in Azure
Adobe nondisclosure-agreement-automation-solution-sb.pd
Azure App Service - Customer Presentation v4.pptx
10052016114313.pptx
App Modernisation with Microsoft Azure
PRESNETTION ON THE THE ARCHITECUTERE OF THE AWS
AZ900-AzureFundamentals-part-5.pdf
Microsoft Azure in der Praxis
Return on Ignite 2019: Azure, .NET, A.I. & Data
Introduction-to-Microsoft-Azure.pp TO learntx
Designing Microservices
Azure from Rookie to DevStart
Demystifying Azure Compute
Microservices in Azure
20170209 dev day-websites_vs_cloudservices_vsservicefabric_scenarios
Serverless Application Development with Azure
Microsoft's modern technologies
Azure IAAS.pptx
Ad

More from tdc-globalcode (20)

PDF
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
PDF
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
PDF
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
PDF
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
PDF
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
PDF
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
PDF
TDC2019 Intel Software Day - Inferencia de IA em edge devices
PDF
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
PPT
Trilha .Net - Programacao funcional usando f#
PDF
TDC2018SP | Trilha Go - Case Easylocus
PDF
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
PDF
TDC2018SP | Trilha Go - Clean architecture em Golang
PDF
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
PDF
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
PDF
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
PDF
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
PDF
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
PDF
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
PDF
TDC2018SP | Trilha .Net - .NET funcional com F#
PDF
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core
TDC2019 Intel Software Day - Visao Computacional e IA a servico da humanidade
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - ACATE - Cases de Sucesso
TDC2019 Intel Software Day - Otimizacao grafica com o Intel GPA
TDC2019 Intel Software Day - Deteccao de objetos em tempo real com OpenVino
TDC2019 Intel Software Day - OpenCV: Inteligencia artificial e Visao Computac...
TDC2019 Intel Software Day - Inferencia de IA em edge devices
Trilha BigData - Banco de Dados Orientado a Grafos na Seguranca Publica
Trilha .Net - Programacao funcional usando f#
TDC2018SP | Trilha Go - Case Easylocus
TDC2018SP | Trilha Modern Web - Para onde caminha a Web?
TDC2018SP | Trilha Go - Clean architecture em Golang
TDC2018SP | Trilha Go - "Go" tambem e linguagem de QA
TDC2018SP | Trilha Mobile - Digital Wallets - Seguranca, inovacao e tendencia
TDC2018SP | Trilha .Net - Real Time apps com Azure SignalR Service
TDC2018SP | Trilha .Net - Passado, Presente e Futuro do .NET
TDC2018SP | Trilha .Net - Novidades do C# 7 e 8
TDC2018SP | Trilha .Net - Obtendo metricas com TDD utilizando build automatiz...
TDC2018SP | Trilha .Net - .NET funcional com F#
TDC2018SP | Trilha .Net - Crie SPAs com Razor e C# usando Blazor em .Net Core

Recently uploaded (20)

PDF
FORM 1 BIOLOGY MIND MAPS and their schemes
PDF
Paper A Mock Exam 9_ Attempt review.pdf.
PPTX
20th Century Theater, Methods, History.pptx
PPTX
History, Philosophy and sociology of education (1).pptx
PDF
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
PPTX
Unit 4 Computer Architecture Multicore Processor.pptx
DOC
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
PPTX
Introduction to Building Materials
PDF
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
PDF
Empowerment Technology for Senior High School Guide
PDF
medical_surgical_nursing_10th_edition_ignatavicius_TEST_BANK_pdf.pdf
PDF
IGGE1 Understanding the Self1234567891011
PPTX
A powerpoint presentation on the Revised K-10 Science Shaping Paper
PDF
My India Quiz Book_20210205121199924.pdf
PDF
1_English_Language_Set_2.pdf probationary
PPTX
Introduction to pro and eukaryotes and differences.pptx
PDF
Computing-Curriculum for Schools in Ghana
PDF
CISA (Certified Information Systems Auditor) Domain-Wise Summary.pdf
PDF
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
PDF
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf
FORM 1 BIOLOGY MIND MAPS and their schemes
Paper A Mock Exam 9_ Attempt review.pdf.
20th Century Theater, Methods, History.pptx
History, Philosophy and sociology of education (1).pptx
FOISHS ANNUAL IMPLEMENTATION PLAN 2025.pdf
Unit 4 Computer Architecture Multicore Processor.pptx
Soft-furnishing-By-Architect-A.F.M.Mohiuddin-Akhand.doc
Introduction to Building Materials
Black Hat USA 2025 - Micro ICS Summit - ICS/OT Threat Landscape
Empowerment Technology for Senior High School Guide
medical_surgical_nursing_10th_edition_ignatavicius_TEST_BANK_pdf.pdf
IGGE1 Understanding the Self1234567891011
A powerpoint presentation on the Revised K-10 Science Shaping Paper
My India Quiz Book_20210205121199924.pdf
1_English_Language_Set_2.pdf probationary
Introduction to pro and eukaryotes and differences.pptx
Computing-Curriculum for Schools in Ghana
CISA (Certified Information Systems Auditor) Domain-Wise Summary.pdf
A GUIDE TO GENETICS FOR UNDERGRADUATE MEDICAL STUDENTS
OBE - B.A.(HON'S) IN INTERIOR ARCHITECTURE -Ar.MOHIUDDIN.pdf

TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team at .NET

  • 1. Microservices on Azure How to deliver a high-scalable, secure, decoupled and cross-platform web application on Azure Fabrício Sanchez Sr. Technical Evangelist @ Microsoft fabriciosanchez.com.br
  • 2. Agenda  Key requirements for modern applications  Microservices architecture  Arda (sample application)  Software architecture  Azure architectures  Code view  How we care about security  Azure assets view  How we deliver?  Conclusions  Q&A
  • 3. Key requirements for modern applications Highly concurrence Application must be scalable in a cost effective way Highly complexity Application should be breakable (dividing to conquer) 3rd-party services integration Application should be pluggable Mobile communication Application should share data through RESTFull APIs Platform independency Application should run in every platform Continous delivery Application should be constantly updated Security Application should be secure
  • 4. Monolithic architecture Application architectural view “Monolithic application has single code base with multiple modules. Modules are divided as either for business features or technical features. It has single build system which build entire application and/or dependency. It also has single executable or deployable binary” Common host environment
  • 5. Microservices architecture Application architectural view Common microservices environment Microservice architecture is an approach of building large enterprise application with multiple small unit called service, each service develop, deploy and test individually. Each service intercommunicate with a common communication protocol like REST web service with JSON.
  • 7. Demo Arda – Application running in production
  • 8. Arda – Microservices architecture Dashboard web Power BI Others IPR IPR Permissions / Security Internet Kanban Reports Authentication / Users
  • 9. Arda – Azure architecture (web app based)  Azure Active Directory  Azure App Services  Web App  API App  Azure SQL Database  Azure Redis Cache  Azure Storage (blob)  SendGrid (free tier)
  • 10. Demo Arda – Web Apps environment
  • 11. Arda – Azure architecture (container based)  Azure Active Directory  VM or ACS  Docker containers  Azure SQL Database  Azure Redis Cache  Azure Storage (blob)  SendGrid (free tier)
  • 12. Arda – How we care about security  Configuring SSL for entire services  Using Azure Active Directory as identity provider (+info next slide)  Enabling CORS to specific endpoints in each service  Enabling SQL Firewall only for Azure Services in production database  All secrets informations (passwords, etc) is delivered only in DevOps pipeline (release). Devs works with local secrets file  Configuring Azure Redis Cache to work only with SSL (to do)
  • 13. Arda APIs – Protection flow using Azure AD Arda App (browser) Azure AD Authorization Endpoint Azure AD Token Endpoint Arda APIs Request authorization code Sign-in via browser Return authorization code Get authorization code and require (via POST) access token for Arda API resource Return access token and refresh token Return Http Response Call Arda API using the access token (inside header) https://login.microsoftonline.com/common/oauth2/authorize https://login.microsoftonline.com/common/oauth2/token Layer1:LoginLayer2:APIaccess
  • 14. Another options on Azure  Azure Service Fabric  Virtual Machines on the same VNet  Web & Worker Roles
  • 15. Arda – How we deliver? Git Repositories  Arda  BugBot  DevOps Build & Deploy  AspNetCore.ALL (Production)  AspNetCore.ALL (Dev) Load Testing  Not implement yet Release Management  AspNetCore.ALL (Production)  AspNetCore.ALL (Dev)
  • 16. Arda – How we deliver?
  • 17. Demo Arda – Visual Studio Team Services
  • 18. Conclusions  We tested Web Apps and Docker host. Another options could be ACS and Service Fabric  Azure Web App is robust and make microservices environment management easy  Azure is a great platform to deliver microservices-based applications  Azure AD is an excelent option in order to provide security in different levels  Microservices can be a good architectural choice if:  Application must scale in separatedly way  Application is big and complex and break it will make things better  Company has a senior development team  Company has a mature DevOps process implemented  You would like to have a cross-technologies application (optional)  In other cases, monolithic layered architecture continues being a good option  After release 1.0, ASP.NET Core is recommended to production development  SQL Azure is strongly recommended to work with microservices  Microsoft deliver one great solution to DevOps (VSTS)
  • 19. Q&A

Editor's Notes

  • #2: Welcome: Hello guys! How are you doing? Welcome to this presentation. It’s a great pleasure to be here today in order to learn togtheter a little bit more about Azure and microservices Present myself: I’m Fabricio, Technical Evangelist in Brazil Talking point 1: Talk a little bit about the day-by-day in touch with customers Talking point 2: Talk about conversations with customers about the possibility to break their applications in microservices in order to get a more lightwight structure Talking point 3: Talk about the decision to create Arda to test microservices concept and Azure in this aspect
  • #3: Topic 1: When we think about an modern application... What architectural and pratical aspects we need to considering to create them? Topic 2: Analysing a monolithic architecture, what insights can we extract in order to compare it with modern applications requirements? Topic 3: Analysing a microservices architecture, what insights can we extract in order to compare it with modern applications requirements? Topic 4: Here we will take a look in more technical aspects about the application: architecture, technologies, implementation, security, etc. Topic 5: Here we will take a look in Visual Studio Team Services (VSTS) in order to understand how we manage this application in a DevOps context Topic 6: We will extract some insights and recomendations to our customers about this process Topic 7: Q&A
  • #4: Requirement 1: Yes, modern application are highly concurrent. Is super common any web application, for example, have thousands connect people at the same time through diferent devices. Requirement 2: To cover all the different scenarios, applications tend to become complex. Some important aspects that collaborate to this: 1: Writting and consumig data from different data sources 2: Spread informations along diferent devices and environments (mobile, desktop, Windows, Android, iOS) 3: Tallking with different APIs models 4: Providing best UI experience for final users Requirement 3: In general modern applications “talk” with another applications (3rd-party) in order to get informations unknown of application. This is usual. Requirement 4: Mobile communication is mandatory. Modern applications must provide information to mobile apps. This is a huge requirement for modern applications. Requirement 5: Companies have to be free to choose the development language and environment to delivery their application. Why not have in the same application C#, Python and Node.js? Why not deliver part of this application in Linux and another part in Windows? Requirement 6: Technology market is very fast and the delivery of features in modern application must be as well. How can we delivery software with quality and high speed? Requirement 7: Modern application must be secure. In some cases people input very sensitive information in our applications so this way, need to guarantee that application is completely safe.
  • #5: Talking point 1: For years companies has been developing their applications using monolithic approach. Somes whys: 1: Applications were restricted to company domain without need expose APIs outside 2: In general applications used a desktop approach to build their solutions 3: To communicate with another applications, another standards were used, like EDB, EDI, EDX and after, WCF Talking point 2: Monolithic architecture incentive the tightly coupling between layers of application. This implies mainly in one environment hard to test and maintain Talking point 3: In general this applications depends of environment (OS and Database) Talking point 4: Deploy this applications in general is a little bit more difficult to PaaS environments Talking point 5: To scale out this applications on the cloud we must scale entire application. This aspect can be expensive for majority scenarios
  • #6: Talking point 1: Divide the application in small pieces called “services”. Each service can be developed, tested and deployed individually Talking point 2: This services exchange info between theirself using JSON (RESTFul APIs) Talking point 3: Each service has their own database repository Talking point 4: Each service is 100% isonomic each other Talking point 5: Each service run in a shared cluster environment, in one single runner instance (Web App, for example) our in a single container (Docker, for example). Each service has their own process in memory Talking point 6: Each service can be develop in a different technology each other and can run with different OS and databases at same time Talking point 7: Each service can be scaled out (or up) individually Talking point 8: This services naturally works as APIs this way, share info with another applications or mobile apps through the internet is very simple and built-in Talking point 9: To implement security is considering more simple. We need just protect APIs individually (using Active Directory, for example)
  • #7: Arda is a free management tool designed to help managers have some insights about workloads and time offenders for its teams. We developed the first version specifically to Microsoft but with some small adjustments can be used for any time of companies and teams. Soon as possible we intend share the solution through Microsoft’s GitHub. As we will see, Arda is fully developed with Microsoft’s technologies stack, is 100% microservices-based and fully hosted on Azure. So... Let’s get started with Arda. Link to production environment: https://ardaapp.azurewebsites.net.
  • #8: Run Arda (https://ardaapp.azurewebsites.net) using Chrome anonymous mode Access the tool by clicking in “Sign in” icon Provide requested informations on the login page Provide requested informations by “Two factor authentication process” Navigate through somes application features: Kanban, Workloads and Reports
  • #9: This is the general view about Arda architecture: Layer 1: Here we have the front-end layer. This layer is responsable for support user navigation or another applications nature (for example: A mobile application, etc). This layer only execute assyncronous (using AJAX) calls in order to consume microservices informations. Layer 2: We have internal microservices environment. Currently we have 3 microservices living: Kanban, Permissions and Reports. It responsabilities are described below: Kanban: microservice responsable for manage all activities regarding to kanban: workloads, appointments, etc. Permissions: microservice responsable for control authentication, users it permissions to resources Reports: microservice responsable for consolidate informations provided by another services and send it to ArdaApp microservice ArdaApp (Main): microservice that run front-end application and show the informations to final users All microservices exchange informations using JSON format through REST APIs Permissions and Kanban has it own SQL databases Every microservice implements a replication mechanism to aspects that must be replicated Authentication will be implemented in the future to companies that would like to use Arda but don’t have Azure AD
  • #10: This is the current architecture in which system run today: Using browser the user access Arda. Every user final request is happen in “ardaapp” Web App When the sign in process is requested, “ardaapp” goes to Azure AD and request the authorization for this user. If ok (user exists) Azure AD return the requested informations, Arda store this informations in a cookie and create an entry in Redis Cache Each microservice can store data in it own Azure SQL Database in a 100% isonomic process Each microservice can consume and share informations with any other All this structure is managed for the the same Resource Group (Arda)
  • #11: Open Azure Portal Select “Arda” dashboard WEB APP Navigate to “ardaapp” Talk about the monitoring panel and alerts configuration Talk about Kudu in order to get a more advanced management to the environment Show the IIS configuration featuring “Always On” and “Affinity by Cookies”. Always On is important for us because the services must be immediately accessable in any time Show the backup configuration Talking a little bit about the possibilites: Web Jobs Automate deploy Create load test Automatically enable Application Insights SQL AZURE DATABASES Navigate to “Arda_Permissions Talk about the database Properties Talk about the Georeplication Talk about the TDE (Transfer Encription Data) Talk about the performance and querie monitoring AZURE REDIS CACHE Navigate to “Arda” Talk about monitoring panel and alerts configuration Talk about possibilities (network, persistence, etc) using Premium Tier AZURE STORAGE Navigate to “Arda” Talk about encryption possibility Talk about Georedundance Talk about Premium tier (SSD) possibility SEND GRID Talk about “Configuration”
  • #12: This is another option to deliver Arda microservices on Azure: using Docker containers We have almost the same environment. The difference here is: we have a Virtual Machine running Ubuntu that acts how Docker Host. The Docker containers that run Arda microservices are hosted in this VM. The request continues get in “ardaapp”. This microservice “ardaapp” direct their calls to public ports in Docker Host VM. Docker Engine convert this public ports to internal ports (NAT) and then the microservice can answer We are trying this approach, making the first tests. Next tests will be: ACS and Service Fabric
  • #13: Navigate to “ardadockerhost” Acquire public IP from VM Open Putty and sign in with public ip + username + password Type “docker ps –a” to see all containers running Type “docker logs {container name} to see activity in this container
  • #14: We choose .NET Core and ASP.NET Core with aim of testing the maturity of the platform. We started working with RC1 and delivered first release of Arda with 1.0 During the development process we found some troubles related to missing resources. For example: we couldn’t send e-mail messages in a built-in way. We need to develop our own email sender. In the 1.0 release, this and another gaps was solved In Web Apps we are using native IIS integration. In containers we are using selfhost model
  • #15: Open Visual Studio Open Arda solution Talk quickly about the new project structure Project.json Startup.cs Repository pattern MVC to web api Manage secrets
  • #17: The Azure AD protection happens in two different moments: 1. When user request “sign in” Arda application send a request for one “authorization code” to Azure AD. Azure AD verify if caller user exists. If “yes” the authorization code is returned to Arda. Arda store this authentication code in one cookie and creates a “session” with this information on Azure Redis Cache. 2. When an API needs to consume data from another API Arda APIs are protected by Azure AD. This means that when a microservice need consume some information provided by other, the caller service must validate with AD if the caller have permissions to execute that access and if access is happening in a write way (the audience information is correct). What happens follow: Caller service read cookie in order to get “authentication code” Caller service request (doing a POST to AD Token Endpoint) for an “access token”. AD Token Endpoint consult related AD application to know what can be accessed by another service Caller service get the returned “access token” Caller service call target service sending “access token” on header. Target service validate information provided by “access token” and, if is everything ok, returns content requested. If not, return a 401 error (unauthorized) This flow guarantee security on APIs access.
  • #18: Open Azure Portal (old): https://manage.windowsazure.com Navigate to Active Directory option Navigate to “Microsoft” Navigate to “Applications” tab Search for “Arda” Navigate inside “Arda” application
  • #19: Topic 1: When we think about an modern application... What architectural and pratical aspects we need to considering to create them? Topic 2: Analysing a monolithic architecture, what insights can we extract in order to compare it with modern applications requirements? Topic 3: Analysing a microservices architecture, what insights can we extract in order to compare it with modern applications requirements? Topic 4: Here we will take a look in more technical aspects about the application: architecture, technologies, implementation, security, etc. Topic 5: Here we will take a look in Visual Studio Team Services (VSTS) in order to understand how we manage this application in a DevOps context Topic 6: We will extract some insights and recomendations to our customers about this process Topic 7: Q&A