API – The Undocumented API

Tag: API

Video: Microservices, IoT and Azure

I recently recorded a session for the Collab365 virtual conference that is an overview of my recently released book, Microservices, IoT and Azure. The book provides practical guidance for adopting a high velocity, continuous delivery process to create reliable, scalable, Software-as-a-Service (SaaS) solutions that are designed and built using a microservice architecture, deployed to the Azure cloud, and managed through automation. Microservices, IoT, and Azure offers software developers, architects, and operations engineers’ step-by-step directions for building SaaS applications—applications that are available 24×7, work on any device, scale elastically, and are resilient to change–through code, script, exercises, and a working reference implementation.

bookcover-small

A working definition of microservices is provided and I contrast this approach with traditional monolithic Layered Architecture. A fictitious, home-biomedical startup is used to demonstrate microservice architecture and automation capabilities for cross-cutting and business services as well as connected device scenarios for Internet of Things (IoT). Several Azure PaaS services are detailed including Storage, SQL Database, DocumentDb, Redis Cache, Cloud Services, Web API’s, API Management, IoT Hub, IoT Suite, Event Hub, and Stream Analytics. Finally the book looks to the future and examines Service Fabric to see how microservices are becoming the de facto approach to building reliable software in the cloud.

The video combines presentation with live demos that will give you insight into the concepts laid out in the book and the reference implementation that is used to demonstrate those concepts.

You will learn :

  1. Why is microservice architecture a compelling pattern for cloud-native applications
  2. What are microservices and how do they compare to traditional monolithic layered architecture
  3. How microservices are used in Internet of Things (IoT) and Big Data Analytics solutions
  4. How to use PowerShell to automate microservice development, test, staging and deployment

Microservices, IoT, and Azure: Leveraging DevOps and Microservice Architecture to deliver SaaS Solutions is on sale now!

Click to reserve your copy today!

Book: Microservices, IoT and Azure Now Available

51oTem3JasL__SX327_BO1,204,203,200_

Order on Amazon

This book provides practical guidance for adopting a high velocity, continuous delivery process to create reliable, scalable, Software-as-a-Service (SaaS) solutions that are designed and built using a microservice architecture, deployed to the Azure cloud, and managed through automation. Microservices, IoT, and Azure offers software developers, architects, and operations engineers’ step-by-step directions for building SaaS applications—applications that are available 24×7, work on any device, scale elastically, and are resilient to change–through code, script, exercises, and a working reference implementation.

The book provides a working definition of microservices and contrasts this approach with traditional monolithic Layered Architecture. A fictitious, homebiomedical startup is used to demonstrate microservice architecture and automation capabilities for cross-cutting and business services as well as connected device scenarios for Internet of Things (IoT). Several Azure PaaS services are detailed including Storage, SQL Database, DocumentDb, Redis Cache, Cloud Services, Web API’s, API Management, IoT Hub, IoT Suite, Event Hub, and Stream Analytics. Finally the book looks to the future and examines Service Fabric to see how microservices are becoming the de facto approach to building reliable software in the cloud.

What you’ll learn

  • What microservices are and why are they’re a compelling architecture pattern for SaaS applications
  • How to design, develop, and deploy microservices using Visual Studio, PowerShell, and Azure
  • Microservice patterns for cross-cutting concerns and business capabilities
  • Microservice patterns for Internet of Things and big data analytics solutions using IoT Hub, Event Hub, and Stream Analytics
  • Techniques for automating microservice provisioning, building, and deployment
  • What Service Fabric is and how it’s the future direction for microservices on Microsoft Azure

Who this book is for

Software Application Architects, .NET Developers, Database Admins and DevOps engineers. The sample code provided is a combination of C# and PowerShell.

Book: Microservices, IoT and Azure

*** COMING SOON ***

Microservices, IoT and Azure

Leveraging DevOps and Microservice Architecture to deliver SaaS Solutions
by Bob Familiar, published by Apress Publishing.

Microservices, IoT & Azure provides practical guidance on how to adopt a Microservices Architecture and leverage Microsoft’s Azure Platform in order to build highly scalable, resilient, Software-as-a-Service solutions. Bob Familiar, Practice Director for Cloud & Services at BlueMetal, Inc. provides software developers, architects and operations engineers’ practical guidance and impactful reference implementations that demonstrate how to leverage Automation and a Microservice Architecture to deliver SaaS applications. SaaS applications are software products that are available 24×7, work on any device, are always up to date, scale elastically and are resilient to change. This book will demonstrates how a combination of Azure, Microservice Architecture and Automation provide the key to achieving continuous delivery and the promise of Software-as-a-Service.

A working definition of Microservices will be presented and the approach will be contrasted with traditional Monolithic Layered Architecture. You will learn how Microsoft Azure provides foundational Microservices for Storage, Compute, Messaging, App Containers, API Management and more and learn how to leverage those services in the creation of your own Microservice catalog. The Home Biomedical Reference Implementation will be used to demonstrate these capabilities for traditional line of business services as well as Connected Device scenarios for Internet of Things. Finally we will look to the future, to where Azure is headed, to see how Microservices are becoming the De facto approach to building in the cloud.

What You Will Learn:

  • What are Microservices and why are they a compelling architecture pattern for SaaS applications
  • How to design, develop and deploy Microservices using Visual Studio, PowerShell and Azure
  • Microservice patterns for traditional line of business solutions
  • Microservice patterns for Internet of Things and Big Data Analytics solutions
  • Techniques for automating Microservice provisioning, build and deployment
  • What is Service Fabric and how that is the future direction for Microservices on the Microsoft Azure
Chapters
  1. From Monolithic to Microservice
  2. What is a Microservice?
  3. Microservice Architecture
  4. Azure – A Microservice Platform
  5. Automation
  6. Microservice Reference Implementation
  7. IoT and Microservices
  8. Service Fabric

The Reference Implementation will provide PowerShell scripts to automate the Provisioning, Build, Deployment and De-Provisioning of the solution. The Solution consists of several independent Microservices built using C# and ASP.NET Web API along with DocumentDb and Redis. In addition there is an IoT component of the solution that is built using Azure IoT Suite, Cloud Services and SQL Database. There is a sample real-time data visualization client that demonstrates how to orchestrate the Microservices into a complete solution.

Viewed in whole, the Reference Implementation demonstrates how to use several Azure PaaS Services together along with custom code and automation scripts to create a modern Software-as-a-Service solution.

The software is provided under the Microsoft Public License (Ms-PL) and as such the software is licensed “as-is.” You bear the risk of using it. The contributors give no express warranties, guarantees or conditions.

RefM – A Microservice Case Study

clip_image002

Introduction

Microservice Architecture is an emerging approach to modern application architecture where applications are composed of autonomous, independently deployed, scaled, and managed services. This approach to service architecture along with the benefits of cloud platforms provides the scalable, resilient, cross platform foundation necessary for Modern Applications.

This post takes the logical architecture defined in my previous post Modern Apps and Microservices and applies it to the design and implementation of a Microservice called RefM. RefM provides a common utility needed by nearly all applications, reference data.

Read More

Internet of Things, A Reference Architecture

We at BlueMetal have a great deal of experience in creating solutions that leveraged connected devices streaming millions of records to cloud hosted repositories, leveraging historical and predictive analytics engines to provide insight and creating immersive experiences that give our clients agility and speed in their daily business activities. Case in point…EnerNOC.

 

EnerNOC

Using Lean Engineering a small team from BlueMetal was able to provide EnerNOC with an amazing user experience in 10 weeks. The application spans twenty four 55” high definition displays combining data streaming from over 35,000 devices around the globe connected to the energy grid with geo-political, social media, environmental and financial data creating a visually stunning global view of EnerNOC’s business domain that is visible to all employees and every visitor to their downtown Boston office.

clip_image002

While this solution was clearly focused on the energy sector, the effort produced a reference architecture for Internet of Things solutions that spans verticals. To prove out the viability of this reference architecture in other verticals, BlueMetal created a Pharmaceutical Trial Scenario and implemented a live reference implementation.

Read More

Lean Engineering – Lean Methodology Applied to Enterprise IT

Overview

Lean Engineering defines a set of principles that guide the creation and deployment of software products at high velocity with low risk. By leveraging a Lean Engineering approach, the risk of validating new technology, making incremental changes in process and bringing new products to market can be lowered and a high quality result can be achieved at a faster rate.

Every discipline requires a set of principles or assertions to build upon. As disciples of the practice of software engineering, it is imperative that we define a clear set of unwavering principles that guide the process, methodology and architecture for the products we create.

RobotIdea

Read More

API Management Made Easy

API-Management Azure API Management Preview is a service available in Microsoft’s cloud platform that provides an easy to use hosted Web environment to create a full featured developer portal for your RESTful Web API’s and produce rich analytics to gain insight into API usage. If you are building RESTful Web API’s as part of your employee or customer facing solutions, this is a must have service. In this article I will show you how easy it is to get started with API Management.

 

What is API Management?

Todays modern apps are built on a foundation of scalable cloud services and storage. A common architecture pattern for modern apps is to provide an application programmable interface, a.k.a. an API, to open up the functionality to more developers who then build client apps, mashups or provide integration between apps.

These Cloud Service API’s typically expose their endpoints via HTTP using REST (representational state transfer) protocol (GET, POST, PUT, DELETE) and are referred to as RESTful web API’s. By using this approach the implementation details of the API such as language, database, runtime, operating system, etc. are all abstracted. RESTful web API’s are by nature cross platform and can be consumed from any language, runtime, operating system, etc. that supports invoking HTTP requests.

It is rather easy today to build RESTful API’s in your language and platform of choice. Once you go down this path though it quickly becomes apparent you will need a great deal more infrastructure supporting your API’s in order to make them scalable, secure and are being used according to the usage and security policies that you define. This is where API Management comes into play.

An API Management system will wrap your API in its loving virtual arms and provide an additional layer of services. A typical set of services that an API Management system provides are: Read More

Continuous Innovation Applied – The Fast Path to the Windows Store

The beginning is the most important part of the work – PLATO, The Republic

For many developers participating in the app economy is an exercise in learning to be a startup. You want to create a product (app), launch it into the marketplace (Windows Store), drive sales (downloads), receive feedback from customers (ratings and reviews) , make improvements and release the next version of your app. This is a cyclical process that is explained in great detail in the The Lean Startup by Eric Reis.<

One of the concepts that Eric lays out in his book is the idea of Continuous Innovation. This is a 3 step approach to creating, publishing and marketing your product.

image

Continuous Innovation

One of the key tenants of Continuous Innovation is to focus on what is called a Minimal Viable Product (MVP). The goal of a minimal viable product is to get through the Continuous Innovation cycle  as quickly as possible with minimal effort.

Gone are the days of yearlong development efforts followed by the big product launches. In the app economy you need to build fast, collect feedback from your customers and iterate on the next version. You need to test both the technical as well as the business hypothesis and implement features that customers want and fail fast on the things that are not driving downloads.

By starting out with a Minimal Viable App and moving through the Continuous Innovation cycle quickly, you will learn the entire process of how to launch a product, market that product, gather customer feedback and iterate on the next version. This skill set is what every developer needs to learn to be successful going forward in our industry,

Getting Started

For many developers coming up with a product idea can be daunting. The key to successful apps is typically tied to the richness of the data that you provide to your customer along with the set of features you provide for working with that dat

To help you with the process of getting an app in the store using open data API’s and learning how to apply Continuous Innovation the Technical Evangelist team here at Microsoft has created a set of Windows App Starter Kits. These starter kits are based on open data API’s which give you the rich data set you need to create a compelling application or a mashup.

To get started let me introduce you to the wonderful world of Open Data API’s.

Motivation is what gets you started. Habit is what keeps you going. – Jim Rohn

The Wonderful World of API’s

Using open data API’s are a great way to get started creating compelling apps. The internet it turns out is source of rich content. Who knew! You can get a sense of the vast numbers of open data API’s by visiting API Hub or Programmable Web. There are thousands of API’s covering all industry segments and topics.

APIhub

Upon investigation you will soon learn that not all API’s are created equal. There are differences in quality, speed, call thresholds, authentication and so on. Spending some time to validate API’s of interest is well served. Most APIs require the developer to register and request a Developer Key. Some API’s are throttled, limited to a certain number of calls a day or second. Many are free but some are not. Here is a list of criteria that you can use to validate API’s of interest:

  • Developer Key Required
  • API protocol – REST or SOAP?
  • Authentication Required – OAuth, SessionID, etc.
  • Performance – how well does the API perform?
  • Service Level Agreement (SLA) – is the API always available?
  • Payload format – JSON, XML, other
  • Throttled – If yes what is the limit?
  • Free or Pay
  • Is the API mashable – can the data be used as input to another API?

Last but not least is to read the Terms and Conditions of the API provider. The details of how often you can call the API and other usage rules such as a requirement to display their logo and to have that logo link to their site will be documented. If you are going to use an API read the T’s and C’s thoroughly before investing hours of development.

For more detailed coverage of API Basics see Stacy Mulcahy’s post here.

Windows App Kits

In order to streamline your ability to leverage API’s to create compelling apps for Windows, the US Technical Evangelist team has created a portfolio of 22 Windows 8 and 12 Windows Phone 8 Starter Kits that you can use to create your minimal viable product.

image

There are kits that provide solutions for Windows 8, Windows Phone and in either C# or HTML5/JS. The Chuck Norris Starter Kit also provides a VB implementation. There is also a starter kit for those who want to learn how to leverage Azure Mobile Services.

Each Kit comes with one or more Visual Studio solutions, a README.MD and associated blog posts that document how to customize each kit. There are also several kits that have corresponding Video tutorials on Channel 9.

Here are examples of apps that have been created using these starter kits: