Thursday, August 3, 2017

Tech Byte - APIs




"Amazon today simplified smart locks for Alexa, by adding a Door Lock API to its Alexa Skills Kit. This API, or application program interface, is designed to improve voice commands for lock partners Schlage, Yale, Kwikset, August, Vivint and Z-Wave."


"Ford opens its SYNC 3 platform to developers via API to let mobile apps interface with its cars."



What are APIs?



The term "API" stands for Application Programming Interface. APIs provide an interface for two software applications to communicate over the Internet.

From a business point of view, the APIs are essentially business capabilities published over the Internet for business partners to use.

For example, Twitter, Facebook, Google and many other software giants let programmers communicate with their applications to exploit the offered functionality through published APIs.




What are some of the benefits these businesses enjoy by offering their data & services through APIs?



Some examples:

  • Twitter, through its APIs, offers its data and value added services to anyone who is interested in that data e.g. survey companies, media houses, publicists etc and has some free as well as chargeable plans for them. 
  • IBM offers its IBM Watson APIs to allow developers write bots with artificial intelligence 
  • Twilio offers its APIs for developers to write telephony application and charges users for making use of its APIs every time a call is made using them. 
  • Netflix offers its APIs so that other applications can also make use of these APIs to offer Netflix contents further and thereby increasing Netflix's market presence. 

API Strategy - does such a thing exist?


APIs offer new business avenues for the existing business assets. They also enable developers to improve existing content distribution systems for profitability e.g. Netflix is often called as an API company for having an effective API strategy for its content distribution.

APIs promote innovation, collaboration, better user experience, and thus more business opportunities for the digital assets of business; so having an effective API strategy in place suits business interests.

So which are the most used APIs out there?

According to a report by DevPost, following are the most used APIs on the Internet -

Picture courtesy TechCrunch.com


References:

Wednesday, July 26, 2017

Quick Byte - Assigning IAM role to a running EC2 instance

Using AWS CLI commands, it is now possible to attach an IAM role to a running EC2 instance.

Command/s:

$aws ec2 associate-iam-instance-profile --instance-id YourInstanceId --iam-instance-profile Name=YourNewRole-Instance-Profile

Refer the complete article here.

Monday, July 24, 2017

Saturday, July 22, 2017

Quick Byte - CI tool chain

1. Version Control
2. CI Systems
3. Build
4. Test
5. Artifact Repository
6. Deployment

Friday, July 21, 2017

Quick Byte - A few DevOps Configuration Management definitions


  1. Provisioning - Preparing a Server for operations 
  2. Deplyoment - Uploading application on Server for operations
  3. Orchestration- Coordinating activities amongst systems for operations
  4. Configuration Management- Managing system configuration after initial server provisioning. Keeping the application and its dependencies updated
  5. Configuration Management tools behaviour-
    1. Imperative (Crucial) - Define and execute commands for a desired state
    2. Declarative - Desired state is defined and let tool do the rest
    3. Idempotent (Unchanging) - Repeat steps and get same result

Thursday, July 20, 2017

Quick Byte - DevOps bare-bones

Bare-bone structure of DevOps:


1. Values - CAMS
                       i.  Culture
                       ii. Automation
                      iii. Management
                      iv. Sharing
2. Principles
                        i. Systems Thinking - Dev to Ops - Overall System
                        ii. Amplifying Feedback Loops
                        iii. Continuous Experimentation and Learning
3. Methods
                        i. People Over Process Over Tools
                        ii. Continuous Delivery
                        iii. Lean Management
                        iv. Visible Ops Change Control
                        v.  Infrastructure as Code
4. Practices
                        i. Incident Command System
                        ii. Developers on Call
                        iii. Status Pages
                        iv. Blameless Postmortems
                         v. Embedded Teams (Ops person working with the developers)
                         vi. The Cloud (API driven so can work on Infra as code)
                        vii. Andon Cords (To notify and stop a buggy code from going into prod)
                       viii. Dependency Injection (Inversion of Control - Web Framework model)
                         ix. Blue/Green Deployment
                          x. Chaos Monkey (Remember NetFlix)
5. Tools
                          i. Programmable (Not just UI driven)
                         ii. Verifiable
                        iii. Well Behaved

References & Resources to explore the subject further:
1.  https://devops-research.com/
2.  https://puppet.com/solutions/devops
3.  https://puppet.com/blog/what-is-devops
4.  https://puppet.com/resources/ebook/devops-and-you-advice-for-building-your-career
5.  https://puppet.com/blog/devops-tools-support-your-devops-initiatives       
6.  https://puppet.com/blog/what-a-devops-engineer
7.  http://www.amazon.in/Devops-Handbook-World-Class-Reliability-Organizations/dp/1942788002
8.  https://martinfowler.com/bliki/DevOpsCulture.html     
9.  https://martinfowler.com/bliki/ContinuousDelivery.html
10.https://www.ibm.com/developerworks/community/blogs/c914709e-8097-4537-92ef-8982fc416138/entry/devops_in_practice_best_practices_for_adopting_continuous_delivery?lang=en




Quick Byte - Complex systems failures and their investigation (ITIL Problem Management)

Check this article from MIT on Complex Systems Failures and the myths surrounding root cause investigation.

Check another article for effective incident postmortems.

Drooling Over Docker #4 — Installing Docker CE on Linux

Choosing the right product Docker engine comes in 2 avatars — Docker Community Edition (CE) and Docker Enterprise Edition (EE). While the...