do.Develop();

this.AreaOfInterest = Development.All();

Anglebrackets 2018, MGM Grand, Las Vegas – Day 5

Artificial Intelligence keynote – Eric Boyd

So, another talk about AI and machine learning showing of different solutions and products. I kinda get it, it’s important and the new “hot” thing.

Build the realtime web with SignalR core and Azure SignalR service – Anthony Chu

I was a bit unsure to attend this session since I have worked with SignalR for a while now. But to get a bit more understanding on the new version was good since it’s not a port to .NET Core, rather a total rewrite. Because of this, it lacks some features (like backplanes, which is now limited to Redis). There is no compatibility between the old version and the .NET Core version. I did ask Anthony if there is a possibility to use the Azure SignalR Service with .NET 4.7 and: There is no middleware to do that, but the Azure SignalR Service has a rest endpoint which you can use, worth having a look at! There is one bit of problem though. If you (and the browser) supports WebSockets, assuming that the connection is successful) all’s good! But if you fallback to polling or ServerSentEvents, you MUST use sticky sessions in the Application Request Routing. That’s bad since all requests from your session will need to go to the same instance of the server. I hope that this is something that they will find some solution to because it’s not really an option (unless you only allow for WebSockets traffic).

Introduction to Azure DevOps – Edward Thompson

DevOps is the union of people, process and products to enable continous delivery of value to your end users

Finally, the talk that got me hooked on something new (since AI doesn’t really cut it…). We need this! The interface looks nice, the integrations are awesome and the configuration possibilities are endless. Now you defined your pipelines using yaml and commit them in to your repository, when you do that it will trigger a build, with that definition that you committed.
You have the option to define policies on your branches, that is, you set a policy on your master branch that you need x number of approvers plus a build and all the tests should pass. This was, the code will never be merged to the master branch unless all these criteras are met.
For me who has been using TeamCity and Octpus for a long time, this looks sooo good. Release pipelines is the next thing (after a build pipeline is completed, which gives you release artifacts). The graphic overview over a release is just amazing, much more descriptive that Octopus. I haven’t dug that deep into it, but I hope that you also can define release pipelines using yaml, and commit them to the repository.

Actors – The past and future of software engineering – Juval Löwy

Not a single line of code! More a depressing talk about how the industry took the wrong way in the 50th’s. Computers are not designed to scale into this multithreaded environments that we need today. CPU stands for Central Processing Unit and Juval states that the C is the problem. One CPU is something that can process one single thing. So to really do paralellism you need many CPU’s. It wasn’t that talk that made you go wow, but on the other hand he does sell the Actor Model and I kinda buy it.

Surviving Production – Michele Leroux Bustamante, Dan Patrick, Brock Allen, Paul Yuknewicz

This was a panel moderated by Carl Franklin from .NET Rocks. He asked the panels some questions and the audience got to ask theirs aswell. They discussed different features in Azure and how you should monitor you applications. Multi region failover using Traffic Manager, montoring using ApplicationInsights, Azure Monitor and Security Center. ARM templates was mentioned a couple of times, which some of you know is one of the areas I do encourage one should use.

December 7, 2018 Posted by | Events | , | Leave a comment

Anglebrackets 2018, MGM Grand, Las Vegas – Day 4

Microsoft Azure Machine Learning Starting Guide For Developers – Lino Tadros

Very exciting session that started at a fairly simple level where Lino explained how to cleanup your data in order to use it to test algorithms and practice models. The talk continued with content about python libraries, notebooks (to write documentation mixed with executable code), algorithms and how to train models. I am willing to admit that I feel totally lost in this area, but I also feel that I would have to read a bit more to understand how AI/ML works because this area is a great investment for the future.
I do have a hard time finding use cases at the moment, but I’m convinced there are lots, you just have to think a little bit outside the box.

Surviving Event-Driven Microservices – A Practical Approach on Azure – Michele Leroux Bustamante

This session was really just a quick rehearsal of the two-day workshop I went at the beginning of the conference. Still felt good with a small look back on what covered the most vital of Business Capabilities, Microservices, Docks and Kubernetes.

Chaos Engineering on Azure – Paul Stack

This was interesting! Paul began to review some of the principles with Chaos (https://principlesofchaos.org/). There are various tools to test systems by “Chaos”, Chaos Toolkit (https://chaostoolkit.org/), which also has plugins for, for example, Azure.
In order to properly understand what chaos engineering is, he told that at a previous conference, a participant had asked how to proceed. He then asked the participant to go home after the conference and turn off all traffic on the ssh port in one of his systems and see what happened. The result was that it was just chaos, no one knew what had happened and it took 3 days until the problem was resolved. Most probably, this was done in a development environment 🙂
They then introduced tests for communication of these ports and the next time he closed the traffic to them, someone found the problem much faster and could apply a resolution.

Your car is an IoT device – use it like one – Bret Stateham

To think outside the box I went to this session, perhaps mostly because of my interest in micro controllers (you who know me know about my garage door project, now aiming for the car!!).
The OBD-II connector can access the car’s so called CAN bus and read data from a variety of Control Units, ranging from engine to window lifts and other controls. Of course, it’s also possible to send IN data to the car which, of course, can destroy it. He showed some different ways to read data and also showed movies where he plugged in a micro controller (Particle Photon, exactly the same device I use to drive my garage door) in his car and read these values. Very exciting! Now I’m just looking to find some ideas for my own card.

# Keynote – AI Interactive – Steve Guggenheimer

Quite a lot of marketing here, of course, lots of movies that show how AI works in different products and solutions at different companies. AI is hot and Microsoft has a lot of different solutions for building your own products around it in Azure.

Security after Dark (extra interactive panel session) – Michele Leroux Bustamante & Brock Allen

This is a recurring event at this conference where they hand out bracelets to a certain number of people during the first days. You get a beer and some snacks and then get to ask questions to the panel around security. Lots of exciting questions around IdentityServer, Authentication in Single Page Applications, ASP.NET etc.
Time ended too fast so not all questions was answered unfortunately.
An interesting part was a question about any security shortage that was announced this week around just Kubernetes. A person in the audience worked at Docker and had more information on the case that he could directly share to the audience, the security shortage already has a patch! Great fun to see the spread of people who are at these conferences.

December 7, 2018 Posted by | Events | , | Leave a comment

Anglebrackets 2018, MGM Grand, Las Vegas – Day 3

Keynote (Scott Guthrie & Scott Hanselman)

Today the “real” conference began with a keynote by Scott Guthrie who presented a lot of colleagues to show off demos of different products and technologies. Marketing in essence! It is again pointed out how committed Microsoft is to open source and how much they actually contribute to the open source community.
On thing worth mentioning is that you can already start seeing the impact on Microsoft acquisition of GitHub, there are a lot mot integration between GitHub and Azure DevOps.
After Scott, the next Scott came in the form of the amazing Hanselman. As always, a joy listening to him and also many laughs.
One highlight was when he and a colleague, via a fake phone call, called Scott and asked him to help fix a bug. The colleague used Visual Studio on Windows and Scott Visual Studio Code on Ubuntu Linux. They used Live Share to pair their sessions (note the differences with both operating system and Visual Studio/Code) and started debugging together, watch each others cursor’s position and code selections etc. Impressed that there wasn’t any latency and a really nice way to collaborate together. It could apparently be used in VS2017 via some additional installation and will be installed in VS2019 by default, which by the way was announces as a preview.
My reflections on these keynotes is that its’s starting to become much theater and fully prepared demos, but I suspect it might have to do with the conference now coexisting with the Microsoft Connect() conference. Previously, there was more open source, more real geek demos with live coding.

What’s New in ASP.NET Core 2.1 and beyond – Jeremy Likness

The first session after these keynotes was “What’s New in ASP.NET Core 2.1 and beyond”. Not so much new that I had not seen before. A little demo on Blazor that I’m still not completely convinced about. It’s a little bit of Silverlight, but it’s based on technologies that are NOT Microsoft’s own (WebAssembly). Building web interfaces in C#, hmm, yes maybe. Another thing was Razor libraries (a way to pack razor views for reuse, I think …). I should have selected a Progressive Web Applications session instead.

Introduction to vue.js – John Papa

On to the next session after a good lunch. Now it was time to go a little outside my box and look at something that I have not seen anything about before, vuejs! This sessions was held by John Papa and it was also him who had an angular session about 3 years ago where I fell in love with the Angular CLI. He demoed some of vuewjs features using their CLI and yes, the feeling appeared again; really nice!
Something that I hope will also come to angular in the future is a user interface for monitoring a local “instance” of an angular application, like the vue UI. Via vue’s CLI, you can simply run “vue ui”, which starts a browser with a graphical interface of the application: dependencies, lint config, serve (start / stop), performance measurements, etc. Really really smooth if you’ve familiar with all the configuration and files involved in a modern js application.
I was looking forward to asking John after the session if there are something similar to Angular Elements even in vuewjs, it doesn’t. But, he thought I should wait a little with Angular Elements because of the new rendering engine (Ivy) that’s coming to Angular will make packaging easier and smaller. Vue applications have a much smaller footprint and may be an option to look forward to for ui composition. The syntax is not much different, you’ll recognize yourself!

Build your first Xamarin app in 75 minutes – Robert Green

Further towards an additional outside the box session. “Build your first Xamarin app in 75 minutes”. This could have been better if his Android emulator had worked, which he dribbled with quite a lot of time of this session. There was no direct info in depth here, but I still got a little understanding of how to get started. I would have liked to see bit more on how to use native features on the devices, how to do specializations for a particular device and so on. It was a “basic session”, but I was expecting a little more than running file -> new project (with default templates) -> F5.

In addition, I picked up a brand new T-shirt, hows that!

December 5, 2018 Posted by | Events | , | Leave a comment

Anglebrackets 2018, MGM Grand, Las Vegas – Day 2

Sunday – Workshop Day 2

So, second day at this workshop was a bit more advanced where Michele went through a lot around how to host containers in Azure. She described a bit more about “Web App for Containers”, the App Service container hosting I wrote about in my last post. “Azure Container Instances” which is another way to host one instance of a container (in other words, does not scale at all). After that, the focus was on Azure Kubernetes Services (AKS), which looks very nice, although many new concepts and configurations, new ways to define how containers are to be run, interact with each other, scaled, monitored etc. But, the definition of how a container is to be run is pretty good where health checks, warmups and such are defined in a single yaml file.

Michele also gave a brief demonstration on how to use Docker-Compose as a method of running all services on your local machine. This approach is a way to actually run the entire environment on your machine without having to open x number of Visual Studio solutions and hit F5 on everyone of them. Could be quite handy!

An interesting note is that when deploying a container to the AKS cluster, one must also specify how much resources the container needs in terms of memory and CPU. It is something that of course is very difficult (if you do not already have a service that runs somewhere and can look at statistics) and must be solved using load tests and analytics. I think that’s very good, especially since you must think of performance at an early stage! The reason is simply because the cluster must be able to fit the container somewhere.

A reflection after the workshop is that the thoughts we have at work about about how to split services, the business capabilities, how to host our services (containers ftw!) are completely in line with what has been adressed these two days. We are on the right track, but it takes time, it is complicated and we will (probably) not get it right from the start. But anyhow, it will be easier to change and do the right thing.

In summary, a day has to few hours even here since you want to sit up and do some labs all night, but you have to fix the schedule for tomorrow’s sessions, attend keynote, eat food and maybe get some sleep too…

December 4, 2018 Posted by | Events | , | 2 Comments

Anglebrackets 2018, MGM Grand, Las Vegas – Day 1

So, finally, time for AngleBrackets in Las Vegas again. The schedule looks very interesting and unfortunately many sessions seem to be on the same time slot. It does, however, last for a very good week!

Sunday – Workshop Day 1

Today, the conference began with the first part of Michele Leroux Bustamante’s 2-day workshop “STEP UP YOUR MICROSERVICES GAME WITH ASPNETCORE, DOCKER AND AZURE”.
Much of today’s content was a little repetition of the workshop I went on last time I was at Anglebrackets. On the other hand, it was good with a little revival around Docker and Docker-Compose and how to structure image definitions today. This workshop goes through many different parts in brief, which I think is good for getting a sense of how everything is connected. She mentions that their company works mostly with asp.net core that runs in linux containers, just because they are so fast. I find it exciting, but have at the same time, read some of the issues it may cause when troubleshooting memory leaks and such (https://www.hanselman.com/blog/CustomerNotesDiagnosingIssuesUnderLoadOfWebAPIAppMigratedToASPNETCoreOnLinux.aspx).
A very interesting thing, on the other hand, is that they have had a lot of success with lift & shift, that is, taking an “old” .NET 4. * application, baked it in a windows container and deployed it. Everything must not be rebuilt and migrated to run as containers, which I knew already, but fun that it seems so incredibly easy!

Tomorrow, the workshop will continue focusing on Azure Kubernetes Services (AKS), which is one of various orchestration platforms available for containers. Very exciting that it’s about AKS as it is the platform that feels most natural to us when (I choose not to write ‘if’ consciously) we can start using containers.
She also briefly explored how to create a pipeline in Azure DevOps to build, package and push images to Azure Container Registry, where an App Service picked up the new image and spun it up. It could be an intermediate step in the solution we have now, as you can prepare your containers to run in a cluster while retaining all the infrastructure we are building our services at right now.

Saturday – Enjoying Vegas

Me, Gustav and Sonny decided to try and get a rental car for a small trip. The world’s most narrow Ford Fiesta became ours for a day and we aimed at Hoover Dam! It didn’t begin well when the co-driver (could be me…) tried to navigate the directions on Interstate 15, 215, 515, 11 etc. It’s a bit different signage here but in the end we ended up on the correct route and arrived at this incredible, crazy big and incredibly impressive construction. Very difficult to capture this on picture but I think the panorama picture makes it quite fair. On the way back we also parked the car and went for a walk on the bridge as you can see from the pictures. You could say that you walk a bit extra softly with your feet to avoid causing the bridge to crack and fall down…

A visit to Chipotle and yummy tacos, a disappointing visit to the Las Vegas South Premium Outlet (just the word Premium took away the meaning of outlet, nothing was cheap). We passed the famous Vegas sign, traveled the entire ‘The Strip’ by car, visited a baseball shop and overfueled the car at the cas station. In addition, we saw very interesting scenery and other cities a bit outside of Vegas. As Sonny said in the car, one would really like to knock at someone’s home to see what it looks like there.

A real, really good decision to rent a car. And for those who know my latest misery with rental cars and bad companies, I think it went better this time!

December 3, 2018 Posted by | Events | , | Leave a comment