Pages

Friday, November 27, 2015

DevOps Session 2 - Best Practices for Effective DevOps

DevOps means beyond the high-level vision of tighter and more effective collaboration between development teams and operations teams.

Here I listed the best practices which we could use for the effectively in DevOps

Practice 1: Active Stakeholder Participation

 

A fundamental philosophy of DevOps is that developers, operations staff, and support people must work closely together on a regular basis. An implication is that they must see one other as important stakeholders and actively seek to work together. A common practice within the agile community is "onsite customer," adopted from Extreme Programming (XP), which motivates agile developers to work closely with the business. Disciplined agilists take this one step further with the practice of active stakeholder participation, which says that developers should work closely with all of their stakeholders, including operations and support staff--not just business stakeholders. This is a two-way street: Operations and support staff must also be willing to work closely with developers.

Practice 2: Automated Testing

 

Agile software developers are said to be "quality infected" because of their focus on writing quality code and their desire to test as often and early as possible. As a result, automated regression testing is a common practice adopted by agile teams, which is sometimes extended to test-first approaches such as test-driven development (TDD) and behavior-driven development (BDD). Because agile teams commonly run their automated test suites many times a day, and because they fix any problems they find right away, they enjoy higher levels of quality than teams that don't. This is good news for operations staff that insists a solution must be of sufficient quality before approving its release into production.

Practice 3: Integrated Configuration Management 

 

With an integrated approach to configuration management (CM), development teams not only apply CM at the solution level as is customary, they also consider production configuration issues between their solution and the rest of your organization's infrastructure. This can be a major change for some developers because they're often used to thinking about CM only in terms of the solution they are currently working on. 

In a DevOps environment, developers need to be enterprise-aware and look at the bigger picture. How will their solution work with and take advantage of other assets in production? Will other assets leverage the solution being developed? The implication is that development teams will need to understand, and manage, the full range of dependencies for their product. Integrated configuration management enables operations staff to understand the potential impact of a new release, thereby making it easy to decide when to allow the new release to occur.

Practice 4: Integrated Change Management

 

From an IT perspective, change management is the act of ensuring successful and meaningful evolution of the IT infrastructure to better support the overall organization. This is tricky enough at a project-team level because many technologies, and even versions of similar technologies, will be used in the development of a single solution. Because DevOps brings the enterprise-level issues associated with operations into the mix, an integrated change management strategy can be far more complex, due to the need to consider a large number of solutions running and interacting in production simultaneously. With integrated change management, development teams must work closely with operations teams to understand the implications of any technology changes at an organization level. This approach depends on the earlier practices of active stakeholder participation, integrated configuration management, and automated testing.

Practice 5: Continuous Integration

 

Continuous integration (CI) is the discipline of building and validating a project, through automated regression testing and sometimes code analysis whenever updated code is checked into the version control system. CI is one of the sexier agile development practices (at least from a developer's perspective) that is typically associated with DevOps. CI enables developers to develop a high-quality working solution safely in small, regular steps by providing immediate feedback on code defects.

Practice 6: Integrated Deployment Planning

 

From the point of view of development teams, deployment planning has always required interaction with an organization's operations staff; in some cases, via liaison specialists within operations typically called release engineers. Experienced development teams will do such planning continuously throughout construction with active stakeholder participation from development, operations, and support groups. When you adopt a DevOps strategy, you quickly realize the need to take a cross-team approach to deployment planning due to the need for operations staff to work with all of your development teams. This isn't news to operations staff, but it can be a surprise to development teams accustomed to working in their own siloed environments. If your team is not doing this already, you will need to start vying for release slots in the overall organizational deployment schedule. Furthermore, to support continuous deployment, release engineers will need to increase the number of release slots available to agile teams that are disciplined enough to continuously and consistently meet the quality requirements for release.

Practice 7: Continuous Deployment

 

Continuous deployment extends the practice of continuous integration. With continuous deployment, when your integration is successful in one sandbox, your changes are automatically promoted to the next sandbox, and integration is automatically started there. This automatic promotion continues until the point where any changes must be verified by a person, typically at the transition point between development and operations. 

Continuous deployment enables development teams to reduce the time between a new feature being identified and being deployed into production. It enables the business to be more responsive. However, continuous deployment increases operational risk by increasing the potential for defects to be introduced into production when development teams aren't sufficiently disciplined. Successful continuous deployment in an enterprise environment requires all the practices described earlier.

Practice 8: Production Support

 

In enterprise environments, most application development teams are working on new releases of a solution that already exists in production. Not only will they be working on the new release, they will also have the responsibility of addressing serious production problems. The development team will often be referred to as "level three support" for the application because they will be the third (and last) team to be involved with fixing critical production problems. 

Although the need to do level three production support is common, with the exception of Kanban and Disciplined Agile Delivery (DAD), many agile methods only address this effort in passing. An important side effect of this practice is that it gives developers an appreciation of the kinds of things that occur in production, providing them with learning opportunities to improve the way that they design solutions in the first place.

Practice 9: Application Monitoring

 

As the name suggests, this is the operational practice of monitoring running solutions and applications once they are in production. Technology infrastructure platforms such as operating systems, application servers, and communication services often provide monitoring capabilities that can be leveraged by monitoring tools (such as Microsoft Management Console, IBM Tivoli Monitoring, and jManage). 

However, for monitoring application-specific functionality, such as what user interface (UI) features are being used by given types of users, instrumentation that is compliant with your organization's monitoring infrastructure will need to be built into the applications. Development teams need to be aware of this operational requirement or, better yet, have access to a framework that makes it straightforward to provide such instrumentation.

Practice 10: Automated Dashboards

 

The practice of using automated dashboards is business intelligence (BI) for IT. There are two aspects to this, development intelligence and operational intelligence. Development intelligence requires the use of development tools that are instrumented to generate metrics; for example, your configuration management (CM) tools already record who checked in what and when they did it.

Continuous integration tools could similarly record when a build occurred, how many tests ran, how long the tests ran, whether the build was successful, how many tests we successful, and so on. This sort of raw data can then be analyzed and displayed in automated dashboards.

Operational intelligence is an aspect of application monitoring discussed previously. With automated dashboards, an organization's overall metrics overhead can be dramatically reduced (although not completely eliminated because not everything can be automated). Automated dashboards provide real-time insight to an organization's governance teams.

DevOps Is Really About Culture

 

After describing these critical practices which support DevOps, I feel the need to emphasize that the primary critical success factor is to build a collaborative and respectful culture across your entire IT organization. My experience is that people, and the way that they work together, are the primary determinant of success when it comes to adopting an effective DevOps strategy. Unfortunately, it is considerably more difficult to bring about cultural change in an organization than it is to adopt a handful of new practices.

Sunday, November 22, 2015

DevOps Session 01 - Learn DevOps

DevOps is a clipped compound of "development" and "operations". DevOps is a culture, movement or practice that emphasizes the collaboration and communication of both software developers and other information-technology (IT) professionals while automating the process of software delivery and infrastructure changes.


DevOps promotes a set of processes and methods for thinking about communication and collaboration between development, QA, and IT operations. It aims at establishing a culture and environment where building, testing, and releasing software, can happen rapidly, frequently, and more reliably.

Tools such as Docker and Jenkins have automated more quality assurance processes and releases by development team. Puppet and automated configuration tools like Vagrant have also been used and frequently referenced in DevOps.

The specific goals of a DevOps approach span the entire delivery pipeline. They include improved deployment frequency, which can lead to faster time to market, lower failure rate of new releases, shortened lead time between fixes, and faster mean time to recovery in the event of a new release crashing or otherwise disabling the current system.

DevOps aims to maximize the predictability, efficiency, security, and maintainability of operational processes. Very often, automation supports this objective. DevOps integration targets product delivery, continuous testing, quality testing, feature development, and maintenance releases in order to improve reliability and security and provide faster development and deployment cycles.

Companies with very frequent releases may require a DevOps awareness or orientation program. Daily deployment cycle would be much higher at organizations producing multi-focus or multi-function applications. This is referred to as continuous deployment.

Adoption of DevOps is being driven by many factors including:
  1. Use of agile and other development processes and methodologies
  2. Demand for an increased rate of production releases from application and business unit stakeholders
  3. Wide availability of virtualized and cloud infrastructure from internal and external providers
  4. Increased usage of data center automation and configuration management tools
  5. Increased focus on test automation and continuous integration methods
  6. A critical mass of publicly available best practices

Tuesday, October 20, 2015

Cyber bullying and online safety



What is cyber bullying?
Cyber-bullying sometimes also called as online bullying, can be defined as the use of technology to deliberately hurt, threaten, upset, harass or embarrass someone else. It can be an extension of face-to-face bullying, with the technology offering the bully another route for harassing their victim, or can be simply without motive.

Cyber-bullying can occur using any form of connected media, from nasty text and image messages using mobile phones, to unkind blog and social networking posts, or emails and instant messages, to malicious websites created solely for the purpose of intimidating an individual or virtual abuse during an online multiplayer game.

Cyber-bullying differs from other forms of bullying in several ways:
·         It can invade the home and personal space of the victim.
·         Potential size of the audience is much greater.
·         Upsetting information (messages or images) can be spread at great speed.
·         Difficulty in controlling and removing anything posted or circulated electronically.

Because of its faceless nature it is often a perceived anonymity to cyber-bullying. This can lead to people becoming involved in activities that they wouldn’t dream of in the real world.

Because many kids are reluctant to report being bullied, even to their parents, it's impossible to know just how many are affected. But recent studies about cyber-bullying rates have found that about 1 in 4 teens have been the victims of cyber-bullying, and about 1 in 6 admit to having cyber-bullied someone. In some studies, more than half of the teens surveyed said that they've experienced abuse through social and digital media.

Severe, long-term, or frequent cyberbullying can leave both victims and bullies at greater risk for anxiety, depression, and other stress-related disorders. In some rare but highly publicized cases, some kids have turned to suicide. Experts say that kids who are bullied — and the bullies themselves — are at a higher risk for suicidal thoughts, attempts, and completed suicides. Because of that certain types of cyberbullying can be considered crimes.

Key issues to be aware of cyber-bullying

·         The relentless nature of cyber-bullying
The key difference between cyber-bullying and face-to-face bullying is that it can be relentless in its nature. Few years back when young people had less connectivity with internet, bullying would stop at the school gate or the front door with the home providing a safe net, this is no longer the case. But today young people connected 24/7 with internet, which also means they can be contacted and bullied with the same intensity.

·         Revealing too much personal information
The issue of revealing too much personal information is one of the greatest concerns associated with online technologies today, and can increase the risk of harassment or cyber-bullying. Personal information, whether in the form of text or images, can be used and manipulated by bullies.

·         Respecting the privacy of others
Another key issue is respecting the privacy of others. In the same way that all technology users should be mindful of revealing too much information about themselves, they should also be mindful of what their online postings and interactions reveal about others. 

This can work both ways in terms of cyber-bullying: young people may be a target of cyber-bullying as a result of their online postings about others, or could indeed themselves cross the fine line between engaging in ‘fun’ in online, to causing someone else hurt and distress through their comments and actions. The best rule is to always treat others online as you would wish to be treated yourself.


What are the ways that cyber-bullying could happen?

·         Mobile phones
Mobile phones are a key tool associated with cyber-bullying. Being such a private and personal device, they can offer a direct route for the bully to access their target, any time. The camera capabilities of most mobile phones can further aggravate the risk of cyber-bullying. Images or video can be taken, perhaps even without the subject’s knowledge or consent, and quickly circulated or posted online. This can further add to the distress of the victim.
  
·         Chat-based services
Chat-based services have also been associated with cyber-bullying, with postings starting of as ‘online fun’ sometimes crossing the line into more serious, and prolonged, verbal attacks. 

Positive parenting strategies for dealing with cyber-bullying
There are various strategies that parents might adopt to raise awareness of cyber-bullying with their children. 
·         Take action
Young people need to know that they should take prompt action if they are being bullied online. 
 The following tips specifically designed to help children and young people keep control of their online lives:
1.       Don't reply to messages that are meant to harass or upset you. This is likely to encourage the bully.
  1. Keep the message: you don't have to read it, but keep it as proof of harassment. It is vital to have a record of the incident when you look for help or want to report it.
  2. Report problems to people who can do something about it. You can take control by not putting up with offensive content or by reporting it to the website owners when you come across it. Incidents that could be illegal should be reported to the authorities.
  3. Block the sender. You don’t have to put up with someone harassing you - block unwanted senders!
  4. Tell someone you trust. Talking to your parents, friends, a teacher, youth leader is usually the first step in dealing with any issue.
  5. Respect yourself and respect others - being online is very public and very real, although it doesn’t always feel that way. Know your rights! Be creative! Be yourself! Be in control!
The Keep Control website (http://keepcontrol.eu/)  is available in a number of languages, and provides further information and resources for blocking and beating bullying online.

·         Talk often
The most important online safety strategy, regardless of the technology or issue involved, is to maintain an open dialogue with your child about their digital lives. Strict internet filtering at home may help protect children when they are inside your house but it doesn’t help solve the real issues with cyber-bullying and the misuse of technology. 

Set ground rules for using technology - and have penalties for if they are abused - but try not to impose fear in your child that their online access will be taken away from them if they do encounter problems.

If problems do occur, talk through the issues in a calm and rational way, and try to help your child devise sensible self-protection strategies should they encounter problems again in the future. 
  
·         Let them know it’s OK to block or disconnect
Let your children know that it’s OK to block ‘buddies’ or just disconnect from the service if someone or something is making them feel uncomfortable online. Ultimately they are in control, and have a right to make decisions about who has access to them online. If they do choose to block or disconnect, it’s still a good idea for them to talk through the issues with a known and trusted adult: this can help children and young people to reaffirm that they acted in safe and positive way, and can bolster their self-protection skills for the future.


Know where to get help and advice if things do go wrong
If you or your children do experience problems relating to cyber-bullying, or indeed any other online safety issue, it is important to recognize that you are not alone - there are a number of organizations that can provide help and advice. 

Many countries operate national helplines (http://www.saferinternet.org/helplines), or visit your national awareness centre website (http://www.saferinternet.org/countries)  for further information on a range of online safety issues, including contacts and campaigns in your country.

·         Yahoo!7 Safely

Yahoo!7 Safely website provides resources to assist you to make smart and safer choices online. There is also advice on using Yahoo! products safely. (http://au.safely.yahoo.com/)

·         Google Family Safety Centre

The Google Family Safety Centre provides parents and teachers with tools to help them choose what content their children see online. The centre also offers tips and advice to families about how to stay safe online. (http://www.google.com.au/familysafety)

·         Facebook Safety Centre

The Safety Centre provides tools to assist you to stay safe while using Facebook. You can also find other safety resources to help you whenever and however you use the internet. (http://www.facebook.com/safety)

When your child is the bully
Finding out that your kid is the one who is behaving badly can be upsetting and heartbreaking. It's important to address the problem head on and not wait for it to go away.

Talk to your child firmly about his or her actions and explain the negative impact it has on others. Joking and teasing might seem harmless to one person, but it can be hurtful to another. Bullying in any form is unacceptable; there can be serious (and sometimes permanent) consequences at home, school, and in the community if it continues.

Remind your child that the use of cellphones and computers is a privilege. Sometimes it helps to restrict the use of these devices until behavior improves. If you feel your child should have a cellphone for safety reasons, make sure it is a phone that can be used only for emergencies. Set strict parental controls on all devices.

To get to the heart of the matter, talking to teachers, guidance counselors, and other school officials can help identify situations that lead a kid to bully others. If your child has trouble managing anger, talk to a therapist about helping your son or daughter learn to cope with anger, hurt, frustration, and other strong emotions in a healthy way. Professional counseling also can help improve kids' confidence and social skills, which in turn can reduce the risk of bullying.

And don't forget to set a good example yourself — model good online habits to help your kids understand the benefits and the dangers of life in the digital world.

Wednesday, April 8, 2015

What is SDH and PDH?


Both PDH and SDH are terminologies associated with digital multiplexers used in exchanges. The different hierarchies having different bit rates are combined. These hierarchies will comprised of many such bit streams/channels (either 24,30 or multiples) often called as tributaries. 

SDH

In SDH, digital multiplexer's inputs are of same bit rate and are derived from common clock, hence are in phase. Hence it is synchronous.Word(group of bits) Interleaving is used in SDH to combine digital signals.
SDH

SDH uses basic rate of 155.52 Mbps and four times multiples of this i.e. 622.08 Mbps and 2488.32Mbps. Basic SDH rate of 155.52 is also as STM-1. STM stands for Synchronous Transport Module. SDH is referred as SONET(Synchronous Optical Network) in USA due to optical interfaces used. 

As per CCITT, any of PDH rates upto 140 Mbps can be integrated with SDH rates up to 155.52 Mbps.

PDH

In PDH, digital multiplexer's inputs(bit streams) are of same bit rate and are derived from different clocks from different oscillators. Each will differ within tolerance of few clock periods. Hence it is called plesiochronous. Bit Interleaving is used in PDH to combine digital signals.
PDH
In PDH there are two main standards i.e. 30 channel one used in Europe and 24 channel one used in North America/Japan. Rates derived from 2.048 Mbps basic rate including bit stuffing in 30 channel case are mentioned below.

2.048 x 4 gives 8.448 Mbps (120 channels)
8.448 x 4 gives 34.368 Mbps (480 channels)
34.368 x 4 gives 139.264 Mbps (1920 channels)
139.264 x 4 gives 564.992 Mbps (7680 channels)

Rates derived from 1.544 Mbps basic rate including bit stuffing in 24 channel case are mentioned below.

1.544 x 4 gives 6.312 Mbps (96 channels)
6.312 x 7 gives 44.736 Mbps (672 channels)
44.736 x 6 gives 274.16 Mbps (4032 channels)
44.736 x 3 gives 139.264 Mbps
44.736 x 12 gives 564.992 Mbps