Microsoft Dynamics 365 F&O implementation with Azure DevOps

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
uh this is our 32 session um I bring up ratchet and Deepak uh to this group and they're on video Satya is also there he's he's uh he's just came from rakhi Festival we all celebrated but yeah yes okay so wonderful day today um was a little bit cloudy in Sydney now we are moving ahead with this slide this is this session is about uh the Dynamics implementation Dynamic finance and operation implementation uh with respect to your Azure devops so basically how you can deploy your code with the help of azure devops how you can automate it there will be uh GitHub uh sorry git pipeline setups and all those things will be discussed with Deepak and rachit so uh let me bring you about the group introduction this group we started around two years two and a half years back and we have been loved by all over the world we get a lot of requests a lot of questioning we have uh normally in in the group a lot of interactions happen we have now crossed around 400 and 4500 uh LinkedIn members as well as followers in our group and uh we have our YouTube channel wherein we have already being recording these sessions and posting it for all of you all of your views uh recommended is to please join them and do subscribe so that you can get the best out of it uh today's session is more towards uh the okay I think we have to welcome our friend Deepak Agarwal he's joining in from UK he will be also volunteering this group starting today uh to pump up our reach in UK as well since we are already across the world and the UK reach was little bit limited I would say but now he is being pumping up our sessions into UK as well okay so this is our group introduction uh since we have already added Deepak Agarwal here already is already reading the sessions uh this is our social handles LinkedIn Twitter and uh the Youtube channel you can scan them and you can follow like and comment this is our group logos we have already this is this is something uh backdated but we will update it soon okay so past sessions are already in the link and this is our group this is our website as well website is not well developed till now we are looking for developers if you if you can refer someone or if you are a developer those who can set up our website definitely it is uh welcomed uh for everyone those who can contribute today's session is more focused on our the Azure devops pipeline setup and get introduction to the financial operation without any delay I will just uh give this particular opportunity to our rachitsar and Deepak Agarwal thank you thank you thank you Umesh for the humble introduction and welcome Deepak to the group uh before we move on with the session I would like to wish everyone a very happy raksha bandhan this is our Festival we are celebrating in India today it's it's to celebrate the bond of brother and sister love so everyone who is celebrating uh best wishes from our side so yeah let's kick off with the session so people will you please share your screen and then we'll do our introduction yeah sure I'm also excited to see the number of people attending session today I think is one of the uh one of the most favorite session looks like yeah thanks everyone for joining we really need this support yeah so is my screen visible enough yes screen invisible uh if you can move on to the next one please cool so welcome everyone today what we are going to discuss is what is devops and what is azure devops what are its various components which are used in various uh phases of an implementation of Dynamics 365 finance and operations so throughout the project Journey how we use devops and how every Persona of your implementation team touches this particular platform so it is a really a valuable platform which needs to be taken care of during the whole journey then we will do a bit of a deep dive into the Azure areas and pipelines and how you manage releases and a bit of automation um yeah let's move on so quick introduction about the speaker so myself rachit based in Australia I'm currently working with velrada and uh based in Melbourne I received Microsoft MVP award first time this year 2023 so really excited to be a part of the MVP crew I'm also a Microsoft certified trainer and a Microsoft certified solution architect in finance and operations my background is technical I've been working as an X Plus developer since year 2005. I love X plus plus and the uh the pla the capabilities of this language is like really uh I I never say no to any customer I have been saw been solving every complex problem with this language so yeah a bit of an X plus plus alert but uh happy to be here and talk share this stage with Deepak I'll hand it over to Deepak to introduce himself and take us forward in this journey over to you Deepak yeah thanks thanks so much for setting up the platform for me so hi everyone myself Deepak Agarwal and being working in the Dynamics Universe for about 13 years now and actively part of MVP Community since 2013 and recently I completed my 10th anniversary with MEP program so uh yeah I'm excited to start this session so let's quickly jump into our agenda first so first uh and the first topic of this session we are going to talk about what is devops and Azure devops yes both are a bit of different uh Azure devops and devops are related concept but refer a slightly different things when we talk about devops and devops is set of practice and cultural philosophies that aims to provide an effective collaboration between development and operation team it promote continuous integration and continuous delivery which also known as CI CD when now when I'm talking about azure devops on top of devops when we have set of tools from Microsoft like Azure test plans as your pipelines artifacts Azure boards and repost freeze so those set of tools provides those tools provide to use devops more effectively and help teams to plan develop tabs test and deliver your application properly it's a compensation Street uh tools that covers various aspects of devops lifecycle and if I'll say in summary devops is a methodology while Azure devops is a set of specific tools and services provided by Microsoft so yeah and next time when when we say whether it's devops or residobes so I believe now you all know both are different things and in general terms we normally still call it devops while using azure devops okay the next topic for the session is to understand what are when when I'm when we are talking about Azure devops tools what are those tools and components so primarily there are uh five major tools available out of the box with Azure devops which is azure boards Azure repositories Azure pipelines Azure artifacts and test flank uh one interesting thing uh for those tools are you will get a couple of free license which is applicable on Azure boards repositories pipelines and artifact but Azure test plan needs a separate dedicated license now let's see all the tools one by one first we are looking at the screen uh for Azure boards so Azure board is the main target audience for Azure board could be a project manager scrum Masters and the project stakeholders boards specifically focus on the work tracking and the project management aspect of sdlc software development life cycle by providing a visual visualizing representation of work and their different status the dashboard within boards is kanban boards which visualize work items and you can literally move the cards from if you see the screen here those are different columns different stages of each item you can literally move from one status to another status I will also cover this part while we were going through demos and in the in the left hand side on the screenshot you see and there are a couple of uh items a couple of further tools available the boards I'll call them in the demo going next Azure repositories the main person of the project four repositories are technical Architects solution Architects and release managers and individual developers as well so what is azure repositories as its name says it's repositive for your code where you do your code versioning within this Azure repositories you can perform more effective code reviews with threaded discussion and continuous integration for each change if you are using git repositories yeah uh that's a bit of spoiler for harajit session but if you are using git then you use all the git functionality which is uh very highly highly used for other software developments yeah Azure repository also helps to you know to set up your CI CD to automatically trigger bills test and deployment with every completed put requests within this tool you also Define your branch policies something like you know if you want to mandate to attach a devops item which is nothing but part of your board work item so whenever a developer is going to check in their code and related work items should be attached I will walk you through uh in the demo as well for that part so that is also can be defined on the branch policies Azure pipeline uh Azure pipeline will broadly code by the next half whereas it will work you through in more details but still let's see what are the main components many use of azure Pipelines so Azure pipelines used for cloud hosted and it's literally a platform independent so you you can use any any OS with its Linux Mac OS and of course Windows OS and I know this session is specifically around Microsoft Dynamics 365 but it's good to know those pipelines work equally effectively with any coding language any platform or any Cloud whether it's private Cloud hybrid or on-prem okay next uh artifacts so the main project persona for Azure artifacts are majorly solution architects this is a component of devops service that focus on package management it provides a platform to managing and sharing the different type of packages used in your software development it can be nuget package for.net it can be npm package even Maven package for Java this allows team to create publish and consume packages making it easier to manage dependencies and share reusable components throughout the projects and different teams test plans yeah this is always an interesting topic and in Project where teams spend a lot of time to do testing if they are not using this manually but this test plan help I mean first okay let's understand who is the personas for this test so Persona could be test managers and individual testers and the focus of testing and quality assurance aspect of this software development life cycle it also provide tools for planning managing execution your test and well tracking test results with any further issues raised during the testings test plans are designed to help teams to ensure quality and reliability of their software and this also supports whether you are doing manual testing you can design automation around there if you heard of darset tools that's integrate that can be integrated using a test plan here okay the next part where I'm going to walk you through a project Journey okay before uh going to understand project learning I have a quick question for everyone okay and please hear me carefully uh out of old audience here how many you feel like you need modiji for to manage your projects now can you raise your hands please if you feel you need modisi to manage your projects now okay seven people things okay some people are raising and Downing their hand again that's interesting okay I'll take a bullpar figure 10 okay uh I I see people are raising their hand and lowering again so I'll take a bullpar figure of 10 great so okay so you need a modisi to manage your project well uh mode easy is already there okay Azure devops is mode easy I hope you heard mode easy nothing else okay so nowadays we need a tool which is not easily available but it should be easily manageable even not only manageable it should be scalable when it's needed right so you know now what's mode easy for your project uh when next time to you look at your project management so just write those components okay so these are the main areas of where I'm going to uh walk you through as a project Journey so uh let's understand this so devops Azure devops as a whole is a big tool right and I have seen many many examples where companies or Partners have dedicated team to manage all of those tools now the idea for for this session and the first half of the demo where I'm going to present is just to Showcase what are the main components which can be used easily without any extra efforts and that is going to be a load help in your projects so we'll start with how to set up an organization how to create a project with an organization and couple of properties around the project creation then we'll see how to configure your projects where we'll Define Sprints how to set up backlogs capacity planning and how you could design your dashboards and I'll also explain how you will see how you can set up your branches and how to define policies uh good to know about test Suite uh as it needs a separate tool we have limited setup round there pipeline uh rachit will cover in depth with the Pipelines so okay this is just a screenshot you know whenever you're going to create a new organization okay so you will get uh those two uh properties to fill first you know choose your organization name mostly it's a group name or company name something like contro and you will host a reason choose a reason where you host your organization now I'll I'll share I'll stop my screen sharing for a moment and I'll jump to demo there's my screen still visible okay great great so first let's understand what is uh what are the part for uh organization setup so when you whenever you are going to do first time as you whenever you are going to set up your Azure devops first time you need to create an organization if there is an organization already exist for for your domain you will see that you can also create a new organizations so in org setting you will see a couple of areas so first of course overview and summary of your projects you can also uh change the owner in case uh someone taking over that specific set of projects here you will see a list of projects of course and the users available within this organization so now this a common question comes in the picture of what access level I need to manage okay so by default there are three type of access available basic stakeholder and basic still in the visual studio subscriber those are three three lessons are available so basic uh in my understanding Basics the topmost so you'll you get five basic license free with each Visual Studio project and you can use them while stakeholder is a default role which is assigned whenever a new user will be joining this project in the left you see billing section where you will see what are the default license and uh you know the free quota you received uh that is used for pipeline running and and so on uh in I believe I talk about extension as well in one of the slides so this extensions will help you to use a lot of more tools which you can integrate in your in your devops uh one tool I would recommend to use a retro perspective this is very good tool I use this a load that helped me to understand uh what my team thinks about each print we we have open feedback and ideas how to improve next print and so on uh here you will also get uh sorry in the light dope you'll you can also get personal access tokens which help you to integrate your devops with different applications if I'll talk about fno perspective this is used when you connect your device with the LCS now you may ask why we need to connect our LCS with the devops park description I'll come to this too later okay and now another common uh scenario which I I found uh in in different customers so when we create a project uh on the under an organization by default it comes as a basic process and this is nothing but uh the methodologies and we sometimes forget to change it and people later realize okay they are unable to see their different type of items and they tend to delete that project and create it again well it's not necessarily needed if you go to your org setting and if you see the boards processes it will tell you how many projects are created under each of it so for this demo I created one dummy project which is type of scrum let's assume I created this project new and accidentally that was uh by default that was basic but I needed to be Israel methodology so I'll come to the screen I'll select the project and here I'll collect change process and I can change this to something else if you see scrum is not coming here because some scrum is already type of my project now please note uh it's only recommended to make those changes when there are no work items there is no data at all on this project right if the you already use this project for a while teams start putting their work items start putting their comments feedback within this it's not recommended to change after that that may break a lot of a thing within your project okay uh that was Project setting now uh let's see I'll walk you through about this project so when we create a new project uh so this is uh the landing page of your project and let's quickly see what are the process settings available for me now as I said the idea for this demo is to not to drill through each and every tool but just to talk about what are the main features which can be used easily right and that's going to be a big help in your projects where you can literally avoid you know tons of emails uh like hey Deepak please send me status of what all the all interfaces uh let's escalate this one blah blah so all those things can literally be you know managed through divorce Okay so in Project setup so here we'll come to couple of things yeah I'm referring my script and backend to make sure I'm not missing any point so uh I'm under project setting uh so there are two settings team uh Please be aware so when I was here on the organization in the bottom it was org setting right and if I'm in in the project in the in the bottom left I'll see project settings so if I'll click on the product setting so first it's of course overview that will give me understanding uh it's better to put a nice description here and I'll see who are my project admin and this tool this part specific can be used to understand okay uh let's say I'm not using a specific to service for for my project I can simply own an of them and here whenever you are going to let's say I'll turn off a board for now okay so it will say turn of board hides okay Mark this word it says hides it doesn't says delete so that means even if you turn that off for for some reason you can come back here and turn that on your data will be there uh teams uh we can park teams and let's go to Project configuration for now so hey this is the area where you define your Sprints I hope everyone is aware about Sprint it's more a project uh management terms so where you define a certain time for each print and and decide set of tasks to be delivered within Sprint so here you will be able to create uh Sprints for this project and it's it's very interactive uh I mean every tools are very interactive well uh well intelligent tools so let's say here we are saying roughly how many uh 21 days of Sprint here right and if I'll create a new style let's say okay and I'll call it print it and I'll okay if you see the Sprint 7 is ending on Fifth so sorry 5th of January 24. so next date it will automatically come to sixth now you may ask why sixth why not six why eight why not sixth because six and seven are weekends I can also Define that like what are my working days of this project so I'll select this one and as soon as select start date and date automatically calculates on 20 days or whatever uh duration I'm taking for each print and that's how its greatest printed uh the other another part within this project configuration are areas where I Define uh the different areas of the project uh the areas could be something like uh where you categorized your items work items it could be like data migrations interfaces or maybe uh customizing something like that so those can be defined I'll tell you where we used areas later okay what next Okay so here repositories I'll come later well first let me talk about boards here so boards further drill with a lot of small tools small but very useful it reminds me uh a tagline from sakthiman so yeah it's uh it's a very useful tool uh small tools but very useful your project so work item where you will see all the work items within the project and you will get tons of different uh filters you can Define uh based on the type of it slowly will recognize each type having a different icon so you don't need you as soon as you see them here you understand okay this is my feature this is my task this is bug and this is my Epic and all of them are interlinked so on the top level it comes as epic and then feature then user stories and then tasks that's how in in an ideal word that works you can also see who all are the team members to whom it's assigned to okay and of course different states whether it's come in in progress or recently created which comes as new or it's completed approved you can use all of them now I talked about uh area in in previous screen so 80 on top of Sprint okay even before that sorry so whenever you're creating an item okay there are a couple of fills which you can use you must Define for example priority what is the priority for this one priority one two three and what are the efforts so let's I'll say this efforts will take uh 48 it's in hours always and here you will Define okay which iteration this is part of I'll say it's iteration two and I can Define areas here okay so I'll say it's pul and that's it within this screen there are couple of more useful tools as I said earlier you don't need to follow things over the emails so simply you go here in the description you type at the rate and let's say I need to check with Umesh who was working on Miss uh does it need any user testing or user training something like that okay so every comments are tracked within the story we don't need to scroll tons of emails after end of a work you can also interact with the users like uh okay so here they shared something uh need two more fields on customer master okay and let's say custom user give us this this description description so I can ask them okay hi uh user one please provide more details something like that so it's very interactive and very useful when for your Communications as well now uh let's consider one more scenario we have rachit as a project manager on this project and he may not need to look into each and every work item but eventually there are couple of critical items which might needs his attention so what he can do is he is not participating in those communication but he still needs to know what's going on this so he can do simply follow okay if I'll do follow so whenever there is an update or this item I will get emails notification what's happening around it okay so I think that's enough on the work item let's go to the boards yes uh you see when I moved to boards it stopped it's asked me whether I want to save it or not so it's important to note whenever you are making a changes you click on this save button okay for example let's say you uploaded a file okay and it start appearing here but if you don't click on save button that won't be saved on server so it's all always pay attention whether your save button is active or it's already saved right uh next uh go on the boards uh okay the board is uh also known as kenman boards it's very interactive you can literally do drag and drop create a new task and you can have different uh views uh reviews not enable on this project anyways so here what you can do is you can create new items from here like whether it's product backlog bug and you create a design item for that from this screen audible now hello continue okay no worries uh okay so here let's say I want to assign this item to Umesh so I don't need to go to the item uh in the details so I'll right click here sorry I click here I'll Define Umesh and here you can also Define uh the estimated efforts for this let's say I'll say it will take two days okay and I can also drag and drop form one to another phase so let uh let's say I would say this is already done so I'll I'll park it here it's design is completed now it's in development phase and once development completed I'll mark it it's done so you can manage uh from here as well now you might be seeing those couple of different colors here so what are they well you can configure these boards as per your need okay what that mean is if I'll go to the setting on the right top okay and I'll go to the Styles so I created two rules here what the tool means is I'll edit them for you I give a name let's say I need to highlight all those items which are taking more than four days of time okay and I need this to be applicable entire board every item okay and the next what I did is I'll create another rule I name it critical bugs and what I did is where wherever any bug with severity is one that should be in the red how this will help me is to identify any of those item within this board before going into the detail so let's see how that works in the real so let's assume this may take 45 hours so as soon as I'll mark this hours 45 this turned as Umber right so those styling rules are very useful again you can see everything within uh within your default boards and easy to track what's going on now you might seen the different uh oh different columns in in project and you can Define them here so for this test project I want to track all the items in four columns whenever item is created a new and the design phase and development and test phase and finally when it's completed or done you can literally play around those columns like you can change the change the sequence something like this you can add new columns you can rename it it's highly customizable okay so we sent this one next here we have okay so those work items boards backlogs all are interlinked you will see all similar items but in the different format so first of all we've seen the work item where everything is landed on the same page and then we've seen board which is more like a kanban board representation I can drag and drop from one state to another state I can assign those tasks to team member I can put the efforts I can change the path which area path it should be and so on uh in the backlog it's uh backlog is another way to manage those items for example uh currently we are in the Sprint 2. okay so let while reviewing with the team I see this product uh let's say this one this cannot be part of my Sprint too okay this is going to take longer or it's still pending for something so it I can simply do a drag and drop from Sprint 2 to Sprint 3. that will be moved to Sprint 3 now similarly let's say I wanted this to be part of let's say Sprint 4 or maybe five I can drag and drop here and you see the counts updating at real time easy to manage right okay uh there's one more thing I would like to show in the Sprint planning that is team capacity so now what is Team capacity so in a typical project there are different Persona works on your project like solution Architects and developers testers and deployment managers so let me try to set up uh three resources for my project okay where I want Deepak Agarwal Deepak as a developer and his his capacity is let's say seven hours each day excluding one hour of lunch uh rachit is a solution architect he's uh in designing a solution as he might be working on multiple projects I want his three Awards uh on this project each day omes is our deployment manager I I need his four hours or maybe let's say two hours in a day for deployment I can also Define more activities for one user so if you see Umesh here he is also responsible to prepare the release notes for an example okay so I need his one hour uh on the documentation similarly I can define something like add another activity for deeper and let's say uh I'll say testing and Deepak will spend I'll mark it six and I'll put it one okay so that's how I design my capacity and you can add all user and add new users who are part of this team and I'll save now let's see how this will help me to design my uh to plan my work ahead if I'll go back to uh the Sprint planning and here as I said you can filter on the different way if you go to the planning it will show the Sprint if you go the work details it will show you the different type of work based on the work item now so my project have three resources and debug's availability for Sprint 2 is 91 hours but he is allocated work of 26 hours similarly ratchet is occupied for 40 hours out of 42 hours now let's say I assigned I created one more task for rachit okay and I assigned this to worksheet and I estimated the work let's say uh 28 hours okay so as soon as I assigned this 20 hours you say things start turning red why they are right now because the task here is in the design phase right and in this Sprint 2 I have only 42 hours of resources which is nothing but a receipts time here so that's where it's showing me this isn't red Your Design work of this Sprint is in red you need to work out this now how a project manager can use this in a two-way either Maybe add another user so let's say I'll add Umesh as well for Designing okay I'll say Umesh is also working a design and you'll spend remaining five hours so rumors I'm not giving you time for lunch here but let's say uh enter eight hours of umese is consumed here if now I'll go back to the task board you see my design is red design is in green but still this is in red why in red because this work item is still assigned to rochit which is out of his capacity here so probably what I can do is here let's say I'll I'll say Umesh rachit will spend uh 14 hours and while assign another task test soul of one and I'll assign this to for mesh and I'll say remaining 40 hours of work will be done here I mean if you see this is updating at real time so that's bit of activities uh is can be done here and very very useful to to utilize those capacities print planning and make your project more effective by using those small but useful tools okay now the last part within the board are queries queries as name says you can create new queries here so something it's very simple very easy to understand so those fields are nothing but you've seen on on a work item I'll quickly show you again for your reference if you go to work item and let's open this work item you will see there are lot of fills available State assigned to tags reason and so on so in the query what I'll do is I can simply Define let's create a query which should show me all active tasks so work item type is I'll say uh it should be a task and state is active and I'll run this way okay there was maybe not not any item maybe let's delete this and run this gray so this shows me all the items which are type of task why it was not showing me with active because the state is to do it's still not uh it's kind of yet to start activities those are not accurate while we have in progress but if Let's Help add straight As in progress and if I run this query it will show me all in progress and I can save this queries to be available now here things to note where you want to save it so there are two type of queries queries which are just for your user which is logged in or queries which you want to share across the project or across the team members so normally I would prefer to if you are spending some time to create some queries it's better to store it share location so everyone can share it and I'll come I'll also tell you how this shared queries helps so that's how we create queries now uh we'll I time check okay quickly let's see how dashboards can be designed here so dashboard is also an important part where you know uh project managers can visualize the end entire health of a project you know you can add more widgets here let's see let's let me try to create a new dashboard okay I'll say test test boards I'll add some description and I want this to be automatically refreshed in every five minute and I wanted this as a teams dashboard so when I create this it will be open in editor here and I can assign different vids here I want to see all items words are assigned to me or maybe burn out burn in and I can see the query tiles here Sprint burned out burn down all of them I can use so let's click on done editing so now if you remember we make a query shared one now that's here we are going to use it so here you will only see shared queries note your personal queries you may ask why only shared because this dashboard is available for entire team notices to you that's where you can only access your shared queries okay that was on dashboards Wiki a quick quick two lines about the wiki wiki is also uh where you can Define you know kind of Wikipedia for your project in in very simple language you can define a different documents and uh maybe uh training manuals something like that and you yes you can attach those wikis to work items so user can always refer back and forth okay uh the last part of the first demo is code Repository normally uh I would personally recommend to use at least two branches for your repositories one for man branch and one for dial Branch DAV Branch as name says where all of your developers are going to uh link their development books and manage from where you're going to create packages creating a new uh repositories are very easy you go here you create new repositories you use decide which type of report repositories you are looking at get out tfvs and once it's created you it will start appearing here and you will start creating new folders so first it comes as a folders when you define folders properly you can convert them into Branch so uh it's not here maybe okay it's already set up I don't know to touch it further uh okay that's where you define your repositories and different folders and in the repository you can see the history of all change commits yeah and each one will give you further details okay what all objects were changed in here and what were the differences so if you click on this one this will tell you okay this part are changed uh in this specific check-in so it's this tool is very useful for solution Architects or release managers if they want to drill further uh for any suspicious check-in or they want to know uh more details while preparing the release can release candidate documents okay uh we also talked about uh repository policies so let's uh see what are they so if I'll go here I'll click on manage repositories so with if you click on that that will come to project setting repo repositories here and as we have just one repository I'll click on this and I'll set the policies here okay so you basically you can create multiple policies here and you can mark them active uh as and when you need it so here are the areas where you can mandatory couple of things so what I want is whenever a developer is going to check in their code there should be minimum One reviewer reviewed his or her code this can also be done using Azure repositories when you are on a visual studio and you start checking in their options send this for review so by that it won't go for it will not checked in into repositories but it will be sell your challenge changes and will go to the reviewer which you define in your request I also want a user developer to add a work item before the check-in and you know I can also put a comment resolution they need to add a comment and so on so those policies are also can be defined here so that's the end of uh this demo team now I will hand it over to uh will walk you through uh the rest of the session thanks team thank you Deepak really appreciate the depth you have gone into we show the details I'll quickly share my screen and you can let me know once it's visible guys I can see questions uh please hold on for another 15-20 minutes and then we will open up for Q a and we will discuss them in the meantime Deepak if you want to respond to some of the questions in the chat window feel free to do that all right let's continue with the journey so thanks Deepak for setting up the stage so far is my screen visible uh can you see your devops Rebels perfect okay so as we have seen how we can use boards work items dashboards to manage day-to-day project activities I will go a little bit technical now and where we will talk about how we can use repositories and what are different ways of configuring them and we'll talk about pipelines and release pipelines and a bit of an automation capabilities which exist in Azure devops so first of all repositories as Deepak mentioned repository is a place where you store your code now in reference to Dynamics 365 fno we talk about custom X plus plus code which resides in our custom model or we can also have binaries which are shipped by our isvs now when we talk about code code is actually we can say it doesn't exist unless it is committed into Source control with finance and operations platform Version Control is mandatory it was optional when we used to work in ax version 3.0 or 4.0 but now it is mandatory so Version Control and repositories are two different things so repository is where you store the code and Version Control is how you create those snapshots so that if you have to roll back to a previous version you can smoothly roll back and if multiple developers are working on a project how do you create those those versions of a particular Sprint or of a particular feature so that your track your changes in your code are tracked so basically what we are trying to say here is that repository is to store your code and Azure Repose is the Azure devops place where you can maintain your code so uh basically there are two type of version controls one is tfvc one is git so tfvc was has been uh supported for fno since beginning and recently git has been also made available and git is supported for finance and operations development um so a very high level view of how tfbc is different to get and how the workflow looks when developers use git versus tfpc so the the basic difference is tfvc is a centralized Version Control System where gate is a distributed version control system now now this has a very deep meaning within it so it's not easy to explain in one line but take off your X plus plus developer hat and read about git from a general perspective you will understand how git is different to trvc but for fno development the way it is different is that when you are using tfvc as your Source control system what you do is in your development machine you configure the workspace mapping and you create a local copy of it basically get latest you do a get latest which creates a local copy then when you start modifying the objects you check them out and then once you are done you check it in and it goes back to the server this is a simple workflow of tfbc whereas in git what happens is when you have your code stored in gift repository in devops you clone and create a local Master Branch now once you create a local branch you again create another local branch for the feature or the work item on which you are working on and you keep making the changes locally and you also commit the changes in your local branch once you are happy with those changes you basically push those changes to that new branch in the server and then in order to merge it into the main branch you create a pull request so pull request is the area where you can do your code reviews you can do a bit more refinement before it gets merged into the master Branch now this is a very high level view we are not going into very details of how to use git but we have actually done a session on how to use git with Dynamics 365 fno a full 1 hour detailed session Deep dive was done by devinder Singh in around five six months back so that recording is available on our YouTube channel so if you are interested to know more about how to use git with finance and operations how to set up your virtual machine how to do a new Branch how to check it in watch this video it will give you complete details of of how to use git with finance and operations uh now what happens when you create a repository of git by the symbol itself you can tell if the repositories of type gate or tfbc but what you store in repository because we know like in finance and operation we have models we have a custom model where we write our custom code now those custom models are stored in your repository but even within that custom model you only store the code the code classes or basically there is a subfolder within that model we store that and the model descriptor file if we are using git we also maintain a git ignore file which basically tells the git system which files to ignore when you are checking it in right so a bit of a best practices do not check in standard models in devops because it will eat up lot of space and it will make your build pipelines very heavy to run and they are not adding any value because we use artifacts so that's why as Deepak mentioned artifacts are used to maintain that Baseline while your code compiles in the devops pipelines so basically uh use repos to store your custom X plus plus code and use it to store your custom isv binary Solutions and probably the license files as well uh only check in your model descriptors and the actual source code folders then when you configure your tfbc you have to configure workspace mapping map your local folders map your project folders and when you do git you basically clone the repo set up your git variable which is where you initialize git by telling what is the name email address of the person who is who with whom you have configured the git map your folders create symbolic links update getting no file and check it in so there are some links which we have shared here which we can share in chat window if you want to read more about how to use Git You can refer to this a few tips for developers whenever you are using doesn't matter TF is your git make small changes and do not commit any sensitive information like do not commit your authentication keys or any sensitive information which you don't want to put into devops try to use keywords or other ways to maintain those things look for merge conflicts before you check in because you don't want to overwrite other developers changes so if the same object has been checked you know Modified by multiple developers when you will push to the main remote server you can merge the conflicts also verify your code before you push it to repository use meaningful commit messages because the commit messages goes to your chain set and that will help you to understand after a period of time why you wrote that code link your commits to the work items as Deepak mentioned your work items can have linked to your code repository so each change set can be linked to its parent work item so that you can always look what development was done for which uh requirement and also space follow your team's agreed conventions like be a team player because each team is different everyone has a different way of working so please follow your team's conventions so this was a bit about repositories now I will talk a little bit about pipeline before I jump into demo I want to take five minutes just to explain this concept clearly because pipelines pipelines is like it's a very repeated word in devops platform and people do get confused when we talk about pipelines or a release pipeline or a build pipeline because pipeline is everywhere so basically what is a pipeline Azure pipelines uh let's say is basically a think of it as a black box what it does is you you give an input it gives you an output now what is the input for a build pipeline the input for a build pipeline is your custom X plus plus code your ISP package is license files this goes into a pipeline now pipeline is a sequence of activities or tasks or processes which happen on that input and what it creates is called a Deployable package so Deployable package is a ZIP file which is your unit of deployment in finance and operations so if you have to create a Deployable package create it through uh Azure build pipeline do not create it from a visual studio directly there is capability but let's not do not use that because you will get into issues because there can be things which are locally on your system which are not in other developers machine and you create a package you deploy it fails so always check in your code attach a build pipeline to your repository it will bring in your latest committed code it will run and it will create a Deployable package so this is a simple concept of your build pipeline now when we talk about build pipelines build pipelines can be configured in different ways now build pipeline itself has like few different flavors you can think of so if you are using a cloud hosted tier one Dynamics 365 build machine then it comes with its own build agent and it comes and the pipeline is deployed using that build agent another way to run these pipelines is using Microsoft Microsoft hosted agents so what is an agent agent is basically think of it as a something which runs your pipeline you need a agent to give that boost to give that energy to your pipeline to run so you can either use a Microsoft hosted agent to run your pipeline or you deploy a tier one machine which has its own agent which is a part of compute VM which gives that energy to your pipeline to run so pipelines can either be Microsoft hosted Azure pipelines or they could be your fno build machine which is hosted as a tier one environment now this fno tier one machine is deployed in customer subscription so it it incurs a cost but it has some advantages over hosted agents that is where you can do things like database synchronization you can test your SSRS report deployments you can run your X Plus unit tests so depending on your project size you can make a informed decision whether you want to go for an Azure hosted agent or you want to deploy your own agent this is about agent right which gives that power to run now the second thing is what happens inside the pipeline so in a pipeline a pipeline is a sequence of activities which converts your code into a package now these secants of activities are basically published by Microsoft as a baseline on GitHub so there are CI CD pipeline samples which works with Git as well as with your tfpc so when you are using get as your Source control you used yaml pipelines if you are using tfvc you use classic Pipelines so both the templates of both the pipelines is published by Microsoft this is a link I'll show you in a minute which you have to which you can use actually to jump start and it gives you a yaml script you modify it with your repository paths and it can start working for you so this is what is what goes inside the pipeline this is what drives your pipeline but there are some prerequisites so if you have to run a as you run a pipeline for fno project you need to install a tool which is Dynamics 365 finance and operation tool extension in devops so Deepak showed us in the project settings you can you have extensions that's where your environment administrator has to go from App Source install this tool and there are very good articles from Microsoft on how to use these Azure hosted build pipelines for automation so do do read that we have we'll share the link on that this is the concept of build pipeline we still have to go to release pipeline we are still talking about build pipeline right now what is a release pipeline build pipeline has given you a Deployable package right now this goes as a as an input to your release pipeline release pipeline will take it forward and upload it in LCS deploy it to your non-pro tier 2 environments so in a typical project you have Dev test QA uat pre-prod then it's broad so there are different environments with different purposes and in order to move your package from one environment to another you can use release pipelines you can also do it manually you can go to LCS upload a package open the environment details apply the package that's also fine but if you want to have some Automation in the mix then you can use release pipelines to move this Deployable package to further environments how this release pipeline looks is something like this so we have just curated this flowchart here just to give you a view of how this looks so what happens is when your build pipeline ends it kick-starts your release Pipeline and in your release pipeline you can configure the different tasks your first task for fnos to upload that artifact into LCS once it goes to LCS you deploy to test environment once it passes test you can go to uat and pre-prod and this this sequence can be configured you can change it the way you want to deploy it you can have all going in parallel at the same time you can stage gate them you can have approval mechanisms so if you want someone to approve the bid you can configure those settings that you need an approval to move that package to that environment so I have just summarized few best practices when you are configuring release pipeline uh one very important thing is you need to configure a release Connection in devops which I'll just show and you also in order for that release connection so because this release connection is creating a connection between devops and LCS so for devops to authenticate itself and upload the package and deploy it it needs this release connection to be configured and for this release connection you have to configure a app registration in your Azure portal and you also have to use a dedicated on Microsoft account to configure the release connection there is a very nice article written by our MVP our beloved MVP Adria and here's the link and you can read that so I'll quickly jump into demo mode now and show you few things so this is the repository uh structure where we have configured git with finance and operation and here you can see in the metadata folder in the metadata we have only checked in one custom model which which actually just has one class because we just want to have something for the demo and we have a main branch we can see all the history of the branch if we go to history so we were just playing around and we were checking out checking in creating a release Branch doing a pull request all those things can be done here commits is basically similar to change sets so in if you use tfbc you have change sets in uh get you have Commit so every commit has a unique grid and you can link this unique width to your work items full requests are when you want to merge your branch to your main branch and that's where you can basically raise a pull request to your technical architect you can review the code give you some feedback you can refine it and you can merge it to the main so uh let's go to pipeline what happens is uh I'll just show you quick settings in the project settings here you will see your parallel jobs under parallel jobs you will see that by default companies get a free Microsoft hosted One agent this agent you get up to 1800 minutes per month which is free so if you are running a build for up to 1800 minutes you can use this free tier if you want to run multiple builds in parallel using Microsoft hosted agents then you need to buy more agents uh then there is a service connection this is where you create a service connection to talk to LCS this helps your devops to talk to LCS when you go to this service connection here you have to give this URL this is a generic LCS API endpoint and you use a dedicated user account so the best practice here is use uh on Microsoft account which is not a user account use like a service account and a password it is still not like a uh like if you talk to new art to Architects there are different ways to authenticate but it still uses the username and password so it's recommended to use on Microsoft account non-user account and it also uses a client ID which needs uh which needs to be configured in your Azure portal so this release connection helps you to talk to LCS uh I'll just show one more thing uh before I jump into the pipeline details in your organization settings here you will see these extensions so this extension needs to be installed which is your Dynamics 365 finance and operations tools to configure the pipeline and after that what you need to also have is your artifacts now what is an artifact artifact is basically again a type of repository area but it's not code but these are different type of things so you call it artifact so finance and operation you have to basically store these nuget packages so Microsoft publishes nuget packages for different versions and they all are available in LCS asset Library so you can download from LCS and using nuget command from your development machine you can push these artifacts to devops now what happens when you push these artifacts to devops each of this artifact has a version number when you configure the pipeline you tell the pipeline a path of your repository where you have your basically uh packages dot config and nougat.config so this file will tell you which version of the nuget artifact to use when it is running that build pipeline okay so this is important so whenever you update your nuget if you are doing a service update consumption you have to update your packages and you get dot configs tell you which nuget artifact to use so again there this information is all available on blogs and Microsoft docs so if you are setting it up go through that very yeah it's it's a smooth operation uh experience to set it up so let's come back to pipelines so here you'll see pipeline pipeline release pipeline so a lot of pipelines in this area so pipeline is that top level classification these are all the pipelines then under that you see pipeline now this we have configured a pipeline you can have one pipeline for each branch for example you're gonna have one pipeline for your Dev test you can have one pipeline for your main so you can configure that what you do is you go to that pipeline uh let me go back just added the pipeline and I'll show you how it looks sorry we are running a bit over time but we'll try to just cover the concepts so this is the yaml pipeline it basically uses uh this script is available on GitHub by Microsoft here you just have to update your solution paths and you see these tasks which are coming here this is coming from those extensions now what happens in your pipeline you can configure a a continuous integration scenario so for example if someone checks in some something to your code it automatically kicks in so just for the sake of demo and now it's not ideal but let's say someone from your Dev machine has checked in uh demo checking so I just check in something I just committed it uh for the sake of demo what it will do is it will kick start my pipeline so you see this thing it has been queued now so my pipeline is executing now and when my pipeline executes it basically performs a series of steps these series of steps are coming from that pipeline task that yaml script which is running inside that pipeline so these are the sequence of tasks which are executed when to convert your X plus plus code into a Deployable package so this let's let's keep it running and see if it finishes before while we are having discussions I will show you a successful run uh basically so if you look at the pass so it basically goes here it tells you what what changes are committed in this particular build and then what is the artifact it created when you go to published artifact here if you want to manually download this is your Deployable package you can manually download it and then under this here you will see the complete summary of what was done how much time each step token if it was successful or not so this is all about pipeline you can enhance these scripts to include your custom binary packages to add your license files to have a specific build number so you can modify these Baseline templates which are published by Microsoft right okay from build pipeline let's move on to release pipeline so release pipeline what it does is it's as the name suggests it's used for releasing your code has been built your package is ready now you have to take it to the next environment so how you do it basically uh this is the area where we talk about continuous deployment as soon as your build pipeline will finish it will trigger your release pipeline so here you cite that trigger and you say okay your your trigger is enabled so every time your build pipeline finishes your if your release pipeline is linked to it it gets triggered and then what you do is you tell it what to do so let's say upload to LCS in upload to LCS we have to create a Powershell script to install some Ms MSL powersh Powershell scripts but then this task to upload the package to LCS how this is coming this is coming from that extension so if I have to create a new task guys Okay add a new task and here if I say Dynamics you see all these tasks are coming right so all these tasks are provided by that extension which we have installed so let's close it so in this what we are doing we are telling to upload the package with this name and here you see the LCS connection this is that LCS connection which is authenticating this task to talk to LCS so if I click on manage it takes me to that task which I showed that there is this release pipeline which is configured to talk to your LCS on behalf of devops so it uses this connection it tells you tell you the LCS project ID you tell which file to upload and you tell what descriptions you want to give it now just for information this is all sample dummy data we just curated it for this demo purposes but this is how it might look in your project and similarly when you go to your deploy to test deploy to uat you have those tasks to tell the environment ID and upload it there we don't have a tier 2 environment at this stage so we have just created this to give you a simulation but it looks very similar to this so this is how a release pipeline uh looks and work now while this is running I think we are still running this pipeline it is still at step three so we will let it run while uh this is running I'll just quickly bring come back to my slide and I'll talk to you about something uh which is yeah this is the end-to-end picture of what's Happening Here Right so your custom code reside in repositories it goes you check it in when you commit it runs uh a build pipeline uh it should be built apologies and then once that build pipeline is done it creates a Deployable package it triggers a release pipeline release pipeline deploys it to high higher environments now there is also a bit of a nice uh I would say integration with teams which exist for Azure devops grapples boats and pipelines so there are Microsoft teams app which are available to integrate your devops Frameworks in your teams so you can actually add get these extensions and add them in on your teams these are available for free and what happens is once you configure these connectors you can get notification in teams to basically for example approve your deployment to see if a bug is raised to even you know approve a pull request so the the possibilities are enormous and this is all Baseline versions which Microsoft has released there are devops apis which you can use to build your own experiences so we will share these links here which will help you to you can go and read and try to configure it for yourself and these type of scenarios will basically help your system administrators to basically approve and do some activities without actually logging into devops without remembering the paths maybe you are on the go you are having a dinner with your family because deployments always happen after hours so you you can just approve a deployment while having while on a move so let's go back and see where our pipeline is so okay so our pipeline is executed you can see it just executed it took almost six minutes and that's another benefit of using Azure hosted agents Purex plus build it finishes very fast if you use a cloud hosted environment it takes long time because it goes through the whole process of database synchronization reports deployment and a lot of things now that this has been done what it has done is it has kicked my release so now I have my release pipeline triggered and now it is asking me to approve that okay I have something which is uh ready for uploading to LCS do you want to approve it now what we have done is uh let me see if I get the notification right okay this is release 19. we haven't got it yet so I try to configure it uh actually it is release 23 8 yeah so I'll just share my screen for a minute now this notification because I have configured that on my teams uh it came here it says that it is running I might have to refresh it but basically it says that this pipeline is running and yesterday we tried we were able to basically approve it from here as well so let's just wait for that approval to come in to it uh table has not refreshed maybe but uh let's see okay it's not coming at the moment but what I can do is I can basically approve from here and then say approve and it basically will start uploading my package to LCS so yeah let let it run for some time we'll come back to it once it's there but just to quickly summarize this well this brings us towards the end of the demo a summary is that Azure devops is very important tool for your project implementation don't take it for granted uh it has it is an area where every project uh architect or developer or consultant or test or project manager stakeholder everyone comes to devops to look at where your project is how are you tracking what you have developed what you have deployed so devops is a command center of your projects so use these tips and tricks to improve your experience and with that I'll open up Deepak uh to if you want to pitch in towards any closing remarks but I just want to say a big thank you for listening to us and we are open for question and answers now I'll keep opening that LCS one so that's uploaded the pipeline was really excited you know uh in my view I'll just take one more minute guys before we jump into the Q a sessions in my view uh sometime we developer thinks okay pipeline is something rocket science so we cannot do it or we shouldn't touch this something like that but the way Richard explained uh it's very clear the default pipelines are available and it's just couple of fields which you need to modify to maybe change your environment name and so on and uh token IDs and that's all you need to do to kick start the Pipelines as well with the team sorry you're on mute yes we can share it I think what I'll do is probably email every person with registered we'll email it out okay yeah exactly so the the screen there was one PPT shows how this end-to-end Cycle Works that's very impressive and that's going to be you know if there's any still there's any confusion I think that's uh that PPD if we put some more time to read that I think that will clear yes exactly so that's going to make any confusion very clear here yeah okay so shall we open up for uh yeah let's open up for Q a and we can see our release pipeline is working it's just um we'll just keep an eye on it but yeah let's keep off with the Q a guys and feel free to unmute if you want to unmute and ask any question yeah any questions from chat window I think Shruti has some question yeah you should take uh I have a quick question on board's level uh if there is a some custom field which is newly added and we want to make it as non-editable as soon as a value is entered is there a way for that uh not on top of my head Shruti so if you are adding a new field that's again will be treated as this to one of the standard field and in devops I didn't found a way where you can just uh um something look no editable only created you know if you're referring that so currently it's not available so this approval visit came actually it came after some time when I manually deployed but you can see it came on where I could have also done this from here to upload yeah and we can see our task is progressing well it's it is on stage four we can look at the logs uh and it's basically uh uploading it to the LCS now any more questions yes Tim please feel free to unmute yourself and bring up questions any questions uh I try to respond many questions but whatever left I'll try to spare time and we'll answer them so yeah maybe like we can take uh questions can I integrate our site in the CI yes there are capabilities um to do that how can I get a demo VM and access to LCS free or trial that could be a question to image he is the magician for these things yeah so I have already posted a YouTube uh created a YouTube for this YouTube video for this so I will just share it across to you thank you mesh but you can see our task is succeeded what we can do is we I can quickly log into our LCS and show you that it's there in the meantime any other questions how can I use outside to automate the regression testing yes our set is actually used for regression testing so that's where test Suites come into picture uh where you record a task and you configure it sync it from fno to BPM to LCS to task switch so there is a bit of a cycle there but yes our set is used for doing regression testing I think that calls for a dedicated session uh let me just show the asset Library any other questions Umesh you want to read out well I just open the asset library to see if the package is there sure I think the question says about uh the rset I think you're already uh we are seeing it yeah right yeah so we can see that it is 19 build which just got uploaded to LCS all right I'll stop sharing let's focus on Q a yeah any other questions guys feel free to unmute we'll check the chat window in the meantime uh report in this release tier two or one three prod is tier two mostly um 41 you don't meet like tier one you just map your branch and get latest release pipeline can we create a pipeline to start a VM and restore databases 100 you can do that that's where you can add more automation to your projects there are blogs and videos on it I'm not sure Deepak if you want to share something on this question and not specific to this one there was a point noted I missed it so uh nowadays integration is very Hot Topic in most of the projects right you might also faced every project needs some kind of Integrations so the pipelines which we shown in this demo right those you can also create pipelines and release pipelines to actually deploy your logic apps from one Resource Group to another resource groups and that's so much configurable because when we create a logic app in in a specific Azure Resource Group okay and that is let's say a link to my my development environment the environment on Lexis system then environment on iPhone site so you can literally configure your pipelines to do everything automatically you just turn that pipeline that will deploy all set of logic apps from one Resource Group to another source group and it will automatically sense uh the end points thank you Deepak uh there is a question on Adria's blog post so I'm just pasting that in the chat window I think we already did it already Okay yeah okay yeah all right how we can update new get package automatically yeah uh again this is where you might need to invest a bit into your Powershell scripts you can create so pipelines are very powerful you can have pipelines tasks which are of different type of nature you can use write your own Powershell script to basically download these feeds and upload it it's a bit of a automation you can do but I I think uh Powershell can be helpful there is it possible to create security role as read-only admin yes rahali there is there are blog posts from Alex Meyer who is another MVP he has done great work in security area he has a blog post on this so feel free to Google it just Google Alex Meyer he is very famous and with the Alex Meyer read only security role you'll find that link uh yeah they see uh uh field filter on mute and ask any questions otherwise yeah I know we are a bit over time or a bit over time already 90 minutes but yes I really appreciate everybody's presence here so everyone is looking for trial version of the LCS uh just to make sure that after my video was viral I think Microsoft has stopped uh giving free licenses but definitely you can do some tricks okay um so you can ask your friend to give some access probably uh those who are having a pre-sales environment definitely they can share it and then you can practice it across or in case you require any help just reach out to me I will try to see if I can share it something unofficially so so that it can give you for great learning okay definitely when it comes to the LCS environment it is LCS access generally it is a very costly one and Microsoft does not want to expose LCS and more towards if you to understand the one admin one platform so Microsoft will actually Club in everything to Power Platform so uh you will hear from them soon so LCS is anyway it will go off uh is build machine use as a agent in the LCS for creating project yes I guess yes it has been used so generally we create we create a build machine and from build machine we create a um uh like a release pipeline obviously it has to be set on the development environment and we check in and after checking the code we get it uh to the build environment and then once the build is ready you can actually get it automatic posted with the help of the asset library to the LCS project database backup and digital automation is possible in both T1 and T2 um this I have not right actually but I have done manually and yeah that's it any anything database apis so yes that is possible okay I'll share the link of database LCS apis and yeah and as a you know there are blog posts already on these topics people have done this end-to-end automation shared their experience I'll share the link here yes via pipeline it is possible yeah we need some effort though it's not um yeah yeah it is possible on tier one also I think there again there is a community tool so Community has become very powerful now there is there are Community tools uh if you search d365fo dot tools uh there is there is a library of Powershell scripts which is community which is created by Dynamics Community experts and they have contributed to it so I think moitz is the guy who leads it on Twitter if you follow him just search Twitter hashtag d365fo.tools you get access to complete Suite of Powershell scripts but again it's not just copy paste and it starts working you need to understand before you start using it yeah definitely definitely it is it is not easy you have to see where it will be fit and how to use it definitely it is automation is possible definitely and especially when people are more you know used to okay lfl Type S select will automatically come I think we can we can start using the this chat CPT probably yeah they are still far yeah okay so thank you uh Deepak today's session on the end ratchet um I really appreciate your time this time and uh as rachit is joining from Sydney and even me we are already in midnight and Deepak is probably going for waiting for lunch so he has to and uh so there is a good news that the next session will be uh on Power Platform and dual right for finance and operation uh perspective hope you can see my screen so you can definitely join us and uh John Pearson will be joining in from UK he sees the UK right or Ukraine yes no he is in the UK and all in States I think he's in States okay okay cool okay so we will see you tomorrow we will see you next probably September 21st and three weeks in three weeks from now and thank you very much for the uh wonderful audience I think we crossed a lot of uh and thank you for being with us we crossed around 110 uh users today thank you very much and uh I wish you a great weekend upcoming weekend so today is the last month so last month of the day no last day of the month yeah last day of the month okay okay thank you everyone joining us thanks a lot Deepak and welcome to this user group we are looking forward to hosting many more sessions like this please support us guys we need your support thank you yes thanks team thank you but thank you guys bye-bye now I will stop the recording
Info
Channel: AzureTalks
Views: 2,427
Rating: undefined out of 5
Keywords: Microsoft Azure, Microsoft Dynamics 365, Azuretalks, devops, azuredevops
Id: 2tit-lidrhU
Channel Id: undefined
Length: 92min 56sec (5576 seconds)
Published: Fri Sep 01 2023
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.