i'm working on drupal community site and i want to ask about this things :
1 - how to hide the drupal information from my site ?
2 - how to make the drupal site more secure ?
3 - how to make my site work as fast as possible when there is a lot of visitors and users on the site
and there is a lot of interaction with the database at the same time?
4 - how to configure drupal to work with high server load and how to configure my server's hardware to work with high load ?
thank you
1 - how to hide the drupal information
from my site ?
What information? You can show/hide anything in your theme implementation
2 - how to make the drupal site more
secure ?
Stay up to date.
3 - how to make my site work as fast
as possible when there is a lot of
visitors and users on the site and
there is a lot of interaction with the
database at the same time?
4 - how to configure drupal to work
with high server load and how to
configure my server's hardware to work
with high load ?
Start with the pantheon project use it and learn from it:
Pressflow (a performance tuned version of Drupal)
Varnish Reverse Proxy Cache for anonymous users
APC for OpCode Caching
Memcached for easing the load on the DB
Use as few modules as possible.
The first area to need help in a social setup (lotsa logged in users posting content) is likely going to be the DB and so learning how to use Memcached will go a long way to helping you scale at the start
For further reading on Drupal Performance you might want to read everything from 2bits:
http://2bits.com/contents/articles
1 - how to hide the drupal information from my site ?
Remove the credits block.
Use template files, so that the look and feel is different from default Drupal sites.
Optimise your jss and css, so that it is difficult to identify that it is from Drupal.
Remove changelog.txt file from root.
2 - how to make the drupal site more secure ?
Have the latest stable version of Drupal and keep all your modules upto date. (Regularly check for security patches if there are no updates)
Install security review module
Theme is the weakest link in Drupal security. While theming make sure that you follow all the Drupal standards. Remember to sanitize data and use Drupal functions wherever possible.
3 - how to make my site work as fast as possible when there is a lot of visitors and users on the site and there is a lot of interaction with the database at the same time?
Memcache : high-performance, distributed memory object caching system. Eases the load on DB
Intelligent use of cache API in your custom modules.
4 - how to configure drupal to work with high server load and how to configure my server's hardware to work with high load ?
CDN : Content delivery Network, use this if you are rich enough.
Press Flow : Out of box performance for your Drupal site, from Four Kitchens.
Varnish : Reverse Proxy Cache
Try using Pantheons hosting service at: http://getpantheon.com/
We are using it, and are very happy with it so far.
1: Don't bother.
2: Make sure you keep your Drupal installation (including third-party modules) up to date.
3 and 4: Caching is a good step to take. Drupal comes with some handy caching features built-in (in the Performance settings), and modules like CacheRouter and Boost take you a long way further.
1 - What information exactly do you want to hide?
3 - Use the Devel modules to see what's happening. There's a lot of tweaking invovled here, especially if your using Views.
4 - Cache modules such as boost do a lot. Then there are things such as the web server, Nginx for example is generally faster then Apache, especially serving static content (and PHP-FPM for dynamic). You should also check out Memcached, APC or another php cache and of course Varnish cache is pretty awesome.
I saw above you mentioning making Drupal working with more than one databases. If you mean replications, I think that's directly covered in Pressflow's introduction here.
Related
This question already has answers here:
AngularJS 1.4 --> Angular 9 migration vs bigbang rewrite [duplicate]
(2 answers)
Closed 2 years ago.
I have done a ton of research and haven't found anything that has helped me decide what will be the best route (vertical slicing, horizontal slicing, or just a complete rewrite). I am working on a very LARGE program that is very ugly with no comments and need to migrate it over to Angular 8 if possible or at least up to Angular 7. A lot seem to recommend https://angular.io/guide/upgrade however, they don't help too much in migrating to 1.5 first. Does anybody have experience with a large scale migration? Currently, the program is not being used so downtime is no issue.
It doesn't seem like it at first, but a re-write is usually a more cost effective solution than an upgrade. It seems like upgrade would be the fastest time to re-deployment but in my experience if you did the two side-by-side you might find the times similar, except that the migration deployment will have to be all or nothing, where as a re-write means you can deploy with reduced functionality and build up the feature.
More importantly, the on-going maintenance of an upgraded site becomes exponentially harder/time consuming. You're really applying band-aides over the top of previous patches and fixes.
There are new concepts, better native support for directives and controls that we used to use 3rd parties for or roll own own, and it's an entirely new language to understand. Take this opportunity to wipe the slate clean of your solution's technical debt.
Rewrite - Hybrid
Do you need to deploy eveything in one go? Are you interested in Re-Branding?
One thing the Microsoft have done well in the past is the hybrid roll-out of their Preview portals.
The best case study IMO is the Azure Portal.
A few years ago we had a pretty fully featured portal interface for managing Azure assets. This would later become known as the Classic Portal when they started work on an entirely new user experience.
At first release the menu system was largely complete, we could navigate most assets in the new portal but when you came to features that had not been redesigned yet the link took you back to the Classic Portal.
So you could do the same, have the two user interfaces deployed to different URLs, start by making sure the authentication and navigation is largely complete but make all links take the user back to the original interface. Then feature by feature, implement the new interface, but because you can't control everything, keep a button or link on each page that takes the user back to the original implementation until your regression testing confirms that you have reached feature parity.
That is another key take-away from the MS Hybrid approach, significant change like this WILL annoy your users. So while you are in transition, allow the user to choose when they themselves migrate over. Initially MS achieved this at login, the user could login at either of the main urls, and based on your profile you would be redirected to the portal of your choice.
The last step is to restrict access to features in the old interface, by making the navigation and links in the old portal navigate directly into the new interface.
- or less intrusive, add an 'end of life' banner in each page that you have compelted the re-write on in the old site.
Do not confuse this with the Preview Mode in Office 365, the Azure Preview Portal was a ground-up re-write and is still in progress. There are many licensing operations that I still use the Classic Portal for as I still manage some Classic Only azure assets that have not yet been re-deployed.
I would consider the following issues when choosing between Migration/Upgrade and a straight up re-write:
Migrate to AngularJS 1.5 first
This operation is only marginally easier than the upgrade to Angular2+. All of the arguments below apply equally to this process as they do the next upgrade.
One of the reasons to goto 1.5 first is to escape the legacy dependencies that do not have a simple direct upgrade to 2+.
During the upgrade to 1.5 you should consider implementing Component based architecture (if the current code does not already do so)
A key element of components is less configuration and simplifed design, so read this as less to upgrade, less that can go wrong
Components are of course more closely aligned with current Angular implementations, if you do not yet use AngularJS Components, that might be a good iterim step to understand before learning Angular 2+
No Comments
This is a bigger red flag than you think. If the code base is not documented then any sort of maintenance becomes incrementally harder as each time the code must be re-read and re-interpreted before you can affect change.
So if a migration is on the cards, where talking about every line of code at some point needed to be re-read and understood to make sure that it works correctly in the
AngularJS 1+ => Angular2+
While some of the core frameworks and 3rd party libraries can be migrated, most controller javascript files cannot be simply migrated to typescript without a fair amount of effort. It's pretty common in javascript to cut a lot of corners in terms of type definitions and locations of definitions that mean after migration you will spend a lot of time going back through most javascript files one method at a time.
Very large
This is a strong candidate for automation or migration but ultimately it means that the total surface area to test, debug and re-design is also very-large. If the initial migration does not compile, it could be a long road of tweaking before you can get the user interface up so you can start interface testing.
I just lauched a website http://www.dicorico.com running on AngularJS and Django for the back-end. The performances of Google Page Speed insight are not great and my Google anaytics indicates a page loading time under Chrome of 10 sec on average since launch on 22nd of October ... I'd like to identify the issue and have no clue where to start looking. Your help would be much appreciated.
Note, the app uses http://www.michaelbromley.co.uk/blog/171/enable-rich-social-sharing-in-your-angularjs-app to render HTML so that the content is crawlable by google.
Thanks,
Laurent
You need to first exclude the fact that it's your code that made the performance suffers. To debug the performance of django projects, use django-debug-toolbar in your dev environment.
There are too many other facts that could also slow down your website, the instance you use might not be performant enough to handle the traffic, or you are doing some backend process in crontab that eats up the resource, or your database is not optimized, or you simply didn't configure web server correctly, etc.
You might need to login into the box and check the memory/cpu/disk usage to determine where the bottleneck is, then try to improve that. There's no straight answer for that, hope it helps.
I am trying to determine from the attached Google Analytics stats which spans over the last year, whether my company's website is getting alot of use on browsers like IE8.
I am unsure how to read/analyse this data as to whether e.g IE8 11.20% is a high number?
Reason being I would like to use some new technology to build a new site for my company possibly using an AngularJS Wordpress Theme w/ WP API, multi-site network where I can reuse some of the post data through API.
Some of the outcomes I am looking for are:
- Performance
- Reuse-ability
- Modular (for maintainability)
- Partials to manage content/routes
I have built a skeleton AnJS, WP, WPAPI theme through doing tutorials and tried a bunch of shims/workarounds for a couple of days for IE8 but no luck.
Other factors like "compatibility mode" of users browser - not sure how this plays a part? e.g (X-UA-Compatible content=IE=edge) for default rendering.
Target audience there is some oldschool older customers using site who may be a bit computer illiterate..so not sure if I try cater for them too or forcing them to upgrade their browser...
I want to see if I have a valid case and how it would be beneficial, so I don't have to screw around with IE8 hacks.
I am considering other options as your standalone WP theme or WP w/jQuery/ajax calls - this could be a better option if the stats aren't justified.
Thanks your feedback is much appreciated!
49.34% of your users use Internet Explorer.
11,2% of them use IE8 and 15,95% use IE7.
So 0.4964*(11.2+15.68)=13.4% of your audience use IE8 and lower.
If you drop support of IE8 you'll make your site unavailable for 13% of your audience.
It's relatively high percent and it means that your audience is relatively conservative and don't use modern software.
Hi thank you for your responses. I have decided to develop with modern technology as I have seen the analytics over the last 3 years. 29% in 2012-2013, 20% in 2013-14 and now 13.4% as you have stated. So I am anticipating the future..next year its inevitable that it will drop off again. Will provide fallback option for visitors to view the old website and a message to upgrade their browser. This is where the industry is going IE9+ with graceful degradation. Microsoft is also slashing support for IE8 (security and technical) from Jan 2016 which will mean that companies will most likely be updating their security policies to latest IE in not so distant future.
Is there a way to have one product definition and have it publish to multiple sites? I am looking for this ability specifically in DNN or Umbraco, either with free or paid extensions. I did install both the platforms and played with the free extensions and looked for any extension offering such functionality but did not find one. Any links or pointers are highly appreciated!
I had looked up for this info in many places before reaching over to the expert pool here, hoping to get some hints;
In umbraco there is the built in /base extension (http://our.umbraco.org/wiki/reference/umbraco-base) which enables you to access product data that is maintained in Umbraco from other websites. Base is REST-ish so the implementation is well documented - you can access the data as XML or JSON (Returning Json instead of XML with Umbraco Base).
Also as the implementation is REST-ish the other websites that consume the content maintained in the core site could be written in anything that can consume a REST feed eg html & javascript.
It's not 100% clear to me what setup you're after, but if you're looking to set up a traditional Authoring/Delivery configuration - one of the few paid offerings Umbraco has is called Courier. It's a very reasonably priced (~$135USD,/99EUR) deployment manager that handles syncing content between two sites, i.e., Authoring and a Delivery server.
It's a very smart tool that manages content, configuration, and dependencies. It's neat and also supports a great open-source project!
If you're looking to setup something more like a centralized product database that is used by many sites - amelvin is on good pointer with BASE. They have a nice api where you may also set up your own webservice (beyond their own webservice functaionality!).
If you need this centralized product data to notify the other sites to update their caches - i encourage you to look into the 'distributedCall' functionality.
There's a bit of documentation on distributed calls in this load-balancing tutorial that may help understand the concept a bit better.
...Hope this helps get pointed in the right direction.
So, yes, this is probably 1000th question on the subject. However, my question is somewhat different from others that were asked about this, so please bear with me:
I am looking to develop a single mobile-app that targets the three/four popular and/or growing mobile platforms (Iphone, Android, WinPhone7, RIM). This application is an extension of an existing SaaS system that my startup currently offers. This mobile-app would provide a quick-and-simple way to view up-to-date status & chart & report information for the data that SaaS application collects. Connection to the internet is required 100%. No data entry besides username/password. App is very simple with 5-6 "pages".
In phase 1, all that would need to be supported is for user to log in, get to see current status of his data stored in the cloud, get access to a few live reports
In phase 2, I'd like to be able to offer push-notification of certain key events from my servers in the cloud
My goals are:
1) The back-end processing that generates data for reports is already written in ASP.NET MVC2. I want to re-use it. It can be exposed as either a WCF service or published on a mobile-friendly website
2) I'd like to be able to deploy the patches faster than through the official app-stores/marketplaces.
3) I cannot afford to spend a lot of resources to target three-four proprietary platforms, for an app that is auxiliary to the vertical purpose of the business. I want to develop it once for all 3-4 platforms.
4) I do not have access, nor do I want to purchase a Macbook
5) I do want to deploy thru the vendor-specific application marketplaces
6) I'd like to stay way from proprietary languages/frameworks/lock-ins
Sounds like what I need is a shell around a mobile-friendly site that can be packaged as an app. Are there existing products that can make it REAL EASY for me to do so? Will doing so, preclude me from doing push notifications in phase 2?
Can anyone recommend a "shell" product that would make a wrapper around the website as well as Javascript library that would look the best across all 4 platforms. I've seen the names like Jqtouch, Jquery Mobile, etc... but not sure which ones are better for what I need.
Do I need PhoneGap? I am not 100% sure here. Can PhoneGap use online-only html/javascript pages to translate into native code or must html/javascript files be distributed with the application? I'd rather have the website itself drive the UI completely, as I can keep changing the website without various version approval processes from vendor market-stores.
Thank you for help
I don’t think you need Phonegap after reading about your project goals. You might consider a Web App instead of a native one if you 1) dont want to buy a mac (required for iOS even tho you can compile it in the cloud: https://build.phonegap.com/), and 2) want to apply and deploy updates anytime without going thru those platform independent marketplaces and approval processes.
jQuery Mobile would be an excellent choice, currently (at this very moment) in Alpha 3 but a very stable one and you can deploy your system on any of those platforms. Note that if you focus your efforts in a Web App you can’t target the second phase you mentioned: Push Notifications.
If you decide going Native, then Push Notifications services can be deployed into your Phonegap project once you setup the proper web services and certificates (take a look # http://easyapns.com);
..and one quick note, the idea of phonegap is that all resources (html, js, images. etc) have to be distributed locally within the app and then getting online data (like reports, etc) using JSON from another web service, and that’s another easy task to accomplish. Phonegap DOES NOT compile your HTML files into native code (ObjectiveC or Java), it just load your Web App into a UIWebKit component at run time (in the case of an iOS app)
Another alternative could be using Titanium - http://www.appcelerator.com but this approach is more javascript oriented and your final app looks much more native. (not HTMLs here so I think thats a drawback for you)
Hope it helps :)