Configure CI/CD for Dynamics 365 for finance and operations using Azure DevOps - Fahad Ahmed

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
uh this is a little bit introduction of our about myself today um is my first session on dynamics 365 saturdays so um my name is fahad emma i live in chicago illinois i work with hitachi solutions as a technical architect i've been working with dynamics ax and phenops for over three years now in various technical roles uh i do write blogs sometime so here's my blog site dynamicsonline.com uh where i try to cover various topics related to dynamics uh overall ecosystem so agenda for today is uh you know ci cd uh configuring automated builds and deployments with fno it's it's a pretty hot topic these days so i'll go into the you know the need of it especially in ax world or fno world and i will during the session i will be switching the windows i will be switching towards uh you know switching to the browser window and my vms just to show you a little bit try to go a little bit deep into okay how i configured it for my personal environments uh how we run it um at the end we will actually get into little bit hiccups because the deployment part is something which i couldn't completely flesh out on my personal environment and obviously i couldn't show my client environment so but i have the setup done we will walk through it and we'll see what what things are needed all right so i don't exactly know the the format of it but i think we can ask questions in the window and uh from time to time and i i will you know look at the window and try to answer those questions but i'll try to have some time available at the end to answer questions all right so the automated bills um uh i remember i was on a project three years ago and that was the x 2012 project and that was my first project where our team decided to do the agile or scrum based implementation and i was very excited about it because i have worked with agile processes in in in the past but during that time i was working as a developer on the product development not on on an implementation so i was also a little bit skeptical but what i realized is that the first thing is what's missing is a a good alm story a good uh even i was not aware about this term ci cd at that time but i i knew that okay there has to be something to build it as soon as the project is that the code is uh you know checked in and then make sure that you are not breaking the build because when i was working as a developer with with microsoft as a vendor there we had a gated check-in concept we had nightly bills we had um you know weekly bills and all those sort of things to make sure that the bill is is perfect before we actually move to the next phase so in in on the client side we were missing that so we ended up writing some powershell skips to uh create some model stores or build a model stores and then move the bottle store to you know build environment to another environment and things like that so now since microsoft have released certain tools in devops which we're going to explore in a bit this task has become quite easy you know configure it you have you have the resources available you can procure the resources uh on the on the cloud and and make that happen so as more and more organizations are getting into this um agile based processes and i'm saying agile based processes because there's no there's no i would say a perfect process you always adapt as as for needed hitachi we are adapting uh we have already adapted agile based implementation process across all of our business verticals so this is quite key in in the in the future world uh the benefits that we get is is obviously build acceptance you can catch the bills early enough in your development process you can catch the errors you can catch you know usually i don't expect developers checking in code without building it or compiling it but believe me there are many other things that you want we want to catch early enough you don't want to deal with at the end of your sprint cycle because usually what happens is that if you have a two weeks or three weeks of sprint you are writing the code and in many cases you're checking your code at the end of your sprint and at that time if you do not have a good process to to catch those you know you could you could easily miss that mr time window actually uh i would even say that you we should have a a kind of weekly check-in or at least couple of times check-ins in the in the uh in the week and have a nightly build process then build verification you know to make sure that whatever new features we are adding are not uh breaking the existing kind of regression testing uh so we have certain tools available now to kind of integrate it with uh with the build process obviously we don't want to test each and everything but we should be able to identify as a team as an implementation team or as a project team to identify very high level processes which are key to the business and and write some [Music] some tests for that for ui tests for that um and obviously it reduces manual work uh enhance the chances of errors so i will start with the setup and uh configuration um and while doing that since i've already done it um but i will try my best to go into the tools like devops and lcs and try to show you okay where we need to do what but at the same time we can start a build so that it starts running and by the time we are at some you know demo level or some level where we can see the things uh we could we have at least one build done usually it takes 15 20 minutes so let me start with that so what i'm gonna do is without showing you anything i'm just going to do a check in hopefully i have it set up so i have created a project it's a small project it has a small extension to add a particular custom field on i think on a sales order line or a purchase order line i want to take a look i kind of forgot but i created a separate model so you have to have a separate for any implementation this is not the topic but i'm just telling that your model strategy is is very important how you want to package your code and uh promote it and actually release it to to your client so make sure that you have a right model created for that and you have all the references and obviously as you continue to build your code add extensions i'm not using the word customizations anymore extensions uh you will continue to add references to to your model so it's going to take a little bit time i don't know i should have opened it earlier but anyways while it's opening we can talk about uh the the change that i've done i actually deleted a file which i'm going to check in and that would actually trigger the build so the way it's configured so this is my devops i created a devops project for today's session and we can just investigate the repository i've created a tfs version repository not to get i'm not a super knowledgeable or still learning about git but i i found tfs working great with with all the dynamics based uh development ethanol-based development so this is what we do i mean i created only one branch obviously depending on your release strategy you can have multiple branches um so i created a model as i said d365 saturday i checked in it already next extension has already been checked in and this is a project there and this version controller this source this repository actually has already been configured on this dev environment and i have some changes i should be able to see some changes which i made yesterday in my ending changes window and let me just put a comment all right and i'm going to check in this so there is no get to check-ins um the check-in will just go away without any compilation or any build and i've noticed that we can configure that i i haven't i don't have to because usually if you are building it right away after the check-in that's that's that's doing the same thing so if the bill gets failed i will get an email okay so this is my representation let me go to the pipelines now real quick so this is my build pipeline uh you can see that one build is triggered just now and we can click on it and see where what's happening with it so these are some of the tasks we will investigate these tasks in a bit but these are some of the the steps that's that that are happening within the within this build process it's running uh it's doing several things we can come back to this window to investigate where it is and if there's a failure what is the failure how to see the locks now going back to our setup part so i already talked about yes we we have to have a devops project so let me try to follow this so first we will set up a a project we need to have a devops project with code repository we just looked at it later after that we would need to configure the lcs with devops project i'll show you in a bit we will have a setup we will have a build and test environment configured and then we'll create you know the build definition so this is what is needed for the for the build configuration so it's happening here so let's talk about lcs lcs is open here so let me just go back to my personal project so i have two basically environments but these two environments i'm currently using both of these environments are tier one environments this is my dev environment and this is my build environment where currently the build is running excuse me so once you have your devops project set up you need to connect that with your lcs right now it's already connected but let's say if it's not you will be asked to provide the the devops url and once you and after that you will be asked to provide your personal access token which you can generate from when you are in your devops you can generate your personal access token from here so i've already generated one and used one but i can generate any another if i if i have to but you can generate a token it will give you a token which you can copy and later on you can just go into your lcs and and provide it and the rest of the things it's quite you know simple you just continue click through the screens and this uh this will be set up for you so that's that's quite easy i haven't find any issues with that so your your project is configured with it uh you have the repository now the third thing is to create a build environment so if you already have a build environment uh it's great if not you could create a build environment and one of one thing that i really want to show or mention here is just for the sake of learning let's uh try to create environment i won't create it i already have three and i have a limited budget so just show you what you should do so this is build and test so when you come to this screen you should always select build and test you select your subscription and you can give any name in advanced settings you need to give some you know some name some build agent name this name will be used in your devops so if you are setting up your build environment if you provide the builder your name and select the build and test environment after this environment is spun up you will see that it's already integrated with your build definition on on devops we'll take a look in a bit so you will see that everything that you need on a build environment is configured for you is installed for you there so what i found is that in this folder there are some build definitions there are some powershell scripts uh there are certain other agent specific information which obviously is too cody for me but uh this is this is already there for you obviously if i need to look at i can go into the powershell script and see okay what what i want to change or what it's doing but the good thing is that what are the steps needed it's already there the template uh it's configured for you so that's the build configuration once the build environment is set up as i said you will have everything there and then after that you will see that on your pipeline you will see one default pipeline created for you right now it's running that's why it's showing you a blue wheel kind of thing but uh we're gonna still investigate it by clicking edit and all of these tasks which are part of the template are automatically created for you now you can change variety of things here first of all you will find these three groups of properties in every task it gives you certain options for example if you want to enable or disable it there may be some steps that you want to disable for example i have disabled deployment of reports you know just to see whether it's deploying or not i mean usually we should deploy the reports if we have any reports but i just disable it to see if it's going into the process you could probably want to disable tests if you don't want to test um so that's the purpose of this uh this control you can continue on error i i always find it you know it's disabled by default in some some steps it's enabled but i always disable because i really want to see okay why something has happened there may be some steps which you can ignore but right now i feel like okay this should be disabled for for all the steps uh these are output variables so output variables is think about him as a as a class level variable or something that you can share within your code similarly in the build process if you want to share some information from one step to another or from you know one even from one pipeline to another pipeline you can define some variables there's a whole format of defining them to retrieve some values in there and then use them in in the later pipeline or later stages if you need to so far i found that the the default template that we receive is pretty much you know good for generating everything for us that's where the packages will be created let's see where the package once the build is successful your packages will be created in in this directory okay and this directory is basically on your build environment give me one second all right so you'll go to dynamics sdk this and here under each release you will see a package screen so these are some successful builds that i created over the last two three days you will find two packages one is gesture and time another one with the model source i think uh if you are doing development with d365 and apps you understand this thing the runtime is just the runtime it's just these does not contain the code but and this this contains the code so that's it all right so anyway let's see where our build is while generating the bill it always gives it gives the check in since i you know integrated with the check-in so it picks up the comment of of of the check-in database sync is happening um as you guys aware that this is a part of every build whether you do it and even in the past with the x-2012 we used to do the database think of all the table changes so it's gonna take a little bit more time but anyways while it's happening let's just uh move to the next steps any questions so far let me see uh nothing all right so we set up if devops project model repository i created these you know slides just to make sure that if something happens with the demo you know i have something to show you uh this is configuration of lcs and devops we just did it uh this is of creating a build and test environment now talk about the automated test while it's running that's the next part automated test so automated tests are really really important um and we need to find the right balance because we don't want to test each and everything as we are going into the future and looking into the this one version um one version thing that you know like evergreen version we are getting updates every month every other month i have found recently i found this thing automated tests have become quite important because think about if you are working with the big organizations and you have spent quite a bit of time to implement this erp on their business processes i think in my opinion we should make it part we means our partner community the integrators the implementers we should make it part of our process to to um communicate to our clients to ensure that they understand the importance of tests especially automated tests and you have seen that microsoft has invested in the last couple of years on this we already have cis test framework we have been writing unit tests since ax 2012 or even before that and that's really good actually you can you can unit test your your uh or you call it the business logic uh in the past there was a framework to do ui tests or write ui tests in c-sharp but that framework was quite heavy it was more like a selenium type test where you have everything open on a computer and if you remember ax 2012 there was a thick line that was heavy and you know it for for for a big bill it usually take more than 24 hours just to run the test and if something fails you know to to figure out where where the problem is whether it's in the test or is it really a breaking a code or breaking a functionality it was also an additional effort so but moving forward as we see now we have some tasks recorder based ui tests available we have our set tool i didn't mention that because i don't know whether we can configure our set with uh with build but our set is there our set is a little bit heavy with other than if you compare it with toxic order based ui test but it's still there so we need to look into our testing strategy um even after when we are done with the implementation we need to communicate this to our client and tell them hey you know uh microsoft is releasing this new versions every other month for example and you know we have a very small cycle where you will have the support and you really want to upgrade or update at least twice in a in a year so it's we should look into you know automating very key test scenarios very high level test scenarios are very important test scenarios for you so that whenever we upgrade we run those scenarios just to make sure those are not breaking and we can avoid some of the some of the work um the manual work that we will might have to do just to test those you know just to accept the bills just to accept the updates that we are getting so that's really important although the chances are very less because of the extension based um approach now we're not customizing we are not modifying any code but still i would say that you know it's a good practice to test your your code your extensions so in uh in our bills it looks like it's done right so the build process has been finished you notice that it probably took 15 minutes or less 12 minutes actually and uh for the first time it will take more time i mean if you run it like after just configuring your environment it may take 40-45 minutes but after that i noticed that depending on the code and everything it's you know roughly between 15-20 minutes and if you want to run additional additional things in there so after it's finished we can go into the release so how we did it so let me just step back so we have this available all of these things you know branches were automatically configured for us when i was looking at it i probably changed only this step i looked into the publish artifacts things where i want to see the things uh the pipelines i want to talk about a little bit that and what else copy files these are the logs right so after you configure this you you need to identify your triggers so i if you go into the triggers menu you will see that there is this option which i this is this is unchecked by default i checked it just to enable it as soon as i check in the code you can disable it if there are if you're working with a big development team and checkings are happening all over and obviously you know it's going to take some resources and time and uh so it's it's better to you schedule it so i you know just also have a schedule so you can have both things running together you can have continuous integration also with some schedule you can say okay i want to run it every day it's quite simple you know you can define the time uh time zone and everything and then it's it runs every day and and without even telling you and if whether it's successful whether it fails uh it gives you these emails also so by default you get emails on your in your outlook if you're a build administrator you can control that notifications as well in devops you can click on the view results and it takes you to the this is screen if there are any warnings i want to see i remember okay so download log so this is this gives you the logs uh and then i changed one thing yesterday and that's actually so you will notice that i did not get the the the generated build here instead i'm getting the build in this folder somewhere work and the reason for that i'll explain to you in a bit yeah so there i get the the build the folder so the reason for that is is i actually changed it to uh so there are two options one is you can leave it as it is and you can have your build available in your build environment and then you can copy them manually or you want to move you know your generated package to a next step in your pipeline like in this case we wanted to move this package to the deploy deployment part now we are getting into the deployment but before we get there let me make sure that i cover everything regarding the build so we talked about the test these tests can be integrated i haven't done it i know that once you the they have they have the all the powershell scripts uh created in your build when you set up your build you have all this powershell scripts created here uh it it actually uh get the dll files from your version control so the way you have to do it is uh you have to create first ui tests using your task recorder close ui test will be you will provide those ui tests to a ui tool in in dynamics that gives you uh that generates the firm adapters form adapter files which are actually i i didn't cover that because this is this was not part of it but i'm just telling you that you can find that you can google that i will provide the link uh this is all mentioned in the documentation like how to generate a ui test so that will give you a c sharp file which you can build you can run in visual studio and at the end you will have a dll file that can be picked up in this test setup uh you don't even have to do that i mean the this the setup what i've found is is that it's just you know telling you where the ps file which is already there configured for you what you need to do is in your origin control you need to check in those files so that every time when the build is there this uh this setup actually detects that and and run it at pass as part of your build so uh so you can look into that if you want to integrate it but this is this is quite important i haven't done it i didn't have a chance to do it but this this is something easily doable now the the build execution we talked about build executions uh how to configure it on the schedule and um how to do it as every time as check-in you you can also enable gated check-ins you've probably seen the option there once the build executes you get that in your build folder and that's it now let's move into the deployment part okay give me one second all right so for deployment we're going to do we're going to set up the release pipeline and microsoft has released two tasks last year in 2019 um one for uploading the package to the asset library because if people are doing here code promotion you know you are already aware that how we do it you create a package we upload it into the asset library uh asset library validates that and then you apply it on your next environment that task does not support the vf2 task one is to upload it to the asset library that is a devops task and the other one is to actually apply it to an environment and that apply task we actually apply the package does not support production environment and obviously because you know we only want to do it on the test and once we make sure that this is a release candidate we can mark it as a release candidate and create a ticket uh for microsoft support to apply it so that's there so let's just go into the release pipeline to see how would that work i go into the release i created a release pipeline here uh just create new so when you create it it asks you to select a template and you will find a lot of templates so obviously i said okay you know let me just search for dynamics i couldn't find anything i said all right should i do so i said empty i start with the empty and i said all right let's just give it a name it asks you okay i have only one folder so i'm just putting it there close it so this is our pipeline okay so before what before we actually configure the stages so this is a stage we need to add an artifact which means okay where should this pipeline start so we want to start it as soon as the build is finished right uh and we already have a build pipeline you can have multiple build pipelines and you can have multiple release pipelines so depending on your uh sdlc or alm you could decide okay how you want to do it so i just selected my build and here you have option to select you know specific version or latest version let's say um you know you are releasing only a specific version you can create your specific release pipeline only for that version it may be a situation like okay you know you just want to release one version to to two or three environments in in your in your environments uh so you could create your own but usually we always go with the latest one so that's it you just say okay you know whenever this release pipeline starts it should get the input from the the build now it should get the input whether when it should get the input it's basically again you want to continuous deploy trigger so this actually enable to trigger this pipeline as soon as your build is successful okay so i'll just do that every time when you save it it asks for your comments doesn't matter which state you are in or which artifact you are setting up because obviously it's basically for the history for making sure that who changed it and why change it um now now we have to configure the agent so this is our first stage this this is the artifacts trigger it and this is our first stage you can have multiple stages in your pipeline so here on this stage i want to add a task when you click on the stage you have an option to add a task and here you will see a variety of azure devops tasks let me just search for lcs i think that's what they named it right so we have asset upload tasks and we have asset deployment so let me just say okay i want to do asset upload when you click on it you will find certain fields which are required which you need to fill up uh lcs connection um lcs connection is definitely you need to tell this task where you want to upload this package which you are retrieving from the build so i already have one created but if you don't you can click you can add a new it will ask for you basic authentication you will need an application id which is your azure application id if you don't know how to do it you could go into portal.azure.com and app registration so i have created many apps here which the purpose of this app is just to uh have a just to provide authentication to different services that i'm i'm using so i think for this i created this this is the client id this is the click application client id that you need um that's it you just provide that information uh service connection name i don't think i provided that oh that's that's just a name okay you can give any name and that's it so once you add it you can select your lcs connection after that you can provide your lcs project id um okay um how to get the lcs project id this is i don't know if microsoft have made it visible on all projects yet but it should be it's not then i'll tell you okay so this is your lcs project id if you open up any lcs project you will see that your url points to a unique number so that is your your lcs project id you can provide that uh files to upload okay this is which file you want to do so this is the artifacts you know you configured your build you want to say okay i always want to go with this folder asset name you can define your asset name i usually leave it blank so that i get the same asset name which is there obviously we want to enable it that's pretty much it okay once you save it and by the way uh it also generates the yaml file yaml is a format similar to json uh to define your tags a whole documentation available to understand uh what is microsoft yaml and why and and how it it is used to configure certain steps in your build and deployment so you can always i mean whatever the values you're setting up is actually going into behind behind the scene file and that file is being used by azure environments as your cloud to apply that into your environments so this is one task now you can add another stage to say deploy and similarly there is an agent and you need to add an agent um the task would be asset deployment similarly you will provide lcs connection name and the lcs project id now this is your environment id it could be it could be tier 2 or tier 1 you can apply the packages on any uh you can find that id on your environment page i do not have a tier two environment to show you or even i cannot use any environment right now to do it by just giving you the steps uh you can use that you can go into your environment and find out that id asset id oh okay so that's for that i need to for now i'm just putting any any junk hair i'll come back to it okay let's go back to here so let me go back to my other pipeline upload dot file asset id so you could give any name here actually i was not sure how what is the format of it let me give give me one second okay so that will be the format okay all right so what it is so you can give any name like uh my package for example and it actually whenever when this task upload this package to your asset library it gives a unique unique ids it's a grid to to that package and this output variable will actually retrieve that as soon as the upload is successful it will retrieve that and it will pass that to the next stage we can use that into our next stage because obviously we will have a lot of packages you could and those those packages may have different names depending on what time it runs and all of that we need to know that so you might get hold on i gave my package right so let's change this package.file asset id i'm sorry i have to put it there apologize wait for completion it's enabled and that's it so if if you follow through what we did is we created a pipeline where first we get the input package from this we from our build process and then we upload it to the asset library we generate a unique id of that asset and then we go to the next step uh where we actually apply it to an environment we have a unique idea of that environment and then you know we we use that asset too to apply that and this happens you know depending on how you configured your build and deploy so right now i configured it like right right away as soon as the build is successful you can disable it and you can do it on a different schedule if you want and similarly if you have multiple environments then you need to create multiple stages so that you can apply under multiple environments usually i say that you know whenever the development is done it should be applied to a single uh sit environment which we call system integration testing or testing where you know the developers and the functional folks can go in and quickly validate it before we say that okay you know this package can should be applied now to the to the other environment all right that's how you configure it now i cannot run it right now uh even if i run it i know it's gonna fail uh because my earlier pipeline it was failing because of the default pools it was unable to find this this pool and this problem i did not have it on my other client environment but for some reason i'm having it on my local it's unable to find some agent just as your ps as your ps is basically azure powershell it needs to be installed on your build environment um i have it installed so i i couldn't actually do it yesterday that's why i cannot show you the full end to end like you know package is created but this is the process actually you you have everything configured this these are the steps that you need to follow to create your your pipeline all right so in summary if you look at what we did is we you know just to conclude uh we started with the devops project we set up the repository uh we configured our lcs configured our build environments pipeline and then you know at the end we set up the release pipeline in the release pipeline we worked with two tasks there is one more task available by the way i recently noticed that which is adding a license so let's see if i add another stage and just to see what task is that so there are many by the way update model version add licenses to deployable package so you can store them as well you can make them as part of your build pipeline and explore all right so i am getting some questions uh can we do the deployed environment step two on prem no uh this works only for your cloud-based environments it could be tier one it could be tier two it could be any cloud-based environments in your subscription but not the on-prem the next question is from will maybe just maybe it's a comment just need to set environment variable on agent or add capability to your agent to fix this issue yes thanks well so i haven't tried that do you automatically start and stop your build vm how so that's a good question um right now i have my build vm installed or or spun up on my private subscription so i have a limited budget per month 150 dollars so i just started stop it but on client environment you can use your it comes with one build and test environment and that you can keep it running without the worry about losing money or charging money because that's part of your subscription so if you configure that environment as your build test again it's up to the team how you want to do this i mean i personally say that okay you know let's just you know use that environment and then use other environments for different other activities like data migration you can have a cloud hosted tier one environment those are the environments which you can turn on and turn on but if you are planning to build overnight and or any other time it's it's important that you have the build environment running is there a way to automate db refresh from prod uat def through azure pipeline any good material i don't know the answer to that i i i know that when they uh initially released this task last year um the upload task so they released these tasks last year one in january 2019 which was only the upload and that task supported uploading databases and taking back databases but later on i think they for some reason they don't support it anymore as of now i don't see any task to refresh it i think it's a good good idea to to post because database refresh is something that many organizations do there are certain other ways to do db backups and restore but those requires more of a you know manual powershell scripting or other kind of you know sql scripting to create the backups on a schedule and upload it and then apply it but i haven't i'm not aware of anything in ad or devops i don't think there is anything available in your devops what else what is the best banking strategy for automate build process and phenoms especially for multiple developers you know i i don't want to overcomplicate my branching strategy i always go with two branches i will say okay dev branch where all the development is happening and the next you can call it a main branch or a release branch and that's usually ideal whenever i i release unless you have a client where you have a multiple models are being built and i there has to be a good reason for that for example you have development happening in finance and procurement module and then for some reason the organization decides you know i want hr in a completely separate release cycle in a completely separate or hr extensions in a completely separate model for that i would say okay you have to have a multiple branching means multiple you know like have having a one dev branch and then a release branch and then have another for the hr but overall i will always go with two branches you have a depth branch where the all the development is happening and as soon as you guys are ready to release you move the code you integrate your your your all the code from dev branch to the main branch or a release branch you can name it however you want to name it after all the bug fixes and that's where you create your final package to to promote to the uat all right i think we are almost on time thank you i really appreciate you got a time to attend my session um what's next thank you thank you for had again again you know we can't get enough of um the steps involved um for the build pipelines and as well as the configurations for lcs for fin ops again it's very different well it's not very different but but there are differences so as well as the behavior of build servers um so the challenges that you have in finnops is related to the build server which we don't have um the same challenges that you may face when it comes to the limitations that you have during development so uh thanks for obviously addressing those um so that's really good yeah as well i'm hoping that in future sorry sorry go ahead please oh i'm sorry can you hear me yes we can yeah well i was just saying you know i'm hoping that in future we will be we won't have those challenges because once we move to the azure service fabric in our underlying architecture we would have everything running on cloud we won't be dependent on build environment anymore so yes exactly yeah so um yep so it's obviously all work in progress and it's great to see um that you managed to get that working so um yep so obviously we are now preparing for the next session um who is muhammad radwan who is actually a very famous um azure devops mvp so his expertise is devops and so he is you know one of the leading experts in devops especially for the microsoft community here in the uk he's doing all his efforts towards devops um he's got a really famous blog and youtube channel he covers literally all there's nearly all the scenarios when it comes to devops um he does have a session on how to source control everything using ci cd pipelines into your workloads so without further ado mohamed radwan okay thank you ross for for the great introduction i really appreciate that uh okay so let me share my screen and let me know when you can see it so yes um so we still have three minutes before you officially begin so if you have anything that you want to share about what you're doing with the community because you are doing so much um i think now is a good time to kind of get it out to the world really okay um i i started uh you know i it's like a new community um three months ago three months ago uh talking about it's called the cloud devops you know cloud of observations where it aims to help people learning devops and cloud so you know i have some open source project which try to implement the best practices and and we got some you know people joining try to contribute to the to the github project so this is something you know still new wow i've not heard about this um so please
Info
Channel: Power Community
Views: 11,757
Rating: undefined out of 5
Keywords: Microsoft, Dynamics 365, Finance
Id: kS6zqImmuaI
Channel Id: undefined
Length: 57min 19sec (3439 seconds)
Published: Tue Jun 30 2020
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.