Speaker: Scott Klein, Technical Evangelist Microsoft
Summary: As cloud computing becomes more popular and cloud-based solutions the norm rather than the fringe, the need to efficiently migrate your database is crucial. This demo-filled session will discuss the tips and tricks, methods and strategies for migrating your on-premises SQL Server databases to Windows Azure SQL Database, AKA SQL Azure. Focusing primarily on SQL Server Data Tools and the DAC Framework, this session will focus on how these tools can make you a kung-fu migration master.
About Scott: Scott Klein is a Corporate Technical Evangelist for Microsoft focusing on Windows Azure SQL Database (AKA SQL Azure) and related cloud-ready data services. His entire career has been built around SQL Server, working with SQL Server since the 4.2 days. Prior to Microsoft he was a SQL Server MVP for several years, then followed that up by being one of the first 4 SQL Azure MVPs. Scott is the author of over ½ dozen books for both WROX and APress, including Pro SQL Azure. He can be found talking about Windows Azure SQL Database and database scalability and performance at events large and small wherever he can get people to listen, such as SQL Saturday events, local SQL Server user groups, and TechEd.
Recently I completed a cloud computing course taught at University of Washington and so now I am a certified Cloud guy but more importantly It was great learning experience!
More about the certificate:
The course had three courses which covered following topics:
cloud computing fundamentals
cloud computing models
cloud computing case studies
cloud computing application building
operations in cloud
scalable computing
MapReduce
NoSQL
Big Data
programming Big Data
Database as a Service
Thanks University of Washington and Instructors for a great learning experience!
I just researched few business operation challenges that are faced by SaaS (software as a service) provider & cloud provider, I am sharing what I found here:
SaaS and cloud computing companies have wafer thin margins (a.k.a lower margin businesses). According to SaaS update (April 2011 2008, pg 15), Their operating margins are just about 3%. You can do quick search to know past operating margins for the SaaS and cloud provider of your choice.
SaaS and cloud computing companies have to manage the customer churn rate which means these companies have to put efforts in retaining customers. Churn rate is a measure of the number of individuals moving into or out of a collective over a specific period of time. Now managing churn rate is a challenge because retaining customers is difficult and time-consuming. And customer retention is important because in the pay-as-you-go nature of subscription businesses, the customers pay only if they continue to use the service. Thus managing customer churn rate is a challenge for SaaS provider and cloud provider.
Cloud provider and SaaS provider needs an upfront investment to build sales capacity needed to grow the business over time. And so if they invest less, they do not have enough sales capacity and hence they will miss growth opportunities. Thus they have to make a careful trade-off between fast growth and high cash burn rate.
This is a Guest Post by Dhwaneet Bhatt. He’s one awesome programmer and technologist with an innate ability to master any technical topic very quickly. Here’s his twitter profile: https://twitter.com/#!/dhwaneetbhatt for you to able to connect with him.
If you searching for tutorial to get you started with python app on Google App engine. click here. And Here’s his post which would help you to get started with creating a java app on Google App engine:
1. We will be using Eclipse IDE to code a simple Java App for Google App Engine because it is very simple, the other option is building the application using Ant script, which involves a lot of code writing, and I prefer to keep things simple.
The App Engine has support for all the versions but we prefer to use the latest version, so download Eclipse Indigo (3.7.x). On the web page, download from the first link that reads “Eclipse IDE for Java EE Developers”. That will download Eclipse 3.7.x.
3. Extract eclipse and start, you will be prompted to create a workspace, create it anywhere you like and proceed.
4. Once in eclipse, we need to install the Google App Engine plugin. Go to Help->Install New Software, once there, enter the following URL in the “Work With” text box: http://dl.google.com/eclipse/plugin/3.7
Note: 3.7 in the URL corresponds to the Eclipse version, if you are using some other version, change the last number according to that. Or you can visit this link that gives all the URLs:
Click on the “Add” button and this repository will be added to Eclipse. Next time you can directly use this repository name for downloading any Google related plugin. It will then download a list of plugins associated with this URL.
Select the options “Google Plugin for Eclipse 3.7” under Google Plugin for Eclipse and Google App Engine Java SDKunder SDKs. These are the basic tools required for deploying a simple app to App Engine.
Click Next (2 times), and Accept the Terms of Agreement (after reading of course) and then it will take a couple of minutes for the plugins to get installed. Go grab a cup of coffee.
5. After it is installed, Eclipse will prompt for restart. Restart the Eclipse.
6. Click on New -> Other… and from the list select “Web Application Project” under Google”, give a name for your project and a package structure, and untick Use Google Web Toolkit and click Finish.
7. Now comes the surprise, you don’t need to do anything now. Eclipse has already created all the files required for the Hello World App, but still, I will be taking them one by one so that you can understand the necessary steps for writing a custom app.
8. First comes the deployment descriptor (for people who are new to J2EE, I recommend reading about J2EE first), it is the file web.xml located in the location war/WEB-INF/web.xml.
The web.xml contains mapping for the default servlet created with the name DhwaneetbhattjavaappServlet, and its URL mapping. This is the URL which will allow the servlet to give a response. And index.html located under war/ is the first file to be loaded when the application is started.
9. The next file is a pretty simple HTML file that contains nothing but a simple link to call the servlet.
[sourcecode language=”html”] <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
10. The next important file is the servlet itself – which responds to the request by the html file. The doGet method means that the request coming from the html file is a GET request. You can repond to a POST request by implementing the doPost method and changing the type of request coming from html form to POST.
@SuppressWarnings("serial") public class DhwaneetbhattjavaappServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException { resp.setContentType("text/plain"); resp.getWriter().println("Hello, world"); } } [/sourcecode]
11. The last file is the appengine-web.xml file which is located in the WEB-INF/ directory. App Engine needs one additional configuration file to figure out how to deploy and run the application. This file includes the registered ID of your application (Eclipse creates this with an empty ID for you to fill in later), the version number of your application, and lists of files that ought to be treated as static files (such as images and CSS) and resource files (such as JSPs and other application data). In the tag, enter the name of your App Id that you had chosen while registering for the app previously.
12. That’s about all the files we’ve covered. There are a couple of other files – configuration files in META-INF, logging.properties file and a favicon file that are unimportant at the moment. As I said Keep it Simple.
13. Now we are ready for a test run. Right click on the project from the Project Explorer, Run As -> Web Application, it will start the server. The default port is 8888. Open any web browser, type http://localhost:8888, you web application will run.
14. Before you Deploy it to Google App Engine – you’ll need to create an application on Google App Engine and Get the App Id. Scroll to the bottom of the blog post for a step by step guide.
Now that we have tested the code on our machine, it is time to deploy it go Google App Engine. Right click on the project, Google -> Deploy to App Engine, login with your credentials and on the next screen that comes, click on Deploy.
15. Your app will be deployed on the App Engine. Open any browser and enter the URL: http://dhwaneetbhattjavaapp.appspot.com and you will have the “Hello, world” app ready for the world to access.
*Here’s a step by step Tutorial to create an application on Google App Engine and getting the app id: [from Source]
Now, let’s sign up for a Google App Engine Account with a Google account you may have. Part of the process includes verification via a code sent to your mobile device – so be ready to provide your mobile number. And every Google Account gets to deploy 10 applications with a Google App Engine admin account.
Now, To sign up for Google APP engine. Go to: https://appengine.google.com/ and if you have a Google Apps account go to: https://appengine.google.com/a/<DOMAIN.COM>
Now, sign in with your Google account and you would be asked to verify your account:
Now, once you successfully verify your account, you would see something like:
And click on create application and fill in the following details. For now, fill in the App ID and the App Title. Leave other options as default for now. And yes, please check the availability of your app id and this will also be your URL. The URL will take the form.appspot.com
Scroll down and you will find a “create application”. please click on it. You will also see a message: “Application registered successfully”.
Cloud computing is no more a “wild west”. Their seems to be a consensus on what cloud is – And more importantly what cloud is NOT. So what’s the widely accepted definition of cloud computing? Well, It’s the NIST definition of cloud computing.
It has three pieces to it, Here they are:
Characteristics of a CLOUD
Delivery (/Consumption/Service) Model of CLOUD
Deployment Model for cloud
Please search for “NIST Definition of Cloud Computing” and you’ll get to a (latest version/draft) short PDF that is worth reading – takes just 10 odd minutes but super helpful!
For your convenience (and Mine) – Here’s a visualization of the “data” that’s in the NIST’s definition document:
NIST's Widely accepted definition of CLOUD COMPUTING
If you want fun way to remember the definition, please go to: Cloud Computing is AWESOME (OSSM) :: Defining Cloud Computing the Urban Dictionary style! (It’s goal is to help you remember the characteristics of cloud, and i make fun of NIST’s definition – not because it’s not great but it seems academic which may not be the best way to explain cloud to non-technical or business person. So a fun way to remember cloud helps you have a sophisticated discussion with someone who is not completely familiar with cloud. Hope that blog posts is of help too)
And That’s about it for this post. Your feedback is welcome!
And Let’s connect! I Look forward to Interacting with you on any of these people networks:
In second half of 2008, I had taken a class on Distributed systems. As a part of that class, We were asked to write a paper on the subject of our choice. I had chosen the subject that focused on answering: How is cloud different from traditional approaches? My aim was to figure out why was CLOUD getting all the “attention”. And i chose this topic because, at that time [2008], I used to follow few blogs (including Gartner) at that time and almost all of them seemed to be “heavily promoting” cloud. So I asked myself “why is world going crazy about cloud?” “What makes cloud different from traditional approaches?” And I decided to find answers to this question and convert it into a term paper for the class. And during the term paper assignment, I got a traditional Hosting account and deployed one of my project there. And compared it with what literature on cloud computing had to say at that time. This approach was super helpful because I had a benchmark on what traditional hosting felt like and then what cloud computing enthusiast had to say about why is cloud better than traditional approaches.And after getting my head around that concept, it’s been fun following how “cloud” has evolved over time. One of the best ways to recap it is to analyze Garnter Hype cycle. To this end, Here’s a recap of where Gartner Places Cloud Computing (and its different flavors) on hype cycle from 2008, 2009, 2010 and 2011. Here’s a recap:
2008:
2009:
2010: (Note the presence of different flavors of cloud on the hype cycle)
[Update 20th August 2012: seems db-class, ml-class, saas-class etc have been “merged” under a single umbrella which is now called Coursera]
I have been a fan of khan academy for more than 2+ years now. And huge fan of TED for 3+ years now. Did you knew that Khan academy helped me when I took a graduate level class about statistics (To gain mathematical foundation for data analysis) six months back? Yes true story: Apart from Textbooks, course classes and my note-taking (scribbling), the resource that was most helpful to me (for practice) were video courses on statistics at Khan Academy:
I watched videos on topic that I was not comfortable with. I got ‘A’ for this course and of course, Khan academy was big help!
Fast forward today, I just completed watching few videos at saas-class.org and the quality of the material is Mind-blowingly awesome. And I know mind-blowlingly is not the right word, but you get my point, don’t you?! I am sure, you do!
You may ask – what basis do you have to compare saas-class.org with other courses? Well, I am pursuing an awesome certification on cloud computing at university of Washington (UW). It’s great! Now compare that with free saas-class.org whose content is equally great. I am not comparing the “Exhaustiveness” of the course here. The course at UW is one year-long and saas-class.org is just five weeks – so of course, the content at UW covers more topics. But if I compare the quality – I am just blown by both courses. I get to learn things that I do not know and to me that’s what matters. So Thank you UW and saas-class. Also. it does not end here – I am taking a graduate level course at school of management which focuses on business side of cloud computing. It’s great too and so is saas-class.
Enough of “judging” – but my point being that more than 50k students are accessing saas-class and they get a chance to get learn about software as a service, Agile Development, etc and isn’t that amazing!
Quick Facts: TOTAL students at UCB (Covers every major) = ~ 37,000 TOTAL students enrolled for saas-class (just one course taught by UCB professor’s): 60k
Notice the IMPACT of offering an online course (with OUT admission *requirements*)
Also, Think of students that get access to it, students from communities in the remote(st) part of our world can NOW learn about latest technology. Think of impact that they could make in their community.
I am not saying that these models should necessarily replace existing models, I know Importance of classes and world-class education – That’s why after my undergrad studies in India, I moved to USA to pursue Graduate degree in Information Technology and Management. So I know, Importance of contemporary education system. But these courses/videos help educate masses and not just selected few. And that’s what makes them the NEW ivy’s in my opinion.
It’s Not just for the chosen “ONE’s”
In the new model, every gets a level-playing field to become the “ONE” < No disadvantages, It then boils down to persistence, motivation, etc to become successful and then no one and I mean no one can say that “Ivy’s are the ONLY path of success”.
Replace: ivy’s with “Ivy’s + All good Universities”. I just wanted to craft an eye-catching title. To me, Meet the NEW uni’s didn’t seem that appealing!
And yes check these resources out, if you haven’t already:
What am I missing? Are there other NEW ivy’s out there that I may not know about?
btw, I consider people sharing their knowledge via blogs, technical forums, etc are important too. They add value in someone’s life. And that’s one of the reasons I blog too!
I remember, Once a professor in an US university pointed his students to watch a video lecture (to delve deeper) from NPTEL. Isn’t that awesome!? I came to know about this because one of my friend was part of that class.
Analogies help, don’t they?! So here I am…just one more analogy that may help you understand Cloud Computing modalities i.e IaaS – PaaS – SaaS. If you want to know what IaaS – PaaS – SaaS are? Then this is not the right blog post. But if you find want an analogy that would help you differentiate them, read along…
So, If my Laptop were a cloud:
Hardware
If my Laptop were a cloud, then Laptop Hardware is IaaS (Infrastructure as a Service)
Operating system (OS) on Laptop
If my Laptop were a cloud, then Operating system on Laptop is PaaS (Platform as a Service)
An App (Software) running on Laptop OS
If my Laptop were a cloud, then App running on Laptop OS that you access is SaaS (Software as a Service)
Summary:
Hardware <-> IaaS / Cloud Computing
OS <-> PaaS / Cloud Platform
Apps running on Laptop <-> SaaS / Cloud Services
Remember, it was an analogy, Not technically accurate and so please look at the concepts on your own. But this analogy helps me differentiate concepts and i though it may help someone else..
Do you have other analogies to share? If so, I encourage you to post it as comments!
I got this question recently and I thought of converting them into a “cloud 101” blog posts. So here they are:
Q: “Banking – with its high security needs and strict regulations – was always considered to be one of the last industries to accept cloud-computing”. So is cloud computing insecure?”
A: I would say – Cloud is secure. At least companies like Amazon (AWS), Microsoft, Google have advanced security mechanisms in place – In most cases, Cloud is more secure than private data-centers. And some banks do not move to Cloud (or cannot move to cloud) because of other reasons. And most of them fall on the legal side of things. Strict regulations (government regulations) as you mentioned.
And later at one point, we discussed about banks keeping parts of the data/app on-premise and moving other parts to cloud. That’s called hybrid cloud. What they do is that since they cannot move “sensitive” data to cloud because of government regulation and/or business policies – they move things that are permissible by law/business policies to cloud.
And we also discussed about what are the disadvantages of moving to cloud? I realized: Most of the perceived “disadvantages” are actually MYTHS. so at one point I felt the need to clear myths and then talk about other topics. It was fun though!
I just completed the Cloud University’s online course http://www.rackspace.com/knowledge_center/cloudu/ and found it to be a nice resource – I thought I would share it with you. It’s a free online resource for learning about key elements of cloud computing. They have modules covering:
Definition
Economics of cloud
Cloud computing stack (IaaS, PaaS, SaaS)
Security
Planning phase to move to cloud
Management strategies
Hybrid Cloud (Cloud Bursting)
Open cloud computing initiatives
After every module – you would be Quizzed (based on learning in that given module). And after completing all (10) modules – there would be a final exam and once you clear that – you’ll get a certificate like this: