Learn AWS #2 – Give Me Details

Here are some great resources that will provide you a lot more details. They also come with the right price, free.

  •  Sign up for a free account so that you can play around.
  •  Kindle edition of the book, Getting Started with AWS
  •     Note that AWS changes are the speed of Cloud. It is still evolving in terms of management functions, tools, and menus. While the books is fairly accurate on the capabilities, the options are not usually where they are. For example, if you want to set a billing alert so that you don’t accidentally get charged too much for your usage, the book calls out different navigation menu, which has been deprecated. That said, these type of changes are very common to all cloud providers. The Amazon navigation menu is intuitive enough that you will figure it out.

Learn Amazon Web Services (AWS) #1

Prologue

The purpose of this series to share my take on AWS. The primary objective here is to create a learning experience on AWS through short lessons. The target audience are IT architects, developers, and geeks who want to show off to pretty girls (it does not work that way).

My goal here is not to conduct long drawn lectures. There are fantastic classes from PluralSight, InfiniteSkills, and other companies for this. Rather, I will be sharing short lessons, how-to tips, and links to web pages that I find useful for learning AWS. When you start  picking on my articles, you know you have become a master of AWS. We can grab a cup of coffee and discuss our views at that point.

This blog is not for those who do not want to be bothered by details of underlying infrastructure.

Warning – Some of my remarks and puns might offend you. Feel free to worship me (desired) or insult me (anticipated).

What is Amazon Web Services (AWS)?

AWS is a collection of infrastructure (IaaS) and platform (PaaS) services geared for Cloud. These capabilities are beautifully architect for high availability and self-service. Due to the competition from Google and Microsoft, these services are getting amazingly cheaper.

AWS provides awesome raw power to anyone who needs to rent raw Compute on the cheap (CPU, Storage, Memory, and some variations of OS, messaging, and workflow).An useful diagram on what is AWS  (courtesy of Amazon’s book ‘Getting Started with AWS’ book)

AWS Offerings

Note that Amazon does not provide a SaaS implementation like Salesforce or NetSuite. Its idea is that you will build a successful SaaS offering using their toolbox.

For the visual learners, here is a short video on AWS: http://aws.amazon.com/getting-started/ . This video would have been more credible to me, if the audio had an Indian accent. 😉 Someone should work on dynamic localization of promotional videos based on browser’s default language.  It is a conversation for another day.

Practicing Enterprise Architecture

Overview

Enterprise Architecture (EA) can be defined as the ‘life coaching’ for an enterprise. Architecture by nature is associated with planning and defining a purposeful structure per the rules, regulations, and policies that are established by legal entities. The practice of Enterprise Architecture is not The larger and more complex the organization is, the more it needs an established practice of enterprise architecture. Enterprise Architecture is also technology agnostic. It deals with more of how to compose highly reusable, extensible IT components rather than what to build. The ‘What’ part of composition is derived by the business vision and the constantly evolving nature of the business needs. In my subsequent posts, I am going to share my view on the practice of EA, the benefits of EA, EA components, the frameworks associated with EA, tools, why EA receives a bad reputation from business focused leaders and more.

Architecture Views

When we talk about architecture diagrams, people normally think it in terms of either server boxes and firewalls or as UI diagrams and workflows.

While these are generally acceptable forms of architectural diagrams, in reality, an architecture has several views depending on who is the audience.

An experienced architect usually starts with a conceptual architecture view. Once the conceptual architecture of a solution is approved by stake holders, he/she moves on to elaborate this solution using the logical architecture. Such approvals are usually considered as a mile stone for solution initiation stage.

Once the logical architecture is vetted out by peers and extended team, the solution architect works with his peers (domain architects) to create the information architecture, integration architecture security architecture and physical (infrastructure) architecture views.

These views handle various aspects of a complex solution.

Conceptual Architecture

Conceptual Architecture is a terminology that is used to introduce and describe a concept or an idea. During this phase of the architecture, the various functional component and players of the solution is identified.

Conceptual architecture plays a crucial role, when the architect is designing large and complex solution. It is less useful for small to midsize solutions. You can dive directly into logical architecture, which is the next step in elaborating the architecture.

 Note to budding architects – If your diagram calls out any server name or protocol, then it is not a conceptual architecture.

I will go over the remaining architectural views in my next few posts.

Types of Cloud

Depending on the audience and security, cloud computing can be organized into four groups.

Public cloud is an IT capability that is rendered as a service to any consumer over the public Internet. Some of the well known examples are Saleforce.com, Google App Engine, Microsoft Azure, and Amazon EC2.

Private cloud is an IT capability that is rendered as a service to a select group of consumers. Private cloud service provider could be the IT department of the same organization as the customer. It could also be a third party vendor who has created a network for specific use of that customer.  Note that the network on which the service is provided could be either a public network such as the Internet or a private network.  Examples include hospitals or universities that organize a holding company to purchase infrastructure and build cloud services for their consumption.

Internal cloud is a subset of a private cloud. It is an IT capability rendered as a service by an IT department to its own business customers. Example would be that an IT department building a highly virtualized environment for consumption of internal application developers. This would automate the procurement and provision process. It would also automate internal charge back to the developer’s or the project cost center.  The role of the IT environment team would be to monitor and provision the hardware, middleware, and application licensing so that the demand does not overrun capacity.

External cloud is an IT capability that is rendered as a service to a business that is not hosted by its own IT organization. An external cloud can be public or private, but must be implemented by a third party.

How is Cloud Computing Different from Others?

Mainframe difference

Cloud computing is about externalizing service. It means that the computation is done somewhere else. This requires the service provider to have powerful servers. Till this point, there is not any difference between good old mainframe and cloud computing.

BUT, cloud computing is about distributed computing. In the mainframe world, you cannot procure a data storage from one vendor, several IT services from multiple vendors, combine (mash-up) them into a business solution.  

SOA Difference

Both Service Oriented Architecture (SOA) and Cloud Computing focus on the flexibility and lower cost aspects of providing solutions. Both these terms include both a set of technologies and business models.

SOA is about creating a standards based framework that provides highly reusable services and workflow. Cloud Computing does not have any standards as such. Cloud vendors, at present, don’t see a value in creating standards based service offering. They are busy retooling and promoting their existing IT capabilities as Services on the Cloud. This will hurt many of these providers in the long run. Also this is making it hard for their customers to move from one vendor to another and integrate these externalized services deep inside their enterprise infrastructure.

A mix of SOA and Cloud computing would create standards based framework that can be integrated deep into the existing IT infrastructure.  This would lower cost of migration from one vendor to another. Such an offering will improve the confidence of enterprise architects in these services resulting in deep integration into Line of Business (LOB) applications.

Grid Computing Difference

Grid computing is the combination of computer resources from multiple administrative domains applied to a common task. It is mainly used for scientific or technical problems. In grid computing, a few users makes request for a large amount of computing. So, grid computing devices usually employ super computers or specialized computing devices.

In Cloud computing, each service focuses mainly on solving a single business problem.   Here, a large number of users request a small amount of computing.  In cloud computing, a large number of off the shelf computers are used to create a cloud environment.

Promising Benefits of Cloud Computing

Business is forcing IT organizations to adapt to cloud computing because its financial benefits. IT organizations are interested in Cloud computing for its Operational Benefits, Financial Benefits, Better support for collaboration and Increased access to IT services for mobile workforce.

A cloud-based infrastructure requires its robust and redundant infrastructure. This often provides better uptime and availability at a lower cost. For example, storage on Amazon S3 can be procured as little as 0.15 cents per GB.  Since cloud services start with a prebuilt foundation, they provide good support for flexible provisioning, allows consistent upgrades, and expedites launch of new, innovative projects to gain/retain market share.

We have seen earlier that the pay-as-you go model allows greater flexibility in cash flow. This also empower companies to scale gracefully based on demand. The increased cash flow allows enterprises to fund multiple projects simultaneously, without having to provision for capacity, investments, and personnel as a priority.  Since the operational management is owned by third party service provider, ongoing operational overhead for internal IT departments would be lower.  This will bring down the total cost of ownership (TCO) for using a cloud service lower than a on-premise model that exists today.

 Collaborative and community computing facilitates multisource input and multiparty computing, which is the core strength of cloud computing model. This brings benefits that are not attainable with local computation only. For example, cloud-based threat service such as distributed denial of service attacks (DDoS) or spam detection. A cloud service that has a wide visibility of the Internet traffic would see the onset of an attack more quickly and accurately than any local threat detector. Another example would be National Geographic’s topo.com that uses Amazon’s S3 to sell maps, download updated trail and trip information and even create trip maps to share with their friends.

As you probably know, not everything can be classified as cloud computing. Remember the early 90’s when you could order pizza or food over the web in the San Francisco Bay area?  It was not a web based pure play business model.  Similar to that 90’s ASP business model, a lot of technology vendor are coming up with new cloud services almost every day. Many of them are not cloud service but rather follows ASP hosted model. We will revisit this topic later in the series.

Cloud Computing 101

Cloud Computing is the latest industry buzz, which has climbed to its peak in 2009. This series of articles are an attempt to demystify the hype behind Cloud Computing.

In this series, I will write about  

          a brief overview of the cloud computing

          how it is different from good old mainframe

          how it is different from other buzz words such as SaaS, Grid Computing and SOA

          architecture of cloud computing

          usage models of cloud computing

          myths surrounding cloud computing

          concerns on cloud computing

As we go along this journey, feel free to use me as your sounding board. I am open to taking detours that would address your questions and concerns.

Cloud computing paradigm is a combination of technology practices and business models working together to deliver agility and scalability to business at a fraction of the cost it would take for traditional IT models to deliver equivalent capabilities.  

Cloud computing refers to any IT capability that can be virtualized, externalized and monetized.  By  virtualizing an IT capability, the underlying technology stake is almost irrelevant to the consumers. By externalizing, the capability is made portable and easy to manage with least number of dependencies. The ability to measure and monitor the service usage at a granular level helps create consumption based charge back model that is most attractive business clients. This way, a business can rent an IT capability without investing heavily in its IT department to stand up this service. Think cash flow!

Systematic vs. Opportunistic Programming

Systematic vs. Opportunistic Programming

In any large organization whose business is not software development, we can find two types of product development philosophies. The business side of the enterprise will see an opportunity to automate, streamline, performance boosting opportunity and would like a quick and dirty way of converting into a software. For example, in one of my client organizations, the claims processing division uses Access to automate Excel spreadsheets or manual work that is shared by small group of people. While this is great start for the benefiting group, it creates a maintenance and auditing nightmare for the IT department.

Hence, the IT department which, most of the times, reports to CTO, profess systematic programming. In this approach, the application is developed methodically and involves analysts, developers, managers, quality assurance, security, technical writers, disaster recovery, release management, and post implementation support plans.

The business will resist this approach because it bloats cost and extends product delivery time. Almost all the big companies will have some tension as a result of this contention.

A successful software architect need to look for patterns among these ‘quick hit’ software and try to create a sustainable product that can replace many of them when the business comes to IT for expanding the scope of one or more of such software.

Burton Group

Last week, I participated in a workshop conducted by Burton Group on Service Oriented Architecture (SOA). I had been using Forrester and Gartner for quite sometime. Recently, I started using Burton Group services.

 

Forrester conducst many web conferences every year to share their findings. This is nice. Still, their findings do not tell anything new that I did not know about. Also, they normally lack depth. Gartner focuses more on industry trend and also lacks depth. I found Burton research material and this last workshop very detailed and in-depth.

 

I was also happy to meet with and pick brains of experienced architects who participated in this workshop.

 

If you are technology agnostic and focused on enterprise-wide governance or architectural work, I highly recommend Burton group. Their licensing is also for the entire enterprise. I find that useful.

 
Here is an interesting Chinese quote I read recently: "The person saying that it can’t be done should not interrupt the person doing it."

Architecture

Recently, I have moved on to Architecture Consulting group with in my company. Since I am moving from project management and software design in to architecture, I have to reinvent myself. It means lots of reading.
 
My responsibilities are in ECM (Electronic Content Management), Finance (Billing, Payment, Payroll, GL, Claims, etc), and Shared Services (a whole big area).
 
I am going to be sharing my learnings on architecture and best practices here.
 
Here is a very good article on the role of an architect. If you aspire to be a software or IT architect, this is a must read.