Architecting systems for continuous delivery

Slides:



Advertisements
Similar presentations
3 Ways to Integrate Business Systems to Partners
Advertisements

Microsoft Ignite /30/2018 9:28 PM BRK3174
5/15/2018 © 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks and/or trademarks.
Secure Hyperconnectivity with TeamViewer and Windows technologies
Microsoft /23/2018 8:20 PM THR3038 Implement dev and test scenarios using Azure and Visual Studio Team Services Alex Mang Azure MVP © 2016 Microsoft.
Azure Machine Learning Deploying and Managing Models in production
Providing reliable SMB shares in Microsoft Azure
The story of an IoT solution
5/27/ :57 PM Tips & Tricks for Deploying and Managing Microsoft Dynamics 365 for Sales and Service Sean McNellis Shawn Dieken Dynamics 365 Principal.
How To Deliver Apps Faster And Secure Them The Microsoft Way
Mobile App Trends: lifecycle, functions, and cognitive
Working With Azure Batch AI
Microsoft /4/ :15 PM THR2219 How Microsoft IT enables modern mobility with Windows 10 security and productivity features Rekha Nair IT Program.
Configure and Manage Your Hybrid Cloud Environment at Scale
6/10/2018 4:48 AM THR2155 A/B Testing, Canary releases and dark launching: Implementing continuous delivery on Azure Marcel de Vries CTO, Xpirit © Microsoft.
6/11/2018 8:14 AM THR2175 Building and deploying existing ASP.NET applications using VSTS and Docker on Windows Marcel de Vries CTO, Xpirit © Microsoft.
Microsoft Ignite /11/2018 1:18 AM BRK4017
Developing Hybrid Apps on Microsoft Azure Stack
Upgrade, upgrade, upgrade! Say goodbye to clean installs of Windows 10
Microsoft /23/2018 1:11 AM BRK3180 Migrate CRM OnPremise organizations to CRM Online cloud using Dynamics Lifecycle Services (LCS) Aditya Varma Ganapathy.
Azure SDKs and Tools for You
7/2/2018 2:39 AM BRK2413 Customer lifecycle with LCS: Dynamics 365 for Finance and Operations, Enterprise edition Manali Dongre Senior Program Manager.
Azure Functions and Automation: The SQL Agent in the Cloud
Performing a Seamless Migration in Azure SQL DB
Microsoft Ignite /22/2018 3:27 PM BRK2121
ASP.NET in Linux and Windows containers
Serverless Architecture in Azure
Integrate Power BI with Microsoft Dynamics
Automate all things! Microsoft Azure continuous deployment
Troubleshooting Windows 10 Deployment: Top 10 Tips and Tricks
Agile Planning with Visual Studio Team Services (VSTS)
Exploring Azure Event Grid
Break out of the box with Python
Monitor your Microservices with Application Insights
Deploy Windows 10 Mobile for the mobile workforce
Microsoft Build /8/2018 5:15 AM © 2016 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY,
Explore web development with Microsoft ASP.NET Core 1.0
Meetup: Use Microsoft Technologies to Real World IoT Scenario
Migrate to CRM Online - Tips and Tricks
F5 WAF in Azure Security Center
Determine your role in a managed service
Microsoft Ignite /20/2018 2:21 PM
Azure Event Grid with Custom Events
Continuous Delivery with Visual Studio Team Services
Improve Office 365 Adoption: Top 10 Ways
Developing for the cloud with Visual Studio
12/1/2018 2:29 AM How Microsoft does IT: Empower your teams with secure devops in the cloud Seth Malcolm IT Showcase © Microsoft Corporation. All rights.
TechEd /3/2018 8:11 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Power-up NoSQL with Azure Cosmos DB
Introduction to ASP.NET Core 1.0
Can I get a side of OneDrive for Business with my SharePoint?
TechEd /15/2019 8:08 PM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
What query folding means to self-service BI projects
Serverless Architecture in the Cloud
2/16/2019 9:42 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Meetup User Experience Design for SharePoint
2/19/2019 9:06 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Surviving identity management in a hybrid world
Ask the Experts: Windows 10 deployment, servicing, and provisioning
Learn how to leverage the Microsoft Store for Education in your school
TechEd /7/2019 1:14 AM © 2013 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
Choosing between Microsoft PowerPoint & Sway
Ask the Experts: Windows 10 deployment and servicing
Understand the impact of the future of SharePoint
Build /20/2019 © 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, and other product names are or may be registered trademarks.
OneDrive Unplugged A panel discussion on all things OneDrive
Mark Quirk Head of Technology Developer & Platform Group
Microsoft Virtual Academy
9/16/2019 6:55 PM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN.
Presentation transcript:

Architecting systems for continuous delivery 7/17/2018 6:32 AM Architecting systems for continuous delivery Marcel de Vries CTO, Xpirit © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Agenda Architectural concepts to solve bottlenecks Smaller shippable units Decreasing hard coupling between (sub) systems Enabling zero downtime deployments Different thinking around releases Different thinking around testing Further reading

Current Architectural Challenges of CD All software components need to be delivered as one cohesive set Partial updates not possible Better known as the monolith All changes are in one huge code repository Long lived branches, merge hell Test process takes 2 months to verify regression and new features We are forced to use technology and tools that don’t fit our needs

Smaller shippable units What is the architecture of your system? Monolith SOA ?

Monolith Dependencies Deployment strategy Scaling strategy Monitoring All software is tightly coupled. Most often the system is build in the same software technology (e.g. .NET with C#) Often one database with strong schema dependency Deployment strategy De-install, upgrade/migrate DB Schema, Install new version System will be unavailable during deployment Takes hours to complete Scaling strategy Scale up and out Monitoring Based on home grown monitoring tools

SOA Dependencies Deployment strategy Software can be in multiple technologies, communication via a Service Bus Strong dependency on message schema’s Strong dependency of services on Middleware technology Deployment strategy Per service De-install, upgrade/migrate DB Schema, Install new version System will be unavailable during deployment Takes hours to complete & coordinated effort Upgrades of ESB also requires coordinated effort

Which Service owns this page?

None!

Composition is key!

Microservices architecture

Decreasing hard coupling between (sub) systems Coincidental cohesion (worst) random Logical cohesion same in nature Temporal cohesion executed at a particular time Procedural cohesion part of fixed execution sequence Informational cohesion operating on the same data Sequential cohesion Output of one is used as input by another Functional cohesion (best) contributing to a single task

Defining Microservices Finding Autonomous Business Capabilities Low Coupling Components are completely insensitive to changes and errors in other components. No Coupling Error and changes seldom propagate errors and changes to dependent components Low Coupling Errors and changes in one component almost always propagate to other components High Coupling

Bounded contexts

Using events to decouple services Systems keep their own state Events are used to notify changes Systems use events to replicate data Each service will have it’s own data store Downsides: Latency in data changes No central control of business logic Challenge to reconcile in case of disaster

Cross-service coupling Smart endpoints, dumb pipes No intelligent middleware Technologies to look at: Queues (Azure, MSMQ, WebSphereMQ , ...) Service Bus (NServiceBus, Azure ServiceBus, ...) Language neutral data serialization (Google Protocol buffers, Apache Thrift)

Zero downtime deployments

Circuit Breaker Pattern Handle faults that may take a variable amount of time to rectify when connecting remote service or resource. This pattern can improve the stability and resiliency of an application.

Retry Pattern Enable an application to handle temporary failures when connecting to a service or network resource by transparently retrying the operation in the expectation that the failure is transient. This pattern can improve the stability of the application.

Reset your defaults

Classical Approach Automated Testing Unit testing Integration testing Manual testing CD tells us: Automate everything…. Move to more automation Manual testing -> Use of UI Automation tools

“There is no place like Production” Source: Brian Harry, Microsoft Technical Fellow

Choosing the right scale unit is crucial Testing in production SU1 SU2 SU3 Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature Choosing the right scale unit is crucial to enable this concept Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature Feature Customer segment A <1000 Customer segment B <10000 Customer segment C All other

Recap Decompose your system in more independent deployable units ABC’s Strive for functional Cohesion Adapt event driven style of communication Make services failure resilient Rethink the way systems are tested and implications on your systems architecture MSA is not the goal, it’s a means and you will pay a premium to get it in place!

Further reading Microservice architecture, Sam Newman Domain Driven Design, Eric Evans Microservices, Martin Fowler Continuous Delivery. Jez Humble Xpirit magazine

Xpirit mdevries@xpirit.com Fluentbytes.com @marcelv 7/17/2018 6:32 AM Xpirit All Photos used in this presentation come from unsplash.com mdevries@xpirit.com Fluentbytes.com @marcelv © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

Xpirit xpir.it/XpiritMagazine mdevries@xpirit.com Fluentbytes.com Building a CD pipeline with VS 2015 Test Automation with CodedUI Testing Web Applications with CodedUI Introduction to Docker on Windows with Visual Studio 2017 All Photos used in this presentation come from unsplash.com mdevries@xpirit.com Fluentbytes.com @marcelv

Please evaluate this session Your feedback is important to us! 7/17/2018 6:32 AM Please evaluate this session Your feedback is important to us! The slide will be replaced onsite through Silver Fox Productions with an updated QR code. This slide is required. Do NOT delete or alter the slide. From your PC or Tablet visit MyIgnite at http://myignite.microsoft.com From your phone download and use the Ignite Mobile App by scanning the QR code above or visiting https://aka.ms/ignite.mobileapp © 2014 Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.

7/17/2018 6:32 AM © Microsoft Corporation. All rights reserved. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.