Sneak Peek into Next Generation Cloud Tools (they're wicked sick)
by Michael Cooper
Over the course of 2013, the UX, Product and Development teams here at Acquia have been hard at work to make our systems and interfaces do more, work better and load faster.
The year started with the code behind the UI at insight.acquia.com being vastly refactored to be more object oriented and more streamlined. As a result we reduced our database queries by as much as 50% on some pages. Next we created the Acquia Notify system which provides notifications about your site and displays them in the re-designed top nav bar.
Following that we created a new account management site (accounts.acquia.com) which now provides a single login experience, better redirection handling and a centralized profile management location across all of our properties.
However, this was all just laying the groundwork for the releases we have been rolling in September. We’ve been doing so much that I’m not even certain how I’ll get it all into one blog post without writing a novel.
I’ll give the quick list and then dive into things in more detail:
- New top navigation and better site and subscription selection tools
- New cloud workflow page that loads faster and looks better
- Re-working of the Insight and dashboard pages
Amazing new shit that we go home and tell our families about (even though they don’t really care):
Before I dive into the details surrounding each of these I want to say that this year has been epic in how much we’re communicating with our customers regarding what they would like to see in our sites and tools; what doesn’t work the way they think it should; as well as what they like now and don’t want us to fiddle with. No decision we’ve made has been without customers seeing it and weighing in before we’ve released. It’s been a great experience for our UX team and our developers to know that each and every change we’re making is satisfying customer needs. As any of us who build websites and systems know there’s nothing better than making something that a user loves.
Ok, from the top (no pun intended):
Top navigation and subscription/site selection tools
We’ve done a lot of talking internally about how our IA and nav did not create good visual breadcrumbs and watched users work harder that we’d like to find the links to the next items in their task flow. To help with this, we moved the Subscription selection dropdown above the secondary level navigation and also gave it type-ahead searching. If you have a lot of subscriptions your life is undoubtedly simpler now.
Stronger, better, faster cloud workflow page
With an eye to primary and secondary tasks we’ve made some subtle changes to the cloud workflow page. Some of the changes are the ability to download db backups right from this page, as well as a button to change the branch/tag deployed to an environment. This second change makes the page load (on average) 1-2s faster because a) we don’t need to get a list of tags and branches all the time, and b) because if you had A LOT of tags and branches (some customers have thousands) you’re not rendering a massive select box x number of times.
This is just the beginning of the changes we have in mind for this page, but we are going to make the alterations slowly and incrementally so as not to take something that worked well and break it.
It’s worth noting that all Acquia sites outside of Gardens are managed by our developers from the same cloud workflow page that you use, so we feel very passionately about these pages as well. Just like you, they’re how we get our jobs done.
Removal of the dashboard page (Sept 19th)
In a lot of tests/conversations we found that our customers didn’t get a huge amount of value from our dashboard page. As a result we’re removing it and saving you a click. If you have Insight you’ll land right on its overview page. We’ve moved the MySQL graphs to the MySQL statistics page inside of Insight and also bubbled up a few items in Insight that were buried in the UI to the left nav. We hope that this will make things a bit simpler and put the right information into the right places.
Site health and uptime monitoring (in beta)
That’s right, we’re bringing some amazing monitoring to the Acquia product suite and we’re bundling it in the products you already have.
So here’s our thinking. It can be hard to tell with a lot of monitoring tools if your Drupal site is up or down. Especially if you use Varnish (or another reverse proxy) and/or a CDN in front of your site. Also, if your site is down you really want to know NOW, not after 3 or 4 failures over a several minute span. Basically you want to be able to turn on some sort of monitoring and have it definitively say: “Yes your Drupal site is up” / “Hell no, it’s down”.
To solve this we’ve created a new service that we devs call Acquia Uptime (I think the real name will be something like Acquia Site Health). Here’s how it works:
You need to have the Acquia Connector module installed and have your site connected to the Acquia Network. You’ll also need at least version 7.11 or 6.12. These versions (and newer) of the module expose what we call the canary URL. This URL requires a special hash to load (that we and your site know). This URL is really the key, because it loads fast and tells us “hey, the site’s up, PHP can parse, the db connection is alive and whether or not it’s in maintenance mode”.
We hit this URL every minute (we’ve tested this a lot and it produces no noticeable load on the sites and servers) and if it is OK, we say YAY! If it throws any error we proceed to a more detailed scan of your site which involves us hitting your front page and /user page. If these pages come up OK and return 200, then was flag it as a glitch in the matrix. If those pages have errors then we go through a list of possibilities.
First off, can we can resolve the DNS for your site; if not, we message you appropriately. Following that we alert if the server is not responding. From there it gets a bit more interesting. If your site is in maintenance mode, we tell you (because 400+ != OK and Drupal returns 403 during maintenance mode). If we get a 500+ on one page, but not another (say your front page returns 503 but your /user page is fine) then we let you know that your site is impaired. If your site is all 500s we alert that it’s totally down.
Because we know Drupal and we know how to bypass your cache we’re looking at your site and not some cached version. This means you don’t need to wait for an external system to see a series of bad responses because we know how to cascade our way through your site to determine if it is really up or down without doing the x number of minutes waiting game.
Fix it now in Insight (Sept 19th)
A fair number of the things that Insight is checking in your site are variables. For example, we know that an error_level of 2 is bad (outputs all your site’s errors to screen) and error_level 0 is good. We know what to change and how to do it. As a result a fixed set of alerts in Insight now have a ‘Fix it Now’ button!
When you click this button (and the confirmation) we tell our data processing servers that your site wants variable x set to value y. We then make a call to your website that says “hey, give us a call”. At this point your site will do what we call an SPI (Site Profile Information) data send. At the end of that call it says to our servers “Hey, do you have any messages for me?” and our data processing servers give back the variable that needs to be changed.
The great thing about this is that the change happens in less than 1 minute, and your Insight alerts and score are immediately updated. No more 30+ minute wait.
If you’re interested in what Insight is, check out this blog post.
Custom Insight tests (Sept 20th)
In a conversation with a customer nearly a year ago the idea of custom Insight tests came to us. Since then we’ve been planning how to do it and get it into our system. The idea is that a lot of sites have some custom configuration or setup to make them work as intended. Maybe a certain role needs to have a certain permission, or a module requires a specific setting to behave the way you need. The problem is that change control inside of a Drupal website is hard. Sure you can use features and other methods to make sure things don’t get changed, but it can be a pain to know when that stuff has been altered.
With custom tests in Insight you can add a module to your site which sends the results of your required conditions to us and adjust your score in the Insight UI! This means that you’ll know within minutes of when something on one of your sites is misconfigured and be able to get it fixed.
This feature is coming on Sept 20th and the version of the connector module available at that time will have an .api file describing how to do this. In addition we will have documentation and an example module in the docs to give you a head start.
Email and SMS notifications (Sept 20th)
Back in the day Insight had a beta feature that could send you email alerts when things on your site failed. Due to some usability issues this feature faltered and didn’t see a lot of use. We’ve taken some feedback from our customers and will be re-releasing this feature!
Using our new combined notifications system (the same backend system that powers the little message counter in our UI) we can now send email alerts about critical events when they occur. Site health issues, critical cloud task failures and critical insight alerts can all now be sent to your email or (coming a bit later) to your phone via SMS.
Teams and Permissions
Saving the best for last!
A lot of our customers have talked to us about how they would like better ways of granting their employees or contractors access to sites, as well as more granular permission control on those sites. Enter Teams and Permissions!
What we’re doing is allowing folks to take a group of users and put them into a team. When a user is added to a team you are able to select a role you wish to give them. Each role has a set of permissions that you can grant (very much like how Drupal itself works). These permissions control how they can use the UI and API and restrict things like access to production environments, the ability to invite other users, the ability to download database backups, etc… All told there are 42 distinct permissions and we’ve vetted them with a series of customers, both large and small to ensure they get the job done.
When you make a team, you grant that team access to a certain set of subscriptions. This means that when you get a new employee, rather than adding that employee as a technical contact on n number of subscriptions, you add them once to a team and grant them an appropriate role.
When you start using the new Teams and Permissions system we allow you to add any subscription for which you are a primary contact to teams and add users to those teams—this creates what we call as Subscription Group. We also allow you add other users as admins of your subscription group so you can delegate responsibility if you wish.
Your roles are also unique to your subscription group. That means that you can make as many roles as you need as well as alter the permissions in those roles. This gives your organization the ultimate flexibility in determining who gets access to what!
This feature is in private beta, but the current plan is to have it in public beta in Q4, and fully released around the end of the year.
Some great things are waiting in the wings. A lot of it will be listening to your feedback and polishing the tools and features we’re working on now. However there are some great new things lined up for the next 4-6 months.
The first will be the ability to require users accessing your subscriptions in our UI to have enhanced security. This will involve two factor authentication, password complexity requirements and session timeouts.
We also will be bringing some new UI features like a live tail of your site’s logs right in the UI. No more running off to your servers to look at n number of logs (drupal watchdog, apache, php errors, etc…) when something goes wrong in a release, they’ll be right there in front of you and you’ll be able to react faster and get things fixed sooner.
Something near and dear to my heart will be a Views analysis system. Tools like xhprof and new relic are great for telling you that you’ve got a trash SQL query that is working your site over, but wouldn’t you like to know in advance that there’s a view that is going to run poorly?
We’re going to let you know:
- How many of your views are cached and how often your views are pulled from cache.
- If your view will use indexes or not
- Is your view constructed in such a way that it will have to be sorted in a temporary table
- Will that temporary table be in memory, or on disk
- Is your Sort By going to make your view load a lot slower
- Oh, and how to fix all those things!
I can definitively say that the team here at Acquia has had a blast building these new tools, UIs and systems and we know that you’ll like them too. We look forward to bring many more great tools and services to you and making the ones we have work better and do more!