I know that some of you wonder why we've decided to rewrite Octopus UI and this blog post tries to provide a high level answer to this question. We will explain the details of each significant change in future blog posts.
The UI in Octopus
3.x is built on top of Angular
1.x which a year or so ago was superseded by Angular
2.0. Migration from
2.0 would require a significant effort so instead of just asking how/when we should migrate
2.0 we asked ourselves what the next version of Octopus UI should look like. And this is how
v4 was born.
Octopus UI hasn't changed significantly since
2.0 was released in December 2013 and we felt that it was time to modernize it and fix several long lasting problems. This couldn't be done just by applying a new stylesheet because we wanted to introduce new interactions, remove a lot inconsistencies and remodel some of the most used pages. Variable Editor, Deployment Page or Environments Dashboard couldn't be significantly improved just by fixing bugs. They needed to be completely redesigned.
When you visit Octopus UI for the very first time you need to wait for over 1MB of static assets to be downloaded. This is not a great first impression. To solve this problem we've restructured UI code in such a way that we load synchronously only what's absolutely necessary and then we load all other areas asynchronously in the background. This effectively halved the amount of code we need to send to the browser before the user can start interacting with the application.
async/await) without worrying about browsers that don't yet support it.
Array.map) instead of relying on custom syntax (e.g.
ng-repeat in Angular
As you can see we've decided to tackle quite a few complex problems at the same time which required a lot of coordinated effort but we treat Octopus UI as an essential part of Octopus Deploy ecosystem and are willing to invest in it.