Technical Keynote & Developer Panel

65 min video  /  54 minute read
 

Speakers

Colby Clegg

Chief Executive Officer

Inductive Automation

Carl Gould

Chief Technology Officer

Inductive Automation

Sabrina Reis

Director of Software Engineering

Inductive Automation

Ray Sensenbach

Design Department Manager

Inductive Automation

Kevin Collins

Lead Software Engineer

Inductive Automation

Joel Specht

Senior Software Engineer

Inductive Automation

This year, the co-creators of Ignition, Colby Clegg and Carl Gould will be expanding the traditional developer panel into a new format. In this new Technical Keynote, Colby and Carl will cover the recent progress of Ignition and look at the roadmap for the near future of the platform. They will also get some help from a few Software Engineering Division all-stars to give further insight into specific aspects of the platform like security, advanced analytics, and design tools. 

Transcript:

00:00 
Announcer: Welcome to the Technical Keynote. Please give a round of applause to Inductive Automation's CEO Colby Clegg and CTO Carl Gould.

00:16 
Carl Gould: Good morning, everybody.

00:20 
Carl Gould: I hope y'all had fun last night. I sure did. Really happy to be back here this morning.

00:26
Colby Clegg: Yeah, I guess they got my message to keep Carl muted, but it was a little bit of a mean trick to call you back at 9:00 AM when yesterday we started at 10:00, but we're glad that you made it. Yeah, what a day yesterday. It was really incredible. I realized, talking to so many of you, that my message about everything changing, but being the same, wasn't just complete fluff. And actually, it kind of feels that way. It feels like we've never... Three years have not passed. I feel like we were here just yesterday, but then talking to everyone, the scale of what's going on, what you are all working on, the projects, the way that customers are talking to you and users are talking to integrators, the way that the in-house engineering are tackling problems, really is a substantial change from, I feel like where we were a few years ago. So it's really incredible.

01:10
Carl Gould: Yeah, it's been interesting. Everybody keeps saying last year, but they mean 2019. It's kinda interesting. Yeah. So for those of you who've been here before, right off the bat, you'll notice things are a little bit different than how we normally run this session. We know that you love seeing Colby and I tap dance up here as we try to answer your questions, and we will do some of that. But this year, we kind of want to mix things up a little bit.

01:34
Colby Clegg: Yeah. We convinced marketing to change the name “tech keynote” right in time to do a dev panel which is what we're gonna do today. And there's no time like the present when Carl and I have now taken on these new roles to try to introduce you to some of the real magicians behind the scenes, some of our key developers and developmental leaders. So we're gonna bring them out soon and open this up as a panel. We're gonna discuss some things and have some real experts on stage finally, to answer your questions.

02:03
Carl Gould: Yeah, we'll still cover the normal bases that we cover. So we're gonna be talking about what we've been up to this past year since last year's virtual ICC, and of course we'll talk about some of our plans for the future. But this year we'll have some help, some of our fellow leaders in the dev department, and then we'll try to leave as much time as we can for questions at the end, of course. So, without further ado, let's bring out our panel and introduce everybody.

02:36 
Colby Clegg: First of all, we have Sabrina Reis, our new Director of Software Engineering. Sabrina has been here for three years now, and she's been instrumental in helping to manage all aspects of the software development life cycle. She now oversees our three main activities: software engineering, QA, and design.

02:56
Carl Gould: And next up we have Ray Sensenbach. Ray has been with us for many years, instrumental in many of the modern designs of Ignition, and now oversees the team of designers and user experience professionals that we have working on the product.

03:12 
Colby Clegg: We've got the Duke of Docker, the King of Containers, Mr. Kevin Collins. I'm sure most of you, many of you may know his name because of his work on Docker and our compatibility with these automated deployment systems that we're working on.

03:28 
Carl Gould: And last, but certainly not least, we have Joel Specht. Joel is another one of our lead software engineers, real security expert, works on features in Ignition around authentication, authorization, and IdP compatibility, as well as helping to analyze and validate incoming vulnerability reports that we get. Okay, so panel, welcome and let's dive right in. So, over the past year, we have obviously continued to focus on Ignition 8.1, and we're gonna cover some of the features that we've been adding throughout our various releases. But first, Sabrina, maybe you can remind everybody why we keep focusing on Ignition 8.1.

04:08
Sabrina Reis: Yeah, of course. So Ignition 8.1 has been a very significant version for us. It's our first long-term support version of Ignition 8, and so we really realized that customers are gonna be adopting and relying on this version for a long time to come. So we put a lot of focus in on stability and usability, and that would go beyond just bug fixes. Also keeping features in mind that sort of lend itself to that stability, usability, and providing quality of life and troubleshooting support as well. And this serves, not just our customers, but also our own division ourselves, and then also our support division. It also serves them as well.

04:55 
Colby Clegg: Yeah, absolutely. We've been working a lot this year in how we can improve stability and diagnosability and make sure that support and development are working so well together. And that's a good... This makes it a good time for me to mention. Yesterday I talked about some of the cascading changes we've had in terms of leadership, right? And so I wanna point out that my previous role, Vice President of Technology, is now being filled by Dave Fogle, sitting right there, who was previously the Director of Support and Training. And he's got over 10 years' experience working with the software and support. And so I think that it perfectly represents what we want to do, how we approach all of these activities to have somebody with his experience in that role. So it's very great. Alright. So let's look at a few of these features that kind of fit the bill of what we're talking about. First up, Kevin, why don't you tell us a little bit about the Metrics Dashboard that we recently introduced?

05:57 
Kevin Collins: Sure, sure. Yeah. The Metrics Dashboard, it's a new tool in the gateway web UI, and it lets you kind of collect in one place, a lot of the different performance metrics and things that drive a lot of the other disparate status pages throughout the web interface. The Metrics Dashboard allows you to kind of customize and create your own collection of those metrics to really zero in on a specific focus. And we're really excited about what Metrics Dashboard means for, not just customers to be able to observe their own system, but for support and what that'll mean when you really need to dial it in.

06:32 
Carl Gould: Yeah, for sure. It's a really useful tool for us because it helps us gain visibility into some of the internal implementation metrics that you just can't get any visibility into any other way. So that's been really helpful. And along a similar line of diagnostics features, we have another new feature that was just introduced recently, which we call the Diagnostic Bundle. Joel, you want to tell people what that's all about?

06:58 
Joel Specht: Yeah. This is really a straightforward feature that we've wanted a while now, but we believe it'll greatly speed up the support diagnostic process. Essentially, you can go to the gateway web interface, with a single button you can collect and download much of the key diagnostic data that support often asks for, things like logs, module information, thread dumps, and so forth. Instead of constantly coaching users on where to go and how to find these things, we can now just get it in one easy step. This also gives us the chance on our side to build tools to better present this information to support reps, which should improve the support experience as well.

07:36
Colby Clegg: Absolutely. And so support operates in kind of two different directions. One is to help customers solve problems and troubleshoot things which these features pertain to. The other direction is in helping customers achieve their goals. And in regards to this, this is where clean, usable, functional design is really very, very important. And so, Ray, I know this is your area of expertise. Can you perhaps tell us a little bit about what the design team has been doing to help with this?

08:06
Ray Sensenbach: Yeah. Absolutely. So we heard it so many times yesterday, right? Ignition and IA, we're here to solve customer problems. But in order to do that, we really need to be speaking to our customers and working with them and getting ideas from them. And then luckily, we have this really active user forum, where we're able to get a lot of good ideas, have discussions and then implement things from those discussions into the software. But over time, as the design department has sort of scaled, we've been able to get a little bit more proactive in our approach. So more recently, we are sort of integrating direct user feedback into our designs throughout the process. So for example, at the start of a feature, we might have customer interviews where we discuss and try to suss out what the real needs are of a feature.

08:48
Ray Sensenbach: And then halfway through design process or throughout it, we do a lot of prototype usability testing to sort of simulate the experience and get direct feedback on our concepts before they're developed. And then just sort of round it out at the end. A little bit more recently, we've been implementing these SUS surveys or System Usability Score surveys. And this is a tool that helps us sort of validate whether a released feature was successful and then also gain a little bit more ideas around how we can continue to iterate and make things better over time.

09:19
Carl Gould: Yeah, collecting feedback has been a really successful strategy for us, for sure. And we've implemented a number of features this past year, really directly based on feedback, one of... I've talked more on this conference the last few days than I normally talk in like a year.

09:36 
Colby Clegg: It's been a long time.

09:39
Sabrina Reis: Since 20...

09:39
Carl Gould: My poor voice is going. Maybe the noise of the Fat Rabbit might have had something to do with that. So, features driven by feedback. We've got quite a few of them that we've been adding. And a good example of that is one that we added pretty recently, which is this new Tag Report Tool. And the design department had a really outside influence, not on just how this tool looks, but really how the whole tool functions. Isn't that right?

10:03
Ray Sensenbach: Yeah. Absolutely. It's sort of emblematic of the process, I just sort of mentioned, it was a really highly desired feature for a long time from a lot of our customers, but a lot of folks were asking for it in a lot of different ways. So with this one, we kicked it off again with these customer interviews. And what we did was we targeted those from the Ideas Forum who were voting on the feature or actively discussing ideas around it. And from those conversations, we were able to really understand the goals and needs of the feature. In this case, some of the use cases that kind of bubbled up were things like being able to see all of the bad tags within my system that have a bad quality, for example. Also, a hot topic was being able to show all of my instances of UDTs within a system. And so all of that is now possible in this tool and you can kind of see how this process of direct user feedback is starting to really impact the shape and scope of features that we're developing.

10:58
Colby Clegg: It was fun to be part of that project because we had an idea, a pretty simple idea of what we wanted out of it. And then just to watch the process along the way, it turned into a really cool tool. And it's also backed by some cool scripting functions. And already, I've heard directly from tech support, "Oh, this is a game changer." They're so excited. I don't know who's more excited if it's them or our customers, but I know they spend so much time trying to help customers figure out where things are going wrong and tools like this really, really help. Anyhow, so another, on the subject of tags, another area that was directly driven by user feedback was improvements we recently made to our Tag Editor. So Kevin, why don't you tell us a little bit about what happened there?

11:40
Kevin Collins: Absolutely. Many of you know, Ignition 8 introduced some big changes to the tag system and it included a lot of changes to the user interface that we use to edit tags right there in the designer. This new UI that we did introduced some important features for extensibility, but we lost some of the quality of life and usability aspects that customers depend on and really enjoy. We got quite a earful about it on the forums. But we went to task, started collecting that feedback, and worked with design to kind of come up with a strategy that would help us solve those problems.

12:25
Kevin Collins: And the biggest change in Tag Editor is the reintroduction of categories. These help you really orient your view to what you want to focus on. But there are also improvements in property editing, expression, bindings, and really just things that help you focus on what you need to do. Things that may seem little on the surface, but they add up over time, when you spend a lot of time of your day editing tags, it makes a big difference. I think all told, we did at least a dozen pain points with the rework of the Tag Editor.

13:02
Carl Gould: Yeah, it's really nice and we recognize that UIs like this are really on sort of the hot path of UIs where people spend a lot of time in there. So all those little details really make a big difference. And another place that people spend a lot of time in is editing scripts. And this past year, we've put a lot of effort into improving that experience too. So maybe Joel, you can tell people what we've been up to?

13:27 
Joel Specht: Yeah, we introduced a big upgrade to the editing UI recently. Besides some really nice things like high DPI font support and code folding, I think my favorite is the vastly improved autocomplete system. Before we would provide basic autocomplete hints for the system functions that come with Ignition. With this new editor, it's much more type aware, and so we're able to provide autocomplete hints in many more situations, which should save a ton of time having to bounce back and forth between the designer and the reference manual.

14:00
Carl Gould: Yeah. It's really nice. I love using that new editor. And finally our last feature in our list of sort of user-requested feedback-driven features is Co-Branding for Perspective. People have been asking for this, for Perspective, pretty much since the day it was released, and we are pretty happy to be able to get it in there recently. Sabrina, you wanna tell people what this is about?

14:21
Sabrina Reis: Yeah, sure. So, Co-Branding is pretty straightforward. Essentially, you are able to reskin your Perspective application, so they look and feel more like your application, as opposed to our application. There was a few places in Perspective, such as the loading screen or the login screen, that were pretty heavily Ignition or Perspective-branded. So with this feature, you can change and customize your UI with your own colors, logos, graphics, really just bringing the ability to provide a look and feel that's more your own as opposed to specific to Ignition Perspective. Yeah.

15:08
Colby Clegg: My clicker's giving me a hard time. Well, on the subject though, going a little bit higher in the realm of user-driven features, customer-driven, is an area that we've been asked for or discussed... We've discussed it a lot over the years with a certain segment of our customer base, which is support for 21 CFR Part 11. And we've had various guides. Some people here have done really great jobs of implementing systems, but we've constantly been looking at what we can do to improve support and make it easier to achieve that. So Joel, why don't you tell us about some of the features we recently introduced to kind of help with this?

15:44 
Joel Specht: Yeah, we introduced a lot of great new security features and improvements this last year, but I'm particularly proud of the set of features we added to support building high quality 21 CFR Part 11 applications. Basically, at any time in a Perspective project, you can now invoke an authentication challenge to require a different user to log into an IdP so that their credentials may be used to approve and sign off on an action initiated by the first user. This all happens seamlessly within the same session, without having to log the first user out of the session. This was a challenging set of features to implement since IdP protocols were not designed for this use case, but we ultimately arrived at a solution that is secure and robust, and I gotta give a special shoutout to Tom Hechtman from Sepasoft and Joe Dolivo from 4IR Solutions and Grantek for working closely with us to solve some pain points here. So.

16:37
Carl Gould: Yeah, it's really helpful.

16:39
Colby Clegg: Yeah. Yeah, and it's great. I love when we, we're able to do this, to take something that people have been asking about for a while and deliver something that doesn't just solve the problem, but does it in a way that is incredibly modern and novel. The use of IdP, like Joel said, was a challenge, but now we're able to add this functionality using these modern technologies that really, I don't think anyone else is quite doing. And I wanna give my own shoutout to Joel, the work he's been doing behind the scenes on our security infrastructure in Ignition, because security is an area that doesn't get a lot of focus, like the UI features and the frontend features and all the stuff you see, but when you think about the components that make Ignition such an incredible product in the current marketplace, security is vital and fundamental and really a standout area. So Joel has been very instrumental in developing those systems. Another area that has come up as a key element of modern architectures, is something we've been talking a lot about recently, is deployment and orchestration technologies. And so Kevin, I know you had a session yesterday, but maybe you can also talk a little bit about what we've been doing recently with it, why it's important and so on.

17:58
Kevin Collins: Sure, sure. It's a topic that's near and dear to my heart. I think we've come a long way over the past couple years, improving the Ignition container image, really getting the foundation solidified to prepare it for use in a wide variety of different container orchestration, cloud-hosted platforms that are out there. All of those major cloud providers have their own services: AWS, Azure, Google Cloud, there's a number of them. And our Ignition container image, it can be deployed there. It's something that I think really sets the stage well for the future. We've come a long way improving the image, we've done work on leased activation to make sure your production deployments can get licensed, but we've also done other work, helping folks get past that initial stage of just launching an Ignition container, but how to extend it, how to really customize it to your need. And along the way, we've also been identifying some other opportunities for integration with some of those application stacks. We're looking at logging, metrics, config management. There's a lot more to come. It's pretty exciting.

19:18
Carl Gould: Yeah, and that topic starts getting us into topics that start moving us to our future plans, like Cloud Edition. But before we get there, I wanna take a few minutes to highlight some of the work we've been doing this year on improving our testing strategies and process maturity. And Sabrina has really been instrumental in helping guide the team in this area, so maybe you'd like to talk about it.

19:39 
Sabrina Reis: Yeah, I'd love to. So this last year, we have put a lot of focus in on quality assurance. We have really aggressively staffed in that department, in fact, we've actually increased our staffing in the QA department by 40% over this last year. So, that's huge. A lot of focus on early detection and regression prevention. And James Lorenz, our QA Department Manager and his team have been very pivotal in pulling it off. And I actually would like to highlight some statistics here to just reflect that success.

20:14
Sabrina Reis: So this first one here is the number of automated test cases, this is 2021 versus 2022, and you can see there's quite a big jump here in numbers, there's actually a 43% increase in automated test cases last year to this year. This next statistic is... This is our number of released regressions. This one's very impressive to me. This is, again, 2021 to 2022, and it is a 49% decrease in released regressions. And this reflects, I feel like, beyond just the QA department, but also it shows the quality of the code and really the whole division working as a team, all three departments. It's really a fantastic statistic. We're very proud.

21:00
Carl Gould: I think this is my favorite slide of the whole conference.

21:00
Sabrina Reis: It's my favorite slide.

21:04
Carl Gould: Yeah, really proud of how well the whole team has pulled together this year to improve overall quality, it's really been excellent. And a similar topic, talking about process and testing, and those sorts of things, we've also been working toward getting our first certification in that area, working toward the ISA-62443 certification. You wanna tell people what that's about?

21:26
Sabrina Reis: Yeah, so ISA-62443. So we've been looking at getting a formal certification, and ISA-62443 was a great fit for us because, well, obviously not only were customers interested in us obtaining a formal certification, but we were also very interested in this, and seeing how having some guidance in documenting the processes we already have in place that are successful, as well as some guidance in documenting the areas we already knew we were looking to improve: stability, security, quality assurance. So, it's a really great path for us. So we are striving for, somewhere at the end of our first level of certification, somewhere at the end of this year, early next year, and then sort of on the same line in regards to security, one component we've been working on is threat modeling. And Joel has been very instrumental in that. Joel, do you wanna give a little update on what we've been working on with modeling?

22:26
Joel Specht: Sure, yeah, 62443 requires that we perform threat modeling as a part of our software development process. Threat modeling is the process of analyzing a system to look for weaknesses, which come from less desirable design choices. The goal of threat modeling is to identify and address those weaknesses before they become baked into the system. We believe it's a worthy requirement since it formalizes the threat modeling that we already do organically, it just puts more structure to our process and helps us get certified along the way. Since it's related to security, I think it's important to talk about Pwn2Own as well. Pwn2Own is an ethical hacking competition sponsored by Trend Micro's Zero Day Initiative. It's been around for years, but only recently came to the ICS space, and Ignition has been chosen as one of the attack targets by the ZDI each time they held it in the ICS space. It's completely optional for the vendors to participate in the competition, but we always choose to actively engage.

23:25
Colby Clegg: That's an important point. It's optional, and so when you don't see vulnerabilities exposed there for other systems that may not be there, it's not necessarily because they don't have vulnerabilities. But the point is, is that I wanna highlight that because it really just... We've made a conscious decision to tackle security headfirst. It's not an area we talk about a lot, but I wanna make it clear that as a company, it is primary to what we're trying to do. And so, I think this represents our dedication to that, right Joel?

23:57
Joel Specht: Absolutely, yeah, we find it incredibly valuable. It's basically... We see it as a free pen test. We get to learn about previously unknown vulnerabilities directly from the security researchers who discover them at the earliest possible opportunity, which gives us a chance, like Colby said, to really tackle the security issues head-on and address them before the bad guys even know how to exploit them. So we think it's great and we hope we participate again next year. We hope we're chosen again. We also have a new CVD policy that we implemented with Pwn2Own this year, so basically, we work with security researchers to coordinate publication of details of vulnerabilities until at least 60 days has passed since we release a fix for the vulnerability. We believe this strikes a balance between us continuing to be as open and transparent as possible, but also protecting users and giving them a chance to upgrade before their systems are more at risk. We believe it's the right thing to do, and we hope our users can appreciate what we're doing here as well.

25:00
Colby Clegg: And you see in this some of the ways these different things we've been working on for a while now come together; a release train system, and obviously, the focus on quality is very important, backwards compatibility, all of that, because we want people to feel comfortable upgrading and making sure that they stay secure. All of this kind of touches on the subject of how we add the structure and the rigor that we need in order to continue to grow, while maintaining the agile and adventurous spirit that so many of you love about us. And I hope that you can see that the entire team is very dedicated to trying to maintain both of those aspects, and we really approach it as a process of continuous improvement and refinement. So with that, let's start to get in a little bit further into the future, and we'll start by highlighting a few of the features that we're going to roll out over the next few months, the next year, into 8.1. So Ray, why don't we start with Perspective drawing that I know a lot of people are eager to hear about?

26:07
Ray Sensenbach: Yeah, absolutely. So I mean we've been wanting to add vector drawing and editing to Perspective since its release, and I know a lot of you here have been asking for it as well. So, to that note we've sort of had a lot of internal discussion and strategy around how to accomplish this and what the right approach might be. And sort of what we came to, we think, is a really good balance between powerful functionality that you expect and also an easy-to-use intuitive experience. So our solution is essentially SVGs or vector drawings within the designer are becoming what's known as the Drawing Component in the palette. And then manipulation of that component happens in this new dedicated Drawing Editor Tool. And so you can obviously create things from scratch within the Drawing Editor, or you can import and edit existing graphics or SVGs there. So it really is this very complete feature set, it's gonna be on par with what you expect to see from maybe something in Vision or external third-party tools like Inkscape or Illustrator, and it's being built directly in Ignition obviously, so that gives us a lot of clear advantages as well.

27:14
Ray Sensenbach: Like I mentioned, because there is this dedicated Drawing Editor UI right within the designer, we were able to add and augment things that are in Ignition, meaning we're adding dedicated UIs for binding properties within drawings, also a nice layers panel to let you navigate your SVG drawings, but the whole goal here is to really make the whole workflow less disruptive. So previously, you're editing a graphic, you have to export it, use your third-party tool, import it, and that really sort of breaks the designer flow state. So we're really excited about how this is gonna improve that. And I’ll mention also that it's actively being developed, we're seeing live builds every few sprints and it's getting there and it's very exciting.

28:00
Carl Gould: Yeah, we know a lot of you have been waiting for this and we appreciate your patience, it's obviously a big lift to build a brand new drawing editor from scratch but it's really exciting to see it come along. Another project that we'd like to highlight is something we're calling the Tag Reference Tracker. Kevin, you wanna talk about that one?

28:18 
Kevin Collins: Sure, yeah. This is a feature that's going to let us answer a commonly asked question about Ignition systems: Who's using that tag? Because of the dynamic nature of Ignition, how you can interact to tags, this seemingly simple question is actually non-trivial to answer. So what we're gonna do is we're going to keep track of the usage of any given tag, who subscribed to it, so that over time, we build this index and accounting of where a tag is used throughout the whole system. I think there's obviously some compelling advantages to this in design time, but I'm pretty excited about the potential also for runtime integration and some of the things folks may be able to create with the Tag Reference Tracker output.

29:10
Colby Clegg: This is an area that we've been asked about for a long time, I believe it's probably the number one request on the Ideas Forum, which yes, we do watch. It might take a while to get to everything, but we look at it. So yeah, it's very exciting, and I'm sure that we'll continue to evolve this concept down the road. Alright, finally, let's talk a little bit more about Cloud Edition, which Carl introduced yesterday. He mentioned some of the fundamentals about what it is, but Sabrina why don't you, in your own words, kinda tell us how you see it fitting into our product strategy?

29:44
Sabrina Reis: Yeah, sure. So you know, of course, people have been running Ignition in the cloud for years, but now with Cloud Edition, we can offer a much more cloud-native type of experience. Ignition as a platform scales so well from edge to plant to cloud, and now we have those additions to match. We're really excited to see how the new elastic licensing and Cloud Connector Modules help to create some really interesting applications that take advantage of this hybrid architecture.

30:15
Carl Gould: Yeah, we've mentioned it yesterday, and I've already talked to a number of you about it already at the conference, people seem pretty excited about it. We're really excited to have tailored editions for all these different use cases, and I'm really excited about what those connector modules will mean for new integrations with Ignition. And Travis gave a... And Kevin gave a really interesting sneak peek yesterday at the AWS Quick Starts, which will also be able to provide more of that kind of CloudFormation templates and scaffolding for infrastructure as code that will really help I think some, help you spin up these complex architectures really pretty darn easily. So that's exciting.

31:00
Colby Clegg: Yeah. So let's go a little deeper into the future now, and let's talk about the next major version of Ignition. I think in a lot of discussions yesterday, I don't know how many people noticed, but I kept using the term "next major version" instead of a number, there's maybe a reason for that. Sabrina, why don't you explain what that is?

31:17
Sabrina Reis: Yeah, so just gonna change some things up here. So traditionally through the life of Ignition, we've done major releases about every year and a half, every other version being a long-term support version, supported for at least five years. So as I mentioned before, 8.1 we're treating a bit different, a bit more special here, and basically, with the features that we're putting into it and things like Cloud Edition coming out, we realized that the jump to 8 was big for some customers. There's some larger enterprise customers that are still working on their 8.1 migration, so with all that in mind and with what we're doing with 8.1 and with Cloud Edition coming out, we just did not think it made sense to have our next major release be a non-LTS version. So therefore, we are skipping 8.2 and we are going right to 8.3.

32:15
Sabrina Reis: Which is long-term support. And so obviously, that implies a bit of a longer dev cycle, so we're looking at somewhere near the end of 2023, early 2024. Yeah.

32:31
Carl Gould: Yeah. Once we hit upon this idea, we all just looked around at each other and we're like, “Oh, yeah, that makes a lot of sense. We should definitely do that.”

32:38
Colby Clegg: The numbers add up.

32:40 
Carl Gould: Yeah. It just... We're not making any long-term judgments on what the release cadence might be going forward, but for right now, it makes sense to take the time to really build up 8.1 as much as we can and then get right to 8.3. After that, who knows? So now, talking about 8.3, let's talk a little bit about what we're planning to actually put into that product. Some of those features sort of continue in the same focus of usability and design that we've already been talking about. So Ray, maybe you can talk about the first major feature we have planned?

33:21
Ray Sensenbach: Yeah, sure. So this first major feature we're talking about for 8.3 is essentially a complete rework of the gateway web interface. Now, the functionality of the gateway hasn't changed too much at its core since the very early versions of Ignition. And we've noticed some certain pain points start to crop up and grow within that old information architecture. On your left there, you're kinda seeing the rough architecture of 8.1 builds currently, and on the right, the 8.3 proposal for where we're going to be going. Essentially, the main pain points we noticed were things like having duplicate versions of lists of items, right? So highlighted in red there are what we noted as duplicate pages. So you get sort of the same information for maybe a list of databases, for example, on a status page, and then a little bit different information with some actions on the config pages. So that eliminates folks having a single source of truth, which is what we're really striving for in the redesign.

34:17
Ray Sensenbach: And then also, you'll note the config navigation just grows and grows and grows and grows, and that becomes pretty difficult to navigate, so we're also trying to account for that. But yeah, it's more than just a structural overhaul. We're tackling something like 80 or 90 bugs and features with the restructure, and it's gonna hopefully eliminate a lot of the little paper cuts, little annoyances that exist throughout the experience. And the new designs, I mean, it's not often you get the green light to redesign an entire web application, so design is really excited. We're introducing a lot of new modern UI/UX paradigms throughout, which will make it more consistent and intuitive to use everywhere. But more exciting than that are just these new features that we're able to layer in at the same time.

35:00
Ray Sensenbach: I just wanted to highlight a few of these new ideas and concepts on the gateway here. What you see on the main left is the Configuration Index. This is a new page that we're developing, which will essentially be an overview of every configuration that exists within a gateway. So it'll give you a nice top-level look as to what this gateway is, as well as the state of all of those items within that to hopefully highlight like faulted-state items. We're also developing this system of keywords, which is essentially going to be our solution for foldering or grouping items. It's really flexible and will help to manage and organize the scale that we see on a lot of gateways nowadays. And finally, I wanted to highlight system alerts. So this is gonna be a way for us to broadcast like really critical system messages across the platform. So you're seeing it here on the new gateway designs, but it'll also exist throughout the platform, like in the designer, for instance.

35:52
Carl Gould: Yeah, it's really exciting, it's... Yeah, you're right. It's not every day you get to redesign everything from scratch. We've been working on Ignition for a long time, obviously, and sometimes you'll find a UI that was clearly written before Ray's influence.

36:10
Carl Gould: Before Ray and after Ray. So no, we don't have that inconsistency anymore. I'm really excited about that. And beyond the visual changes, or beneath the visual changes, there's another really exciting layer, which is that we are going to have 100% of the functionality that you can get to through that web UI exposed via RESTful APIs. So people have... Yeah. Let's take that.

36:38
Carl Gould: Yeah. People have been trying to sort of programmatically alter Ignition's configuration forever, and right now, a lot of that has to go through scripting, which is awkward, 'cause you have to do that within the product, and so it's a little weird to have to configure a product from within itself. So this is gonna be a really nice way to be able to manage Ignition 100% externally. And it also ties in with all the deployment orchestration stuff we've been talking about. Kevin, you wanna talk about that?

37:07
Kevin Collins: Yeah, this is really kind of a compelling topic that'll open the door for more standardized ways to leverage infrastructure automation tools like Ansible, to really standardize how we interact with configuration of a fleet of gateways. The web UI and the changes there, really important when you're up close and personal with one or a few gateways, and I'm really excited about the coming changes there. But when you're talking about deploying maybe just a simple change, like rotating credentials to your MQTT infrastructure, a number of different things. When you're talking about propagating that to 100 or 1,000 connected edge devices, suddenly that simple interaction becomes quite a non-trivial task to achieve. And I think this API is gonna be what opens that up and makes that possible. So I think it's gonna really improve the potential for managing and monitoring Ignition at scale.

38:14
Colby Clegg: Yeah, and if they're excited about the API beneath the UI changes, I'm excited about the changes beneath the API, which is to say that we're doing a lot of work on the underlying storage system as well. So Joel, maybe can touch on a few of those points.

38:30
Joel Specht: Yeah, we're finally gonna get rid of the internal database so that all config will be in an open standardized JSON format.

38:40
Joel Specht: Besides the implications on configuration and deployment and such, it also means that it'll be much more friendly to source control systems.

38:56
Carl Gould: Yeah, I've been waiting for this for a while. This is really exciting... Yeah, all these things go together so nicely, we've... The file storage format that we're planning on is actually sort of forked off of what we did for the project system, so if you're familiar with how we store resources for projects, that'll be really similar to how we start storing the config resources for the entire gateway. And what we found was that there is an interesting opportunity that opened up, which was, we can use the inheritance system of the project modeling to enable this new deployment mode concept that we have. Ray, you wanna tell them about that?

39:40
Ray Sensenbach: Yeah, absolutely, so everything's sort of cascading here, and that opens up this different opportunity which is real support for deployment nodes on the gateway. So these nodes are things like testing mode, QA, production, so essentially how it'd work is any item that is configurable on the gateway, will have versions of itself that exist, you can modify them concurrently or separately. So for example, a database in your test production, excuse me, your test mode might point to server address A, and then in your production mode, server address B in the live database. So it's sort of these clear standard pipelines that exist, which are gonna really help to minimize system risk and also increase stability of our platform, especially in these enterprise models that we're talking about more.

40:31
Carl Gould: Yeah, I'm really excited about how all these things kind of all support each other, this feature is kind of like the spiritual successor to our old Ignition 7 staging and publishing system, except this time it applies to the whole gateway instead of a project, which is really exciting. A lot of these changes kind of bring to fruition some of the stuff that we started in 8.0 so we're really excited to get to 8.3.

40:53
Colby Clegg: Yeah, it's right in time, from what I could tell, this was a subject that multiple people talked about yesterday, like Carl said, we've had these ideas, we've been systematically trying to build towards some of these points, and I think we're gonna see a lot of it come together the next year or so. And one thing that comes to mind is that we've been talking a lot about Docker containerization, orchestration and whatnot, maybe we take it for granted that people are interested in that, but one aspect of it that really strikes me is that it represents a new generation of a message that's been at the cornerstone of our company since the beginning, which is IT-friendly, right? We started with SQL databases as a way to break down the wall between OT and IT, and I see a lot of these as being kind of fundamental to doing that because IT departments are leveraging these technologies. You mentioned Ansible, there's others, this is what they're using all the time, I know a lot of you are using it.

41:53
Colby Clegg: I just really wanted to underline that. Okay, going in a completely different direction. One final point that I just wanted to throw out there is that, of course, we are looking at... We're gonna look at Tag Historian functionality a lot in 8.3, we're not exactly ready at this moment to describe it in detail, but I knew it would probably be one of the first questions if I didn't mention it. A couple of key points about it is that we are dedicated to taking a very open and interoperable approach to it, and we have some great ideas, we have some things that are evolutions on what we have already been working on, but I know it's an area that a lot of... Everyone is interested in, so I just wanted to mention that.

42:39 
Carl Gould: Alright, Carl. I think we've talked enough. I think we should probably be mindful of the time here and start getting some questions asked because that's everybody's favorite part of this anyways.

42:50 
Colby Clegg: Let's start easy with Phil Turmel right in the front.

43:00 
Audience Member 1: So your new module development implications for your configuration API suggest that you might need a new life cycle state for the gateway to enable configuration before you actually start, where modules could know that the gateway is being configured through the REST API or for whatever other reason before calling the life cycle state to actually start up. You might wanna consider...

43:37
Carl Gould: Somebody been whispering in your ear, Phil.

43:38
Audience Member 1: What?

43:41
Carl Gould: Okay, let me see if I can paraphrase this question so that we can make sure we're talking about the same thing. So you have read between the lines about the config API and how that might imply changes to module life cycles.

44:00
Audience Member 1: And the implications that has for my modules.

44:05
Carl Gould: Yeah. Yeah, it's an astute question. So we are planning on changing... Any modules out there, or module authors out there, will have to dedicate some time to migrating their module to 8.3 just because of the UI changes alone, because any UI you have implemented isn't gonna work anymore, you're gonna have to redo all the web UI, so budget some time for that, but you're right that we are planning on changing module life cycle pretty dramatically in 8.3.

44:47
Carl Gould: This may be somewhat unpopular, but we are going to drop hot module loading, entirely. Hot module loading, we have decided really doesn't add enough for the risk that it also adds. There's a lot of really, really dangerous parts about loading a module, hot into a system that's already running. It's a very dangerous move. I wouldn't recommend necessarily doing it in production, and we're at a point now where anything that we don't recommend doing in production really doesn't belong in the product anyhow, so anything that can simplify and increase stability, in my opinion, is the right move.

45:30 
Carl Gould: So it actually will make module authorship a lot simpler, to have a much simpler life cycle where your life cycle as a module is linked fundamentally to the gateway's life cycle, to the JVM life cycle. So you'll start up at the JVM modules, It also simplifies module interdependencies so that we can have multiple dependencies, so there's a lot of benefits to this system.

45:57
Audience Member 1: Follow-up. Access to 8.3 early builds for module developers to get synchronized before it releases.

46:06
Carl Gould: That'll be necessary. It's too early to worry about that right now, but at some point, we certainly will.

46:18
Audience Member 2: So on deployment modes, sound awesome. Really cool. Need a feature like that. You mentioned three modes, will there be the ability to create as many modes as we need to create, to profile various types of deployment pipelines?

46:37
Joel Specht: Yeah, I believe so. That was the plan. You can define N number of modes, it's really up to you, and what those modes mean in your environments, I don't think it's a good idea for us to just kind of force that on you that you should have a production and a test or something.

46:56
Kevin Collins: There's no need to constrain it...

46:57
Joel Specht: Right, yeah.

47:00 
Carl Gould: Plus, it was a mode as a string, so.

47:01 
Colby Clegg: Yeah, it's really about the override-ability of and the partial configurability of things, and I think that then people can get really creative with their... Plus with the source control and everything else, you know the way that they're piecing things together.

47:17 
Audience Member 2: Awesome.

47:22
Audience Member 3: This is a question for Joel. The recent compromisation of Twilio and Okta made me reconsider my allegiance to IdP, and I know that you guys are planning on coming out with IdP for... Well, you already have it for Ignition built in, but now you're gonna have 2FA and FIDO, I think. What's your view? Am I more at risk using Ignition with a FIDO or Okta with FIDO?

48:04
Joel Specht: I think it is totally up to you on how you feel about that, but you're safe using our internal IdP. We do our due diligence to make it as secure as possible, of course. The thing with using an external IdP is it gives you the expertise of the fact that they do that 24/7, right? That's like their main focus is the IdP functionality and all of the security controls around that. Whereas this is a part of, the internal IdP is a part of a larger project so we're not fully focused on just IdP, we have a lot going on, so you weigh that out a little bit, but there's no reason that you can't just trust our internal IdP if you don't trust Okta anymore. That's totally fine. But yeah, it really is up to you at the end of the day on who you trust.

49:06 
Audience Member 3: Okta just has a bigger target on its back, I mean, when I'm running a gateway, they have to know to look for that gateway where everybody's looking at Okta.

49:13
Joel Specht: Yeah, that's a fair point. At the same time, I would just say, to make sure you have good auditing in place in Ignition configured and that you have the process and the people monitoring it to be able to know if you're potentially getting attacked by somebody. Whereas like in Okta, they may have that already built in and you're using that as a service, so just something to think about, but...

49:43
Audience Member 3: So speaking of auditing, are there tools that are coming forward that we'll be able to use for watching for things like that?

49:51 
Joel Specht: Well, we have auditing built into Ignition, so I would recommend using the auditing profiles there. And then yeah, there's certainly tools that you can use to extract that auditing data into a centralized auditing platform, if you wanna have complete visibility of potentially other applications in your environment besides Ignition. I know you're a little bit more familiar with some of those tools than me.

50:19
Kevin Collins: We've even been exploring the ability to do that log shipping, and that's probably a good strategy for enabling tracking of some of those things on a broader scale across multiple devices in a dispersed geography, so we've got some ideas on what we wanna do there. I know that one of the tickets that we have even is to enable actually some of that auditing output to be admitted in the logs, so that way it plays right into a log shipping solution. So there's definitely some features there to improve that.

51:00 
Carl Gould: Aren't there non-Ignition tools that they should probably be deploying as well for intrusion detection that would be out of scope for us? That Okta is probably already doing?

51:08
Joel Specht: Yeah, for sure, like at different layers in the environment, like perhaps a web application firewall that sits in front of the gateway to have it detect patterns of, say, password spring or somebody's trying to brute force into the IdP, they're flooding the IdP. Maybe it could detect that in an earlier layer and shut them out of the gateway. It's a more generic solution that could apply here, so... Yeah.

51:39 
Audience Member 4: Are there any considerations for offline mode for Perspective? Sorry.

51:44 
Carl Gould: Oh, offline mode in Perspective. Yes. The first... We have a feature, we didn't talk about it on the slides, but we're working on a form feature for Perspective that specifically will be built to work offline. After that, the next thing we would need for really full offline support is mostly just in the loading, to have cache, local caching of all the resources. I mean, Perspective was built for offline mode from day one, we just haven't had a lot of demand to continue pushing that forward, but it is definitely something that I'm pretty interested in. So it's definitely still pretty high on our radar.

52:36
Audience Member 5: Hello, I have a question... Sorry, I have a question regarding the Vision Module and what the future... Is it worth doing any new development, is it... What's the LTS life cycle for that older module?

52:57
Carl Gould: Anybody wanna take that?

53:01
Joel Specht: Yeah, we have no plans on stopping support of Vision. It's gonna be around as long as Perspective will be around. So yeah, continue using Vision if it makes sense for your situation. I think they're just completely different technologies and apply in different situations but yeah.

53:20
Carl Gould: There's no end-of-life plans on it.

53:23
Sabrina Reis: Yeah, it's not going anywhere right now.

53:24
Carl Gould: Yeah.

53:27
Audience Member 6: I have a question on release philosophy. Every release of Ignition, every point release, fixes bugs and new features. Have you considered some alternating schedule where every other release is bug fixes and every other release is new features?

53:51
Carl Gould: We sure have. Considered... Not alternating quite like that, I don't think that would be all that helpful, but we've considered a variety of schemes...

54:03
Sabrina Reis: Something similar to that we've considered. No conclusive change.

54:09 
Audience Member 6: There was a string of releases last year, where we'd take a release and it would fix some old things, but introduce a bunch of new things, and we just kinda got out of cycle and for a while, we just haven't had any updates.

54:22
Carl Gould: Yeah, we are pretty acutely aware of that concern. It's a tricky balance. If all we ever did was... First of all, the line between bug fix and feature is much spongier than you might think, so that's a tricky one. One person's... Yeah you get it. So we toyed with the idea of having almost like an alternate branch, like, oh, here's the bug-fix-only branch and here's the also-features branch. Almost having like a... Browsers sometimes do this, where you can sort of opt in to which, you're like, “Oh, I want the stable branch or I want the more interesting branch…”

55:14
Kevin Collins: Insider's build or something.

55:18
Carl Gould: But that's a very short-term concept because pretty soon the branch that you add features into, you have to start fixing the bugs of those features and it all... As soon as you draw that concept out in time, it all falls apart pretty quickly...

55:34
Audience Member 6: Yeah, I'm not really interested in two branches like that, but it would be nice to say, some cadence in terms of... I know that I can put this in there only fix the bugs you've got listed, I don't have to worry about the new stuff that's being implemented.

55:51
Carl Gould: Yeah, although there's also a fallacy in this line of reasoning that only new features introduce new problems. And that's not true at all.

56:04
Colby Clegg: No, in fact, most... Yeah, actually, most of the new features we put in were very conscientious about…

56:09 
Carl Gould: Off to the side, sort of isolated.

56:14
Colby Clegg: So it's more of the true regressions, the fix is to... A fix here causing a problem there, and one thing not really directed to your question, but just kind of expanding on this idea of release cadence and philosophy, you noticed that we've put a lot more into 8.1 than we've ever done before in a release. Typically in the past, we would do bug fixes and then you'd have the next major version. And so you see what happened is that we kind of decided to skip 8.2. But part of the drive for that is really very much this situation we're in, where we have people who want new things all the time, and we have our more conservative customers who need things to just work and not break other things.

57:06 
Colby Clegg: So the main point there, it leads us to... We knew 8.1 would have to be around for a long time. Our LTS policy is what it is, but we're under constant pressure to extend it, and then there's a practical aspect, we already have defined, it could be after the point that the next LTS is released. So long story short, we said, we're gonna be supporting 8.1 for a while. Let's make sure that we put in things that help us make it as stable as possible, as diagnosable as possible, supportable as possible... Those types of things. So it's just, it's an area, I guess, business area that we kind of are always working on engineering just as much as the software itself. Yeah, I appreciate your feedback on it.

57:55
Audience Member 7: So with the changes to the module life cycle and not being able to hot load modules anymore, will you still be able to restart modules? Because I know in production sometimes you can fix some small bugs without restarting the whole gateway and affecting production.

58:17 
Colby Clegg: Say it, Carl, say it.

58:19
Carl Gould: No.

58:20
Colby Clegg: Alright...

58:23
Carl Gould: No. It's not.

58:26
Colby Clegg: And then I'll say, the answer is no. But you know, this is funny 'cause this is one of these parts where Carl and I are on different sides of the fence, I wasn't super convinced about this 'cause I'm more with you that, oh, this is a cool feature of the platform. But what we really arrived at is, you can also put your own buttons in the gateway to restart the things that you care about because all you're doing with your module anyhow is restarting your own code, so I think that you could probably achieve a lot of what you care about through that mechanism.

59:00
Carl Gould: Yeah, that's right. The real, the deeper answer besides no is that you have to start talking about what does restarting mean to you? Right now, what restarting means on a module basis, that's a strong no, because what restarting means is we throw away the whole class order and build a whole new one, which is terribly dangerous, so that's a no, we're not gonna do that. But if you have some subsystem that has its own life cycle that can be restarted, if you can define what restarting means, sure. Have a restart button, that's fine, and we will have that also for some of our things, because sometimes restarting is a useful, a useful...

59:35 
Colby Clegg: Right. For example, in 8, we introduced better restart-ability of tags, the tags themselves. That's an example.

59:42 
Audience Member 8: Hello, is this thing on?

59:46
Carl Gould: It sounds like it.

59:46
Audience Member 8: Alright, awesome. So for the company that I work for, Precision Warehouse Design, I am the guy in charge of doing the UI/UX design for a lot of the HMI. And I just wanna say thank you so much for creating that Perspective Drawing Editor, that thing is going to be so much help... Oh my gosh.

01:00:08
Audience Member 8: Yes, yes. Thank you, thank you. And I just have a quick question, just out of pure curiosity, is there any other features or anything in the works regarding further UI/UX development or maybe even some graphic design for the general Ignition designer?

01:00:26
Carl Gould: What do you mean for the general Ignition designer?

01:00:33
Audience Member 8: Mainly either maybe changes to Vision or maybe some few things for the Perspective Module.

01:00:41
Carl Gould: Well... We don't have any big UI/UX changes planned for Vision. Vision is pretty steady state. Perspective has tons of plans for it, but that's a pretty broad question...

01:01:00
Ray Sensenbach: The biggest coming component that comes to mind is the form component that Carl mentioned earlier, it should be a pretty dynamic interactive way to build out large sets of data inputs and hopefully, make that experience a little bit less cumbersome.

01:01:14
Carl Gould: Yeah, there's also a new container type that we are working on for Perspective that will sort of have almost like a map-like experience from a zoom-ability, cluttering and decluttering, that sort of thing. Those are all pretty Perspective-specific answers, I'm not sure we have any satisfying answers for the designer at large.

01:01:39
Audience Member 8: Alright, thank you.

01:01:40
Carl Gould: Yep.

01:01:40
Audience Member 9: Hi, so I have a question regarding the same realm, but more of the components. So I train a lot of newer systems engineers and I have a software background, so scripting isn't a problem for me, but one of the biggest headaches were always tables and trying to get them to be more customizable and things like that. Do you guys have any plans to update the components for Perspective, for example, to make that easier for the non-software-related people for scripting?

01:02:11
Carl Gould: To make tables specifically more customizable?

01:02:14 
Audience Member 9: Tables could be one of them, yes.

01:02:21
Carl Gould: That's a pretty open-ended question to answer with any specificity, we always are trying to make everything more customizable, but I think I would need something more specific.

01:02:32
Audience Member 9: So, for an example, color coding cells based on values and things like that, normally we have to do scripting to do that. Is there any plans to make things like that more accessible?

01:02:46
Carl Gould: I don't know if we have any written plans along those lines.

01:02:49
Ray Sensenbach: Yeah, I don't know what that specifically... And I know there are a number of smaller feature requests that we should probably take and bubble up into some sort of epic and tackle it all at once, but definitely if you have specific ideas, which it sounds like you do, to maybe move some things out of the scripting space and more into the properties, is what it kind of sounds like, reach out to us and let us know what those are, so we can get them on our backlog.

01:03:15
Colby Clegg: Ray, can you... That brings to mind, on one slide, you had a ia.io/feedback. Can you explain what that is?

01:03:22
Ray Sensenbach: Yeah, yeah, I was definitely trying to get a plug for that there, so that's our Usability Feedback Program that we've been talking a lot about how we get this feedback from you all into the product, so it's a really simple sign-up form, and we basically use that to target who we're gonna reach out for to, based on your experience level with the product. We definitely need a lot of people that are really green, maybe you're just learning about Ignition this week... Weekend or week, and we also really need a lot of more power users who can really bend and break our more complex designs at their early stages. So again, it's ia.io/feedback, please, please sign up. Thank you.

01:04:01
Carl Gould: Yeah, that's really helpful. And Colby also mentioned the ideas forum, which has been around for a long time, but more recently, we have integrated the ideas forum into our own internal ticket tracking system, which has been really helpful for us, so those votes, we really do see those...

01:04:18
Sabrina Reis: Yeah. They come through on our side now, we automatically will tick up.

01:04:24
Colby Clegg: Well, we're five minutes over, so I think with that, we should wrap it up, and thank you all for coming this morning, and thank our panel, please and...

01:04:39 
Announcer: That ends our Technical Keynote this morning. We hope you enjoyed the presentation. There will now be a short break before the next session block, thank you and enjoy your time here at ICC.

Posted on October 14, 2022