Moving websites to Github - what about email? - hosting

I'm thinking of moving about 5 websites over to be hosted on Github pages from a dedicated host. They will all be converted to static websites. The domain names will still be managed there, what are some options for email hosting cheaply or at all?

I've always gone with Google's G Suite.
The basic plan gives 30GB of storage, and costs $5/User/Month
The business plan gives Unlimited storage, a few more features, and costs $10/User/Month
There's also an enterprise plan, but I don't think you'd need it.

Related

Deplyoing with Heroku/Shared Hosting/GitHub Pages

My Jekyll website is currently powered by a shared web hosting plan from HostGator with unlimited disk space & bandwidth. I have also enabled CloudFlare for the site.
I've heard about Heroku which hosts websites for free and GitHub Pages. I won't exceed 2TB bandwidth/month nor do I need more than 300 MB space so I comply with both GitHub Pages & Heroku's limitations.
Which of the following will serve the website fastest to users (and with the max uptime)?
Shared web hosting (I deploy via rsync)
GitHub Pages
Heroku
I think shared web hosting is slower than Heroku or GitHub Pages. So, what should I use? Is GitHub Pages faster than Heroku with 1x dyno?
My website gets about 15k pageviews/daily.
GitHub Pages uses Fastly, a CDN, to deliver its content. Unless you're using a similarly fast and efficient caching system, you'll see that GitHub Pages is fastest.
Jeremy Morgan wrote a great piece some time ago wherein he compared GitHub Pages to several other services. He found that GHP is the fastest of the four services he tested and recommends GHP. He doesn't have any data on Heroku, but setting up your site to work with Heroku shouldn't take that long. You can compare speed with webpagetest.org, as Jeremy suggests.
If your 15K pageviews see a lot of overlap (i.e. mostly the same collection of pages/assets being loaded), then you'll find that Fastly on GHP offers you better page load times than other services.

Linode VPS Capabilities

I have no experience with VPS's. Over the past year or two I've been getting more and more into web development, as a hobby and for work. I'm currently managing one wordpress site, a codeigniter app, a node.js/mongodb app, and various other personal projects. They are currently all hosted seperately (misc LAMP hosting, heroku, etc.).
I'm looking for a solution that will enable me to do the following:
Host Static/PHP Sites/Apps (so a LAMP stack)
Node.js/MongoDB/Redis
capable of other stacks (django/yesod/RoR/etc.)
Would a Linode VPS be capable of handling all of this? None of these sites get large amounts of traffic. The web apps are private, business management apps, used by 2-10 people at a time. The public sites are small business websites and my portfolio. I would like to be able to host future work on the same VPS as well (same types of small sites/apps).
I have no experience managing multiple domains on the same server. Is this easily done (or possible) with a single Linode VPS?
EDIT
I'm looking at the Linode 512MB/1GB VPS's, $20/$40 respectively.
Of course.
Especially after the massive Linode NextGen upgrades, a Linode VPS can easily handle this kind of workload. Since it's a VPS and not merely shared hosting, you get root access and therefore full control over the system.
In addition, Linode includes features such as advanced disk image management that allows you to clone and resize disk images as required and quickly boot into different images, as well as an out-of-band shell that allows direct access to the server's console in the event you cannot access it via SSH. A Linode 1024 (1GB) plan is more than enough for this sort of workload.
There are lots of different VPS providers out there. Rackspace is very expensive but probably has the highest level of reliability (100% uptime SLA with 5% refund per 30 minutes downtime) and outstanding "Fanatical Support". For less critical needs, there are loads of smaller VPS providers that offer cheap rates, but often with only minimal resources and fewer features. Some provide super-fast SSD storage for disk-intensive applications. You should shop around and do your research so that you find a VPS provider that meets your requirements.
I suggest that you may look into a shared hoisting plan on a reputed hosting companies like hostgator since there isn't much traffic.I also suggest you also buy a cpanel for managing tools.Cpanel has a web interface with which you can control every tool using your mouse & keyboard.
On the other hand linode has a CLI interface and their support expects you to have some descent knowledge about managing VPS servers.

Migrate Azure Web Site to Azure Cloud Service

I have a project and I'm planning to start the web app as an Azure Web Site and then migrate it to an Azure Cloud Service (also called Hosted Service) if it is needed as a scale strategy.
The decision is because I read that Azure Web Sites are more simple and fast to develop with almost no Azure-specific configurations or code. So starting fast and simple is a good starting point for the project.
But, is that a good starting point for you?
Is migrating an Azure Web Site to an Azure Cloud Service the same as you were migrating a normal ASP.NET Website to an Azure Cloud Service?
Would you start with an Azure Cloud Service right from the beginning? If yes, why?
Thanks for your time.
There are benefits to both deployment models, it will eventually come down to what you are trying to achieve and ultimately the success of your application.
Below I've outlined the Pros and Cons of each of the models to ensure that you're making the right choice for your applications goals.
Windows Azure Web Sites
You have properly identified that Windows Azure Web Sites is a great starting point for an application, however you could also consider that Web Sites does offer enough scalability for many solutions.
Pros
10 Free sites during preview [Free for 12 months]
Easy Deployment (use Git, TFS, Web Deploy or FTP)
Quick Scalability (You can move to your own dedicated cluster [aka reserved standard])
Simple Development (Supports Classic ASP, ASP.NET, Node.js, Python & PHP)
Persistent Environment (most people are used to this)
Cons
No SSL Support on Custom Domains
in Preview (currently no SLA)
Windows Azure Cloud Services
Cloud Services (formerly known as Hosted Services) is definitely the vision for the future of Web Applications. It is built with resiliency in mind to keep the cost of applications affordable by scaling to meet demand, and dial back capacity when your traffic slows.
Pros
Increased control over the cost of your application (if architected correctly)
Flexibility (You have full control over the environment)
SSL Support
Language Agnostic
Web Server Agnostic (although IIS is available by default)
Auto Management of Servers
Cons
Architecture should be carefully considered
Deployment time is slower (Slows development cycle)
Things to consider for Portability
The items above might have given you enough to plan the immediate future of the application and it is very likely that you might want to consider Cloud Services in the future (it fits a number of application scenarios better in the long run).
Here is a list of things to help portability between Web Sites to Cloud Services:
Start thinking Stateless
Windows Azure Web Sites is nice as it is a persistent environment, which means you are able to store things like session state and assets to the disk.
Although this is a good feature, it's best to start planning towards a stateless application, if your end goal is to be in Cloud Services. Here are a few things you can do to start thinking stateless:
Don't rely on Session State
If you need it, come up with a strategy to make it scale (Caching Service, SQL, or Storage)
Use the Storage Service
Assets such as Static HTML, css, javascript and images are better placed in Storage
Avoids additional bandwidth on your Web Site (potentially stay shared longer for lower cost)
Can be CDN Enabled, provides a better experience for International markets
Easier to update web assets when application is migrated to Cloud Services
Storing User content
If your application already stores to the Storage Service, there is one less code modification in the future when moving to cloud services.
Make it easy to discover patterns in your Data
The benefit of Cloud Services is it enables you to reduce cost by only scaling what needs scaled. Starting the process of identifying your scale units i.e. How you partition your database or Tables in Storage.
I read all post and all of them are very helpful.
In addition to all post , I found an info on msdn : Windows Azure Websites, Cloud Services, and VMs: When to use which?
With Windows Azure Websites you can:
Build highly scalable web sites on Windows Azure.
Quickly and easily deploy sites to a highly scalable cloud environment that allows you to start small and scale as needed.
Use the languages and open source applications of your choice then deploy with FTP, Git or TFS, and easily integrate Windows Azure services like SQL Database, Caching, CDN and Storage.
With Cloud Services you can:
Build or extend your enterprise applications on Windows Azure.
Create highly-available, scalable applications and services using a rich PaaS environment. Support advanced multi-tier scenarios, automated deployments and elastic scale. Deliver great SaaS solutions to customers anywhere around the world.
And also there is summarizes the option on msdn :
And comparing some features Web Sites and Cloud Services on msdn:
Azure is a great place to have your app, but there are some considerations you need to know before start migrating it.
Azure Websites and Hosted Services are really trivial to deploy. With
Visual studio you generate the package and simply upload it. Then you
have a Development environment to check it. If it's ok for you, swap
ips. If it's not ok for you, upgrade again.
Your instances have some properties that could be annoying. For
example, you cannot be sure about your IP. Then if your app works
with some provider using IP restriction, you will need to figure out
how to proceed.
More considerations. Your "server" could be reimaged at any moment.
If you store something on the local disc, that file could go away at any moment.
Azure works very nice if you have at least 2 instances or more for
each website. Maybe your app is not prepared for that. The first step
will be managing the sessions with the appFabric. Is really
easy, just a change on your web config. Be careful because this
session state doesn't work exactly as the "old one". You cannot store
non-serializable objects (should be easy to adapt) or a very large objects (more than 8MB).
If you are going to develop something from zero, I suggest you to start into azure from the beginning. The reason is simple: it's really cheap to start and you will not pay serious money until the app have lot's of visits. It's also very cheap to setup a SQLAzure and a storage account. One you have all in place, it's easy to add more instances or scale up.
Example:
Imagine you have an idea and you wish to show up to some possible investors.
You start setting up a little SQLAzure database (1GB ), $9,99 monthly.
Then you build a site and you put 2 extra small instances, $18,72 monthly.
Let's say you need 100 GB of space (images, backups, ...), $12,50 monthly.
At his point, you have all in place to start your business paying less than $50 monthly.
If you site have exit and the visits starts to come, you change your instances for small instances (it's really dangerous to have production environment with extra small instances, because do not have cpu reservation). Then you change the extra small cost ($18,71) up to $57,60. Maybe you need more space to that SQL Azure? etc...
prices calculated from here: http://www.windowsazure.com/en-us/pricing/calculator/?scenario=web .
Those are few tips, there is a lot more. My advice is to start a trial account and play with it.
Final advice: Its very easy to solve everything just purchasing more resources. Sometimes you need to refactor and optimize your code. If you simply add more resources each time you have a problem, you could end with a huge bill and a very messy code.
Hope it helps!
Another advantage of Windows Azure Cloud Services over Web Sites is that a cloud service can be added to an Azure Virtual Network. This can give it access to on-premises resources like databases. So if your requirements are such that you need the scalability offered by Azure but need to keep your data on-premises due to security restrictions, cloud services is a better choice.
Azure web sites cannot be part of an Azure virtual network. To access on-premises resources mechanisms such as Azure Service Bus Relay must be configured.
We've had our web site running on PHP on some hosting and at some point decided to move it to Azure (where sits main part of our service). We've started with Azure Web Sites which was great from development point of view (mainly integration with git). But after about a week of testing (when we've decided to actually move the production web site) we've found that currently
No SSL for custom domains
Custom domains are available only for reserved instances (no shared infrastructure)
SLA
So we moved to Hosted Service. The main problem for us was lack of ability of simple deployment (need to build package and upload whole package of the web site), and found solution was to use dropbox - as a startup task for role, we're installing dropbox service on the machine, which takes all the web site from dropbox, which in turn have SVN checked out folder, so site updates became very easy.

Single godaddy account suitable for hosting multiple dev projects?

I want a single hosting account where I can put up my development sites, and small sites I do for friends, some might be experiments, some might be public. None will get huge traffic. They'll all either be using PHP roll-my-own or Code Igniter with MySQL.
I'll want to be pointing multiple domain names at different directories under this account. I'll also probably make use of rewrites extensively.
I'm not in the US but US hosting is far more economical. Is godaddy a good choice given my requirements? I'm looking at the base account as it allows unlimited domain names.
What i hate about go daddy is their domain registerations are "expensive". With privacy it comes to essentially $18/domain, compared to someone like dreamhost (which has free privacy $10).
I personally use dreamhost to register my domains and rackspace to serve the content.
Their smallest instance is ~12/month.
I like the freedom rackspace gives me, it is a full linux box with whatever you want. Shared hosts often aren't flexible enough for quirky framework/requirements. In your case, any shared hosting will do as you are using php/CI.
I'm looking at the base account as it allows unlimited domain names.
Nowadays, just about everyone offers unlimited domain names and what not. Not really a killer feature.
In the end shared hosting is shared hosting. You are sharing a space with other users. If it is experimental then it won't matter.
Something you wish to consider is "money back policy". For instance I had at one point an account with MOcha host and they only offer money back inside 30 days, limited money inside 180 days. After that, they eat your money. Something to consider.

What are viable ways to develop an Azure app on multiple machines

The scenario is that I am rebuilding an application that is presently SQL and classic asp. However I want to update this a bit to leverage Azure Tables. I know that the Azure SDK has the Dev Fabric storage thing available and I guess it's an option to have that installed on all of my machines.
But I'm wondering if there is a less 'invasive' way to mimick the Azure Tables. Do object DBs or document DBs provide a reasonable facsimile that could be used for the early protoyping. Or is making the move from them to the Azure SDK tables just more headache than it's worth?
In my opinion you should skip the fake Azure tables completely. Even the MS development storage is not an exact match to how things will actually run in the cloud. You get 1M transactions for $1, 1GB of storage for $0.15 and $0.15 per GB in/out of the data centre. If you're just prototyping, live dangerously and spend $10.
If you're new to working with Azure tables and you try to use a development storage or some other proxy you'll save yourself that much money in time spent reworking your code to work against the real thing.
If you're just using tables and not queues, blobs $10 will go a long way.
Each Azure "project" (which is like an Azure account) is initially limited to 5 hosted storage accounts. Let's say you have one storage account for your actual content, and one for diagnostics. Now let's say you want a dev and QA storage account for each of those, respectively, so you don't damage production data. You've now run out of your storage accounts (in the above scenario, you'd need 6 hosted accounts). You'd need to call Microsoft and ask for this limit to be increased...
If, instead, you used the Dev Fabric for your tables during development / local testing, you'll free up Azure storage accounts (the ones used for dev - you'd still want QA storage accounts to be in Azure, not Dev Fabric).
One scenario where you can't rely on Dev Fabric for storage: performance/load testing.

Resources